Расчёт · руководство · 10 мин на чтение

# Какой формат квантования запускать на практике

Стек инференса первым делом спрашивает про формат чисел, и от ответа ежемесячный инвойс меняется в восемь раз. Формат с наименьшими по размеру весами не всегда даёт наименьшую по объёму модель.

Коротко

- **Эмпирическое правило:** Веса уменьшаются ровно в том соотношении, что указано в названии, — BF16 / FP16 **2 B/param** · FP8 **1 B/param** · 4-bit (AWQ, GPTQ) **0.5 B/param**. Больше ничего.
- **Цена вопроса:** Qwen 3 32B требует [NVIDIA A100 PCIe](https://gpuserver.io/ru/gpu/a100-80gb) за **$1,091** в месяц при полной точности и [NVIDIA L4](https://gpuserver.io/ru/gpu/nvidia-l4) за **$125** при 4-битной точности. Та же модель, тот же контекст.
- **Ловушка:** Кэш ключей и значений не уменьшается вслед за весами. При контексте 128k 4-bit Llama 3.3 70B — это **53 %** кэша и всего 47 % весов.
- **Где 4-бит однозначно проигрывает:** Llama 3.1 8B при 128k требует **23.0 GB** при 4-битной точности против **18.4 GB** при FP8 — больше памяти при худшем качестве

## Начните здесь

Большая часть этой страницы — арифметика, поэтому сначала — вывод. Формат определяют четыре вопроса, и они заданы именно в этом порядке, потому что каждый из них способен сам по себе закрыть тему.

**Помещается ли модель уже при полной точности, с запасом под ваш контекст?** Запускайте её в BF16 и не читайте дальше. Квантование — это способ купить машину поменьше, а вы уже купили ту, что подходит. За сжатие модели, которая и так помещается, приз не полагается.

**У вас короткий контекст и крупная модель?** Вот где 4-bit оправдывает свою репутацию. Основную часть памяти занимают веса, и сократить их до четверти — это почти то же самое, что сократить до четверти саму машину.

**У вас длинный контекст и небольшая модель?** Используйте FP8 на карте, которая его поддерживает. FP8 вдвое уменьшает не только веса, но и кэш, и начиная с определённой длины именно это второе уменьшение и оказывается важным — таблица ниже показывает точную точку, где FP8 обгоняет 4-bit.

**Вы обслуживаете одного человека на одной машине?** GGUF через Ollama — это на порядок меньше работы, а пропускная способность, которой вы жертвуете, — это та пропускная способность, которая одному читателю всё равно никогда не понадобилась бы.

Всё, что дальше, объясняет, почему эти четыре ответа именно такие, и даёт цифры, чтобы проверить их на вашей собственной модели, а не на нашей. Если вы ещё не подсчитали, сколько памяти вообще нужно вашей модели, эта арифметика — [отдельное руководство](https://gpuserver.io/ru/guides/vram-sizing), и начинать нужно с него.

## Три формата, четыре названия

Для инференса в ходу всего три формата чисел, и различаются они только одним: сколько байт стоит каждый параметр. Всё остальное — AWQ, GPTQ, GGUF, bitsandbytes — это метод получения одного из этих трёх, а не четвёртый формат.

**Три формата чисел и к чему относится каждая цифра в байтах**

| Формат | Байт на вес | Байт на элемент кэша | Для чего это нужно |
|---|---|---|---|
| BF16 / FP16 Веса в исходном опубликованном виде | 2 | 2 | Эталонное качество |
| FP8 Производится самим стеком инференса | 1 | 1 | Близко к эталону, Hopper и Blackwell |
| 4-bit (AWQ, GPTQ) Заранее подготовленный чекпоинт | 0.5 | 2 | Самые маленькие веса, кэш остаётся FP16 |

Читайте два числовых столбца как пару. На первых двух строках они равны, а на третьей — *не* равны, и именно эта единственная асимметрия объясняет большинство сюрпризов, которые ждут вас дальше на этой странице.

Четыре названия, которые вы реально встретите в репозитории моделей, соотносятся с этой таблицей так.

### AWQ и GPTQ

Два пути к одному и тому же результату — 4-битному представлению. AWQ определяет, какие веса важны, отслеживая активации, и защищает их; GPTQ сжимает слой за слоем, по ходу исправляя ошибку. Оба метода дают чекпоинт, который vLLM и SGLang загружают напрямую, и на любой модели разрыв между ними меньше, чем разрыв между каждым из них и 16-битным форматом.

### GGUF

Семейство llama.cpp, и то, что использует Ollama внутри. Это скорее контейнер, чем единый метод: один файл хранит веса в любой из десятка точностей, и он будет сбрасывать слои в системную RAM, когда карты не хватает. Не имеет равных для одного пользователя на одной машине, и самый слабый из трёх при реальной параллельной нагрузке.

### FP8

Это не столько формат чекпоинта, сколько режим. Дайте стеку инференса 16-битные веса, и он приведёт их к FP8 прямо при загрузке — без отдельной загрузки файлов и без калибровочного прохода. Это единственный из четырёх, который умеет сжимать ещё и кэш, поэтому ниже он появляется там, где вы бы этого не ожидали.

### BF16 и FP16

Веса в том виде, в котором их выпустили авторы, — эталон, относительно которого измеряется каждая другая строка. Два байта на параметр, никакого калибровочного набора, никакой поддержки ядер, которую нужно проверять, никакого спора о качестве. Если модель помещается, это и есть правильный ответ, а всё остальное на этой странице — отвлечение внимания.

Запросить любой из них — это один флаг. Это те же самые опции, которые подробно разбирает [руководство по vLLM](https://gpuserver.io/ru/guides/serve-llama-70b); здесь важно лишь то, насколько короткая разница между ними.

Один и тот же сервер — четырьмя способами

```
# 1. Reference. The weights as published, nothing to prepare.
$ vllm serve meta-llama/Llama-3.3-70B-Instruct --dtype bfloat16

# 2. FP8, quantised while it loads. No second download, no calibration.
#    --kv-cache-dtype is the half everyone forgets: it is what
#    halves the CACHE as well as the weights.
$ vllm serve meta-llama/Llama-3.3-70B-Instruct \
    --quantization fp8 --kv-cache-dtype fp8

# 3. Four-bit AWQ. A DIFFERENT checkpoint, prepared by someone else.
$ vllm serve casperhansen/llama-3.3-70b-instruct-awq \
    --quantization awq_marlin

# 4. Four-bit GPTQ. Same idea, different repository and flag.
$ vllm serve TechxGenus/Llama-3.3-70B-Instruct-GPTQ \
    --quantization gptq_marlin
```

## Половина, которая не уменьшается

Квантование весов до 4 бит не квантует кэш ключей и значений. AWQ и GPTQ сжимают веса, и только веса; кэш остаётся на 16 битах, если вы отдельно не запросите кэш FP8, а на 4-битном чекпоинте почти никто этого не делает. Это третий столбец таблицы выше, и именно поэтому арифметика ниже идёт не так, как все ожидают.

Проще всего увидеть это следствие на одной модели. Ниже — Llama 3.3 70B в 4-bit при каждой длине контекста, которую предлагает [конфигуратор](https://gpuserver.io/ru/configure) — веса против кэша.

**Веса и кэш 4-битной модели 70B по длине контекста**

| Контекст | Веса | KV-кэш | Доля кэша |
|---|---|---|---|
| 4k токенов | 35.0 GB | 1.3 GB | 3 % |
| 8k токенов | 35.0 GB | 2.5 GB | 7 % |
| 32k токенов | 35.0 GB | 10.0 GB | 22 % |
| 128k токенов | 35.0 GB | 40.0 GB | 53 % |

Столбец весов никогда не меняется — в этом весь смысл их квантования. Столбец кэша растёт линейно вместе с контекстом, пока в последней строке не превышает размер самой модели, которой принадлежит.

**При 128k 4-bit Llama 3.3 70B — это 53 % кэша.** Вы сжали веса до четверти исходного размера, а нужная вам машина почти не изменилась — потому что вы сжали ту часть, которая уже не была проблемой. Тот, кто рассчитывает конфигурацию для длинного контекста только по размеру весов, ошибётся более чем вдвое — в меньшую сторону.

Продолжайте в том же духе достаточно долго — и 4-bit вообще перестаёт выигрывать. FP8 уменьшает вдвое обе половины; 4-bit уменьшает в четыре раза одну половину, а вторую оставляет как есть. Поэтому для каждой модели есть длина контекста, на которой они меняются местами, и наступает она тем раньше, чем меньше модель — потому что у маленькой модели мало весов, чтобы на них сэкономить, а рост кэша на токен тот же самый.

**Общий объём памяти: FP8 против 4-bit, по моделям и длине контекста**

| Модель | 4k | 8k | 32k | 128k |
|---|---|---|---|---|
| Llama 3.1 8B 8 млрд параметров · 32 слоёв · 8 KV-голов | 5.24-bit, на 4.3 GB | 5.84-bit, на 4.0 GB | 9.24-bit, на 2.3 GB | 23.0Побеждает FP8 — 18.4 GB |
| Qwen 3 32B 32 млрд параметров · 64 слоёв · 8 KV-голов | 19.54-bit, на 17.8 GB | 20.74-bit, на 17.2 GB | 27.64-bit, на 13.8 GB | 55.2ничья |
| Llama 3.3 70B 70 млрд параметров · 80 слоёв · 8 KV-голов | 41.74-bit, на 39.5 GB | 43.14-bit, на 38.8 GB | 51.74-bit, на 34.5 GB | 86.34-bit, на 17.2 GB |

Цифры в гигабайтах — для более компактного из двух форматов, с указанием проигравшего формата под ним. Читайте слева направо и смотрите, как преимущество столбца 4-bit тает по мере роста контекста.

Последняя строка сохраняет преимущество везде, потому что 70 миллиардов параметров — это очень много веса, на котором можно сэкономить. Средняя строка заканчивается вничью: при 128k Qwen 3 32B стоит ровно столько же в обоих форматах, и тогда FP8 стоит взять ради качества. А первая строка переворачивается полностью at 128k — там 4-bit требует *больше* памяти, чем FP8, и при этом хуже воспроизводит оригинал. Это сочетание — больше памяти и хуже результат — самая частая ошибка квантования, которую мы видим, и она незаметна, если смотреть только на размер файла весов.

## На что реально способна ваша карта

FP8 — это в первую очередь аппаратная возможность, и лишь потом программная. Карта, тензорные ядра которой его не понимают, всё равно загрузит чекпоинт FP8 — стек распакует веса до 16 бит перед умножением — но вы получите только экономию на загрузке, а не в скорости, а кэш FP8 будет вам вообще недоступен. 4-bit — противоположный случай: он работает везде, потому что веса в любом случае распаковываются до 16 бит перед вычислениями.

**Карты в каталоге по поколениям и их поддержка FP8**

| Генерация | Карты, которые мы сдаём в аренду | FP8 |
|---|---|---|
| Ampere | NVIDIA RTX A6000 48GB, NVIDIA A100 PCIe 40GB, NVIDIA A100 PCIe 80GB, NVIDIA A100 SXM4 80GB | Нет в оборудовании — распаковка до 16-bit |
| Ada Lovelace | NVIDIA L4 24GB, NVIDIA RTX 4090 24GB, NVIDIA L40S 48GB | В тензорных ядрах — веса и кэш |
| Hopper | NVIDIA H100 PCIe 80GB, NVIDIA H100 SXM5 80GB, NVIDIA H200 SXM5 141GB | В тензорных ядрах — веса и кэш |
| Blackwell | NVIDIA RTX 5090 32GB, NVIDIA B200 SXM6 180GB | В тензорных ядрах — веса и кэш |

Этот столбец описывает кремний, а это не совсем тот же вопрос, где FP8 действительно оправдан. Собственное примечание каталога рядом с форматом называет Hopper and Blackwell, и это утверждение касается скорее стеков инференса, чем тензорных ядер: это те поколения, на которых ядра и кэши FP8 использовались больше всего и вызывали меньше всего сюрпризов. Ada Lovelace его запустит. Hopper и Blackwell — это то, куда мы бы поместили развёртывание, зависящее от FP8.

**На карте Ampere FP8 экономит только на загрузке, и больше ничего.** У NVIDIA RTX A6000, NVIDIA A100 PCIe и NVIDIA A100 SXM4 в тензорных ядрах нет пути для FP8. Если вы рассчитывали вдвое уменьшить кэш на одной из них, этого не произойдёт — а цифры памяти в столбце FP8 выше недостижимы на этом оборудовании. Выбирайте карту и формат вместе, именно в таком порядке.

Ещё кое-что стоит знать перед выбором карты. Llama 3.3 70B в FP8 при 8k требует 81.9 GB, а карте на 80 GB — в их числе NVIDIA A100 PCIe — не хватает 1.9 GB. Недостаточно, чтобы это бросалось в глаза в таблице, но вполне достаточно, чтобы всё упало на самой машине. Карта, которой хватает с запасом, — следующая по старшинству, и [конфигуратор](https://gpuserver.io/ru/configure) скажет вам, какая именно, до оплаты, а не после.

## Прирост скорости

Генерация одного токена означает однократное чтение активных весов из памяти. Меньше байт на вес — значит меньше байт нужно прочитать, а значит больше токенов в секунду — и на одном небатчированном потоке эта зависимость почти линейна, потому что карте больше нечего ждать. Это тот же потолок по пропускной способности памяти, на который делит [руководство по цене за токен](https://gpuserver.io/ru/guides/api-vs-self-hosting), и он намеренно консервативен. Ниже он применён к модели, достаточно маленькой, чтобы работать на любой однокарточной машине, которую мы сдаём в аренду, — так формат и карту можно прочитать по одной и той же таблице.

**Скорость генерации на одном потоке для модели 8B по картам и форматам**

| Карта | Пропускная способность | BF16 / FP16 | FP8 | 4-bit (AWQ, GPTQ) |
|---|---|---|---|---|
| NVIDIA L4 24 GB · $125 в месяц | 300 GB/s | ~ 8 ток/с | ~ 17 ток/с | ~ 34 ток/с |
| NVIDIA RTX A6000 48 GB · $286 в месяц | 768 GB/s | ~ 22 ток/с | ~ 43 ток/с | ~ 86 ток/с |
| NVIDIA L40S 48 GB · $714 в месяц | 864 GB/s | ~ 24 ток/с | ~ 49 ток/с | ~ 97 ток/с |
| NVIDIA RTX 4090 24 GB · $193 в месяц | 1008 GB/s | ~ 28 ток/с | ~ 57 ток/с | ~ 113 ток/с |
| NVIDIA A100 PCIe 40 GB · $392 в месяц | 1555 GB/s | ~ 44 ток/с | ~ 87 ток/с | ~ 175 ток/с |
| NVIDIA RTX 5090 32 GB · $335 в месяц | 1792 GB/s | ~ 50 ток/с | ~ 101 ток/с | ~ 202 ток/с |
| NVIDIA A100 PCIe 80 GB · $1,091 в месяц | 1935 GB/s | ~ 54 ток/с | ~ 109 ток/с | ~ 218 ток/с |
| NVIDIA H100 PCIe 80 GB · $1,469 в месяц | 2000 GB/s | ~ 56 ток/с | ~ 113 ток/с | ~ 225 ток/с |

Llama 3.1 8B на одной карте, один поток за раз. Каждая машина в списке вмещает её во всех трёх форматах, поэтому строки сравнимы и по горизонтали, и по вертикали — а соотношение между тремя столбцами одинаково в каждой строке, потому что оно определяется только количеством байт на вес.

Два предостережения по поводу этой таблицы. Первое: она описывает по одному запросу за раз, а так почти никто не работает — при непрерывном батчинге веса читаются один раз на весь батч, поэтому ограничением становится не память, а вычисления, и разрыв между столбцами сужается. Второе: деквантование тоже кое-что стоит. 4-битные веса нужно распаковать перед умножением, и на небольшой модели при низком размере батча эта распаковка может съесть заметную долю того, что дало более компактное чтение. Направление, которое показывает таблица, надёжно; точные коэффициенты — не обещание.

## Во что это вам обходится

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

**FP8 достаточно близок к оригиналу, чтобы не вызывать споров.** Это по-прежнему формат с плавающей точкой — экспонента и мантисса, только с меньшим числом бит в каждой — а не целочисленная сетка, на которую приходится отображать 4-битный чекпоинт с масштабирующими коэффициентами по группам. Именно поэтому он деградирует так мягко и не требует калибровочного прохода. Большинство команд принимают его без отдельной оценки качества, и у большинства это сходит с рук.

**4-bit — это настоящий компромисс, и он бьёт неравномерно.** Средний результат по бенчмаркам обычно почти не меняется. Меняется хвост распределения: длинные цепочки рассуждений, точная арифметика, редкие языки, строгие форматы вывода. Модель, которая всё ещё хорошо показывает себя в тестах с выбором ответа, может начать неправильно закрывать JSON.

**Крупные модели переносят это легче.** 4-bit на 70B — обычное дело. 4-bit на 8B, где каждый параметр значит больше, — вот где деградация становится заметной — и, согласно таблице выше, именно там выгода от этого минимальна.

**Калибровочные данные важнее названия метода.** И AWQ, и GPTQ сжимают модель, опираясь на выборочный корпус. Чекпоинт, откалиброванный на английской прозе и применённый для кода, покажет результат хуже, чем заслуживает сам метод, — и ни одна таблица бенчмарков вам об этом не скажет.

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

**Тестируйте в том порядке, который обходится дешевле всего.** Начинайте с BF16, если он вообще помещается, — это эталон, который нужен для сравнения с остальными запусками. Затем переходите к FP8 — тот же чекпоинт, один флаг, ничего скачивать не нужно. Беритесь за 4-битный чекпоинт только тогда, когда память исключила оба варианта выше, и в этом случае сравнивайте его с запуском на FP8, а не со своими ожиданиями.

## Какая это машина

Всё это имеет значение именно из-за инвойса. Ниже — самая дешёвая машина в [нашем каталоге](https://gpuserver.io/ru/#catalog), которая вмещает каждую модель *целиком* при контексте 8k, в каждом из трёх форматов — целиком означает на одной карте, без разделения, потому что модель, разделённая между картами, добавляет в уравнение [интерконнект](https://gpuserver.io/ru/guides/nvlink-vs-pcie), а это уже другое руководство.

**Самая дешёвая машина, вмещающая каждую модель целиком, по форматам**

| Модель | BF16 / FP16 | FP8 | 4-bit (AWQ, GPTQ) |
|---|---|---|---|
| Llama 3.1 8B | [NVIDIA L4](https://gpuserver.io/ru/gpu/nvidia-l4) $125 в месяц · нужно 19.5 GB | [NVIDIA L4](https://gpuserver.io/ru/gpu/nvidia-l4) $125 в месяц · нужно 9.8 GB | [NVIDIA L4](https://gpuserver.io/ru/gpu/nvidia-l4) $125 в месяц · нужно 5.8 GB |
| Qwen 3 32B | [NVIDIA A100 PCIe](https://gpuserver.io/ru/gpu/a100-80gb) $1,091 в месяц · нужно 75.9 GB | [NVIDIA RTX A6000](https://gpuserver.io/ru/gpu/rtx-a6000) $286 в месяц · нужно 37.9 GB | [NVIDIA L4](https://gpuserver.io/ru/gpu/nvidia-l4) $125 в месяц · нужно 20.7 GB |
| Llama 3.3 70B | [4 × NVIDIA B200 SXM6](https://gpuserver.io/ru/gpu/b200) $11,790 в месяц · нужно 163.9 GB | [4 × NVIDIA H200 SXM5](https://gpuserver.io/ru/gpu/h200) $8,405 в месяц · нужно 81.9 GB | [NVIDIA RTX A6000](https://gpuserver.io/ru/gpu/rtx-a6000) $286 в месяц · нужно 43.1 GB |

При контексте 8k, на машинах, которые мы реально сдаём в аренду. Там, где в ячейке указано несколько карт, речь о наименьшем узле, в котором поставляется эта карта, а не о разделённой модели: самые крупные карты продаются по четыре и по восемь штук, поэтому самый дешёвый способ не делить 70B при полной точности — купить четыре карты и использовать одну. Именно ради того, чтобы избежать такого инвойса, и существует квантование.

**Прочитайте среднюю строку по горизонтали: $1,091 против $125, примерно 9×.** Тот же Qwen 3 32B, тот же контекст 8k, та же единственная карта и тот же root-доступ — и только формат чисел отличается. В этом весь коммерческий смысл квантования, и именно поэтому его стоит потратить вечер на измерения, а не полдня на чтение.

Есть две привычки, которые отличают правильное использование этой таблицы от попадания впросак. Считайте по контексту, который вы реально будете использовать, а не по максимуму модели — вторая таблица на этой странице показывает, что бывает с теми, кто путает эти два параметра. И сверяйте формат с картой до заказа, а не после: NVIDIA RTX A6000, NVIDIA A100 PCIe и NVIDIA A100 SXM4 не даст вам цифры FP8, какой бы флаг вы ни указали. [Конфигуратор](https://gpuserver.io/ru/configure) показывает необходимый объём памяти и то, помещается ли модель на одну карту, для каждого узла и каждого формата — ещё до оплаты. Если вы выбираете между арендой и оплатой API за токен, [точка окупаемости](https://gpuserver.io/ru/guides/api-vs-self-hosting) рассчитана отдельно, и квантование существенно сдвигает её в пользу железа.

## Выбирайте формат и машину вместе.

Конфигуратор показывает, что нужно вашей модели при каждой точности и какие узлы вмещают её на одной карте, — ещё до того, как вы что-то заплатите.

[Открыть конфигуратор](https://gpuserver.io/ru/configure) [Читать руководства](https://gpuserver.io/ru/guides)

## Другие руководства

- [Расчёт · 10 мин Запуск модели на основе смеси экспертов Общее число параметров определяет машину, активные параметры — скорость. Сколько VRAM нужно DeepSeek V3 и Qwen 3 235B, и какой узел для них арендовать. Читать руководство](https://gpuserver.io/ru/guides/mixture-of-experts)
- [Стоимость · 6 мин Когда помесячная аренда выгоднее почасовой Точка безубыточности на реальных цифрах, три статьи расходов, которые почасовая цена скрывает до счёта, и ловушка простоя, утраивающая оценку. Читать руководство](https://gpuserver.io/ru/guides/monthly-vs-hourly)
- [Стоимость · 9 мин Self-hosting против API с оплатой за токен Точка безубыточности между оплатой API за токен и арендой GPU на наших ценах и пропускной способности — и четыре момента, которые арифметика не учитывает. Читать руководство](https://gpuserver.io/ru/guides/api-vs-self-hosting)

---

Источник: https://gpuserver.io/ru/guides/awq-vs-gptq-vs-fp8/. Этот файл формируется на основе тех же данных, что и сайт; если цифра здесь отличается от страницы сайта, приоритет у страницы, а этот файл устарел — канонический источник: https://gpuserver.io/.
