Program
Jadi, Anda menemukan model bahasa 7B parameter yang ingin dicoba secara lokal. Sekarang Anda menghadapi masalah: bobot FP16 saja sekitar 14 GB, sementara laptop Anda hanya memiliki 16 GB RAM.
Bahkan sebelum memperhitungkan sistem operasi, runtime inferensi, cache konteks, dan buffer sementara, model tersebut sudah mendorong batas perangkat keras Anda. Inilah tepatnya masalah yang dirancang untuk diatasi oleh GGUF.
GGUF telah menjadi salah satu format terpenting untuk menjalankan model bahasa besar berbobot terbuka secara lokal. Alih-alih membutuhkan GPU kelas enterprise atau API cloud, GGUF membuat model terkuantisasi dapat dijalankan secara praktis di laptop, desktop, mesin Apple Silicon, dan bahkan beberapa perangkat seluler atau edge.
Dalam artikel ini, saya akan memperkenalkan format GGUF dan cara kerjanya, menjelaskan bagaimana kuantisasi mengurangi ukuran model dan cara memilih tingkat kuantisasi yang tepat, dan terakhir, bagaimana memulai dengan Ollama dan llama.cpp.
Sekilas
- GGUF (GGML Unified Format) adalah format berkas biner yang mengemas bobot model, data tokenizer, metadata arsitektur, dan info kuantisasi ke dalam satu berkas portabel
- Format ini menggantikan GGML yang lebih lama pada 2023 dan kini menjadi format utama untuk mendistribusikan LLM terkuantisasi di Hugging Face
- GGUF digunakan oleh llama.cpp, Ollama, LM Studio, GPT4All, KoboldCpp, dan alat inferensi lokal lainnya
- Kuantisasi adalah fitur kunci: model 7B dalam FP16 ~14 GB; versi Q4_K_M ~4–5 GB
- Tingkat kuantisasi umum berkisar dari Q2_K (paling kecil, kualitas terendah) hingga Q8_0 (paling besar, mendekati presisi penuh) — Q4_K_M adalah titik awal standar untuk sebagian besar perangkat keras
- GGUF berjalan di CPU, Apple Silicon (Metal), GPU NVIDIA (CUDA), GPU AMD (ROCm/Vulkan), dan lainnya
- Memilih tingkat kuantisasi yang tepat berarti menyeimbangkan memori, kualitas keluaran, kecepatan inferensi, dan panjang konteks
Apa Itu GGUF?
GGUF, singkatan dari GGML Unified Format, adalah format berkas biner yang mengemas bobot model, data tokenizer, metadata arsitektur, dan informasi kuantisasi ke dalam satu berkas portabel untuk inferensi dengan runtime berbasis GGMLntimes, terutama llama.cpp.
GGUF memecahkan masalah deployment LLM. Banyak format model mengharuskan pengguna menyimpan beberapa berkas bersama, termasuk bobot model, berkas tokenizer, berkas konfigurasi, dan kode pemuatan khusus arsitektur. GGUF menyederhanakan ini dengan membuat berkas model sebagian besar dapat menjelaskan dirinya sendiri.
Sebuah berkas GGUF biasanya berisi:
- Tensor model
- Bobot terkuantisasi atau tidak terkuantisasi
- Kosakata tokenizer
- Konfigurasi tokenizer
- Metadata arsitektur model
- Pengaturan panjang konteks
- Dimensi embedding
- Jumlah head attention
- Konfigurasi RoPE
- Nama, bentuk, dan tipe data tensor
Gagasan utamanya adalah berkas tersebut mendeskripsikan dirinya sendiri. Runtime dapat memeriksa metadata, memahami arsitektur, memuat tokenizer, dan memetakan tensor tanpa bergantung pada config.json terpisah atau folder tokenizer.
Ini tidak berarti setiap berkas GGUF kompatibel secara universal dengan setiap runtime selamanya. Runtime tetap perlu mendukung arsitektur model dan tipe tensor yang digunakan dalam berkas. Namun, GGUF membuat kompatibilitas itu jauh lebih mudah dibanding format lama karena berkas membawa informasi terstruktur yang lebih lengkap.
Empat karakteristik yang mendefinisikan GGUF adalah:
- Deployment satu berkas
- Dukungan memory mapping untuk pemuatan efisien
- Metadata key-value bertipe yang dapat diperluas
- Dukungan untuk banyak tipe kuantisasi, dari format low-bit agresif hingga presisi penuh
GGUF diperkenalkan sebagai bagian dari ekosistem llama.cpp dan GGML pada 2023. Kini menjadi format utama untuk mendistribusikan LLM lokal terkuantisasi di Hugging Face.
GGUF vs. GGML
Format GGML (Georgi Gerganov Machine Learning) adalah pendahulu GGUF. Format ini penting karena membantu mewujudkan inferensi lokal pada tahap awal. Namun, ia memiliki keterbatasan praktis ketika ekosistem berkembang melampaui model LLaMA asli.
Titik nyeri GGML yang umum meliputi:
- Penanganan metadata yang kurang fleksibel
- Asumsi pemuatan yang lebih spesifik arsitektur
- Penanganan tokenizer dan konfigurasi yang kurang mandiri
- Ekstensibilitas yang lebih sulit saat keluarga model baru muncul
GGUF mengatasi keterbatasan tersebut dengan format yang lebih terstruktur. Ia memperkenalkan metadata bertipe, embedding tokenizer yang lebih baik, dan tata letak berkas yang lebih jelas. Ini memudahkan llama.cpp dan alat terkait untuk mendukung lebih banyak arsitektur tanpa terus-menerus mendesain ulang pipeline pemuatan.
Bagi pengguna, perbedaan pentingnya sederhana: GGUF adalah format modern. Jika Anda mengunduh model saat ini, hampir selalu pilih GGUF alih-alih berkas GGML yang lebih lama.
GGUF vs. GPTQ dan AWQ
Dalam riset Anda tentang format berkas, Anda pasti menemukan GGUF, GPTQ (Generative Post-Training Quantization), dan AWQ (Activation-Aware Weight Quantization). Saya sering melihatnya dibahas bersama karena ketiganya digunakan untuk membuat inferensi LLM lebih efisien. Namun, ini bukan kategori yang identik.
GGUF terutama adalah format berkas dan kontainer deployment. Ia mendukung banyak tipe kuantisasi dan erat kaitannya dengan inferensi lokal gaya llama.cpp.
GPTQ dan AWQ adalah metode kuantisasi dan ekosistem yang umum digunakan untuk inferensi yang dioptimalkan GPU, khususnya pada perangkat keras NVIDIA melalui kerangka kerja seperti Transformers, ExLlama, AutoGPTQ, dan alur kerja yang kompatibel vLLM.
|
Fitur |
GGUF |
GPTQ |
AWQ |
|
Target utama |
Inferensi lokal portabel |
Inferensi GPU |
Inferensi GPU |
|
Perangkat keras umum |
CPU, Apple Silicon, NVIDIA, AMD, Vulkan, seluler |
GPU NVIDIA |
GPU NVIDIA |
|
Dukungan CPU |
Kuat |
Terbatas |
Terbatas |
|
Portabilitas |
Sangat tinggi |
Sedang |
Sedang |
|
Ekosistem tipikal |
llama.cpp, Ollama, LM Studio, GPT4All |
Transformers, ExLlama, AutoGPTQ |
Transformers, alur kerja gaya TensorRT-LLM |
|
Throughput GPU |
Baik, terutama dengan offload |
Sering kali sangat kuat |
Sering kali sangat kuat |
|
Kasus penggunaan terbaik |
Inferensi lokal dan campuran perangkat keras |
Serving GPU ber-throughput tinggi |
Serving GPU ber-throughput tinggi |
Jika tujuan Anda adalah kompatibilitas maksimum di laptop, desktop, Apple Silicon, dan perangkat keras campuran, GGUF biasanya pilihan yang lebih aman.
Jika tujuan Anda adalah throughput maksimum pada server inferensi NVIDIA khusus, GPTQ, AWQ, FP8, atau format serving lain yang dioptimalkan untuk GPU mungkin lebih tepat.
Mengapa Menggunakan GGUF?
GGUF menjadi populer karena menyelesaikan masalah deployment praktis. Saya juga mendapati format ini sangat nyaman saat melakukan deployment lokal tanpa repot pengaturan.
Menjalankan LLM lokal dulunya melibatkan tooling yang terfragmentasi, bobot tidak terkompres besar, format model yang tidak kompatibel, dan langkah pengaturan yang rumit. GGUF kini dapat membantu Anda menstandardisasi sebagian besar alur kerja tersebut.
Alih-alih memikirkan banyak berkas terpisah dan skrip pemuatan, pengguna dapat fokus memilih model yang tepat, memilih tingkat kuantisasi, dan menjalankan inferensi.
Jalankan model secara lokal
GGUF memungkinkan Anda menjalankan LLM di mesin Anda sendiri. Ini berarti:
- Tidak ada biaya API per token
- Tidak bergantung pada penyedia inferensi hosted
- Tidak perlu mengirim prompt ke API pihak ketiga
- Inferensi offline dimungkinkan setelah model diunduh
Ini sangat berguna untuk alur kerja yang sensitif terhadap privasi. Pengembang mungkin tidak ingin mengirim kode kepemilikan, dokumen internal, catatan pelanggan, atau prompt rahasia ke API eksternal.
Inferensi lokal tidak otomatis aman dengan sendirinya. Anda tetap perlu mengelola mesin, log, aplikasi, dan kontrol akses dengan baik. Namun, GGUF membuat deployment lokal yang privat jauh lebih mudah diakses.
Untuk praktik langsung menjalankan model secara lokal, lihat tutorial kami tentang menyajikan Mistral Medium 3.5 dengan SGLang, menjalankan DeepSeek V4 Flash secara lokal, menjalankan model Bonsai 1-bit yang efisien di laptop lama, dan menjalankan MiniMax M2 secara lokal sebagai asisten coding.
Fleksibilitas perangkat keras
GGUF berguna karena bekerja di banyak konfigurasi perangkat keras.
Bergantung pada runtime dan backend, model GGUF dapat berjalan di:
- Mesin hanya CPU
- GPU NVIDIA melalui CUDA
- Apple Silicon melalui Metal
- GPU AMD melalui HIP atau Vulkan
- GPU Intel melalui SYCL atau Vulkan
- Beberapa lingkungan ARM dan seluler
Fleksibilitas ini menjadi alasan utama llama.cpp berpengaruh. Ia tidak dirancang hanya untuk GPU server kelas atas. Ia dirancang untuk memungkinkan inferensi lokal di berbagai perangkat keras.
Sebagai contoh, pengguna Mac dapat mengandalkan akselerasi Metal, sementara pengguna desktop Linux dapat menggunakan CUDA atau Vulkan. Pengguna hanya CPU masih dapat menjalankan model terkuantisasi yang lebih kecil, meskipun kecepatan generasi akan lebih lambat.
Dukungan ekosistem yang luas
GGUF didukung oleh banyak alat inferensi lokal. Contohnya meliputi:
- llama.cpp untuk inferensi command-line dan server
- Ollama untuk manajemen model berbasis CLI dan akses API
- LM Studio untuk GUI desktop
- GPT4All untuk percakapan lokal yang berfokus pada privasi
- KoboldCpp untuk roleplay lokal dan alur kerja generasi teks
- Jan dan Open WebUI untuk antarmuka AI lokal
Ini penting karena pengguna tidak terkunci pada satu antarmuka. Format model yang sama secara umum dapat digunakan di berbagai alur kerja.
Seorang pengembang mungkin melakukan benchmark model dengan llama.cpp, mengobrol dengannya di LM Studio, menyajikannya melalui Ollama, dan menghubungkannya ke UI peramban melalui Open WebUI.
Distribusi di Hugging Face
Hugging Face telah menjadi hub distribusi utama untuk model GGUF.

