Lewati ke konten utama

Quantization Aware Training: Panduan untuk Meningkatkan Inferensi Lokal Gemma 4

Jalankan Gemma 4 12B QAT secara lokal dengan llama.cpp dan lihat bagaimana Quantization-Aware Training meningkatkan inferensi GGUF 4-bit, mengurangi penggunaan VRAM, meningkatkan kecepatan, dan membuat AI lokal lebih stabil di GPU konsumen.
Diperbarui 3 Agu 2026  · 8 mnt baca

Jelajahi dengan AI

Buka di ChatGPTBuka di ClaudeBuka di Perplexity

Kuantisasi adalah salah satu cara paling praktis untuk menjalankan model bahasa besar di GPU konsumen. Alih-alih menggunakan bobot presisi tinggi yang membutuhkan banyak VRAM, kita dapat menggunakan model 4-bit terkompresi yang muat di GPU seperti NVIDIA RTX 4090. Model Gemma dari Google adalah bagian dari upaya yang berkembang untuk memudahkan penggunaan AI terbuka yang kuat secara lokal.

Dalam tutorial ini, kita akan menjalankan Gemma 4 12B secara lokal dengan llama.cpp dan membandingkan versi dasar model dengan versi lain yang di-fine-tune menggunakan Quantization-Aware Training (QAT).

Pastikan juga membaca tutorial kami lainnya tentang model Google, Membangun Agen AI dengan Gemma 4 dan Ollama, serta Cara Melakukan Fine-Tune Gemma 4.

Apa Itu Kuantisasi?

Kuantisasi adalah teknik kompresi model yang mengurangi presisi bobot model. 

Model bahasa besar biasanya disimpan dalam format presisi tinggi seperti BF16 atau FP16, yang menjaga kualitas namun membutuhkan memori signifikan. Kuantisasi mengonversi bobot tersebut ke format bit lebih rendah, seperti 8-bit atau 4-bit, sehingga model menggunakan lebih sedikit VRAM dan lebih mudah dijalankan secara lokal. Hugging Face mencatat bahwa kuantisasi 8-bit dapat kira-kira memangkas penggunaan memori hingga setengahnya, sementara kuantisasi 4-bit dapat menguranginya lebih jauh.

Konsekuensinya, presisi yang lebih rendah kadang dapat menurunkan kualitas keluaran, terutama jika model tidak dioptimalkan untuk kuantisasi. Sederhananya, BF16 dan FP16 biasanya memberi kualitas terbaik namun memakai lebih banyak memori; model 8-bit lebih kecil sambil umumnya menjaga kualitas kuat, dan model 4-bit jauh lebih kecil tetapi mungkin kehilangan sebagian akurasi atau stabilitas. 

Untuk inferensi lokal, trade-off ini sering sepadan karena memungkinkan model yang lebih besar berjalan di GPU konsumen alih-alih membutuhkan perangkat keras pusat data yang mahal.

Apa Itu Quantization Aware Training?

Quantization-Aware Training (QAT) adalah teknik pelatihan di mana model dilatih atau di-fine-tune sambil mensimulasikan perilaku presisi rendah. Ini membantu model tetap lebih stabil setelah dikuantisasi dan dapat meningkatkan kinerja inferensi lokal pada lebar bit rendah.

Apa yang Membedakan QAT?

Pendekatan yang umum, yaitu kuantisasi pascapelatihan (post-training), mengompresi model setelah selesai dilatih. Ini sederhana dan praktis, tetapi model mungkin kehilangan sebagian kualitas karena tidak dilatih untuk menangani bobot berpresisi rendah. 

Menurut dokumentasi Google AI Edge, kuantisasi pascapelatihan adalah langkah konversi yang dapat mengurangi ukuran model dan meningkatkan latensi, biasanya dengan sedikit kehilangan akurasi. Namun, kualitas akhir tetap dapat bergantung pada model dan tingkat kuantisasinya. 

Quantization-Aware Training, atau QAT, mengambil pendekatan berbeda. Alih-alih hanya mengkuantisasi setelah pelatihan, QAT mensimulasikan perilaku presisi rendah selama pelatihan atau fine-tuning. Ini membantu model belajar untuk tetap stabil saat nanti dikonversi ke format yang lebih kecil. QAT meminimalkan kehilangan kualitas ketika model dikompresi.

