Реальная скорость генерации токенов в секунду на Mac mini M4

Прокомментировать Просмотры: 7

Дисклеймер: я занимаюсь арендой компьютеров 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 ГБ, присылайте свои бенчмарки, собранные по аналогичной схеме, и я сформирую общую сводную таблицу. В сети хватает разрозненных метрик, но по-настоящему воспроизводимых тестов единицы.

 

Источник

Поделиться:

Похожие статьи

Поиск по играм, новостям и статьям…

Введите не менее двух символов

Введите не менее двух символов