Sumber: Hugging Face
Banyak model open-weight populer menerima varian GGUF yang diunggah komunitas segera setelah rilis. Repositori ini sering menyertakan beberapa opsi kuantisasi sehingga pengguna dapat memilih model yang sesuai dengan perangkat keras mereka.
Varian unggahan yang umum mencakup:
- Q4_K_M
- Q5_K_M
- Q6_K
- Q8_0
- IQ4_XS
- IQ3_M
- IQ2_XXS
Ini berarti konversi manual sering kali tidak diperlukan. Untuk model paling populer, seseorang di komunitas biasanya sudah membuat berkas GGUF untuk tingkat kuantisasi umum.
Kontrol granular ukuran-kualitas
GGUF memberi pengguna kontrol halus atas kompromi ukuran-kualitas. Anda dapat memilih:
- Kuantisasi lebih kecil untuk mesin dengan memori rendah
- Kuantisasi menengah untuk penggunaan harian yang seimbang
- Kuantisasi bit lebih tinggi untuk coding, penalaran, atau keluaran terstruktur
- Presisi penuh atau mendekati penuh saat memori tidak menjadi kendala
Fleksibilitas ini adalah salah satu keunggulan terbesar format ini. Alih-alih satu target deployment tetap, GGUF memungkinkan pengguna menyesuaikan keluarga model yang sama ke banyak kelas perangkat keras.
Bagaimana GGUF Bekerja?
Sebuah berkas GGUF diorganisasi menjadi tiga bagian utama:
- Header
- Metadata dan informasi tensor
- Data tensor
Struktur tepatnya ditentukan oleh spesifikasi GGUF. Gagasan pentingnya adalah metadata dan informasi tensor muncul sebelum data tensor mentah, memungkinkan runtime memahami apa yang akan dimuat.
Header
Header mengidentifikasi berkas sebagai GGUF dan memberi tahu runtime cara mengurai sisa berkas. Ini mencakup:
- Magic number untuk GGUF
- Versi format
- Jumlah tensor
- Jumlah pasangan key-value metadata
Berkas GGUF modern umumnya menggunakan GGUF versi 3.
Mesin inferensi memeriksa magic number terlebih dahulu. Jika berkas tidak dimulai dengan pengenal GGUF yang diharapkan, runtime dapat menolaknya sebelum mencoba mengurai tensor atau mengalokasikan memori.
Ini adalah langkah keamanan dan keandalan yang sederhana namun penting. Ini mencegah runtime secara tidak sengaja memperlakukan berkas biner yang tidak terkait sebagai model.
Pasangan key-value metadata
Metadata GGUF adalah penyimpanan key-value bertipe. Metadata ini dapat mendeskripsikan:
- Informasi umum model
- Keluarga arsitektur
- Panjang konteks
- Ukuran embedding
- Jumlah layer
- Jumlah attention head
- Parameter RoPE
- Kosakata tokenizer
- Token khusus
- Informasi kuantisasi
Key biasanya menggunakan namespace. Contohnya meliputi:
general.architecturegeneral.alignmentllama.context_lengthtokenizer.ggml.tokens
Penamaan namespace penting karena memungkinkan GGUF mendukung banyak arsitektur tanpa mengubah seluruh format berkas. Model keluarga LLaMA dapat menggunakan key llama.*, sementara keluarga model lain dapat menggunakan metadata khusus arsitekturnya sendiri.
Ini salah satu alasan GGUF dapat beradaptasi dengan baik untuk model di luar keluarga LLaMA asli, termasuk arsitektur seperti Qwen, Mistral, Gemma, DeepSeek, Phi, dan lainnya.
Informasi tensor dan data tensor
Setelah metadata, berkas menyimpan informasi tensor dan data tensor.
Informasi tensor menjelaskan:
- Nama tensor
- Bentuk
- Tipe data
- Offset ke bagian data tensor
Bagian data tensor berisi bobot model yang sebenarnya. Bobot ini dapat disimpan dalam presisi penuh atau dalam salah satu tipe tensor terkuantisasi yang didukung GGUF.
GGUF menggunakan nilai alignment yang didefinisikan dalam metadata, umumnya general.alignment. Banyak berkas GGUF menggunakan alignment 32-byte, namun cara yang benar untuk menjelaskannya adalah alignment dikendalikan oleh metadata alih-alih dikodekan secara permanen.
Alignment penting karena memungkinkan runtime mengakses blok tensor secara efisien.
Memory mapping
Salah satu keunggulan praktis GGUF adalah memory mapping, yang sering disebut mmap.
Dengan memory mapping, sistem operasi dapat memetakan berkas model ke memori virtual alih-alih memaksa runtime menyalin seluruh berkas ke RAM di awal.
Ini dapat membuat waktu mulai model terasa jauh lebih cepat, terutama di SSD. Ini juga memungkinkan sistem operasi melakukan paging data model sesuai kebutuhan.
Namun, memory mapping bukanlah sihir. Model tetap membutuhkan bandwidth memori dan RAM atau VRAM yang cukup agar berjalan baik. Jika sistem Anda terus-menerus melakukan paging dari disk, inferensi bisa menjadi lambat.
Cara yang lebih baik untuk memikirkan mmap adalah:
- Meningkatkan efisiensi pemuatan
- Mengurangi penyalinan yang tidak perlu
- Membiarkan OS mengelola paging
- Tidak menghilangkan kebutuhan memori untuk inferensi
Memahami Tipe Kuantisasi GGUF
Kuantisasi mengompresi bobot model ke representasi presisi lebih rendah.
Alih-alih menyimpan setiap bobot sebagai nilai floating point 16-bit, model terkuantisasi menyimpan nilai perkiraan menggunakan bit yang lebih sedikit. Ini mengurangi ukuran disk, penggunaan RAM dan VRAM, serta tekanan bandwidth memori.
Wawasan kuncinya adalah banyak bobot jaringan saraf tidak membutuhkan presisi floating point penuh saat inferensi. Model yang dikuantisasi dengan cermat dapat mempertahankan banyak perilaku model asli sambil menjadi jauh lebih kecil.
Penamaan kuantisasi GGUF
Nama kuantisasi GGUF biasanya mengikuti pola ini:
- Q berarti terkuantisasi
- Angka menunjukkan perkiraan bit per bobot
- K mengacu pada keluarga k-quant
- S, M, dan L biasanya berarti varian kecil, sedang, dan besar
Contohnya meliputi:
- Q4_K_M
- Q5_K_M
- Q6_K
- Q8_0
Nama tersebut berguna sebagai panduan, tetapi tidak selalu merupakan pernyataan tepat tentang total ukuran berkas. Ukuran berkas nyata bergantung pada campuran tensor, arsitektur, metadata, ukuran tokenizer, dan apakah beberapa tensor tetap pada presisi lebih tinggi.
Tipe kuantisasi GGUF yang umum
|
Kuantisasi |
Perilaku perkiraan |
Perkiraan ukuran berkas 7B |
Catatan kualitas |
|
Q2_K |
Kuantisasi bit sangat rendah |
Sekitar 2,5–3 GB |
Kecil, tetapi penurunan kualitas sering terasa jelas |
|
Q3_K_M |
Kuantisasi seimbang bit rendah |
Sekitar 3,5–4 GB |
Layak untuk chat ringan, namun kurang ideal untuk penalaran |
|
Q4_K_M |
Kuantisasi 4-bit yang seimbang |
Sekitar 4–5 GB |
Default yang kuat bagi sebagian besar pengguna lokal |
|
Q5_K_M |
Kuantisasi 5-bit berkualitas lebih tinggi |
Sekitar 5,5–6,5 GB |
Lebih baik untuk coding, penalaran, dan tugas terstruktur |
|
Q6_K |
Kuantisasi berkualitas tinggi |
Sekitar 7–8 GB |
Sering mendekati perilaku presisi lebih tinggi |
|
Q8_0 |
Kuantisasi 8-bit |
Sekitar 8–9 GB |
Kualitas tinggi, namun jauh lebih besar daripada Q4/Q5 |
Angka-angka ini merupakan perkiraan untuk model dense kelas 7B. Arsitektur yang lebih baru, model mixture-of-experts, tokenizer yang lebih besar, dan tata letak tensor yang berbeda dapat mengubah ukuran berkas sebenarnya.
Dalam praktiknya, Q4_K_M menjadi default populer karena memberikan keseimbangan kuat antara ukuran dan kualitas. Banyak pengguna menganggapnya sudah cukup baik untuk chat umum, peringkasan, penulisan ulang, dan kerja AI lokal eksploratif.
Q5_K_M dan Q6_K sering menjadi pilihan yang lebih baik untuk beban kerja yang lebih menuntut, seperti coding atau mengikuti instruksi multi-langkah
Alasannya sederhana: tugas-tugas ini lebih sensitif terhadap sedikit degradasi kualitas.
K-quant vs. I-quant
K-quant adalah keluarga kuantisasi yang banyak digunakan di balik format seperti Q4_K_M, Q5_K_M, dan Q6_K.
Mereka menggunakan skema kuantisasi berkelompok dengan informasi penskalaan yang membantu mempertahankan perilaku model sambil mengurangi kebutuhan memori. Mereka populer karena andal, didukung luas, dan mudah ditemukan dalam rilis GGUF komunitas.
I-quant, yang sering ditulis sebagai format IQ, adalah tipe kuantisasi yang lebih baru seperti:
- IQ4_XS
- IQ3_M
- IQ2_XXS
- IQ1_S
I-quant dirancang untuk mencapai kualitas lebih baik pada ukuran yang sangat kecil. Mereka dapat menggunakan teknik seperti kuantisasi sadar-importance dan codebook kuantisasi non-linear. Beberapa alur kerja menggunakan matriks importance, sering disebut imatrix, untuk membantu mempertahankan bobot yang lebih penting selama kuantisasi.

