Hugging Face научила Transformers быстро запускать модели для llama.cpp
Сжатые модели в формате GGUF можно изучать и дообучать в Transformers, а на Mac они генерируют текст почти со скоростью llama.cpp, по замерам Hugging Face.

Библиотека Transformers1 от Hugging Face научилась запускать сжатые модели формата GGUF2, не распаковывая веса. На Mac она, по замерам компании, почти догнала по скорости llama.cpp3.
Почему это важно: готовые GGUF-файлы, рассчитанные на память ноутбука, скачаны миллионы раз. С ними можно работать в привычной среде Python и PyTorch почти без потери скорости.
Детали: модель загружается обычной командой from_pretrained: достаточно указать репозиторий на Hugging Face и имя файла. Отдельная команда библиотеки поднимает на Mac сервер с API в формате OpenAI. К нему можно подключить, например, чат-приложение Jan или агента для программирования Pi.
Как это работает: скорость дают ядра GGML — небольшие программы для видеочипа, на которых построен llama.cpp. Hugging Face раздаёт их через свою библиотеку для распространения ядер, и Transformers подключает их сама:
- Сжатые веса остаются в памяти в упакованном виде, и ядро считает прямо по ним, без распаковки в полную точность.
- Внимание, нормализацию и выбор экспертов в моделях со смесью экспертов4 берут на себя специальные ядра для видеочипов Apple.
- Без подходящего ядра модель распаковывается целиком и занимает больше памяти, а внимание считается стандартным способом PyTorch.
Интрига: две правки в цикле генерации ускоряют любые модели в Transformers, а не только GGUF:
- Если запрос не дополнен пустыми токенами до общей длины, библиотека сразу убирает ненужную маску внимания и не проверяет её на каждом шаге.
- Сигнал «пора остановиться» процессор получает с опозданием на шаг и тем временем продолжает ставить видеочипу задачи, а лишний токен потом отбрасывается.
В цифрах: Hugging Face сравнила скорость на MacBook Pro с чипом M2 Max и 32 ГБ памяти: три модели генерировали по 128 токенов. На всех трёх — небольшой, покрупнее и модели со смесью экспертов — Transformers оказалась близка к llama.cpp. Условия не совпадали: в замер Transformers вошла ещё и обработка запроса, а llama.cpp мерила только генерацию.
Между строк: команда GGML и llama.cpp уже работает в Hugging Face, и компания подаёт Transformers не как замену движку, а как среду для работы с теми же файлами:
- Разработчики могут заглядывать внутрь сжатой модели и менять её вычисления привычными средствами PyTorch.
- Качество сжатой версии можно мерить теми же тестами, что и оригинал, и проверять, не испортились ли веса при конвертации.
- Веса можно распаковать и дообучить модель обычным для Transformers способом.
Но: для быстрого локального запуска Hugging Face по-прежнему советует llama.cpp, а у новой поддержки пока узкие рамки:
- Режим с упакованными весами работает только на видеочипах Apple, на других устройствах остаётся загрузка с распаковкой весов.
- Из архитектур поддержаны только Qwen3.5 — обычная и со смесью экспертов, а также совместимые с ней файлы Qwen3.8.
- Пакеты из нескольких запросов разной длины работают медленнее, а для запуска нужна версия Transformers из основной ветки разработки.
Что дальше: Hugging Face хочет подключать ядра GGML к моделям, которых llama.cpp не поддерживает: новым и исследовательским архитектурам, а позже — моделям для изображений и звука. Какие GGUF-модели поддержать следующими, компания просит подсказать, открыв заявку с нужной моделью.