Transformers documentation

Выберите метод

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Выберите метод

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

Начните с вашей цели

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

ЦельНачните сПочему
Обучение модели с меньшим потреблением памяти и минимальной настройкойbitsandbytesКвантизация до 4 или 8 бит при загрузке без калибровки, работа на CUDA, XPU, HPU и CPU, а также поддержка сохранения и дообучения.
Доработка с QLoRAbitsandbytesПоддерживает 4-битный NF4 с PEFT. HQQ, EETQ, GPTQ, SINQ и Quanto также поддерживают дообучение.
Ускорение вывода с помощью torch.compiletorchaogenerate автоматически компилирует модели 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 на BlackwellNVFP4Квантизация в 4-битный формат с плавающей точкой NVIDIA выполняется при загрузке. MXFP4 работает на устройствах с вычислительной способностью 7.5 и выше, на XPU и CPU.
Запуск на Apple siliconMetalКвантизация до 2, 4 или 8 бит на MPS при загрузке. Файлы GGUF также загружаются на MPS.
Загрузка контрольных точек, созданных с помощью llm-compressorcompressed-tensorsЗагружает контрольные точки в форматах FP8, int4 и int8 в формате compressed-tensors.
Сжатие до менее 4 битHQQ или SINQКвантование до 2 или 3 бит при загрузке без калибровки. Чекпоинты AQLM, VPTQ и SpQR позволяют снизить разрядность ещё больше, но для их квантования необходимо использовать собственные библиотеки.
Show the full comparison table
Методquant_methodРабочий процессБитыАппаратное обеспечениеСохранитьНастройкаАвтокомпиляция
AQLMaqlmТолько предварительно квантованные1–2CUDA, CPU✅✅ при aqlm>=1.0.2❌
AutoRoundauto-roundТолько предварительно квантованные2–8CUDA, XPU, CPU✅❌❌
AWQawqТолько предварительно квантованные4CUDA, ROCm, XPU, CPU✅ за исключением бэкендов ExLlama✅ с gptqmodel>=5.0.0❌
BitNetbitnetТолько предварительно квантованные1.58CUDA✅Только autobitlinear в режиме online❌
bitsandbytesbitsandbytesВо время загрузки4, 8CUDA, XPU, HPU, CPU✅✅❌
compressed-tensorscompressed-tensorsТолько предварительно квантованныеУстановлено по контрольной точкеCUDA, XPU, MPS, CPU✅✅ за исключением ядер FP8✅
EETQeetqВо время загрузки8CUDA✅✅❌
FBGEMM FP8fbgemm_fp8Во время загрузки8CUDA (вычислительная способность 9.0+), XPU✅❌❌
Детализированный FP8fp8, mxfp8Во время загрузки8CUDA (вычислительная способность 8.9+), XPU✅❌✅
Four Over SixfouroversixВо время загрузки4CUDA (самый быстрый на Blackwell), CPU✅Только при keep_master_weights=True❌
FP-Quantfp_quantВо время загрузки4CUDA, XPU✅Только при store_master_weights=True❌
GGUFggufТолько предварительно квантованные1–8CUDA, MPS, XPU, CPU❌❌✅
GPTQgptqВо время загрузки, с калибровкой2, 3, 4, 8CUDA, ROCm, XPU, CPU✅✅❌
HIGGShiggsВо время загрузки2, 3, 4CUDA✅❌❌
HQQhqqВо время загрузки1, 2, 3, 4, 8CUDA, XPU✅✅❌
MetalmetalВо время загрузки2, 4, 8MPS✅❌❌
MXFP4mxfp4Во время загрузки4CUDA (вычислительная способность 7.5+), XPU, CPU✅❌❌
NVFP4nvfp4Во время загрузки4Один GPU Blackwell❌❌✅
QuantoquantoВо время загрузки2, 4, 8CUDA, MPS, XPU, CPU❌✅❌
QuarkquarkТолько предварительно квантованныеУстановлено по контрольной точкеCUDA, ROCm, CPU❌❌❌
SINQsinqВо время загрузки2, 3, 4, 6, 8Один GPU CUDA, CPU✅✅❌
SpQRspqrТолько предварительно квантованные3CUDA✅❌❌
torchaotorchaoВо время загрузки4, 8CUDA, XPU, CPU✅Только 8-битные схемы✅
VPTQvptqТолько предварительно квантованные1–8CUDA✅❌❌

Проверьте память с помощью селектора квантования

Выбор квантования оценивает, помещается ли модель в ваше оборудование при каждом уровне точности, включая 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Точность
8bitsandbytes int8, HQQ, Quanto, torchao, FP8Примерно в 2 раза меньшеОчень близко к bf16
4AWQ, GPTQ, HQQ, bitsandbytes NF4, SINQПримерно в 4 раза меньшеВысокая. AWQ и GPTQ часто показывают лучшие результаты, но требуют калибровки.
Ниже 4VPTQ, AQLM, 2-bit GPTQБолее чем в 4 раза меньшеЗаметное снижение качества, особенно при 2 битах. AQLM и VPTQ требуют длительного времени для квантования.

Перед выбором метода для продакшена протестируйте точность и скорость на собственной задаче и аппаратном обеспечении.

Update on GitHub