Sakhanda Wire
NVDA $230.86 +1.09% MSFT $512.80 -0.02% GOOGL $338.24 -1.70% META $725.93 +0.10% AMZN $248.23 -0.37%
← К новостям

GGUF против GPTQ против AWQ против EXL2: объяснение форматов моделей LLM (2026)

Сначала разделим 2 понятия: контейнеры и методы квантования

Большая часть путаницы возникает из-за смешения 2 уровней.

Контейнер определяет, как тензоры хранятся на диске. Метод квантования определяет, как веса сжимаются до меньшего числа битов.

  • Контейнеры: safetensors, GGUF, PyTorch pickle (.bin / .pt).
  • Методы: GPTQ, AWQ, bitsandbytes NF4, K-кванты и I-кванты llama.cpp.
  • И то и другое одновременно: EXL2 и EXL3 — это метод плюс структура хранения, привязанная к одной библиотеке инференса.

Быстрое практическое правило для оценки памяти

Память под веса ≈ количество параметров × бит на вес ÷ 8.

Модель16 бит~4,5 бита на вес
8B~16 ГБ~4,5 ГБ
70B~140 ГБ~39 ГБ

Это арифметический расчёт, а не бенчмарк производителя. Он учитывает только веса. Кэш KV и накладные расходы среды выполнения добавляют ещё больше.

1. Полная точность: safetensors и PyTorch .bin

Неквантованные модели обычно поставляются с весами в формате 16 бит — либо в pytorch_model.bin, либо в model.safetensors.

В старых файлах .bin / .pt используется Python pickle. Загрузка pickle-файла может привести к выполнению произвольного кода, что делает непроверенные контрольные точки угрозой безопасности.

Safetensors, созданный на Hugging Face, устраняет этот риск. Файл состоит из небольшого заголовка JSON и необработанных буферов тензоров; внутри нет ничего исполняемого. Тензоры можно отображать в память и загружать по одному, не считывая весь файл целиком. Safetensors теперь указан как проект PyTorch Foundation.

Важный нюанс: большинство моделей GPTQ, AWQ, EXL2, EXL3 и MLX также хранятся в файлах .safetensors. Квантование содержится в данных тензоров и конфигурационном файле, а не в новом контейнере.

2. GGUF (llama.cpp)

Что это такое

GGUF — это бинарный формат для запуска моделей с помощью GGML и исполнителей на базе GGML, таких как llama.cpp. Его создал Георгий Герганов, который также руководит разработкой llama.cpp (документация Hugging Face). Формат был представлен 21 августа 2023 года как замена старому формату GGML.

Почему он заменил GGML

Старые файлы GGML, GGMF и GGJT не могли указать, к какой архитектуре относится модель. Добавление нового гиперпараметра нарушало работу каждого существующего файла. В GGUF используются типизированные метаданные «ключ-значение», поэтому новые поля можно добавлять без нарушения совместимости со старыми файлами.

Цели разработки

Спецификация перечисляет 5 целей: развёртывание в одном файле, расширяемость, совместимость с mmap, простую загрузку и полноту информации внутри файла. В отличие от форматов, содержащих только тензоры, GGUF может хранить рядом с весами токенизатор, специальные токены и шаблон чата Jinja.

Как читать названия квантов GGUF

Суффикс в названии вроде Q4_K_M.gguf сообщает, какая схема используется. Приведённые ниже значения взяты из документации Hugging Face по GGUF.

ТипПринцип работыБит на вес
Q4_0 / Q4_1 (устаревшие)Округление до ближайшего значения с 4 битами в блоках по 32 веса; Q4_1 добавляет минимум блока4,5 / 5,0*
Q8_0 (устаревшая метка)Округление до ближайшего значения с 8 битами в блоках по 32 веса8,5*
Q2_K16 блоков × 16 весов на суперблок, 4-битные масштабы и минимумы2,625
Q3_K16 блоков × 16 весов, 6-битные масштабы3,4375
Q4_K8 блоков × 32 веса, 6-битные масштабы и минимумы4,5
Q5_K8 блоков × 32 веса, 6-битные масштабы и минимумы5,5
Q6_K16 блоков × 16 весов, 8-битные масштабы6,5625
IQ4_XSСуперблоки по 256 весов, используется матрица важности4,25
IQ3_XXSТа же семья I-квантов3,06
IQ2_XXSТа же семья I-квантов2,06
IQ1_SТа же семья I-квантов1,56

