COMRAD404 / GLOSSARY

Форматы квантизации: GGUF, GPTQ, AWQ

Quantization formats: GGUF, GPTQ, AWQ

GGUF, GPTQ и AWQ часто ставят в один ряд, но это не одно и то же: GGUF — контейнерный формат файла модели, а GPTQ и AWQ — методы посттренировочной квантизации весов.

TL;DR

GGUF — контейнерный формат модели для GGML/llama.cpp, а GPTQ и AWQ — методы посттренировочной квантизации весов для более компактного и удобного инференса.

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 — методы квантизации.

Как это работает

Технически здесь есть два разных слоя: квантизация и упаковка/загрузка модели.

  1. Берётся исходная модель. Обычно это полновесные веса модели в исходном представлении.
  2. При необходимости применяется квантизация. GPTQ описан как one-shot post-training weight-quantization метод, основанный на приближённой информации второго порядка. AWQ описан как activation-aware, hardware-friendly low-bit weight-only quantization метод.
  3. После этого модель нужно сохранить и загрузить в нужном рантайме. Для экосистемы GGML и llama.cpp используется GGUF — бинарный однофайловый формат, рассчитанный на быстрое сохранение, загрузку и простое чтение.
  4. На этапе проверки важно убедиться, что конвертация не сломала поведение модели. В официальном 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.

Практический пример

Самый полезный сценарий здесь — не «как написать одну команду», а как не выбрать неправильный путь.

  1. Если ваша цель — запуск в llama.cpp: ориентируйтесь на GGUF как на обязательный формат хранения модели. Если модель в другом формате, используйте официальный workflow конвертации в GGUF, затем проверьте результат через инспекцию, сравнение логитов и оценку перплексии.
  2. Если ваша цель — текущий стек Transformers и GPTQ: планируйте работу через GPTQModel. Не стройте новый пайплайн вокруг AutoGPTQ: его репозиторий архивирован, а документация Transformers прямо говорит, что AutoGPTQ больше не поддерживается.
  3. Если модель опубликована как AWQ: проверяйте, что ваш путь загрузки соответствует документации Transformers для AWQ-моделей, квантизованных через llm-awq или autoawq.
  4. Если вы сравниваете «что лучше» в отрыве от рантайма: остановитесь и уточните постановку задачи. Без рантайма, формата исходной модели и способа верификации такой выбор почти всегда некорректен.
Короткий чек-лист выбора

Нужен 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», сначала переформулируйте вопрос. Корректнее спрашивать так: в каком рантайме я запускаю модель и каким способом она квантизована. Только после этого выбор становится технически осмысленным.

Связанные материалы

Источники

Вопросы и ответы

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.

Источники

SOURCES

Вопросы и ответы

FAQ
GGUF — это квантизация или формат файла?

GGUF по официальной документации — это формат/спецификация хранения модели в одном бинарном файле для инференса с GGML-совместимыми исполнителями. Это не отдельный алгоритм квантизации.

Что сейчас использовать вместо AutoGPTQ?

В текущей документации Transformers активно поддерживаемым бэкендом для GPTQ назван GPTQModel. AutoGPTQ в Transformers больше не поддерживается, а репозиторий AutoGPTQ архивирован.

Можно ли загружать AWQ-модели в Transformers?

Да. Текущая документация Hugging Face указывает поддержку загрузки моделей, квантизованных с помощью llm-awq и autoawq.

Как проверить, что GGUF-конвертация не испортила модель?

Официальный workflow llama.cpp рекомендует после конвертации инспектировать модель, сравнить логиты и оценить перплексию квантизованной версии.

Какой вариант выбрать первым делом?

Сначала определите рантайм. Для llama.cpp нужен GGUF. Для текущего стека Transformers и GPTQ ориентируйтесь на GPTQModel. Если у вас AWQ-модель, сверяйте путь загрузки с официальной документацией Transformers для AWQ.

Читайте также

LINKS