Как сжать языковую модель в 3 раза: гайд по FP8, GPTQ и SmoothQuant
Новый гайд показывает, как сжать языковую модель с использованием llmcompressor. Испытаны три метода квантизации: FP8 (быстро, низкая точность), GPTQ (высокая т

Открытый инструмент llmcompressor позволяет сжимать предварительно обученные языковые модели до размера, пригодного для боевого использования. Новый практический гайд показывает, как применить квантизацию к готовым инструкциям-настроенным моделям и выбрать оптимальный метод для вашего сценария.
Что такое квантизация моделей Квантизация — это снижение точности чисел, на которых работает модель.
Вместо обычных 16-битных (FP16) или 32-битных (FP32) чисел модель может работать с 8-битными (int8) или даже 4-битными значениями. Это делает модель меньше и быстрее, но может ухудшить качество ответов. Существует два подхода: квантизация во время обучения (QAT) и постобучающая квантизация (PTQ). Первый точнее, но требует переобучения модели на данных. Второй — быстрее, просто применяется к уже готовой модели прямо перед использованием, без необходимости переобучения. llmcompressor специализируется на PTQ — постобучающей квантизации. Это позволяет применять сжатие за считаные часы вместо недель переобучения. Инженер загружает готовую модель в llmcompressor, выбирает метод квантизации, и через несколько часов имеет сжатую версию, готовую к использованию на слабом железе.
Три метода квантизации в сравнении
Гайд подробно испытывает три разных подхода на одной и той же базовой модели: FP8 динамическая квантизация — самая простая, работает за минуты, не требует калибровки на дополнительных данных. Все числа (веса и активации) переводятся в 8-битный формат. Минус: худшая точность, может потерять до 5 % в качестве ответов GPTQ (W4A16) — сжимает только веса модели до 4 бит, активации остаются в оригинальных 16 битах.
Требует небольшую калибровку на выборке данных. Хороший баланс между скоростью и качеством * SmoothQuant с GPTQ (W8A8) — самая точная из трёх, весы и активации в 8 бит, но с умным распределением значений. Медленнее других, требует больше данных для калибровки, зато результаты остаются близки к оригиналу с потерей менее 1 % Каждый метод проверяли на реальной задаче — генерация текста по пользовательским запросам.
Измеряли размер файла на диске, скорость генерации (latency и throughput), а также «растерянность» модели (perplexity) — метрику того, как модель ошибается на тестовых данных.
Результаты бенчмарков
Размер на диске может сократиться в 3-4 раза. 16-битная модель занимает существенно больше места, чем 8-битная версия той же модели. Скорость инференса повышается пропорционально сжатию, особенно заметно на мобильных устройствах, где батарея критична. Точность зависит от выбранного метода. FP8 теряет до 5 % в качестве ответов, SmoothQuant — менее 1 %. Для production-сценариев, где каждый процент точности критичен, выбирают SmoothQuant, даже если это медленнее. Для генерации идей, черновиков и вспомогательных задач подходит FP8, и экономия вычислений оправдывает потерю в качестве. Практический вывод из гайда: если вам нужна скорость и низкие затраты — выбирайте FP8. Если критична точность и вы готовы потратить больше времени на инференс — SmoothQuant.
Кому это нужно
Этот инструмент и подход полезны для компаний, которые хотят запустить свою языковую модель в production: — в edge (на девайсе пользователя) без отправки данных в облако — в приватном облаке с ограниченным железом и бюджетом — в масштабе: чем меньше модель, тем дешевле батч-обработка и облачные счета Стартапы и корпоративная индустрия уже активно используют квантизацию. Meta запустила Llama 2 с официальной поддержкой int8 квантизации. Hugging Face выпустил bitsandbytes — библиотеку, которая упрощает квантизацию для инженеров. Теперь llmcompressor позволяет делать это с точностью контроля над методом.
Что это значит
Квантизация переходит из категории экспериментов в стандартный инструмент ML-pipeline. Это закрытие последней мили — инструменты вроде llmcompressor позволяют инженеру выбрать компромисс между размером, скоростью и качеством за часы вместо недель экспериментов. Для всей индустрии это значит: большие языковые модели становятся доступнее, дешевле в эксплуатации и безопаснее в плане приватности, потому что можно крутить их локально без облака.