← Resources
By Ren Sugaya
— Performance Engineer, GPU & Inference
·
· INSIGHT
LLM Quantization Dijelaskan: GGUF, Q4 vs Q8, dan Kualitas
Quantization mengecilkan LLM dengan menyimpan bobotnya pada presisi yang lebih rendah, memangkas VRAM hingga sekitar seperempat pada 4-bit. Panduan ini menjelaskan perhitungan VRAM, menguraikan nama kuantisasi GGUF seperti Q4_K_M, membandingkan GGUF dengan GPTQ dan AWQ, serta menunjukkan di mana kualitas sebenarnya mulai menurun.
Apa itu quantization, dan mengapa penting
Quantization mengurangi presisi numerik yang dipakai untuk menyimpan bobot model — biasanya dari FP16 (16 bit, 2 byte per bobot) turun ke 8-bit atau 4-bit. Karena memori berskala linier dengan jumlah bit per bobot, 4-bit memakai VRAM sekitar empat kali lebih sedikit dibanding FP16. Ini juga mempercepat inferensi, karena pembuatan token dibatasi oleh bandwidth memori, bukan sekadar komputasi.
Perhitungan ukurannya sederhana: bytes ≈ (parameters × bits-per-weight) ÷ 8. Model 8B pada FP16 sekitar 16 GB; pada 4-bit sekitar 4,5 GB. Selisih itulah yang mengubah model yang membutuhkan GPU pusat data menjadi model yang bisa berjalan di laptop.
GGUF adalah format file, bukan metode
GGUF adalah format satu file yang menyimpan bobot terkuantisasi beserta metadata model (tokenizer, arsitektur, hiperparameter). Ini adalah penerus GGML dari proyek llama.cpp, dioptimalkan untuk CPU, Apple Silicon (Metal), dan offload campuran CPU/GPU — itulah sebabnya format ini mendominasi inferensi lokal dan laptop melalui llama.cpp, Ollama, dan LM Studio.
Level kuantisasi tertera di nama file. Angkanya adalah rata-rata bit per bobot; `_K` berarti k-quants (metode super-blok modern dengan faktor penskalaan terkuantisasi ganda dan alokasi bit yang sadar-layer); `_S`, `_M`, `_L` adalah varian kecil, sedang, dan besar. `_M` secara selektif mempertahankan layer yang sensitif — attention dan output — pada presisi lebih tinggi, itulah sebabnya Q4_K_M mengungguli kuantisasi 4-bit yang seragam.
Q4 vs Q5 vs Q8: ukuran dan kualitas dengan angka
Evaluasi peer-reviewed pada Llama-3.1-8B membuat trade-off ini konkret (ukuran berlaku untuk model tersebut; rasionya berlaku umum). Dibandingkan dengan perplexity baseline FP16 sekitar 7,32 (lebih rendah lebih baik):
- Q8_0 — 8,5 bits/weight, ~7,95 GiB, perplexity 7,33: praktis tanpa kehilangan.
- Q6_K — 6,56 bpw, ~6,14 GiB, perplexity 7,35.
- Q5_K_M — 5,70 bpw, ~5,33 GiB, perplexity 7,40.
- Q4_K_M — 4,89 bpw, ~4,58 GiB, perplexity 7,56: sweet spot praktis, kurang dari setengah persen dari baseline.
- Q3 ke bawah — degradasi tajam dan konsisten, terutama pada tugas penalaran.
Rentang 4-hingga-5-bit adalah zona aman. Di bawah 3-bit Anda perlu importance-matrix (IQ) quants, yang memakai data kalibrasi untuk memusatkan presisi pada bagian yang paling penting — bisa dipakai, tetapi merupakan pilihan terakhir saat memori benar-benar terbatas.
GGUF vs GPTQ vs AWQ
GGUF bukan satu-satunya pilihan; yang tepat bergantung pada tempat Anda menjalankannya.
- GGUF: dibuat untuk CPU, Mac, dan offload campuran. Pilih ini untuk inferensi lokal dan desktop.
- GPTQ: pasca-pelatihan, berbasis kalibrasi, memakai informasi orde kedua untuk meminimalkan galat per-layer. Paling akurat per bobot pada lebar bit tertentu, tetapi lambat dibuat dan berorientasi pada GPU serving (vLLM, TGI, TensorRT-LLM).
- AWQ: melindungi sekitar 1% bobot paling penting berdasarkan magnitudo aktivasi; lebih cepat dibuat dibanding GPTQ dan dioptimalkan untuk GPU pada 4-bit.
- bitsandbytes: mengkuantisasi secara langsung saat loading tanpa checkpoint pra-kuantisasi maupun kalibrasi — jalur termudah, banyak dipakai untuk fine-tuning QLoRA.
Pembagian praktisnya: GGUF untuk lokal dan laptop, AWQ atau GPTQ untuk throughput GPU-server.
Seberapa banyak kualitas yang sebenarnya hilang?
Lebih sedikit dari yang dikhawatirkan kebanyakan orang pada 4-bit, dan lebih banyak dari yang mereka perkirakan di bawah 3-bit. Pada evaluasi Llama-3.1-8B, Q8 hanya berselisih tipis dari presisi penuh, Q4_K_M kehilangan kurang dari setengah persen pada benchmark rata-rata, dan penurunan tajam muncul di 3-bit, dengan degradasi paling jelas pada evaluasi yang berat penalaran seperti matematika tingkat SD. Ingat bahwa angka perplexity absolut dan ukuran bersifat spesifik per model — persentasenya berlaku umum, tetapi selalu periksa angka untuk model dasar Anda. Dan anggarkan VRAM melebihi ukuran file: KV cache dan sekitar 10–15% overhead framework juga butuh ruang.
Quantization di osFoundry
Memilih kuantisasi biasanya berarti memahami bits-per-weight, menyisakan ruang untuk KV cache, dan mengubek dinding suffix GGUF yang rumit demi menemukan satu file yang pas tanpa crash. Inferensi lokal osFoundry menghilangkan langkah itu: ia mendeteksi memori yang tersedia dan memilih kuantisasi yang tepat secara otomatis — Q4_K_M untuk VRAM yang ketat, Q5_K_M atau Q8_0 saat ada ruang lebih — sehingga model berjalan pada kualitas terbaik yang didukung hardware Anda. Katalog hanya menampilkan build yang kompatibel alih-alih setiap varian, dan melakukan fallback dengan mulus jika kuantisasi yang lebih berat tidak muat. Anda mendapatkan sweet spot ukuran-vs-kualitas seperti memilih GGUF secara manual tanpa perlu tahu apa arti Q4_K_M.
Frequently asked questions
- Apa itu LLM quantization dalam istilah sederhana?
- Ini adalah menyimpan bobot model pada presisi numerik yang lebih rendah — misalnya 4-bit alih-alih 16-bit — untuk mengecilkannya. Karena memori berskala dengan jumlah bit per bobot, kuantisasi 4-bit memakai VRAM sekitar empat kali lebih sedikit dibanding FP16 dan berjalan lebih cepat, dengan biaya kualitas yang kecil dan biasanya bisa diterima.
- GGUF singkatan dari apa dan apa itu?
- GGUF adalah format model satu file dari proyek llama.cpp (penerus GGML) yang menggabungkan bobot terkuantisasi dengan metadata model. Format ini dioptimalkan untuk CPU, Apple Silicon, dan inferensi campuran CPU/GPU, itulah sebabnya menjadi standar untuk alat lokal seperti llama.cpp, Ollama, dan LM Studio. Ini adalah format file, bukan algoritma kuantisasi.
- Apa perbedaan antara Q4, Q5, dan Q8?
- Angkanya adalah rata-rata bit per bobot, sehingga Q8 lebih besar dan lebih akurat dari Q5, yang lebih besar dari Q4. Pada model 8B yang umum, Q8 hampir tanpa kehilangan pada sekitar 8 GB, Q5_K_M sedikit lebih rendah pada sekitar 5,3 GB, dan Q4_K_M adalah sweet spot ukuran/kualitas pada sekitar 4,6 GB dengan kehilangan kualitas kurang dari setengah persen.
- Kuantisasi GGUF mana yang sebaiknya saya pakai?
- Q4_K_M untuk sebagian besar kasus — ini keseimbangan terbaik antara ukuran dan kualitas serta titik awal standar. Naik ke Q5_K_M atau Q8_0 jika Anda punya VRAM lebih dan menginginkan akurasi lebih tinggi, dan hanya turun di bawah Q4 (memakai IQ quants importance-matrix) saat memori benar-benar terbatas, karena kualitas turun tajam pada 3-bit ke bawah.
- Seberapa banyak kualitas yang hilang dengan kuantisasi 4-bit?
- Sangat sedikit, mengejutkan. Pada evaluasi peer-reviewed Llama-3.1-8B, Q4_K_M berada kurang dari setengah persen di bawah baseline presisi penuh pada benchmark rata-rata. Degradasi yang terlihat mulai pada 3-bit, terutama pada tugas penalaran dan matematika. Angka pastinya bervariasi per model, tetapi 4-hingga-5-bit secara luas dianggap zona aman.
- GGUF vs GPTQ vs AWQ — mana yang harus saya pilih?
- GGUF untuk inferensi lokal, laptop, dan Apple Silicon melalui llama.cpp atau Ollama. GPTQ dan AWQ menyimpan layout yang ramah GPU dan merupakan pilihan lebih baik untuk throughput GPU-server dengan vLLM atau TGI — AWQ lebih cepat dibuat, GPTQ sering paling akurat per bobot. bitsandbytes paling mudah karena mengkuantisasi saat loading tanpa kalibrasi.
- Bagaimana cara menghitung VRAM yang dibutuhkan model terkuantisasi?
- Gunakan bytes ≈ (parameters × bits-per-weight) ÷ 8. Pada 4-bit itu sekitar 0,5 hingga 0,6 GB per miliar parameter, sehingga model 8B sekitar 4,5 GB. Lalu tambahkan ruang untuk KV cache dan sekitar 10 hingga 15% overhead framework — jejak saat berjalan selalu lebih besar daripada ukuran file di disk.
Sources