*Рассчитано вручную, в таблице HF не указано: 32 веса плюс 16-битный масштаб (и 16-битный минимум для Q4_1).

Проверка математики Q4_K: суперблок содержит 256 весов. 256 × 4 бита = 1 024 бита. Добавим 8 блоков × 12 бит для масштабов и минимумов (96 бит). Добавим 16-битный супер-масштаб и 16-битный супер-минимум (32 бита). Итого: 1 152 ÷ 256 = 4,5 бита на вес.

Что означают _S, _M, _L: это комбинации, а не новые типы. Например, llama.cpp описывает Q4_K_M как схему, в которой для половины тензоров attention.wv и feed_forward.w2 используется Q6_K, а в остальных случаях — Q4_K (документация Unsloth). Поэтому файл Q4_K_M в среднем содержит более 4,5 бита на вес.

Более новые типы: в таблице HF также указаны TQ1_0 и TQ2_0 для троичных весов, а также MXFP4 — 4-битный тип чисел с плавающей точкой и микромасштабированием.

Особенность маркировки: Hugging Face относит файлы Q8_0 к «устаревшим» типам. На практике Q8_0 по-прежнему остаётся стандартным вариантом GGUF с почти полной точностью.

Качество и размер

Эталонная таблица Hugging Face для модели класса Llama-2-7B показывает этот компромисс:

КвантПерплексияИзменение относительно FP16Размер
FP165,9565базовый уровень13,0 ГБ
Q8_05,9584+0,03%7,0 ГБ
Q6_K5,9642+0,13%5,5 ГБ
Q5_K_M5,9796+0,39%4,8 ГБ
Q4_K_M6,0565+1,68%4,1 ГБ

Только для иллюстрации. Эти числа получены для модели эпохи 2023 года с 7B параметров; новые модели могут реагировать иначе.

Матрица важности (imatrix)

Квантование GGUF может использовать калибровочные данные. Инструмент llama-imatrix в llama.cpp вычисляет матрицу важности на основе текстового файла. Затем llama-quantize --imatrix использует её для повышения качества. Для комбинаций с 1 и 2 битами llama-quantize предупреждает, если imatrix не указана.

Соглашение об именовании

Спецификация определяет имена файлов как базовое имя, обозначение размера, дообучение, версию, кодировку, тип и сегмент. Сегменты используют пятизначный счётчик, например 00003-of-00009. Необязательные префиксы mmproj- и mtp- обозначают проекторы для зрения и черновые модули предсказания нескольких токенов.

Где запускается GGUF

GGUF является нативным форматом для llama.cpp и её экосистемы. Hugging Face документирует использование с llama.cpp, LM Studio, GPT4All и Ollama.

Поддержка vLLM существует, но ограничена. vLLM называет её крайне экспериментальной и неоптимизированной, а для GGUF теперь требуется внешний vllm-gguf-plugin.

3. GPTQ

GPTQ разработали Элиас Франтар (IST Austria), Салех Ашбкус и Торстен Хёфлер (ETH Zurich), а также Дан Алистарх (IST Austria и Neural Magic). Впервые метод появился на arXiv 31 октября 2022 года. Он был опубликован на конференции ICLR 2023.

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

GPTQ — это одношаговый метод квантования весов после обучения. Он использует приближённую информацию второго порядка (Гессиан), чтобы определить, как округлять веса. Ошибка округления в одном столбце компенсируется корректировкой ещё не квантованных весов. Метод требует небольшого калибровочного набора данных, но не требует повторного обучения.

Основные результаты

  • Квантование моделей со 175 млрд параметров примерно за 4 часа на GPU — до 3 или 4 бит на вес (arXiv).
  • Сообщалось о пренебрежимо малой потере точности при такой разрядности.
  • Ускорение полного цикла по сравнению с FP16 примерно в 3,25 раза на NVIDIA A100 и в 4,5 раза на A6000 (страница статьи на HF).

Как читать названия GPTQ

