ИИтак

← Назад

Hugging Face научила Transformers быстро запускать модели для llama.cpp

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

Изображение: 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-модели поддержать следующими, компания просит подсказать, открыв заявку с нужной моделью.

← Все новости