Квантование LLM: GGUF, AWQ, GPTQ и FP8
Квантование уменьшает точность части значений модели, чтобы снизить расход памяти. Для своего сервера главный вопрос: какой файл загрузит ваш движок и сохранит ли модель качество на ваших задачах? Меньший размер не гарантирует ни ускорения, ни неизменных ответов.
Сначала движок, затем формат
| Формат или метод | С чего начать | Что проверить до загрузки |
|---|---|---|
| GGUF с Q4, Q5, Q6 или Q8 | llama.cpp, совместимые импорты/теги Ollama, LM Studio | Архитектуру модели, вариант квантования и поддержку движком |
| Checkpoint AWQ или GPTQ | Например, vLLM с подходящими моделью и ядрами | Архитектуру GPU, версию движка и метаданные checkpoint |
| Checkpoint FP8 | Совместимое сочетание движка и GPU | Доступные вычислительные ядра и тензоры в FP8 |
| Загрузка BitsAndBytes | Фреймворк или движок с соответствующим loader | Версии, архитектуру модели и память при загрузке |
GGUF — формат файла, а не одна конкретная точность. AWQ и GPTQ описывают подходы к квантованию и соглашения хранения. Надпись «4-bit» не делает файлы взаимозаменяемыми.
Зафиксируйте конкретный тег
В инструкции Ollama используется qwen2.5:7b-instruct-q4_K_M: семейство, размер, instruction-вариант и квантование. Проверьте загруженную модель:
ollama show qwen2.5:7b-instruct-q4_K_M
curl --fail-with-body http://127.0.0.1:11434/api/tags
Сохраните digest вместе с версией движка. Тег может обновляться, поэтому одного имени недостаточно для точного сравнения. Для первого опыта проще взять готовый совместимый вариант, чем собирать собственный процесс квантования.
Как понимать экономию памяти
Четыре бита дают арифметическую оценку в полбайта на параметр против двух байт у BF16. Реальный файл содержит метаданные и тензоры разной точности. Во время работы добавляются буферы и контекст. Используйте расчёт VRAM как нижнюю границу, затем проверьте настоящий запрос.
Квантование весов и квантование KV-кеша — разные настройки. Сжатие весов не означает автоматического сжатия контекста. Длинный диалог может закончиться OOM после успешного запуска небольшой модели.
Проверка качества на ваших задачах
Подготовьте небольшой набор запросов с проверяемым результатом: извлечение полей в JSON, сохранение дат в резюме, правка кода с тестом, ответ клиенту. Системный промпт и контекст должны быть одинаковыми.
При возможности сравните выбранное представление с более точным вариантом той же модели. Записывайте неверные факты, потерянные детали и ошибки формата вместе со временем и памятью. Повышение точности не гарантирует исправления ограничений базовой модели.
Для русского языка включите склонение, имена, даты и технические термины на двух языках. Короткий английский пример не заменяет такую проверку. Сравнение размеров скачиваемых файлов тоже не является оценкой качества.
Почему меньший файл иногда медленнее
Разные виды квантования могут использовать разные ядра. На скорость влияют CPU-offload, настройки кеша и пропускная способность памяти. Меняйте один параметр за раз. Если сжатая модель полностью перешла на GPU, а исходная работала частично на CPU, укажите это в результате.
При ошибке формата сверяйтесь с матрицей поддержки движка. Переименование файла или добавление флага --quantization не конвертирует веса.
Далее: Ollama, GGUF в llama.cpp, vLLM.
Источники: квантование в llama.cpp, поддержка квантования vLLM, GGUF-релиз Qwen.
Готовы запустить?
Запустить GPU-сервер