Komprominya adalah kompleksitas. I-quant dapat menghasilkan hasil ukuran-kualitas yang sangat baik, terutama pada bitrate yang sangat rendah, namun mungkin memerlukan alur kerja kuantisasi dan dukungan runtime yang lebih cermat.
Untuk sebagian besar pemula, K-quant tetap menjadi titik awal termudah.
Memilih tingkat kuantisasi untuk perangkat keras Anda
Tabel berikut memberikan titik awal praktis. Anggap ini sebagai patokan umum, bukan jaminan ketat. Panjang konteks, overhead sistem operasi, offloading GPU, ukuran cache KV, dan arsitektur model tertentu semuanya dapat mengubah kebutuhan memori.
|
Tingkat perangkat keras |
Model 7B/8B |
Model 13B/14B |
Model 30B/34B |
Model kelas 70B |
|
8 GB RAM/VRAM |
Q4_K_M atau lebih kecil |
Q2_K/Q3_K mungkin berjalan lambat |
Tidak praktis |
Tidak praktis |
|
16 GB RAM/VRAM |
Q5_K_M atau Q6_K |
Q4_K_M |
Tidak praktis atau sangat terbatas |
Tidak praktis |
|
24 GB RAM/VRAM |
Q8_0 atau Q6_K |
Q5_K_M/Q6_K |
Q3_K/Q4_K dengan batasan |
Tidak praktis bagi sebagian besar pengguna |
|
32 GB RAM/VRAM |
Q8_0 |
Q6_K/Q8_0 |
Q4_K_M/Q5_K_M |
Q2_K/Q3_K hanya untuk eksperimen |
|
48 GB+ RAM/VRAM |
Q8_0 atau FP16/BF16 jika didukung |
Q8_0 |
Q5_K_M/Q6_K |
Q4_K_M mungkin dilakukan dengan batasan |
|
64 GB+ RAM/VRAM |
Presisi tinggi |
Presisi tinggi |
Q6_K/Q8_0 |
Q4_K_M/Q5_K_M lebih praktis |
Patokan umum:
- Gunakan Q4_K_M sebagai default aman untuk sebagian besar inferensi lokal.
- Gunakan Q5_K_M ketika kualitas lebih penting daripada menghemat setiap gigabita.
- Gunakan Q6_K atau Q8_0 saat memori tersedia, dan Anda menginginkan fidelitas lebih baik.
- Hindari Q2_K untuk pekerjaan serius kecuali Anda menguji skenario dengan memori sangat terbatas.
- Sisakan memori ekstra untuk cache KV, terutama saat menggunakan jendela konteks panjang.
Cache KV mudah diabaikan. Sebuah model mungkin muat ke dalam RAM pada panjang konteks pendek tetapi gagal atau melambat pada panjang konteks yang jauh lebih panjang karena cache bertambah seiring panjang sekuens.
Ekosistem GGUF
Adopsi GGUF didorong oleh tooling sama besarnya dengan format itu sendiri.
Sebuah format baru menjadi berguna ketika pengguna dapat dengan mudah mengunduh, menjalankan, memeriksa, mengonversi, dan menyajikan model. GGUF mendapat manfaat dari ekosistem yang kuat di alat command-line, aplikasi desktop, API, dan repositori model hosted.
1. llama.cpp
llama.cpp adalah runtime GGUF yang asli dan terpenting. Ini adalah mesin inferensi C/C++ ringan yang dibuat oleh Georgi Gerganov dan dipelihara oleh komunitas GGML. Tujuan utamanya adalah memungkinkan inferensi LLM yang efisien dengan pengaturan minimal di banyak platform perangkat keras.
llama.cpp modern mendukung banyak backend, termasuk:
- CPU
- CUDA untuk GPU NVIDIA
- Metal untuk perangkat Apple
- Vulkan
- HIP untuk GPU AMD melalui ROCm
- SYCL untuk GPU Intel
- OpenCL di lingkungan tertentu
- Backend khusus lain seperti CANN, OpenVINO, dan WebGPU, bergantung pada dukungan platform
Ini juga menyertakan alat untuk konversi, kuantisasi, serving, benchmarking, dan inferensi command-line. Alat umum meliputi:
convert_hf_to_gguf.pyllama-quantizellama-clillama-serverllama-bench
Perintah untuk membuat build CMake CPU dasar adalah:
cmake -B build
cmake --build build --config Release
Untuk beberapa konfigurasi, flag tertentu perlu ditambahkan ke perintah pertama dari dua perintah tersebut:
- Nonaktifkan Apple Metal di macOS (diaktifkan secara default):
-DGGML_METAL=OFF - Build Vulkan:
-DGGML_VULKAN=1 - Build CUDA untuk GPU NVIDIA:
-DGGML_CUDA=ON
Perlu diperhatikan bahwa build saat ini menggunakan opsi CMake GGML_* seperti GGML_CUDA, GGML_VULKAN, dan GGML_HIP.
2. Ollama
Ollama adalah salah satu cara termudah untuk menjalankan model lokal. Ia menyediakan:
- CLI yang sederhana
- Penarikan dan manajemen model
- REST API lokal
- Library resmi Python dan JavaScript
- Integrasi dengan banyak frontend AI lokal
Ollama menyimpan dan mengelola model untuk Anda, sehingga pengguna biasanya tidak berinteraksi langsung dengan berkas .gguf. Namun, Ollama dibangun di sekitar inferensi lokal yang kompatibel dengan llama.cpp dan juga dapat mengimpor berkas GGUF melalui alur kerja Modelfile.
Ollama mengekspose API lokal di:
http://localhost:11434/api
Dua endpoint yang sering digunakan adalah:
/api/generateuntuk penyelesaian prompt/api/chatuntuk pesan bergaya chat
Bagi pemula, Ollama sering menjadi jalur tercepat dari nol hingga inferensi lokal.
3. LM Studio

