MiMo 2.6 Distill 9B на Mac: локальный запуск и проверка кода

Мы запустили сторонний MiMo 2.6 9B Q3 GGUF на Mac M3 Pro с 18 ГБ памяти. Конфигурация, ограничения измерений памяти и задача, которую модель не решила.

Рисунок бинокля на светлой карточке с надписью MiMo 2.6 Local.

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.