Transformers documentation
Pilih metode
Pilih metode
Jika checkpoint Anda sudah dikuantisasi, checkpoint tersebut yang menentukan metodenya. Muat sesuai yang ditunjukkan di Memuat checkpoint yang sudah dikuantisasi. Jika tidak, pilih metode berdasarkan perangkat keras Anda dan apa yang ingin Anda lakukan dengan model setelah dimuat.
Mulai dari tujuan Anda
Setiap baris merekomendasikan metode pertama yang perlu dicoba. Periksa tabel perbandingan lengkap sebelum Anda memutuskan untuk menggunakan salah satunya.
| Tujuan | Mulai dengan | Mengapa |
|---|---|---|
| Latih model dengan memori lebih sedikit dan setup paling minimal | bitsandbytes | Mengkuantisasi ke 4 atau 8 bit saat dimuat tanpa kalibrasi, berjalan di CUDA, XPU, HPU, dan CPU, serta mendukung penyimpanan dan fine-tuning. |
| Lakukan fine-tune dengan QLoRA | bitsandbytes | Mendukung 4-bit NF4 dengan PEFT. HQQ, EETQ, GPTQ, SINQ, dan Quanto juga mendukung fine-tuning. |
Percepat inferensi dengan torch.compile | torchao | generate mengompilasi model torchao secara otomatis dengan cache statis, dan torchao memiliki skema int4, int8, dan FP8 untuk CUDA, XPU, dan CPU. |
| Dapatkan akurasi 4-bit terbaik | GPTQ | Melakukan kalibrasi pada dataset saat memuat. Untuk menggunakan AWQ atau AutoRound sebagai gantinya, lakukan kuantisasi dengan pustaka mereka dan muat checkpoint-nya. |
| Jalankan FP8 di Ada, Hopper, atau Intel XPU | FP8 berbutir halus | Membutuhkan kemampuan komputasi CUDA 8.9 atau lebih tinggi, atau XPU. FBGEMM FP8 membutuhkan kemampuan komputasi 9.0 atau lebih tinggi, atau XPU. |
| Jalankan FP4 di Blackwell | NVFP4 | Mengkuantisasi ke format float 4-bit NVIDIA saat memuat. MXFP4 berjalan pada compute capability 7.5 atau lebih tinggi, XPU, dan CPU. |
| Jalankan di Apple silicon | Metal | Mengkuantisasi menjadi 2, 4, atau 8 bit pada MPS saat memuat. File GGUF juga dapat dimuat pada MPS. |
| Muat checkpoint yang dibuat dengan llm-compressor | compressed-tensors | Memuat checkpoint FP8, int4, dan int8 dalam format compressed-tensors. |
| Kompres di bawah 4 bit | HQQ atau SINQ | Kuantisasi ke 2 atau 3 bit saat memuat tanpa kalibrasi. Checkpoint AQLM, VPTQ, dan SpQR bisa lebih rendah, tetapi harus dikuantisasi dengan pustaka mereka sendiri. |
Show the full comparison table
| Metode | quant_method | Alur Kerja | Bit | Perangkat Keras | Simpan | Fine-tune | Auto-compile |
|---|---|---|---|---|---|---|---|
| AQLM | aqlm | Hanya pra-kuantisasi | 1β2 | CUDA, CPU | β | β
dengan aqlm>=1.0.2 | β |
| AutoRound | auto-round | Hanya pra-kuantisasi | 2β8 | CUDA, XPU, CPU | β | β | β |
| AWQ | awq | Hanya pra-kuantisasi | 4 | CUDA, ROCm, XPU, CPU | β kecuali backend ExLlama | β
dengan gptqmodel>=5.0.0 | β |
| BitNet | bitnet | Hanya pra-kuantisasi | 1.58 | CUDA | β | Hanya autobitlinear dalam mode online | β |
| bitsandbytes | bitsandbytes | Saat memuat | 4, 8 | CUDA, XPU, HPU, CPU | β | β | β |
| compressed-tensors | compressed-tensors | Hanya pra-kuantisasi | Ditetapkan oleh checkpoint | CUDA, XPU, MPS, CPU | β | β kecuali dengan kernel FP8 | β |
| EETQ | eetq | Saat memuat | 8 | CUDA | β | β | β |
| FBGEMM FP8 | fbgemm_fp8 | Saat memuat | 8 | CUDA (kemampuan komputasi 9.0+), XPU | β | β | β |
| FP8 berbutir halus | fp8, mxfp8 | Saat memuat | 8 | CUDA (kemampuan komputasi 8.9+), XPU | β | β | β |
| Empat dari Enam | fouroversix | Saat memuat | 4 | CUDA (paling cepat di Blackwell), CPU | β | Hanya dengan keep_master_weights=True | β |
| FP-Quant | fp_quant | Saat memuat | 4 | CUDA, XPU | β | Hanya dengan store_master_weights=True | β |
| GGUF | gguf | Hanya pra-kuantisasi | 1β8 | CUDA, MPS, XPU, CPU | β | β | β |
| GPTQ | gptq | Saat memuat, dengan kalibrasi | 2, 3, 4, 8 | CUDA, ROCm, XPU, CPU | β | β | β |
| HIGGS | higgs | Saat memuat | 2, 3, 4 | CUDA | β | β | β |
| HQQ | hqq | Saat memuat | 1, 2, 3, 4, 8 | CUDA, XPU | β | β | β |
| Metal | metal | Saat memuat | 2, 4, 8 | MPS | β | β | β |
| MXFP4 | mxfp4 | Saat memuat | 4 | CUDA (kemampuan komputasi 7.5+), XPU, CPU | β | β | β |
| NVFP4 | nvfp4 | Saat memuat | 4 | Satu GPU Blackwell | β | β | β |
| Quanto | quanto | Saat memuat | 2, 4, 8 | CUDA, MPS, XPU, CPU | β | β | β |
| Quark | quark | Hanya pra-kuantisasi | Ditetapkan oleh checkpoint | CUDA, ROCm, CPU | β | β | β |
| SINQ | sinq | Saat memuat | 2, 3, 4, 6, 8 | Satu GPU CUDA, CPU | β | β | β |
| SpQR | spqr | Hanya pra-kuantisasi | 3 | CUDA | β | β | β |
| torchao | torchao | Saat memuat | 4, 8 | CUDA, XPU, CPU | β | Hanya skema 8-bit | β |
| VPTQ | vptq | Hanya pra-kuantisasi | 1β8 | CUDA | β | β | β |
Periksa memori dengan pemilih kuantisasi
Pemilih kuantisasi memperkirakan apakah sebuah model muat di perangkat keras Anda pada setiap presisi, termasuk KV cache. Pilih model, perangkat keras Anda, dan apa yang Anda butuhkan dari metode tersebut, lalu tampilan Bandingkan akan menampilkan daftar metode yang cocok.
Benchmarks
Benchmarks di bawah ini membandingkan beberapa metode pada Llama 3.1 8B dan 70B. Mereka melaporkan akurasi, throughput dalam token per detik, memori puncak dalam GB, dan waktu kuantisasi.
Llama 3.1 70B dalam bf16 dijalankan pada 2 GPU NVIDIA A100 80GB. Metode FP8 dijalankan pada 1 GPU NVIDIA H100 80GB, dan semua metode lainnya dijalankan pada 1 GPU NVIDIA A100 80GB. Throughput diukur pada batch size 1, menghasilkan 64 token. Hasil mencakup torch.compile dan kernel Marlin di mana metode tersebut mendukungnya.
Hasilnya dikelompokkan ke dalam tiga rentang bit.
| Bit | Metode yang diuji | Memori vs. bf16 | Akurasi |
|---|---|---|---|
| 8 | bitsandbytes int8, HQQ, Quanto, torchao, FP8 | Sekitar 2x lebih kecil | Sangat dekat dengan bf16 |
| 4 | AWQ, GPTQ, HQQ, bitsandbytes NF4, SINQ | Sekitar 4x lebih kecil | Tinggi. AWQ dan GPTQ sering kali unggul, tetapi memerlukan kalibrasi. |
| Di bawah 4 | VPTQ, AQLM, 2-bit GPTQ | Lebih dari 4x lebih kecil | Penurunan yang cukup signifikan, terutama pada 2 bit. AQLM dan VPTQ membutuhkan waktu lama untuk melakukan kuantisasi. |
Update on GitHubUkur akurasi dan kecepatan pada tugas dan perangkat keras Anda sendiri sebelum memilih metode untuk produksi.