Sumber: LM Studio
LM Studio adalah aplikasi desktop untuk menemukan, mengunduh, dan mengobrol dengan model lokal. Ini berguna bagi pengguna yang lebih memilih antarmuka grafis daripada alat command-line.
4. GPT4All

Sumber: GPT4All
GPT4All adalah aplikasi AI lokal lintas platform lain yang berfokus pada alur kerja chatbot lokal yang privat. Ia mendukung model GGUF dan menyediakan lingkungan yang ramah pemula untuk inferensi lokal.
Alat-alat ini membuat GGUF dapat diakses oleh non-spesialis. Pengguna tidak perlu memahami CMake, tata letak tensor, atau internal kuantisasi hanya untuk mencoba model lokal.
Cara Memulai dengan Model GGUF
Ada dua cara praktis untuk memulai:
- Gunakan Ollama untuk pengalaman yang paling sederhana.
- Gunakan llama.cpp secara langsung untuk kendali lebih.
Menjalankan model dengan Ollama
Alur kerja paling sederhana adalah mengunduh model dan memulai sesi chat interaktif:
ollama pull llama3.3
ollama run llama3.3
Untuk memanggil model dari Python menggunakan REST API:
import requests
payload = {
"model": "llama3.3",
"prompt": "Give me three practical use cases for GGUF.",
"stream": False
}
response = requests.post(
"http://localhost:11434/api/generate",
json=payload
)
print(response.json()["response"])
Untuk aplikasi bergaya chat, gunakan /api/chat:
import requests
payload = {
"model": "llama3.3",
"messages": [
{"role": "user", "content": "What is GGUF used for?"}
],
"stream": False
}
response = requests.post(
"http://localhost:11434/api/chat",
json=payload
)
print(response.json()["message"]["content"])
Field stream: false penting untuk skrip sederhana. Tanpanya, Ollama mengembalikan stream objek JSON alih-alih satu respons JSON final.
Anda juga bisa menggunakan library resmi Python Ollama:
from ollama import chat
response = chat(
model="llama3.3",
messages=[
{"role": "user", "content": "Explain GGUF quantization simply."}
]
)
print(response.message.content)
Menjalankan berkas GGUF dengan llama.cpp
Jika Anda sudah memiliki berkas .gguf, Anda dapat menjalankannya langsung dengan llama.cpp setelah membangun proyek.
Contoh:
./build/bin/llama-cli \
-m models/model.Q4_K_M.gguf \
-p "Explain the difference between GGUF and GPTQ." \
-n 256
Jika Anda mengaktifkan dukungan GPU, Anda dapat melakukan offload layer ke GPU:
./build/bin/llama-cli \
-m models/model.Q4_K_M.gguf \
-p "Summarize GGUF in five bullet points." \
-n 256 \
-ngl 99
Flag -ngl mengontrol jumlah layer yang di-offload ke GPU. Nilai tinggi seperti 99 umum digunakan untuk meng-offload sebanyak mungkin, dengan asumsi model muat di VRAM.
Untuk serving API, gunakan llama-server:
./build/bin/llama-server \
-m models/model.Q4_K_M.gguf \
-ngl 99 \
--host 127.0.0.1 \
--port 8080
Ini memberi Anda antarmuka server lokal untuk mengintegrasikan llama.cpp ke dalam aplikasi.
Mengonversi model Hugging Face ke GGUF
Sebagian besar pengguna tidak perlu mengonversi model secara manual karena rilis GGUF dari komunitas tersedia luas.
Namun, konversi manual berguna ketika:
- Anda melakukan fine-tune model sendiri
- Belum ada versi GGUF
- Anda ingin mengendalikan proses kuantisasi sendiri
- Anda membutuhkan tipe kuantisasi tertentu
Alur kerja tipikal adalah:
- Unduh model Hugging Face.
- Konversi ke GGUF.
- Kuantisasi berkas GGUF.
Contoh:
huggingface-cli download mistralai/Mistral-7B-Instruct-v0.3 \
--local-dir mistral-7b
Lalu konversi ke GGUF:
python convert_hf_to_gguf.py mistral-7b \
--outfile mistral-f16.gguf \
--outtype f16
Lalu kuantisasi:
./build/bin/llama-quantize \
mistral-f16.gguf \
mistral-q4_k_m.gguf \
Q4_K_M
Dalam alur kerja llama.cpp saat ini, convert_hf_to_gguf.py dan llama-quantize adalah alat yang relevan. Tutorial lama mungkin merujuk skrip konversi yang sudah usang atau nama biner yang lebih lama.
Kelebihan dan Keterbatasan Format GGUF
GGUF dioptimalkan untuk inferensi lokal yang praktis. Ini bukan pengganti universal untuk setiap format model atau tumpukan serving.
|
Kelebihan |
Keterbatasan |
|
Deployment model satu berkas |
Tidak dirancang untuk pelatihan dari nol |
|
Ekosistem inferensi lokal yang kuat |
Kuantisasi bit sangat rendah dapat menurunkan kualitas |
|
Bekerja di banyak backend perangkat keras |
Model besar tetap membutuhkan memori signifikan |
|
Mendukung memory mapping |
Throughput GPU mungkin lebih rendah dibanding tumpukan serving GPU khusus |
|
Banyak pilihan kuantisasi |
Runtime tetap harus mendukung arsitektur model dan tipe tensor |
|
Distribusi mudah di Hugging Face |
Panjang konteks dapat meningkatkan penggunaan memori melalui cache KV |
Untuk inferensi yang berfokus pada CPU, Apple Silicon, perangkat keras campuran, dan privasi, GGUF sering menjadi pilihan yang sangat baik.
Untuk deployment server NVIDIA ber-throughput tinggi, format dan engine lain mungkin lebih cepat bergantung pada model, ukuran batch, metode kuantisasi, dan kerangka serving.
Penutup
GGUF membuat inferensi LLM lokal menjadi praktis dengan mengemas semua yang dibutuhkan runtime (bobot, tokenizer, metadata, info kuantisasi) ke dalam satu berkas portabel. Kekuatan sesungguhnya ada pada ekosistem di sekitarnya: llama.cpp, Ollama, LM Studio, dan Hugging Face semuanya menjadikannya format default untuk deployment AI lokal.
Bagi sebagian besar pengguna, jalurnya sederhana: instal Ollama, tarik model, dan jalankan. Q4_K_M adalah default yang solid; naikkan ke Q5_K_M atau Q6_K saat Anda membutuhkan keluaran penalaran atau coding yang lebih baik dan memiliki memori yang cukup.
Jika Anda ingin menggali lebih dalam tentang deployment LLM, optimasi model, dan alur kerja inferensi lokal, Anda sebaiknya mengeksplorasi jalur karier Associate AI Engineer for Data Scientists atau Associate AI Engineer for Developers.
FAQ Format GGUF
Apa kepanjangan GGUF?
GGUF adalah singkatan dari GGML Unified Format. Ini adalah format berkas biner yang dirancang untuk menyimpan dan menjalankan model bahasa besar secara lokal. GGUF mengemas tensor, data tokenizer, metadata, dan informasi arsitektur ke dalam satu berkas portabel, membuat deployment lokal jauh lebih sederhana dibanding alur kerja multi-berkas yang lama.
Apakah GGUF lebih baik daripada GPTQ atau AWQ?
GGUF tidak selalu “lebih baik” daripada GPTQ atau AWQ di setiap skenario. GGUF dioptimalkan untuk portabilitas dan kompatibilitas perangkat keras yang luas, khususnya untuk inferensi CPU, Apple Silicon, dan perangkat keras campuran melalui alat seperti llama.cpp dan Ollama. GPTQ dan AWQ biasanya lebih dioptimalkan untuk inferensi GPU NVIDIA ber-throughput tinggi di lingkungan server.
Kuantisasi GGUF mana yang sebaiknya digunakan pemula?
Bagi sebagian besar pengguna, Q4_K_M adalah titik awal yang paling aman. Ini menawarkan keseimbangan kuat antara kualitas model, penggunaan RAM, dan kecepatan inferensi. Pengguna dengan lebih banyak memori yang menginginkan performa penalaran atau coding lebih baik mungkin memilih Q5_K_M atau Q6_K, sementara format bit lebih rendah seperti Q2_K biasanya hanya cocok untuk eksperimen.
Apakah model GGUF dapat berjalan tanpa GPU?
Ya. Salah satu keunggulan terbesar GGUF adalah dukungan CPU yang kuat. Alat seperti llama.cpp dapat menjalankan model GGUF sepenuhnya di CPU, meskipun kecepatan inferensi biasanya lebih lambat daripada akselerasi GPU. Model terkuantisasi yang lebih kecil, seperti varian 7B atau 8B Q4_K_M, sering kali praktis di CPU konsumen modern.
Apakah saya perlu mengonversi model menjadi GGUF secara manual?
Biasanya tidak. Sebagian besar model open-weight populer sudah memiliki versi GGUF yang diunggah komunitas di Hugging Face. Konversi manual terutama berguna jika Anda melakukan fine-tune model sendiri, membutuhkan tipe kuantisasi tertentu, atau menginginkan kendali lebih ketat atas proses konversi dan kuantisasi menggunakan llama.cpp.
Saya Austin, seorang blogger dan penulis teknologi dengan pengalaman bertahun-tahun sebagai data scientist dan analis data di bidang kesehatan. Memulai perjalanan teknologi dengan latar belakang biologi, kini saya membantu orang lain melakukan transisi yang sama melalui blog teknologi saya. Ketertarikan saya pada teknologi mendorong kontribusi tulisan saya untuk puluhan perusahaan SaaS, menginspirasi orang lain dan membagikan pengalaman saya.