Itulah mengapa Gemma 4 QAT berguna untuk AI lokal. Model ini dibangun dengan mempertimbangkan kuantisasi, sehingga dapat mempertahankan lebih banyak kualitas asli model sambil menggunakan lebih sedikit memori. Bagi pengguna yang menjalankan model di GPU konsumen, ini dapat berarti stabilitas low-bit yang lebih baik, penggunaan VRAM yang lebih rendah, dan inferensi lokal yang lebih praktis.

Langkah 1: Instal Dependensi dan Build llama.cpp

Sebelum mengunduh model, kita perlu menyiapkan runtime lokal terlebih dahulu. Tutorial ini diuji pada mesin dengan GPU NVIDIA RTX 4090 dan 24 GB VRAM. Kita akan menggunakan llama.cpp sebagai runtime inferensi, GGUF sebagai format model, dan berkas model terkuantisasi UD-Q4_K_XL.

Konfigurasi yang diuji:

  • GPU: NVIDIA RTX 4090
  • VRAM: 24 GB
  • Runtime: llama.cpp
  • Format model: GGUF
  • Kuantisasi: UD-Q4_K_XL

Kita akan membandingkan dua model Unsloth GGUF berikut:

  • unsloth/gemma-4-12B-it-GGUF
  • unsloth/gemma-4-12B-it-qat-GGUF

Pertama, periksa apakah GPU Anda tersedia.

nvidia-smi

RTX 4090 GPU overview

Selanjutnya, instal paket sistem yang diperlukan untuk membangun llama.cpp.

apt-get update
apt-get install pciutils build-essential cmake curl libcurl4-openssl-dev -y

Klon repositori resmi llama.cpp.

git clone https://github.com/ggml-org/llama.cpp

Sekarang build llama.cpp dengan dukungan CUDA diaktifkan. Ini memungkinkan lapisan model berjalan di GPU alih-alih hanya di CPU.

cmake llama.cpp -B llama.cpp/build \
    -DBUILD_SHARED_LIBS=OFF \
    -DGGML_CUDA=ON

Kompilasi biner yang diperlukan.

cmake --build llama.cpp/build \
    --config Release \
    -j \
    --clean-first \
    --target llama-cli llama-mtmd-cli llama-server llama-gguf-split

Building Llama.cpp from source

Setelah build selesai, biner utama yang akan kita gunakan adalah llama-server. Ini memungkinkan kita menjalankan model GGUF secara lokal dan mengekspos endpoint API yang kompatibel dengan OpenAI yang dapat kita kueri dengan curl

Langkah 2: Unduh Model Gemma 4 12B Non-QAT dan QAT 

Sekarang llama.cpp sudah siap, kita dapat mengunduh kedua varian model Gemma 4 12B dari Hugging Face. Kita akan mengunduh model instruction-tuned reguler dan versi QAT dalam format GGUF.

Pertama, instal Hugging Face Hub CLI dengan dukungan unduhan lebih cepat.

pip install -U "huggingface_hub[hf_xet]" hf-xet hf_transfer

Aktifkan unduhan Xet berkinerja tinggi.

export HF_XET_HIGH_PERFORMANCE=1

Unduh model instruction Gemma 4 12B reguler dalam format GGUF.

hf download unsloth/gemma-4-12B-it-GGUF \
  --local-dir models/gemma-4-12B-it-GGUF \
  --include "*mmproj-BF16*" \
  --include "*UD-Q4_K_XL*"

Selanjutnya, unduh versi QAT menggunakan format kuantisasi yang sama.

hf download unsloth/gemma-4-12B-it-qat-GGUF \
  --local-dir models/gemma-4-12B-it-qat-GGUF \
  --include "*mmproj-BF16*" \
  --include "*UD-Q4_K_XL*"

Flag --include memastikan kita hanya mengunduh berkas yang diperlukan untuk tutorial ini, alih-alih menarik seluruh repositori. Di sini, kita mengunduh berkas model GGUF UD-Q4_K_XL dan berkas mmproj-BF16 yang digunakan oleh paket model. 

Setelah unduhan selesai, konfirmasikan bahwa kedua folder model ada.

ls models

Keluaran yang diharapkan:

gemma-4-12B-it-GGUF
gemma-4-12B-it-qat-GGUF

Pada titik ini, baik model non-QAT maupun QAT sudah tersedia secara lokal, dan kita dapat mulai menyajikannya dengan llama-server.

Langkah 3: Jalankan Model Non-QAT dengan llama-server

Kita akan mulai dengan menjalankan model instruction Gemma 4 12B reguler. Ini memberi kita baseline sehingga nanti dapat dibandingkan dengan versi QAT menggunakan pengaturan yang sama.

