После этой инструкции вы сможете выбрать правильный путь квантования модели под GGUF, GPTQ или AWQ и воспроизвести базовые официальные шаги: подготовить исходную модель, выполнить квантование и проверить, что результат загружается и не сломан по качеству.
Практический вердикт: если вы запускаете модель в экосистеме llama.cpp, ориентируйтесь на GGUF; если вам нужен единый стек для нескольких форматов и backend-ов, смотрите GPTQModel; если нужен специализированный AWQ-маршрут с официальным примером инференса, используйте AutoAWQ. Редакционное ограничение: в источниках нет единого install-сценария для всех ОС, ускорителей и архитектур моделей, поэтому перед выполнением шагов сверяйте свой release/tag проекта и совместимость backend-а.
Сводка
- ⏱️ Время: зависит от размера модели, скорости диска и ускорителя; точное время в источниках не указано.
- 🎯 Сложность: средний.
- 💰 Стоимость: в источниках не указана; проверьте официальные страницы проектов и учитывайте затраты на локальное железо.
- 🛠️ Что потребуется: исходная модель, которую вы уже можете загрузить; доступ к официальным репозиториям llama.cpp, GPTQModel или AutoAWQ; совместимый backend под выбранный путь; для GGUF-пути — полноточный GGUF-файл или отдельный шаг конвертации в GGUF.
- 📌 Актуальность: инструкция собрана по официальным источникам на 2026-08-15. Для GPTQModel на странице releases указан релиз v7.3.2. Для llama.cpp и AutoAWQ в source pack не зафиксирован единый номер релиза, поэтому сверяйте используемый tag/release.
| Путь | Что это | Когда выбирать | Ключевое ограничение |
|---|---|---|---|
| GGUF + llama.cpp | GGUF в документации llama.cpp описан как формат файлов моделей для инференса с ggml/executors. | Когда вы хотите стандартный путь под экосистему llama.cpp. | Если исходная модель не в GGUF, её нужно сначала конвертировать, а потом отдельно верифицировать logits и perplexity. |
| GPTQModel | Production-ready toolkit для квантования и сжатия с поддержкой GPTQ, AWQ, GGUF, FP8, EXL3 и других режимов. | Когда нужен единый стек под GPTQ/GGUF и разные backend-ы. | Совместимость backend-ов и моделей зависит от версии и платформы; для GGUF в README указан путь с calibration=None и BACKEND.GGUF_TORCH. |
| AWQ + AutoAWQ | Специализированный AWQ-процесс с официальным примером квантования и повторной загрузки квантованной модели. | Когда вам нужен именно AWQ и вы хотите идти по отдельному, узкому workflow. | Для части битностей могут отсутствовать kernels; для Falcon нужен group size 64; для Marlin нужны zero_point=False и version=Marlin. |
Редакционная пометка: эта инструкция фиксирует только шаги, прямо подтверждённые source pack. Там, где официальные страницы не дают единой команды или полного списка флагов для всех моделей, это отмечено как ограничение, а не заполняется догадками.
Пошагово: как квантизировать модель
-
Выберите итоговый формат и runtime. Решите, где модель будет запускаться после квантования. Если целевой runtime — llama.cpp, вам нужен GGUF. Если нужен библиотечный workflow с поддержкой GPTQ, GGUF и нескольких backend-ов, берите GPTQModel. Если нужен отдельный AWQ-путь, используйте AutoAWQ.
Ожидаемый результат: вы понимаете, какой файл хотите получить на выходе и каким инструментом будете его загружать.
-
Проверьте исходную модель до квантования. Официальный workflow llama.cpp для новой модели начинается с проверки исходной модели, затем конвертации в GGUF, затем сравнения logits исходной и конвертированной модели, а после квантования — повторной проверки по perplexity. Это важный порядок: сначала убедитесь, что проблема не в исходнике.
Если ваш путь — GGUF, а модель пока не в этом формате, сначала подготовьте полноточный GGUF. В документации llama.cpp показан путь конвертации из Hugging Face через команду
python3 convert_hf_to_gguf.py. Ограничение: source pack не фиксирует полный синтаксис аргументов для всех архитектур, поэтому точные параметры берите из текущего README конвертации для вашего релиза.Ожидаемый результат: у вас есть рабочая исходная модель и, для GGUF-пути, полноточный GGUF-файл.
-
Если нужен GGUF в llama.cpp, запустите официальный квантователь. В README инструмента квантования llama.cpp указан такой синтаксис:
./llama-quantize [options] input-model-f32.gguf [output-model-quant.gguf] type [threads]Подставьте вместо
input-model-f32.ggufваш полноточный GGUF, задайте путь для выходного файла и выберитеtypeиз документации вашего текущего релиза. Не подставляйте вымышленные типы квантования: source pack не перечисляет допустимые значения.Ожидаемый результат: вы получаете новый файл квантованной модели в формате GGUF.
-
Для GGUF-пути выполните официальную проверку качества. В README по model conversion для llama.cpp описан правильный порядок верификации: сравнить logits исходной и конвертированной модели, а после квантования снова проверить результат по perplexity. Это лучше, чем ограничиться одной тестовой репликой в чате.
Если сравнение показывает неожиданное расхождение или perplexity деградирует сильнее, чем вы готовы принять, вернитесь к предыдущему шагу и пересмотрите тип квантования или исходный артефакт.
Ожидаемый результат: у вас есть измеримая проверка того, что квантованная GGUF-модель пригодна для вашего сценария.
-
Если нужен GPTQ через GPTQModel, создайте базовую конфигурацию квантования. В официальном примере GPTQModel показан базовый цикл с конфигом
QuantizeConfig(bits=4, group_size=128). Дальше модель загружается, к ней применяетсяmodel.quantize(...), затем результат сохраняется.Что важно учесть заранее: README GPTQModel указывает поддержку Linux, macOS и Windows 11, а также backend-ов CUDA, NPU, XPU, ROCm, MPS и CPU. Но source pack отдельно предупреждает, что поддержка конкретной модели и backend-а зависит от версии и железа, поэтому не пропускайте сверку release и документации.
Ожидаемый результат: вы определили базовые параметры GPTQ-квантования и понимаете, что ваша платформа в принципе поддерживается проектом.
-
В GPTQModel завершите цикл quantize → save → reload → generation test. Официальный пример показывает именно такой маршрут: выполнить
model.quantize(...), сохранить квантованный результат, затем повторно загрузить уже квантованную модель и проверить её генерацией текста. Если ваша цель в GPTQModel — GGUF, README указывает отдельный путь сcalibration=Noneи backend-омBACKEND.GGUF_TORCH.Ограничение: сам факт поддержки AWQ в GPTQModel подтверждён README, но source pack не фиксирует отдельный пошаговый AWQ-рецепт внутри GPTQModel для всех backend-ов. Если вам нужен именно AWQ с воспроизводимым примером, практичнее перейти к отдельному маршруту через AutoAWQ ниже.
Ожидаемый результат: квантованная модель сохраняется, заново загружается и выдаёт текст в тестовой генерации.
-
Если нужен AWQ, повторите официальный маршрут AutoAWQ. В examples AutoAWQ показан прямой процесс: загрузить модель через
AutoAWQForCausalLM.from_pretrained, вызватьmodel.quantize(tokenizer, quant_config=...), сохранить модель, затем загрузить её черезfrom_quantized(..., fuse_layers=True)и проверить инференсом.Это самый чистый официальный AWQ-путь из source pack: у вас есть и квантование, и повторная загрузка, и проверка инференсом в одном workflow. Не игнорируйте ограничения из документации: для некоторых битностей могут отсутствовать kernels; для Falcon нужен group size 64; для Marlin нужны
zero_point=Falseиversion=Marlin.Ожидаемый результат: вы получаете AWQ-квантованную модель, которая повторно загружается как квантованная и проходит тестовый инференс.
Как проверить, что всё работает
| Путь | Что проверить | Признак успеха |
|---|---|---|
| GGUF + llama.cpp | Наличие выходного GGUF-файла, затем сравнение logits исходной и конвертированной модели, затем проверка по perplexity после квантования. | Файл создан, модель загружается, а верификация не показывает неожиданного развала качества. |
| GPTQModel | После model.quantize(...) сохраните модель, повторно загрузите квантованный артефакт и выполните генерацию текста. |
Квантованная модель заново открывается и выдаёт осмысленный ответ на тестовый prompt. |
| AutoAWQ | Сохраните результат квантования, затем загрузите его через from_quantized(..., fuse_layers=True) и запустите инференс. |
Модель загружается как квантованная и проходит тестовую генерацию без падения на этапе загрузки kernels. |
Если вы проверили только то, что модель «что-то отвечает», это минимальная, но не достаточная проверка. Для GGUF официальный workflow прямо требует измерения через logits и perplexity; именно этот путь лучше считать эталонным.
Частые ошибки и исправления
- ❌ Ошибка: вы пытаетесь квантизировать модель в GGUF, но у вас нет полноточного GGUF-файла.
✅ Решение: сначала конвертируйте исходный формат в GGUF. В llama.cpp для этого показан путь черезpython3 convert_hf_to_gguf.py. Полный набор аргументов сверяйте по README вашего релиза. - ❌ Ошибка: после GGUF-квантования вы проверили только один чат-запрос.
✅ Решение: повторите официальный путь из llama.cpp: сравните logits исходной и конвертированной модели и проверьте quantized-версию по perplexity. - ❌ Ошибка: вы используете GPTQModel для GGUF, но оставляете неподходящую схему калибровки.
✅ Решение: для GGUF в README GPTQModel указан путь сcalibration=NoneиBACKEND.GGUF_TORCH. - ❌ Ошибка: в AutoAWQ вы выбрали конфигурацию, для которой нет kernels, или применили общие настройки к Falcon/Marlin.
✅ Решение: проверьте ограничения из examples: для некоторых битностей kernels могут отсутствовать; Falcon требует group size 64; Marlin требуетzero_point=Falseиversion=Marlin. - ❌ Ошибка: вы предполагаете, что любая модель и любой backend будут работать на любой версии проекта.
✅ Решение: сверяйте release/tag и актуальную документацию. Source pack отдельно предупреждает, что поддержка архитектур, kernels и backend-ов зависит от версии и аппаратной платформы.
Безопасность и ограничения
- Не удаляйте исходную полноточную модель до верификации. Иначе вы потеряете базу для сравнения logits, perplexity и генерации.
- Не переносите инструкции между релизами без проверки. В source pack отмечено, что флаги и названия backend-ов в llama.cpp и GPTQModel могут меняться между релизами.
- Считайте совместимость аппаратно-зависимой. Для GPTQModel и AutoAWQ поддержка конкретной модели, kernels и backend-ов зависит от версии и вашей платформы.
- Для AutoAWQ проверяйте текущую степень сопровождения. В uncertainties прямо сказано, что для проекта не проверялась отдельно текущая степень сопровождения по всем архитектурам, поэтому перед продакшен-выбором смотрите страницу репозитория и issues.
- Практический предел этой инструкции: она воспроизводит официальные шаги квантования и проверки, но не заменяет release-specific документацию по установке зависимостей и model-specific флагам.
Практический вывод: если вам нужен самый предсказуемый путь под локальный запуск в экосистеме llama.cpp, идите через GGUF и обязательно делайте измеримую верификацию. Если нужен единый API-подход к нескольким режимам квантования, сначала проверьте, закрывает ли GPTQModel именно вашу платформу и backend. Если задача узкая и AWQ-ориентированная, проще начинать с официального примера AutoAWQ.
Что делать дальше
- Как подобрать модель под свою видеокарту (VRAM) — чтобы не квантизировать заведомо неподходящий размер.
- Как настроить локальную модель через Ollama — если после квантования вы хотите перейти к удобному локальному запуску.
- Как проверить модель на галлюцинации — чтобы оценить, не ухудшилось ли поведение модели после сжатия.
- Как файн-тюнить модель: с чего начать — если после квантования вы решаете, нужен ли вам ещё и дообучающий этап.
Источники
- llama.cpp examples/model-conversion README
- llama.cpp tools/quantize README
- GGUF documentation
- GPTQModel README
- Releases · ModelCloud/GPTQModel
- GPTQModel quantization example: basic_usage_wikitext2.py
- AutoAWQ examples
- GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers
- AWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration
Вопросы и ответы
Что выбрать, если я запускаю модель через llama.cpp?
Выбирайте GGUF. В документации llama.cpp GGUF описан как формат файлов моделей для инференса с ggml/executors. Если исходник в другом формате, сначала конвертируйте его в GGUF.
Нужно ли обязательно проверять модель после квантования?
Да. Для GGUF официальный workflow llama.cpp рекомендует не ограничиваться запуском, а сравнить logits исходной и конвертированной модели и затем проверить квантованную модель по perplexity. Для GPTQModel и AutoAWQ минимальная проверка — повторная загрузка квантованной модели и генерация текста.
Какие ОС и backend-ы поддерживает GPTQModel?
README GPTQModel указывает поддержку Linux, macOS и Windows 11, а также backend-ов CUDA, NPU, XPU, ROCm, MPS и CPU. Но конкретная работоспособность зависит от версии, модели и аппаратной платформы.
Можно ли сделать AWQ через GPTQModel вместо AutoAWQ?
README GPTQModel подтверждает поддержку AWQ, но source pack не фиксирует отдельный воспроизводимый AWQ-рецепт внутри GPTQModel для всех backend-ов. Если вам нужен именно пошаговый официальный AWQ-flow, проще идти по examples AutoAWQ.
Есть ли в источниках точное время квантования и готовые настройки для всех моделей?
Нет. Source pack не даёт универсального времени выполнения, полного набора model-specific аргументов или гарантии совместимости для всех архитектур. Эти части нужно уточнять по конкретному release/tag и документации выбранного проекта.