Репозитории GPTQ часто содержат в названии GPTQ или такие метки, как 4bit-128g.

  • Размер группы (128g): один масштаб на каждые 128 весов. Меньшие группы повышают точность, но немного увеличивают размер.
  • Порядок активаций (desc_act): столбцы квантуются в порядке важности, что обычно повышает точность.

Состояние инструментов в 2026 году

Оригинальная библиотека AutoGPTQ больше не поддерживается.

  • GPTQModel сообщает, что полностью заменила AutoGPTQ и AutoAWQ для Transformers, Optimum и PEFT. Её результаты работают в Transformers, vLLM и SGLang.
  • llm-compressor также реализует GPTQ, но сохраняет результаты в формате compressed-tensors.
  • Hugging Face оценивает калибровку GPTQ для модели 8B примерно в 20 минут на 1 A100.

4. AWQ

AWQ (Activation-aware Weight Quantization — квантование весов с учётом активаций) разработан группой Сун Хана в MIT. Впервые он появился на arXiv 1 июня 2023 года. Метод получил награду за лучшую статью MLSys 2024.

Основная идея

Не все веса одинаково важны. Защита примерно 1% «значимых» весов резко снижает ошибку квантования.

Особенность: AWQ находит эти значимые каналы, анализируя величины активаций, а не самих весов.

Эти каналы не хранятся с более высокой точностью. Вместо этого они масштабируются с помощью математически эквивалентного преобразования, благодаря чему сохраняется однородный формат, удобный для аппаратного ускорения. AWQ не использует обратное распространение или реконструкцию, поэтому он с меньшей вероятностью переобучится на калибровочном наборе.

Скорость и стоимость

Состояние инструментов в 2026 году

  • AutoAWQ официально объявлен устаревшим. Последняя протестированная конфигурация — Torch 2.6.0 и Transformers 4.51.3.
  • vLLM перенёс эту функциональность в llm-compressor, который теперь является рекомендуемым способом работы с AWQ.
  • MLX-LM также поддерживает AWQ на Apple Silicon.

5. EXL2 (ExLlamaV2)

Что это такое

EXL2 — нативный формат ExLlamaV2, библиотеки инференса turboderp для потребительских GPU. Он использует тот же метод оптимизации, что и GPTQ, и поддерживает квантование на 2, 3, 4, 5, 6 и 8 бит.

Что его отличает

  • Любая средняя разрядность от 2 до 8 бит на вес: уровни квантования можно смешивать между слоями и внутри них.
  • Смешивание на уровне столбцов: более важные столбцы внутри слоя могут получать больше битов.
  • Автоматическое распределение: конвертер квантует каждую матрицу несколькими способами и измеряет ошибку на калибровочных данных. Затем он выбирает настройки, которые минимизируют наихудшую ошибку при достижении целевой разрядности.

Поэтому файлы EXL2 имеют названия вроде 4.65bpw, а не 4-bit.

Среда выполнения

TabbyAPI — официально рекомендуемый сервер, предоставляющий API, совместимый с OpenAI. EXL2 переименовывает некоторые тензоры, чтобы внутри каждая модель выглядела как вариант Llama. Из-за этого EXL2 сложно повторно использовать в других фреймворках.

6. EXL3 (ExLlamaV3)

Что это такое

EXL3 — формат-наследник, созданный на основе QTIP от Cornell RelaxML. QTIP использует квантование с кодированием по решётке и обработкой некогерентности и был опубликован на NeurIPS 2024.

EXL3 сохраняет процедурную кодовую книгу и решёточное кодирование QTIP. Он изменяет способ регуляризации и упаковки тензоров.

Почему это важно

  • Простая конвертация: достаточно указать модель Hugging Face и целевую разрядность. Гессианы вычисляются на лету во время конвертации (README).
  • Разумная стоимость: конвертация небольших моделей занимает минуты, а моделей 70B+ — несколько часов на одном GPU уровня RTX 4090. Для сравнения, в README указано, что AQLM для модели 70B требует около 720 часов работы GPU A100.
  • Очень низкая разрядность: Llama-3.1-70B сохраняет связность при 1,6 бита на вес. С выходным слоем на 3 битах и кэшем на 4 096 токенов модель помещается менее чем в 16 ГБ видеопамяти.
  • Переносимая структура: EXL3 в значительной степени сохраняет исходную структуру тензоров, в отличие от EXL2.

Возможности