Mulai model non-QAT dengan llama-server.

./llama.cpp/llama-server \
  -m models/gemma-4-12B-it-GGUF/*UD-Q4_K_XL*.gguf \
  --host 0.0.0.0 \
  --port 8001 \
  --ctx-size 8192 \
  --n-gpu-layers 99 \
  --temp 1.0 \
  --top-p 0.95 \
  --top-k 64

Serving the gemma-4-12B-it-GGUF model

Ini akan memulai server lokal yang kompatibel dengan OpenAI di http://localhost:8001.

Buka terminal lain dan kirim permintaan ke server lokal.

time curl http://localhost:8001/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
  "model": "gemma-4-12B-it",
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful local AI assistant."
    },
    {
      "role": "user",
      "content": "Explain why quantization-aware training is useful for running LLMs on consumer GPUs."
    }
  ],
  "temperature": 1.0,
  "top_p": 0.95,
  "max_tokens": 512
}'

Dalam perintah ini, kita menggunakan endpoint lokal /v1/chat/completions yang mengikuti format API kompatibel OpenAI. Prompt meminta model menjelaskan quantization-aware training, dan max_tokens disetel ke 512 untuk memastikan kedua varian model diuji dengan panjang keluaran yang sama. 

Dalam pengujian RTX 4090 kami, model non-QAT menghasilkan hasil waktu berikut:

  • Token prompt: 40
  • Token completion: 512
  • Kecepatan prompt: 510,22 token/detik
  • Kecepatan generasi: 94,65 token/detik
  • Total waktu: 5,516 detik

Penggunaan memori GPU adalah:

9247 MiB / 24564 MiB

Ini memberi kita performa baseline untuk model Gemma 4 12B reguler. Pada langkah berikutnya, kita akan menjalankan versi QAT dengan konfigurasi yang sama dan membandingkan hasilnya.

Langkah 4: Jalankan dan Uji Model QAT

Sekarang kita akan menjalankan versi QAT dari Gemma 4 12B menggunakan pengaturan llama-server yang sama. Pastikan menghentikan server non-QAT sebelumnya sebelum memulai yang ini, karena kedua perintah menggunakan port yang sama.

Mulai model QAT.

./llama.cpp/llama-server \
  -m models/gemma-4-12B-it-qat-GGUF/*UD-Q4_K_XL*.gguf \
  --host 0.0.0.0 \
  --port 8001 \
  --ctx-size 8192 \
  --n-gpu-layers 99 \
  --temp 1.0 \
  --top-p 0.95 \
  --top-k 64

Ini menjalankan model QAT pada endpoint lokal yang kompatibel dengan OpenAI yang sama, http://localhost:8001.

Serving the gemma-4-12B-it-qat-GGUF

Sekarang kirim prompt uji yang sama ke model QAT.

time curl http://localhost:8001/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
  "model": "gemma-4-12B-it-qat",
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful local AI assistant."
    },
    {
      "role": "user",
      "content": "Explain why quantization-aware training is useful for running LLMs on consumer GPUs."
    }
  ],
  "temperature": 1.0,
  "top_p": 0.95,
  "max_tokens": 512
}'

Dalam pengujian RTX 4090 kami, model QAT menghasilkan hasil waktu berikut:

  1. Token prompt: 40
  2. Token completion: 512
  3. Kecepatan prompt: 593,93 token/detik
  4. Kecepatan generasi: 101,65 token/detik
  5. Total waktu: 5,114 detik

Penggunaan memori GPU adalah:

8627 MiB / 24564 MiB

Anda juga dapat menyalin URL server lokal (http://localhost:8001) dan menempelkannya ke browser:

Testing the gemma-4-12B-it-qat using the llama.cpp WebUI

Ini membuka antarmuka web bawaan llama.cpp, yang memberi Anda antarmuka mirip ChatGPT sederhana untuk menguji model lokal. Anda dapat menggunakannya untuk mengobrol langsung dengan model QAT di browser, bereksperimen dengan prompt, dan menggunakan model sebagai asisten AI lokal harian. 

Bandingkan Hasil QAT vs Non-QAT

Setelah menguji kedua model dengan prompt dan pengaturan server yang sama, kita dapat langsung membandingkan performanya pada RTX 4090.

Metrik

Gemma 4 12B Non-QAT

Gemma 4 12B QAT

Kuantisasi

UD-Q4_K_XL

UD-Q4_K_XL

Ukuran konteks

8192

8192

Token prompt

40

40

Token completion

512

512

Kecepatan prompt

510,22 token/detik

593,93 token/detik

Kecepatan generasi

94,65 token/detik

101,65 token/detik

Total waktu

5,516 detik

5,114 detik

Penggunaan VRAM

9247 MiB

8627 MiB

Dalam pengujian ini, model QAT lebih cepat dan lebih ringan daripada model non-QAT reguler. Model QAT menggunakan 620 MiB VRAM lebih sedikit, mengurangi penggunaan memori sekitar 6,7%. Ini berguna untuk inferensi lokal karena setiap penghematan VRAM membantu saat menjalankan model besar di GPU konsumen.

Model QAT juga menghasilkan token lebih cepat, meningkat dari 94,65 token/detik menjadi 101,65 token/detik. Itu sekitar kenaikan 7,4% dalam kecepatan generasi, memangkas waktu dari 5,516 detik menjadi 5,114 detik.

Dalam penggunaan sehari-hari, model QAT terasa lebih mulus dan responsif. Kualitas respons juga tampak lebih stabil dalam pengujian ini, yang merupakan alasan utama QAT berguna: QAT membantu model menangani kuantisasi low-bit dengan kehilangan kualitas yang lebih kecil sambil tetap mempertahankan manfaat memori dan kecepatan dari model terkompresi.

Pemikiran Akhir

Google melakukan pekerjaan luar biasa bagi komunitas AI lokal. Dengan model seperti Gemma 4 dan teknik seperti QAT, impian menjalankan model AI yang kuat secara lokal, sepenuhnya offline, bahkan di perangkat keras konsumen, menjadi kenyataan. 

Bagian paling menarik adalah ini bukan sekadar soal mengecilkan ukuran model. Dengan QAT, kita tidak sekadar berkompromi pada kualitas agar model muat. Kita mendapatkan model yang dirancang untuk berjalan lebih baik dalam format low-bit, meningkatkan pengalaman AI lokal secara keseluruhan. Dalam pengujian ini, model QAT lebih cepat, lebih ringan, dan lebih mulus digunakan daripada versi non-QAT.

Saya kini menantikan untuk menguji versi MTP dari model ini, yang bisa meningkatkan kecepatan lebih jauh, mungkin hingga 2x. Itu akan membuat jauh lebih mudah untuk memindahkan lebih banyak alur kerja saya ke AI lokal. Saya bisa menjalankan model secara lokal, menghubungkannya dengan alat seperti OpenCode, dan mulai mengedit berkas proyek langsung dengan asisten lokal privat.

Gelombang baru AI lokal ini mengubah cara kita memikirkan penggunaan sistem AI. Tugas yang dulu membutuhkan penyiapan cloud besar, terutama alur kerja multimodal dengan masukan teks, gambar, dan video, perlahan menjadi mungkin di mesin lokal. Bagi pengembang, peneliti, dan pembuat yang peduli pada privasi, kecepatan, dan kendali, ini adalah arah yang sangat menarik.


Abid Ali Awan's photo
Author
Abid Ali Awan
LinkedIn
Twitter

Sebagai data scientist tersertifikasi, saya bersemangat memanfaatkan teknologi mutakhir untuk menciptakan aplikasi machine learning yang inovatif. Dengan latar belakang kuat di pengenalan ucapan, analisis dan pelaporan data, MLOps, conversational AI, dan NLP, saya mengasah keterampilan dalam mengembangkan sistem cerdas yang berdampak nyata. Selain keahlian teknis, saya juga komunikator andal yang mampu menyederhanakan konsep kompleks menjadi bahasa yang jelas dan ringkas. Karena itu, saya menjadi blogger yang dicari di bidang data science, membagikan wawasan dan pengalaman kepada komunitas profesional data yang terus berkembang. Saat ini, saya berfokus pada pembuatan dan penyuntingan konten, bekerja dengan large language model untuk mengembangkan konten yang kuat dan menarik agar membantu bisnis dan individu memaksimalkan data mereka.

Topik

Kursus AI Teratas

Program

Pengembangan Aplikasi Kecerdasan Buatan

21 Hr
Pelajari cara membuat aplikasi yang didukung oleh kecerdasan buatan (AI) menggunakan alat pengembangan AI terbaru, termasuk OpenAI API, Hugging Face, dan LangChain.
Lihat DetailRight Arrow
Mulai Kursus
Lihat Lebih BanyakRight Arrow
Terkait

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

Lihat Lebih BanyakLihat Lebih Banyak