Transformers documentation

Bir yöntem seçin

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

and get access to the augmented documentation experience

to get started

Bir yöntem seçin

Eğer kontrol noktanız zaten kuantize edilmişse, yöntem kontrol noktası tarafından belirlenir. Bunu Önceden kuantize edilmiş bir kontrol noktası yükleme bölümünde gösterildiği gibi yükleyin. Aksi takdirde, donanımınıza ve kontrol noktasını yükledikten sonra modelle yapacaklarınıza göre bir yöntem seçin.

Hedefinizden başlayın

Her satır, denemek için ilk olarak denenecek bir yöntem önerir. Bir yönteme karar vermeden önce tam karşılaştırma tablosunu kontrol edin.

HedefŞunla başlayınNeden
En az kurulumla, daha az bellek kullanarak bir model eğitinbitsandbytesKalibrasyon gerektirmeden yükleme sırasında 4 veya 8 bitle kuantize eder, CUDA, XPU, HPU ve CPU üzerinde çalışır ve kaydetmeyi ve ince ayarı destekler.
QLoRA ile ince ayar yapınbitsandbytesPEFT ile 4-bit NF4 desteklenir. HQQ, EETQ, GPTQ, SINQ ve Quanto da ince ayarı destekler.
torch.compile ile çıkarımı hızlandırıntorchaogenerate, statik bir önbellekle torchao modellerini otomatik olarak derler ve torchao, CUDA, XPU ve CPU için int4, int8 ve FP8 şemalarına sahiptir.
En iyi 4-bit doğruluğunu alınGPTQYükleme sırasında bir veri seti üzerinde kalibre eder. Bunun yerine AWQ veya AutoRound kullanmak için, bu kütüphanelerle kuantizasyon yapın ve kontrol noktasını yükleyin.
Ada, Hopper veya Intel XPU üzerinde FP8 çalıştırınİnce taneli FP8CUDA hesaplama yeteneği 8.9 veya daha yüksek, ya da bir XPU gerektirir. FBGEMM FP8 hesaplama yeteneği 9.0 veya daha yüksek, ya da bir XPU gerektirir.
Blackwell'de FP4 çalıştırınNVFP4Yükleme sırasında NVIDIA’nın 4 bitlik kayan nokta biçimine kuantize eder. MXFP4, hesaplama yeteneği 7.5 veya daha yüksek olan sistemlerde, XPU ve CPU üzerinde çalışır.
Apple silikon üzerinde çalıştırınMetalYükleme sırasında MPS üzerinde 2, 4 veya 8 bit olarak kuantize eder. GGUF dosyaları da MPS üzerinde yüklenir.
llm-compressor ile oluşturulan denetim noktalarını yükleyincompressed-tensorsFP8, int4 ve int8 kontrol noktalarını compressed-tensors biçiminde yükler.
4 bitin altında sıkıştırHQQ veya SINQKalibrasyon olmadan yüklerken 2 veya 3 bite kuantize edin. AQLM, VPTQ ve SpQR kontrol noktaları daha düşük bitlere inebilir ancak kendi kütüphaneleriyle kuantize edilmelidir.
Show the full comparison table
Yöntemquant_methodİş AkışıBitlerDonanımKaydetİnce ayarOtomatik derleme
AQLMaqlmSadece önceden kuantize edilmiş1–2CUDA, CPU✅✅ aqlm>=1.0.2 ile❌
AutoRoundauto-roundSadece önceden kuantize edilmiş2–8CUDA, XPU, CPU✅❌❌
AWQawqSadece önceden kuantize edilmiş4CUDA, ROCm, XPU, CPU✅ ExLlama arka uçları hariç✅ gptqmodel>=5.0.0 ile❌
BitNetbitnetSadece önceden kuantize edilmiş1.58CUDA✅Yalnızca online modundaki autobitlinear❌
bitsandbytesbitsandbytesYüklenirken4, 8CUDA, XPU, HPU, CPU✅✅❌
compressed-tensorscompressed-tensorsSadece önceden kuantize edilmişKontrol noktası tarafından ayarlanırCUDA, XPU, MPS, CPU✅✅ FP8 çekirdekleri hariç✅
EETQeetqYüklenirken8CUDA✅✅❌
FBGEMM FP8fbgemm_fp8Yüklenirken8CUDA (hesaplama yeteneği 9.0+), XPU✅❌❌
İnce taneli FP8fp8, mxfp8Yüklenirken8CUDA (hesaplama yeteneği 8.9+), XPU✅❌✅
Dört AltıfouroversixYüklenirken4CUDA (Blackwell'de en hızlı), CPU✅Yalnızca keep_master_weights=True ile❌
FP-Quantfp_quantYüklenirken4CUDA, XPU✅Yalnızca store_master_weights=True ile❌
GGUFggufSadece önceden kuantize edilmiş1–8CUDA, MPS, XPU, CPU❌❌✅
GPTQgptqYükleme sırasında, kalibrasyonla2, 3, 4, 8CUDA, ROCm, XPU, CPU✅✅❌
HIGGShiggsYüklenirken2, 3, 4CUDA✅❌❌
HQQhqqYüklenirken1, 2, 3, 4, 8CUDA, XPU✅✅❌
MetalmetalYüklenirken2, 4, 8MPS✅❌❌
MXFP4mxfp4Yüklenirken4CUDA (hesaplama yeteneği 7.5+), XPU, CPU✅❌❌
NVFP4nvfp4Yüklenirken4Tek bir Blackwell GPU❌❌✅
QuantoquantoYüklenirken2, 4, 8CUDA, MPS, XPU, CPU❌✅❌
QuarkquarkSadece önceden kuantize edilmişKontrol noktası tarafından ayarlanırCUDA, ROCm, CPU❌❌❌
SINQsinqYüklenirken2, 3, 4, 6, 8Bir CUDA GPU, CPU✅✅❌
SpQRspqrSadece önceden kuantize edilmiş3CUDA✅❌❌
torchaotorchaoYüklenirken4, 8CUDA, XPU, CPU✅Yalnızca 8-bit şemaları✅
VPTQvptqSadece önceden kuantize edilmiş1–8CUDA✅❌❌

Kantizasyon seçicisiyle belleği kontrol edin

Kantizasyon seçicisi, KV önbellek dahil olmak üzere, bir modelin her hassasiyet seviyesinde donanımınıza sığıp sığmadığını tahmin eder. Bir model, donanımınızı ve yöntemin yapması gerekeni seçtiğinizde Karşılaştır görünümü, eşleşen yöntemleri listeler.

Benchmarks

Aşağıdaki kıyaslamalar, Llama 3.1 8B ve 70B modellerinde çeşitli yöntemleri karşılaştırır. Doğruluk, saniyede token cinsinden işleme hızı, GB cinsinden tepe bellek kullanımı ve kuantizasyon süresi raporlanır.

Llama 3.1 70B, bf16 ile 2 NVIDIA A100 80GB GPU üzerinde çalıştırıldı. FP8 yöntemleri 1 NVIDIA H100 80GB GPU üzerinde, diğer tüm yöntemler ise 1 NVIDIA A100 80GB GPU üzerinde çalıştırıldı. Verimlilik, batch boyutu 1 ve 64 token üretimi ile ölçüldü. Sonuçlar, bir yöntemin desteklemesi durumunda torch.compile ve Marlin çekirdeklerini içerir.

Sonuçlar üç bit aralığında gruplanır.

BitlerKarşılaştırılan yöntemlerBellek vs. bf16Doğruluk
8bitsandbytes int8, HQQ, Quanto, torchao, FP8Yaklaşık 2 kat daha küçükbf16'ya çok yakın
4AWQ, GPTQ, HQQ, bitsandbytes NF4, SINQYaklaşık 4 kat daha küçükYüksek. AWQ ve GPTQ genellikle öne çıkar ancak kalibrasyon gerektirir.
4'ün altıVPTQ, AQLM, 2-bit GPTQ4 kat daha küçükÖzellikle 2 bit'te belirgin bir düşüş. AQLM ve VPTQ, kuantizasyon için uzun bir süre gerektirir.

Üretim için bir yöntem seçmeden önce, kendi göreviniz ve donanımınız üzerinde doğruluğu ve hızı ölçün.

Update on GitHub