Transformers documentation
Выберите метод
Выберите метод
Если ваша контрольная точка уже квантована, метод определяется самой контрольной точкой. Загрузите её, как показано в разделе Загрузка предварительно квантованной контрольной точки. В противном случае выберите метод в зависимости от вашего оборудования и того, что вы планируете делать с моделью после её загрузки.
Начните с вашей цели
Каждая строка рекомендует метод, который стоит попробовать в первую очередь. Перед тем как выбрать один из них, ознакомьтесь с полной таблицей сравнения.
| Цель | Начните с | Почему |
|---|---|---|
| Обучение модели с меньшим потреблением памяти и минимальной настройкой | bitsandbytes | Квантизация до 4 или 8 бит при загрузке без калибровки, работа на CUDA, XPU, HPU и CPU, а также поддержка сохранения и дообучения. |
| Доработка с QLoRA | bitsandbytes | Поддерживает 4-битный NF4 с PEFT. HQQ, EETQ, GPTQ, SINQ и Quanto также поддерживают дообучение. |
Ускорение вывода с помощью torch.compile | torchao | generate автоматически компилирует модели torchao с использованием статического кэша, а в torchao доступны схемы int4, int8 и FP8 для CUDA, XPU и CPU. |
| Достигните наилучшей точности 4-бит | GPTQ | Выполняет калибровку на наборе данных во время загрузки. Чтобы использовать AWQ или AutoRound вместо этого, выполните квантование с помощью их библиотек и загрузите контрольную точку. |
| Запуск FP8 на Ada, Hopper или Intel XPU | Детализированный FP8 | Требуется вычислительная способность CUDA 8.9 или выше, либо XPU. FBGEMM FP8 требует вычислительной способности 9.0 или выше, либо XPU. |
| Запуск FP4 на Blackwell | NVFP4 | Квантизация в 4-битный формат с плавающей точкой NVIDIA выполняется при загрузке. MXFP4 работает на устройствах с вычислительной способностью 7.5 и выше, на XPU и CPU. |
| Запуск на Apple silicon | Metal | Квантизация до 2, 4 или 8 бит на MPS при загрузке. Файлы GGUF также загружаются на MPS. |
| Загрузка контрольных точек, созданных с помощью llm-compressor | compressed-tensors | Загружает контрольные точки в форматах FP8, int4 и int8 в формате compressed-tensors. |
| Сжатие до менее 4 бит | HQQ или SINQ | Квантование до 2 или 3 бит при загрузке без калибровки. Чекпоинты AQLM, VPTQ и SpQR позволяют снизить разрядность ещё больше, но для их квантования необходимо использовать собственные библиотеки. |
Show the full comparison table
| Метод | quant_method | Рабочий процесс | Биты | Аппаратное обеспечение | Сохранить | Настройка | Автокомпиляция |
|---|---|---|---|---|---|---|---|
| AQLM | aqlm | Только предварительно квантованные | 1–2 | CUDA, CPU | ✅ | ✅ при aqlm>=1.0.2 | ❌ |
| AutoRound | auto-round | Только предварительно квантованные | 2–8 | CUDA, XPU, CPU | ✅ | ❌ | ❌ |
| AWQ | awq | Только предварительно квантованные | 4 | CUDA, ROCm, XPU, CPU | ✅ за исключением бэкендов ExLlama | ✅ с gptqmodel>=5.0.0 | ❌ |
| BitNet | bitnet | Только предварительно квантованные | 1.58 | CUDA | ✅ | Только autobitlinear в режиме online | ❌ |
| bitsandbytes | bitsandbytes | Во время загрузки | 4, 8 | CUDA, XPU, HPU, CPU | ✅ | ✅ | ❌ |
| compressed-tensors | compressed-tensors | Только предварительно квантованные | Установлено по контрольной точке | CUDA, XPU, MPS, CPU | ✅ | ✅ за исключением ядер FP8 | ✅ |
| EETQ | eetq | Во время загрузки | 8 | CUDA | ✅ | ✅ | ❌ |
| FBGEMM FP8 | fbgemm_fp8 | Во время загрузки | 8 | CUDA (вычислительная способность 9.0+), XPU | ✅ | ❌ | ❌ |
| Детализированный FP8 | fp8, mxfp8 | Во время загрузки | 8 | CUDA (вычислительная способность 8.9+), XPU | ✅ | ❌ | ✅ |
| Four Over Six | fouroversix | Во время загрузки | 4 | CUDA (самый быстрый на Blackwell), CPU | ✅ | Только при keep_master_weights=True | ❌ |
| FP-Quant | fp_quant | Во время загрузки | 4 | CUDA, XPU | ✅ | Только при store_master_weights=True | ❌ |
| GGUF | gguf | Только предварительно квантованные | 1–8 | CUDA, MPS, XPU, CPU | ❌ | ❌ | ✅ |
| GPTQ | gptq | Во время загрузки, с калибровкой | 2, 3, 4, 8 | CUDA, ROCm, XPU, CPU | ✅ | ✅ | ❌ |
| HIGGS | higgs | Во время загрузки | 2, 3, 4 | CUDA | ✅ | ❌ | ❌ |
| HQQ | hqq | Во время загрузки | 1, 2, 3, 4, 8 | CUDA, XPU | ✅ | ✅ | ❌ |
| Metal | metal | Во время загрузки | 2, 4, 8 | MPS | ✅ | ❌ | ❌ |
| MXFP4 | mxfp4 | Во время загрузки | 4 | CUDA (вычислительная способность 7.5+), XPU, CPU | ✅ | ❌ | ❌ |
| NVFP4 | nvfp4 | Во время загрузки | 4 | Один GPU Blackwell | ❌ | ❌ | ✅ |
| Quanto | quanto | Во время загрузки | 2, 4, 8 | CUDA, MPS, XPU, CPU | ❌ | ✅ | ❌ |
| Quark | quark | Только предварительно квантованные | Установлено по контрольной точке | CUDA, ROCm, CPU | ❌ | ❌ | ❌ |
| SINQ | sinq | Во время загрузки | 2, 3, 4, 6, 8 | Один GPU CUDA, CPU | ✅ | ✅ | ❌ |
| SpQR | spqr | Только предварительно квантованные | 3 | CUDA | ✅ | ❌ | ❌ |
| torchao | torchao | Во время загрузки | 4, 8 | CUDA, XPU, CPU | ✅ | Только 8-битные схемы | ✅ |
| VPTQ | vptq | Только предварительно квантованные | 1–8 | CUDA | ✅ | ❌ | ❌ |
Проверьте память с помощью селектора квантования
Выбор квантования оценивает, помещается ли модель в ваше оборудование при каждом уровне точности, включая KV-кэш. Выберите модель, ваше оборудование и то, что метод должен уметь делать, — и во Сравнении будут перечислены подходящие методы.
Бенчмарки
Ниже приведены результаты бенчмарков, сравнивающие несколько методов на моделях Llama 3.1 8B и 70B. В них указаны точность, пропускная способность в токенах в секунду, пиковое потребление памяти в ГБ и время квантования.
Llama 3.1 70B в bf16 запускалась на 2 GPU NVIDIA A100 80GB. Методы FP8 запускались на 1 GPU NVIDIA H100 80GB, а все остальные методы — на 1 GPU NVIDIA A100 80GB. Пропускная способность измерялась при batch size 1 и генерации 64 токенов. Результаты включают torch.compile и ядра Marlin там, где метод их поддерживает.
Результаты группируются в три диапазона бит.
| Биты | Методы, подвергшиеся бенчмаркингу | Память и bf16 | Точность |
|---|---|---|---|
| 8 | bitsandbytes int8, HQQ, Quanto, torchao, FP8 | Примерно в 2 раза меньше | Очень близко к bf16 |
| 4 | AWQ, GPTQ, HQQ, bitsandbytes NF4, SINQ | Примерно в 4 раза меньше | Высокая. AWQ и GPTQ часто показывают лучшие результаты, но требуют калибровки. |
| Ниже 4 | VPTQ, AQLM, 2-bit GPTQ | Более чем в 4 раза меньше | Заметное снижение качества, особенно при 2 битах. AQLM и VPTQ требуют длительного времени для квантования. |
Update on GitHubПеред выбором метода для продакшена протестируйте точность и скорость на собственной задаче и аппаратном обеспечении.