MiMo 2.6 Distill 9B на Mac: локальный запуск и проверка кода
Мы запустили сторонний MiMo 2.6 9B Q3 GGUF на Mac M3 Pro с 18 ГБ памяти. Конфигурация, ограничения измерений памяти и задача, которую модель не решила.
MiMo-V2.6-Distill-Qwen-9B удалось запустить локально на проверенной конфигурации Mac: Apple M3 Pro с 18 GiB объединённой памяти, сторонний GGUF в формате Q3_K_M и llama.cpp. Модель успешно загрузилась и сгенерировала текст. Однако небольшая задача программирования не прошла полный набор приёмочных тестов.
Это важное различие. Если модель помещается в память, это ещё не означает, что она надёжно решает вашу задачу. Кроме того, дистиллированный чекпойнт 9B — отдельная модель, а не облачная MiMo 2.6 Pro.
Что именно мы запускали
| Компонент | Проверенная конфигурация |
|---|---|
| Оборудование | Apple M3 Pro, 18 GiB объединённой памяти |
| Среда запуска | llama.cpp, сборка 10470, коммит 34af94cd9, Darwin arm64 |
| Автор публикации квантизации | bartowski/MiMo-V2.6-Distill-Qwen-9B-GGUF |
| Ревизия репозитория | 4371da10c84fb26da3592d4cf312d24aa82b7b65 |
| Файл | MiMo-V2.6-Distill-Qwen-9B-Q3_K_M.gguf |
| Размер загрузки | 4 479 948 320 байт, примерно 4,17 GiB |
| Контекст и лимит выхода | Контекст 2 048 токенов; генерация до 256 токенов |
| Семплирование | Температура 0, seed 42; прогрев отключён |
| Область проверки | Локальная генерация текста, без проектора для обработки изображений и цикла вызовов инструментов агента |
Исходный чекпойнт Xiaomi и сторонняя сборка GGUF — разные файлы модели. Последняя представляет собой квантизированную конверсию. Сохраняйте имя автора публикации и ревизию; не называйте её официальным выпуском Xiaomi Q3.
Скачайте файл фиксированной ревизии и проверьте его
Установите llama.cpp из доверенного источника пакетов; на тестовом Mac мы использовали Homebrew. Затем скачайте ту же ревизию в каталог, где достаточно свободного места:
brew install llama.cpp
mkdir -p mimo26-test
cd mimo26-test
curl -fL --retry 2 \
'https://huggingface.co/bartowski/MiMo-V2.6-Distill-Qwen-9B-GGUF/resolve/4371da10c84fb26da3592d4cf312d24aa82b7b65/MiMo-V2.6-Distill-Qwen-9B-Q3_K_M.gguf' \
-o model-Q3_K_M.gguf
shasum -a 256 model-Q3_K_M.gguf
Проверенная контрольная сумма SHA-256:
d98e54ec9650b6554cfdeea531e2420009207d50471170d0c3640483df8e87eb
Оставьте дополнительное место на диске для среды запуска, журналов и нормальной работы системы. Размер GGUF — объём скачиваемого файла, а не полное требование к оперативной памяти. Свежая установка llama.cpp может отличаться от проверенной сборки; перед сравнением результатов запишите вывод llama-cli --version.
Выполните короткий запрос с ограничениями
/usr/bin/time -l llama-cli \
-m model-Q3_K_M.gguf \
-c 2048 -n 256 \
--single-turn --temp 0 --seed 42 --no-warmup \
-p 'Write a Python function unique_in_order(values) that removes duplicates while preserving first occurrence order. Inputs are hashable. Return only the function, with no explanation.'
Так устроена команда, которую мы выполнили. /usr/bin/time -l — использованный здесь способ измерения в macOS; не предполагайте, что такой же флаг доступен в Linux. Контекст намеренно ограничен. Этот запуск не проверяет значительно больший контекст, мультимодальный ввод или одновременные запросы.
Ошибка в сгенерированном коде
Первый запуск вернул:
def unique_in_order(values):
if not values:
return []
result = [values[0]]
for value in values[1:]:
if value != result[-1]:
result.append(value)
return result
Функция удаляет соседние повторы, но оставляет значения, которые снова встречаются дальше. Мы проверили сгенерированную функцию на четырёх случаях:
| Вход | Ожидаемый результат | Фактический результат первого запуска | Проверка |
|---|---|---|---|
[] | [] | [] | Пройдена |
[1, 1, 2] | [1, 2] | [1, 2] | Пройдена |
[1, 2, 1, 3, 2] | [1, 2, 3] | [1, 2, 1, 3, 2] | Не пройдена |
['a', 'b', 'a'] | ['a', 'b'] | ['a', 'b', 'a'] | Не пройдена |
Во втором запуске мы добавили в промпт пример с несоседними повторами, но оба этих случая снова не прошли. В третьем повторили исходный промпт и получили исходную функцию. Это три пробных запуска одной небольшой задачи, а не репрезентативный бенчмарк точности и не доказательство того, что другие квантизации ведут себя так же.
Время и память: как понимать измерения
| Запуск | Скорость генерации по данным CLI | Полное время процесса |
|---|---|---|
| Исходный промпт | 14,4 токена/с | 27,74 с |
| Промпт с явным примером | 13,7 токена/с | 15,62 с |
| Повтор исходного промпта | 15,3 токена/с | 14,49 с |
Полное время включает запуск процесса и загрузку модели. Первые два запуска выполнялись одновременно с локальной сборкой блога, а третий — после её завершения. Это наблюдения на конкретном компьютере, а не сравнение скорости в контролируемых условиях. Мы не измеряли время до получения правильного решения, поскольку задача ни разу не прошла все случаи.
macOS сообщила о максимальной резидентной памяти процессов примерно 1,91, 3,86 и 3,84 GiB. Это системные показатели процессов, а не измерения выделенной видеопамяти GPU или полной потребности модели в объединённой памяти. Отображение файлов в память, общие буферы и другие приложения влияют на интерпретацию этих показателей. Тест подтверждает запуск на данном Mac с 18 GiB, но не утверждения «достаточно 4 GiB» или «подойдёт любая видеокарта с 8 GiB».
Файл с результатами теста содержит сгенерированные функции, ожидаемые и фактические результаты, а также параметры измерений.
Что проверить дальше
Выберите задачу с явными критериями приёмки и изучите сгенерированный код перед выполнением. Если локальная модель ошибается, смена промпта, квантизации или модели будет отдельным экспериментом со своим результатом. Ни одно из этих изменений не гарантирует исправления показанной ошибки.
Для облачного инференса руководство по API MiMo объясняет отдельный способ подключения, а статья о ценах описывает тарифы прямого сервиса. Облачный Pro и эта локальная конверсия 9B — разные модели. Результаты одной нельзя считать проверкой другой.
Часто задаваемые вопросы
- Доказывает ли тест, что полная MiMo 2.6 Pro работает на Mac с 18 ГБ памяти?
- Нет. В тесте использовалась сторонняя квантизация Q3 отдельного дистиллированного чекпойнта 9B.
- Прошла ли локальная модель проверку кода?
- Модель загрузилась и сгенерировала код, но во всех трёх запусках не прошла случаи с несоседними повторами. Это небольшая проверка, а не комплексный бенчмарк.
- Показывает ли резидентная память процесса требования к видеопамяти GPU?
- Нет. Это показатели процесса в macOS. Они не измеряют полную потребность в объединённой памяти или памяти GPU.