ExLlamaV3 добавляет квантование кэша KV на 2–8 бит, тензорный и экспертный параллелизм, спекулятивное декодирование, поддержку мультимодальных моделей и плагин Transformers. В последних версиях появилась выгрузка на CPU для крупных MoE-моделей.

Примечание об аппаратном обеспечении: ExLlamaV3 требует CUDA 12.4 или новее. В README поддержка ROCm указана как задача на будущее.

7. bitsandbytes (NF4 / INT8): квантование во время загрузки

bitsandbytes обычно не скачивают в виде заранее квантованной модели. Вы загружаете 16-битную модель и квантуете её на лету.

Его 4-битный режим происходит из QLoRA:

  • NF4 (4-битный NormalFloat): тип данных, разработанный для нормально распределённых весов.
  • Двойное квантование: сами константы квантования квантуются повторно для дополнительной экономии памяти.
  • Результат: дообучение модели 65B на одном GPU с 48 ГБ памяти при сопоставимой производительности дообучения в 16-битном формате.

Рекомендации Hugging Face:

  • Калибровочный набор данных не требуется.
  • Ускорение инференса не гарантируется.
  • Это по-прежнему стандартный способ дообучения QLoRA через PEFT.

8. MLX (Apple Silicon)

MLX-LM — пакет Python для запуска и дообучения больших языковых моделей на Apple Silicon с помощью MLX. MLX разработан в рамках Apple Machine Learning Research.

Модели MLX представляют собой safetensors со специфичными для MLX квантованными весами. Команда mlx_lm.convert с параметром -q квантует модель Hugging Face и может загрузить её в организацию mlx-community.

На Mac и GGUF (через llama.cpp), и MLX являются хорошими вариантами.

9. Другие названия, которые вам встретятся

  • compressed-tensors / FP8: формат на диске, создаваемый llm-compressor. Он охватывает FP8, схемы INT4/INT8 только для весов, NVFP4 и разреженность. Для полной реализации преимуществ FP8 требуется более новое оборудование, например NVIDIA H100/H200/B100 или AMD MI300 (концептуальное руководство).
  • HQQ: быстрое квантование без калибровки от 8 до 1 бита. Ниже 4 бит точность может резко падать.
  • SINQ: ещё один метод без калибровки, выполняемый на лету и теперь представленный в Transformers.
  • AQLM, SpQR, VPTQ, HIGGS: исследовательские методы, продвигающиеся ниже 2 бит на вес.

Сравнительная таблица

ФорматЧто это такоеКалибровкаЛучшее оборудованиеОсновные среды выполнения
Safetensors (16 бит)КонтейнерНетGPU с достаточным объёмом видеопамятиTransformers, vLLM, SGLang
GGUFКонтейнер + типы квантованияНеобязательная (imatrix)CPU, Apple Silicon, разделение CPU+GPUllama.cpp, Ollama, LM Studio
GPTQМетод (в safetensors)ТребуетсяGPUvLLM, SGLang, Transformers
AWQМетод (в safetensors)ТребуетсяGPUvLLM, SGLang, Transformers
EXL2Метод + структураТребуетсяПотребительские GPU NVIDIAExLlamaV2, TabbyAPI
EXL3Метод + структураВстроена в конвертациюПотребительские GPU NVIDIAExLlamaV3, TabbyAPI
bitsandbytes NF4Метод на летуНетGPU NVIDIA (и Intel)Transformers, PEFT
MLXМетод (в safetensors)По умолчанию нетApple SiliconMLX-LM

Что выбрать?

  • Mac, только CPU или модель больше объёма вашей видеопамяти: GGUF. Начните с Q4_K_M; если памяти достаточно, переходите на Q5_K_M или Q6_K.
  • Обслуживание множества пользователей на серверных GPU: AWQ или GPTQ в vLLM/SGLang либо FP8 на картах класса Hopper/Blackwell.
  • Один пользователь, потребительские GPU NVIDIA, максимальное число токенов в секунду: EXL3 через TabbyAPI (EXL2 для более старых конфигураций).
  • Бюджетное дообучение: bitsandbytes NF4 с QLoRA.
  • Apple Silicon с рабочим процессом на Python или для дообучения: MLX.

