Реальная скорость генерации токенов в секунду на Mac mini M4
Дисклеймер: я занимаюсь арендой компьютеров Mac, поэтому у меня всегда под рукой парк идентичных устройств и отличная возможность их протестировать. Все показатели получены на этих ПК, методология расписана от и до, а сырые данные опубликованы под лицензией CC BY. Упоминаний сервиса в тексте нет.
Зачем нужен еще один тест производительности
В профильных сообществах постоянно спрашивают, на что способны компьютеры Apple, и хотя ответов масса, почти все они лишены четкой методологии: не указаны параметры квантования и версия Ollama, делается всего один подход вместо серии тестов, а фоновая нагрузка на систему остается загадкой. Подобные цифры бесполезно как перепроверять, так и сопоставлять друг с другом.
Я протестировал шесть нейросетей на одинаковой аппаратной базе и зафиксировал все факторы, способные повлиять на искомый результат.
Методика тестирования
-
Аппаратная часть: Mac mini M4, 16 ГБ объединенной памяти с пропускной способностью 120 ГБ/с. Во время тестов компьютер был свободен, работали лишь стандартные системные службы.
-
Программное обеспечение: Ollama 0.31.2, macOS 15.3.1 (Sequoia).
-
Квантование: единый стандарт Q4_K_M для всех алгоритмов.
-
Промпт: стандартный запрос объемом около 300 слов с просьбой объяснить принцип работы механизма внимания в трансформерах для новичка, используя одну наглядную метафору. Параметры:
num_predict = 512,temperature = 0.7. -
Количество итераций: 3 успешных запуска на каждую модель плюс один предварительный прогревочный (он отбрасывается). Расхождение результатов в серии не превышало 0.5%.
Прогрев системы критически важен: первый старт всегда сопряжен с выгрузкой весов в память, и если пренебречь этим шагом, итоговые показатели исказятся на десятки процентов.
Результаты тестов
|
Модель |
Параметры |
Генерация, ток/с |
Обработка промпта, ток/с |
|---|---|---|---|
|
Llama 3.2 3B |
3B |
46.7 |
1720 |
|
Mistral 7B |
7B |
22.8 |
645 |
|
Qwen 2.5 7B |
7B |
22.3 |
1130 |
|
Llama 3.1 8B |
8B |
21.2 |
587 |
|
DeepSeek R1 8B |
8B |
20.0 |
531 |
|
Qwen 2.5 14B |
14B |
11.7 |
606 |
Колебания между тремя попытками для каждой языковой модели составили всего 0.5%, что говорит о высокой стабильности измерений.
Любопытно выглядит разница в обработке входящего запроса у Mistral 7B (645) и Qwen 2.5 7B (1130): при практически равной скорости генерации и одинаковых габаритах архитектура токенизатора и механизма внимания у них отличается. На этапе префилла это бросается в глаза, тогда как при генерации текстов разницы нет.
Практические выводы
Скорость генерации упирается исключительно в пропускную способность памяти, а не в вычислительную мощность чипа. Быстродействие прямо пропорционально пропускной способности RAM и обратно пропорционально весу модели. Отсюда следует простое правило для расчетов: ожидаемую скорость можно вычислить, разделив пропускную способность шины на объем весов. Для параметров 8B в формате Q4 (это примерно 4.7 ГБ) при полосе 120 ГБ/с получаем около 25 токенов в секунду — реальные 21 токен отлично вписываются в расчеты с учетом системных издержек.
Следовательно, на конфигурациях M4 Pro (273 ГБ/с) и M4 Max (546 ГБ/с) прирост производительности будет коррелировать именно с шириной канала памяти, а не с количеством ядер. Поскольку личных тестов на этих чипах у меня пока нет, точные цифры не привожу — как только они появятся, таблица будет дополнена.
Комфортный предел для 16 ГБ — модели на 8B. Решения размером до 8 миллиардов параметров выдают свыше 20 токенов в секунду, опережая человеческую скорость чтения. Этого вполне достаточно для комфортной работы локального RAG, анализа документации и интеллектуальных помощников программиста. Вариант на 14B запустить можно, но показатель в 11.7 токена в секунду уже заставляет ждать ответа, что на длинных текстах начинает утомлять. Для моделей от 14B и выше целесообразно использовать 24–32 ГБ памяти и более производительные шины.
Работа с длинным контекстом не создает узких мест. На обработку запроса уходит от 530 до 1720 токенов в секунду в зависимости от конкретного решения — это на порядок или два быстрее обычной генерации. Загрузить в оперативную память объемный документ обходится дешево, основная нагрузка ложится именно на последующий синтез текста.
Чего не вошло в исследование
Буду откровенен насчет ограничений: использовалась одна аппаратная конфигурация, один метод квантования и один сценарий нагрузки (создание связного текстового контента). При решении задач по написанию кода с глубокой проработкой логики результаты могут отличаться. Пакетную обработку запросов (батчинг) я не тестировал вовсе — это отдельная тема, где на 16 ГБ памяти нехватка места под KV-кэш дает о себе знать гораздо раньше, чем падение скорости.
Исходные материалы и методология доступны по адресу: https://macyou.co/benchmarks. Лицензия CC BY позволяет свободно использовать и верифицировать полученные сведения.
Если вы располагаете компьютерами на базе M1, M2, M3 или системами с объемом памяти от 24 до 64 ГБ, присылайте свои бенчмарки, собранные по аналогичной схеме, и я сформирую общую сводную таблицу. В сети хватает разрозненных метрик, но по-настоящему воспроизводимых тестов единицы.
Российские разработчики создали нейропамять для дронов-спасателей
Битва архитектур: процессоры ARM бросают вызов полувековому наследию Intel и AMD
МС-21-310: первый серийный российский лайнер совершил первый полет
Россияне стали чаще покупать уроки киберспорта: в топе — Counter-Strike и «Мир Танков»
Дебютировал Samsung Galaxy F70 Pro: батарея 6000 мАч, Galaxy AI и 6 лет обновлений за $250
5 свежих мини-ПК августа: от тихих офисных машин до геймерских монстров с GeForce RTX 5070
Рынок телевизоров в России: лидерство Xiaomi и успехи «Сбера» по версии «М.Видео»
Распаковка Poco M8 Power до анонса: батарея 8000 мАч, экран 6,9″ 120 Гц и цена около $290