GGUF, GPTQ и AWQ — это не три одинаковых «формата квантизации». GGUF — бинарный однофайловый формат хранения модели для инференса в экосистеме GGML и совместимых исполнителей, а GPTQ и AWQ — методы посттренировочной низкобитной квантизации весов. Если вам нужен краткий ориентир: для llama.cpp модели должны быть в GGUF, для текущего стека Transformers GPTQ поддерживается через GPTQModel, а AWQ — через загрузку моделей, квантизованных с помощью llm-awq и autoawq.
Ниже — состояние официальных источников на 2026-08-14. Практический вывод сразу: сначала выбирайте рантайм и экосистему, а уже потом — конкретный способ квантизации или контейнер.
Английские термины: GGUF, GPTQ (post-training quantization для генеративных трансформеров), AWQ (activation-aware weight quantization). Также встречаются формулировки: посттренировочная квантизация, weight-only quantization, контейнер формата модели.
Простыми словами
Грубо говоря, GGUF — это коробка, в которой модель удобно хранить и быстро загружать в определённой экосистеме. А GPTQ и AWQ — это способы уменьшить вес самой модели, чтобы ей было проще работать на ограниченном железе.
Полезная аналогия с оговоркой: если у вас есть большая библиотека, GGUF — это способ упаковать книги в один стандартизованный контейнер, а GPTQ и AWQ — способы уменьшить объём самих книг, сохранив их читаемыми. Аналогия упрощает картину, но помогает не путать контейнер файла с методом сжатия весов.
Редакционная оговорка: сравнивать GGUF, GPTQ и AWQ как три равноправных алгоритма некорректно. По официальным источникам GGUF — это спецификация контейнера модели, а GPTQ и AWQ — методы квантизации.
Как это работает
Технически здесь есть два разных слоя: квантизация и упаковка/загрузка модели.
- Берётся исходная модель. Обычно это полновесные веса модели в исходном представлении.
- При необходимости применяется квантизация. GPTQ описан как one-shot post-training weight-quantization метод, основанный на приближённой информации второго порядка. AWQ описан как activation-aware, hardware-friendly low-bit weight-only quantization метод.
- После этого модель нужно сохранить и загрузить в нужном рантайме. Для экосистемы GGML и llama.cpp используется GGUF — бинарный однофайловый формат, рассчитанный на быстрое сохранение, загрузку и простое чтение.
- На этапе проверки важно убедиться, что конвертация не сломала поведение модели. В официальном workflow llama.cpp для GGUF прямо описаны инспекция модели, сравнение логитов и оценка перплексии для квантизованной модели.
Исходная модель
|
+--> GPTQ --> квантизованные веса --> загрузка через Transformers/GPTQModel
|
+--> AWQ --> квантизованные веса --> загрузка AWQ-модели в Transformers
|
+--> конвертация/упаковка в GGUF --> запуск в llama.cpp / GGML-совместимом рантайме
Для GGUF важно понимать ещё одну деталь: это живая спецификация. В документации описана история версий: v1 — начальная версия, v2 перевела countable-поля в uint64, v3 добавила поддержку big-endian. Спецификация также определяет метаданные выравнивания, например general.alignment. На практике это означает, что совместимость надо проверять по конкретному загрузчику и версии формата.
Что из этого следует на практике
- GGUF отвечает прежде всего за переносимый файл модели внутри своей экосистемы.
- GPTQ отвечает за способ посттренировочно сжать веса; в текущей документации Transformers рабочим и поддерживаемым бэкендом назван GPTQModel.
- AWQ тоже отвечает за способ квантизации весов, но с упором на activation-aware подход и hardware-friendly исполнение; в текущей документации Transformers указана загрузка моделей, квантизованных через llm-awq и autoawq.
Где применяется
- Локальный инференс в llama.cpp. В README проекта указано, что модели должны храниться в GGUF. Если исходная модель в другом формате, репозиторий даёт
convert_*.pyскрипты для конвертации. - Проверяемая конвертация моделей. В официальном сценарии llama.cpp после конвертации в GGUF рекомендуется не останавливаться на самом факте экспорта: есть отдельные шаги для инспекции модели, сравнения логитов и оценки перплексии.
- Низкобитное развёртывание в Transformers через GPTQ. Текущая документация Hugging Face указывает, что GPTQModel — активно поддерживаемый путь, а AutoGPTQ больше не поддерживается в Transformers.
- Загрузка AWQ-моделей в Transformers. Официальная документация Hugging Face прямо говорит о поддержке загрузки моделей, квантизованных с помощью llm-awq и autoawq.
Практический пример
Самый полезный сценарий здесь — не «как написать одну команду», а как не выбрать неправильный путь.
- Если ваша цель — запуск в llama.cpp: ориентируйтесь на GGUF как на обязательный формат хранения модели. Если модель в другом формате, используйте официальный workflow конвертации в GGUF, затем проверьте результат через инспекцию, сравнение логитов и оценку перплексии.
- Если ваша цель — текущий стек Transformers и GPTQ: планируйте работу через GPTQModel. Не стройте новый пайплайн вокруг AutoGPTQ: его репозиторий архивирован, а документация Transformers прямо говорит, что AutoGPTQ больше не поддерживается.
- Если модель опубликована как AWQ: проверяйте, что ваш путь загрузки соответствует документации Transformers для AWQ-моделей, квантизованных через llm-awq или autoawq.
- Если вы сравниваете «что лучше» в отрыве от рантайма: остановитесь и уточните постановку задачи. Без рантайма, формата исходной модели и способа верификации такой выбор почти всегда некорректен.
Короткий чек-лист выбора Нужен llama.cpp? -> GGUF Нужен Transformers + GPTQ? -> GPTQModel Нужна загрузка AWQ-модели в Transformers? -> AWQ path из docs Нужно доказать, что конвертация не испортила модель? -> inspect + logits + perplexity (для GGUF workflow)
Чем отличается от…
| Критерий | GGUF | GPTQ | AWQ |
|---|---|---|---|
| Что это по сути | Бинарный однофайловый формат/спецификация хранения модели | One-shot post-training метод квантизации весов | Activation-aware, hardware-friendly low-bit weight-only метод |
| Главная роль | Упаковка и загрузка модели в экосистеме GGML | Сжатие весов больших генеративных трансформеров | Сжатие и ускорение LLM через activation-aware квантизацию весов |
| Текущий официальный путь из источников | Требуется для llama.cpp; другие форматы конвертируются в GGUF | Transformers рекомендует GPTQModel; AutoGPTQ не поддерживается | Transformers поддерживает загрузку моделей, квантизованных llm-awq и autoawq |
| Файл или алгоритм | Файл/контейнер | Алгоритм | Алгоритм |
| Что важно проверить | Совместимость версии спецификации и загрузчика; корректность конвертации | Совместимость бэкенда и реализации | Совместимость рантайма и семейства модели |
Ограничения и заблуждения
- Заблуждение: «GGUF — это вид квантизации». Нет. По официальной спецификации это контейнерный формат. Один GGUF-файл может содержать разные типы представления весов, а точные возможности надо смотреть по конкретной модели и загрузчику.
- Заблуждение: «GPTQ и AWQ можно взаимозаменяемо загружать везде». Нет. В официальных источниках подчёркивается зависимость от бэкенда и реализации. Для GPTQ в текущем Transformers поддерживаемым путём назван GPTQModel. Для AWQ поддержка сформулирована через загрузку моделей, квантизованных с llm-awq и autoawq.
- Заблуждение: «AutoGPTQ — нормальная отправная точка для нового проекта». На момент источников это уже не так: репозиторий AutoGPTQ архивирован, а Transformers называет его неподдерживаемым путём.
- Ограничение: GGUF-спецификация развивается. История версий в документации означает, что детали совместимости нельзя считать раз и навсегда фиксированными.
- Ограничение проверки: для GGUF официальный workflow в llama.cpp явно описывает, как сравнивать результат после конвертации. Для GPTQ и AWQ в просмотренных официальных источниках такой же унифицированный сценарий проверки не был явно сформулирован, поэтому процедуру верификации нужно уточнять по конкретному бэкенду.
Практический вердикт: если вы говорите «выбираю между GGUF, GPTQ и AWQ», сначала переформулируйте вопрос. Корректнее спрашивать так: в каком рантайме я запускаю модель и каким способом она квантизована. Только после этого выбор становится технически осмысленным.
Связанные материалы
- Если вы сравниваете локальный запуск моделей с облачным доступом по API, посмотрите материал OpenAI API vs Google Gemini API: что выбрать.
- Для сценариев локального ассистента в IDE может быть полезен обзор Continue — open-source AI-ассистент для VS Code и JetBrains.
- Если вы оцениваете готовые инструменты для разработчиков, см. Amazon Q vs GitHub Copilot: что выбрать разработчику и AWS-команде.
- Из смежных терминов по устройству вывода модели пригодится Chain-of-thought (цепочка рассуждений).
Источники
- ggml/docs/gguf.md at master · ggml-org/ggml · GitHub
- llama.cpp/README.md at master · ggml-org/llama.cpp · GitHub
- llama.cpp/examples/model-conversion/README.md at master · ggml-org/llama.cpp · GitHub
- GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers
- GPTQ · Hugging Face
- Quantization · Hugging Face
- GitHub – AutoGPTQ/AutoGPTQ
- AWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration
- AWQ · Hugging Face
- GitHub – mit-han-lab/llm-awq: AWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration
Вопросы и ответы
GGUF — это квантизация или формат файла?
По официальной документации GGUF — это формат/спецификация хранения модели в одном бинарном файле для инференса с GGML-совместимыми исполнителями. Это не отдельный алгоритм квантизации.
Что сейчас использовать вместо AutoGPTQ?
В текущей документации Transformers активно поддерживаемым бэкендом для GPTQ назван GPTQModel. AutoGPTQ в Transformers больше не поддерживается, а его репозиторий архивирован.
Можно ли загружать AWQ-модели в Transformers?
Да. Текущая документация Hugging Face указывает поддержку загрузки моделей, квантизованных с помощью llm-awq и autoawq.
Как проверить, что GGUF-конвертация не испортила модель?
Официальный workflow llama.cpp рекомендует не ограничиваться экспортом: после конвертации нужно инспектировать модель, сравнить логиты и оценить перплексию квантизованной версии.
Какой вариант выбрать первым делом?
Сначала определите рантайм. Если нужен llama.cpp, смотрите в сторону GGUF. Если вы работаете в текущем стеке Transformers и вам нужен GPTQ, ориентируйтесь на GPTQModel. Если у вас уже есть AWQ-модель, сверяйте путь загрузки с официальной документацией Transformers для AWQ.