Главные выводы

  • Формат файла (GGUF, safetensors) — не то же самое, что метод квантования (GPTQ, AWQ).
  • GGUF — стандартный выбор для локального инференса на CPU, Apple Silicon и в смешанной конфигурации CPU+GPU.
  • GPTQ и AWQ — основные 4-битные методы для запуска моделей на GPU в vLLM, SGLang и Transformers.
  • EXL2 и EXL3 предназначены для быстрого инференса одним пользователем и тонкой настройки разрядности на потребительских GPU.
  • AutoGPTQ и AutoAWQ больше не поддерживаются; вместо них используйте GPTQModel или llm-compressor.

Источники:

Спецификации и официальная документация

  • Спецификация GGUF — https://github.com/ggml-org/ggml/blob/master/docs/gguf.md
  • Hugging Face Hub: GGUF — https://huggingface.co/docs/hub/gguf
  • README imatrix llama.cpp — https://github.com/ggml-org/llama.cpp/blob/master/tools/imatrix/README.md
  • README quantize llama.cpp — https://github.com/ggml-org/llama.cpp/blob/master/tools/quantize/README.md
  • Документация Qwen: квантование llama.cpp — https://qwen.readthedocs.io/en/latest/quantization/llama.cpp.html
  • Документация Unsloth: сохранение в GGUF — https://unsloth.ai/docs/basics/inference-and-deployment/saving-to-gguf
  • Hugging Face skills: справочник по квантованию — https://github.com/huggingface/skills/blob/main/skills/huggingface-local-models/references/quantization.md
  • vLLM: GGUF — https://docs.vllm.ai/en/latest/features/quantization/gguf/
  • vLLM: AutoAWQ — https://docs.vllm.ai/en/stable/features/quantization/auto_awq/
  • vLLM RFC #30136 (устаревшие форматы квантования) — https://github.com/vllm-project/vllm/issues/30136
  • llm-compressor — https://github.com/vllm-project/llm-compressor
  • llm-compressor: сохранение модели — https://docs.vllm.ai/projects/llm-compressor/en/latest/guides/saving_a_model/
  • Transformers: выбор метода квантования — https://huggingface.co/docs/transformers/quantization/selecting
  • Transformers: концепции квантования — https://huggingface.co/docs/transformers/quantization/concept_guide
  • Safetensors — https://github.com/safetensors/safetensors
  • PyTorch Foundation: Safetensors — https://pytorch.org/projects/safetensors/
  • Hugging Face Hub: MLX — https://huggingface.co/docs/hub/en/mlx

Научные статьи

  • GPTQ (arXiv 2210.17323) — https://arxiv.org/abs/2210.17323
  • Официальный код GPTQ (ICLR 2023) — https://github.com/ist-daslab/gptq
  • AWQ (arXiv 2306.00978) — https://arxiv.org/abs/2306.00978
  • AWQ (MLSys 2024) — https://proceedings.mlsys.org/paper_files/paper/2024/hash/42a452cbafa9dd64e9ba4aa95cc1ef21-Abstract-Conference.html
  • QLoRA (arXiv 2305.14314) — https://arxiv.org/abs/2305.14314
  • QTIP (arXiv 2406.11235) — https://arxiv.org/abs/2406.11235

Библиотеки

  • ExLlamaV2 — https://github.com/turboderp-org/exllamav2
  • ExLlamaV3 — https://github.com/turboderp-org/exllamav3
  • Заметки о формате EXL3 — https://github.com/turboderp-org/exllamav3/blob/master/doc/exl3.md
  • GPTQModel — https://github.com/ModelCloud/GPTQModel
  • AutoAWQ (устарел) — https://pypi.org/project/autoawq/
  • MLX-LM — https://github.com/ml-explore/mlx-lm

Обсуждение в сообществе

  • Обсуждение форматов моделей на r/LocalLLaMA — https://www.reddit.com/r/LocalLLaMA/comments/1ayd4xr/for_those_who_dont_know_what_different_model/

Переведено автоматически с английского. Оригинал статьи — по ссылке ниже.

Впервые опубликовано изданием MarkTechPost

Читать оригинал на MarkTechPost ↗

Текст и изображения принадлежат MarkTechPost и приводятся здесь с указанием авторства и ссылкой на оригинальную публикацию.

← К новостям

Ещё новости

Все последние новости