list_altİçindekilerexpand_more
- 01Quantization Format Seçimi Neden Önemli?
- 02GGUF: CPU-First, Evrensel Uyumluluk
- 03GGUF Nasıl Çalışır?
- 04GGUF Avantajları ve Dezavantajları
- 05GPTQ: GPU Hızı İçin Optimize
- 06GPTQ Nasıl Çalışır?
- 07GPTQ Avantajları ve Dezavantajları
- 08AWQ: Hafıza-Verimli Yeni Nesil Format
- 09AWQ Nasıl Çalışır?
- 10AWQ Avantajları ve Dezavantajları
- 11GGUF vs GPTQ vs AWQ: Karşılaştırma Tablosu
- 12Kullanım Senaryosuna Göre Hangisi?
- 13Pratik: Modeli Nereden Bulup Nasıl Çalıştırırsınız?
HuggingFace’te bir modelin sayfasını açtığınızda dosya listesinde üç farklı etiket görmek sıradan bir durum: model-Q4_K_M.gguf, model-gptq-4bit, model-awq. Hangisini indireceğinize karar vermek için üçünü de az çok anlıyor olmak gerek.
Bu üç format, quantization tekniğinin farklı uygulamaları. Temel amaç aynı: model ağırlıklarını düşük bit hassasiyetine indirerek hem dosya boyutunu küçültmek hem de çalışma sırasındaki bellek ihtiyacını azaltmak. Farkları ise nerede çalıştıkları, nasıl optimize edildikleri ve hangi araç zincirleriyle uyumlu oldukları.
Quantization’ın temel mantığına dair daha geniş bir giriş için Quantization Nedir? GGUF, GPTQ, AWQ ve INT4 Rehberi adlı makaleye bakabilirsiniz. Bu yazıda ise üç formatın doğrudan karşılaştırmasına ve hangi senaryoda hangisinin daha mantıklı olduğuna odaklanıyoruz.
Üç format arasındaki fark giderek daha pratik bir öneme taşınıyor. 2025 sonunda model ekosistemi büyüdükçe, özellikle 8B ile 70B parametre arasındaki modellerde tüm üç format için hazır ağırlıklar bulmak kolaylaştı. Bu durum seçim kararını teknik bilgiden çok kullanım senaryosu tercihine kaydırdı.
Quantization Format Seçimi Neden Önemli?
Format seçimi sadece teknik bir tercih değil; doğrudan kurulum kolaylığını, hangi donanımın yeterli olduğunu ve hangi araçları kullanabileceğinizi belirliyor.
Yanlış format seçimi somut sorunlara yol açar. GPU olmayan bir makinede GPTQ modeli indirirseniz çalıştıramazsınız. GGUF olmayan bir modeli Ollama’ya verirseniz hata alırsınız. Büyük bir GPU’nuz varsa ama AWQ yerine GGUF tercih ettiyseniz bellek kullanımınız daha yüksek olur ve token hızınız düşer.
Üç soruya verdiğiniz yanıt genellikle seçimi belirler:
- Elinizdeki donanım nedir? (CPU, tek GPU, çoklu GPU)
- Hangi araçları kullanıyorsunuz? (Ollama, vLLM, TGI, LM Studio)
- Hız mı, kalite mi, yoksa kurulum kolaylığı mı önceliğiniz?
Bu soruların yanıtları çoğunlukla birbirini kısıtlıyor. Örneğin Ollama kullanmak istiyorsanız GGUF dışında seçeneğiniz yok. Tek bir tüketici GPU’nuzda en yüksek token hızını istiyorsanız AWQ öne çıkıyor. Kurulumu basit tutmak ve ekstra bağımlılık yüklemek istemiyorsanız yine GGUF mantıklı. Yani önce kısıtları belirlemek, ardından kalan seçenekler arasında karar vermek genellikle süreci hızlandırıyor.
GGUF: CPU-First, Evrensel Uyumluluk
GGUF Nasıl Çalışır?
GGUF, Georgi Gerganov tarafından llama.cpp projesi için geliştirilen bir dosya formatı. Önceki GGML formatının yerini aldı ve bugün llama.cpp ekosisteminin standart formatı haline geldi.
Model ağırlıkları, tokenizer verileri, mimari bilgileri ve metadata tek bir dosyada duruyor. Çalışma zamanında fazladan dosya yönetimi yok.
Quantization çeşitliliği açısından GGUF diğer iki formattan öne çıkıyor. Q2 ile Q8 arasında ondan fazla farklı quantization seviyesi var. K_S, K_M, K_L ekleri aynı bit derinliğinde farklı ağırlık dağılım stratejilerini gösteriyor. K_M genellikle kalite ve boyut dengesi için en çok tavsiye edilen seçenek; indirmeden önce cihazınızın ne kadar RAM kaldırabileceğini kontrol etmek iyi bir alışkanlık.
Belki en kritik özelliği CPU üzerinde sorunsuz çalışması. GPU olmayan bir ortamda modeli çalıştırmak istiyorsanız gerçekten kullanılabilir seçenek GGUF’tan geçiyor. Üstelik llama.cpp, CUDA ve Metal aracılığıyla GPU’ya da offload yapabiliyor; bazı katmanları GPU’ya, geri kalanını RAM’e yazıyor. Bu “karma mod”, GPU VRAM’inin modelin tamamını tutmaya yetmediği durumlarda hayat kurtarıcı.
GGUF Avantajları ve Dezavantajları
Avantajlar:
- CPU desteği gerçek ve performanslı, GPU zorunluluğu yok
- Ollama, LM Studio, Jan ve benzeri araçlarda doğrudan çalışıyor
- Tek dosya yapısı kurulumu basitleştiriyor
- Bit derinliği seçenekleri geniş, cihazın kapasitesine göre ayarlama yapılabiliyor
- GPU yoksa ya da yetersizse kısmi GPU offload mekanizması var
Dezavantajlar:
- Eşdeğer donanımda GPTQ ve AWQ’ya kıyasla GPU token üretim hızı daha düşük
- Üretim ortamları için (yüksek eşzamanlı istek, API sunucuları) vLLM gibi sistemlerle kullanımı sınırlı
- 4-bit Q kalitesi, dikkatli optimize edilmiş AWQ modeliyle karşılaştırıldığında hafif geride kalabiliyor
# llama.cpp ile GGUF modeli çalıştırma
./llama-cli \
-m ./Llama-3.1-8B-Instruct-Q4_K_M.gguf \
-n 512 \
--gpu-layers 35 \
-p "Merhaba, nasılsın?"
--gpu-layers parametresi kaç transformer katmanının GPU’ya gideceğini belirliyor. 0 yazarsanız tamamen CPU, modelin katman sayısını yazarsanız tamamen GPU kullanımı elde ediyorsunuz. Araç uyumluluğuna ve GGUF kurulumuna geniş çaplı bakmak isterseniz Ollama vs LM Studio vs Jan karşılaştırması iyi bir başlangıç noktası.
GPTQ: GPU Hızı İçin Optimize
GPTQ Nasıl Çalışır?
GPTQ, 2022 tarihli “GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers” makalesinden adını alıyor. Temel fikir, her katmanı bağımsız olarak quantize etmek ve Hessian matrisini kullanarak quantization hatasını en aza indirgemek.
Bu işlem GGUF’a göre çok daha hesaplama yoğun. Bir modeli GPTQ formatına dönüştürmek GPU gerektirir ve saatler sürebilir. Bu yüzden çoğu kullanıcı modeli kendisi oluşturmak yerine TheBloke veya model yazarlarının HuggingFace’e yüklediği hazır GPTQ dosyalarını indiriyor.
GPTQ’nun çalışma mantığı şöyle özetlenebilir: her ağırlık grubunu ayrı ayrı optimize ederek quantization kaynaklı çıktı hatasını minimize ediyor. Rastgele yuvarlama yapmak yerine, kalibrasyon veri kümesi hangi bitlerin atılacağını belirliyor. Bu hesaplamalı özen, sabit bit derinliğinde GGUF’a kıyasla biraz daha iyi kalite koruması anlamına gelebiliyor.
Çalışma zamanında ise durum farklı. GPTQ tamamen CUDA gerektiriyor; CPU desteği yok. AutoGPTQ ve GPTQ-for-LLaMA kütüphaneleri aracılığıyla HuggingFace Transformers ekosistemiyle çalışıyor. vLLM de GPTQ modelleri destekliyor, bu da üretim ortamlarında kullanılabilirliğini artırıyor.
GPTQ Avantajları ve Dezavantajları
Avantajlar:
- Kalibrasyon tabanlı optimizasyon ile kalite tutulumu rakiplerine yakın
- HuggingFace Transformers ekosistemiyle tam uyumlu
- vLLM ile üretim API sunucularında çalışıyor
- 3-bit ve 4-bit dahil birden fazla bit derinliği seçeneği
Dezavantajlar:
- GPU zorunluluğu var, CPU desteği yok
- AWQ’ya kıyasla bellek verimliliği biraz daha düşük
- Quantization işlemi yavaş ve kaynak yoğun
- Ollama gibi basit araçlarla doğrudan kullanılmıyor
# vLLM ile GPTQ modeli servis etme
from vllm import LLM, SamplingParams
llm = LLM(
model="TheBloke/Llama-2-13B-chat-GPTQ",
quantization="gptq",
dtype="float16"
)
params = SamplingParams(temperature=0.7, max_tokens=256)
outputs = llm.generate(["Türkçe bir şiir yaz:"], params)
print(outputs[0].outputs[0].text)
vLLM ve inference motorlarına daha geniş bir bakış için vLLM Nedir? Açık Kaynak LLM Çıkarım Motoru makalesine göz atabilirsiniz.
AWQ: Hafıza-Verimli Yeni Nesil Format
AWQ Nasıl Çalışır?
AWQ, “Activation-Aware Weight Quantization” ifadesinin kısaltması. MIT’den araştırmacıların 2023’te yayımladığı çalışmadan çıktı. GPTQ’nun Hessian tabanlı yaklaşımından farklı bir strateji izliyor: tüm ağırlıkları eşit önemde saymak yerine, aktivasyon kalıplarına bakarak hangi ağırlıkların “daha kritik” olduğunu belirliyor.
Basit bir gözlemden yola çıkıyor: bir modeldeki ağırlıkların yalnızca küçük bir kısmı aktivasyon büyüklüğü açısından önemli. Bu kritik ağırlıklar korunursa, geri kalanlar agresif biçimde quantize edilse bile model performansı büyük ölçüde korunuyor. AWQ bu yüzden kalibrasyon veri kümesine bağımlı olmadan iyi kalite tutulumu elde edebiliyor.
Uygulamada AutoAWQ kütüphanesi kullanılıyor. Dönüştürme süreci GPTQ’dan belirgin biçimde daha hızlı. Bellek kullanımı açısından da rakiplerine göre avantajlı; aynı bit derinliğinde GPTQ’ya kıyasla genellikle daha az GPU belleği gerektiriyor. Bu fark büyük modellerde (34B, 70B) daha belirgin hale geliyor.
AWQ Avantajları ve Dezavantajları
Avantajlar:
- Bellek verimliliği açısından GPTQ’dan üstün, özellikle büyük modellerde
- Dönüştürme süreci daha hızlı
- vLLM, TGI ve LMDeploy gibi modern inference motorlarında native destek
- Kalibrasyon veri kümesine daha az bağımlı
- 4-bit modelde pratikte GPTQ’ya yakın veya eşdeğer kalite
Dezavantajlar:
- CPU desteği yok, GPU zorunluluğu var
- GGUF ekosistemiyle (Ollama, LM Studio) doğrudan çalışmıyor
- Hazır model sayısı GGUF ile kıyaslandığında hala daha az (ancak fark kapanıyor)
# vLLM ile AWQ modeli servis etme
from vllm import LLM, SamplingParams
llm = LLM(
model="casperhansen/llama-3-8b-instruct-awq",
quantization="awq",
dtype="float16",
gpu_memory_utilization=0.85
)
params = SamplingParams(temperature=0.8, max_tokens=512)
outputs = llm.generate(["Python'da basit bir web scraper yaz:"], params)
print(outputs[0].outputs[0].text)
GGUF vs GPTQ vs AWQ: Karşılaştırma Tablosu
| Özellik | GGUF | GPTQ | AWQ |
|---|---|---|---|
| Bit Derinliği | Q2–Q8 (çoklu seçenek) | 3-bit, 4-bit, 8-bit | 4-bit (yaygın), 8-bit |
| CPU Desteği | Evet, native | Hayır | Hayır |
| GPU Gereksinimi | İsteğe bağlı (offload) | Zorunlu (CUDA) | Zorunlu (CUDA) |
| Araç Uyumluluğu | Ollama, LM Studio, Jan, llama.cpp | vLLM, TGI, HF Transformers | vLLM, TGI, LMDeploy, AutoAWQ |
| Inference Hızı (GPU) | Orta¹ | Yüksek² | Yüksek, bellek verimli² |
| RAM/VRAM Gereksinimi | Değişken (Q seviyesine göre) | Orta | Düşük (GPTQ’ya göre ~%10–15 az)³ |
| Dönüştürme Süresi | Hızlı | Yavaş | Orta |
| Üretim Kullanımı | Sınırlı | Evet | Evet |
| Model Bulunabilirliği | Çok geniş | Geniş | Genişliyor |
¹ Karşılaştırma için bkz. llama.cpp benchmark sayfası
² vLLM performans ölçümleri için bkz. vLLM belgeleri
³ AWQ bellek tasarrufu verileri için bkz. AWQ paper
Kullanım Senaryosuna Göre Hangisi?
GPU’nuz yoksa veya dizüstü bilgisayarınızda çalıştırıyorsanız: GGUF. Başka seçenek yok. Q4_K_M veya Q5_K_M iyi bir başlangıç noktası.
Ev kullanıcısı, tek GPU (8–24 GB VRAM), hız öncelikli: AWQ veya GPTQ. Eğer modeliniz için AWQ versiyonu mevcutsa tercih edin; bellek kullanımı daha düşük, hız ise benzer. GPTQ da iyi bir seçenek; özellikle araç zinciriniz AutoGPTQ tabanlıysa.
Üretim ortamı, API sunucusu, yüksek eşzamanlı istek: AWQ + vLLM kombinasyonu bugün için en çok tercih edilen yapı. GPTQ + vLLM da geçerli ama AWQ’nun bellek avantajı aynı donanımdan daha fazla throughput almanızı sağlıyor.
Birden fazla GPU, büyük model (70B+): AWQ belleği daha verimli kullandığından tensor parallelism senaryolarında avantajlı. vLLM’in AWQ + tensor_parallel_size kombinasyonu büyük model dağıtımlarında yaygın.
Araç önceliği Ollama ise: GGUF. Ollama doğrudan GGUF üzerinde çalışıyor, başka format desteklenmiyor.
LM Studio veya Jan kullanıyorsanız: Yine GGUF. Bu araçlar llama.cpp üzerine kurulu.
GPU’sunuz varsa ve üretim ya da yüksek hız istiyorsanız AWQ, yoksa GGUF. GPTQ ise AWQ’nın henüz mevcut olmadığı modeller için mantıklı bir ara seçenek.
Pratik: Modeli Nereden Bulup Nasıl Çalıştırırsınız?
HuggingFace en büyük kaynak. Arama çubuğuna model adını yazıp filtrelere gguf, gptq veya awq ekleyin. TheBloke hesabı uzun süre bu formatların en büyük deposuydu; artık birçok model yazarı resmi sayfalarında tüm formatları kendisi sunuyor.
GGUF için arama: Llama-3.1-8B-Instruct GGUF
AWQ için arama: Llama-3.1-8B-Instruct AWQ
GPTQ için arama: Llama-3.1-8B-Instruct GPTQ
Ollama kurulumu ve GGUF:
# Ollama kurulumu (macOS/Linux)
curl -fsSL https://ollama.com/install.sh | sh
# Model indirme ve çalıştırma (GGUF otomatik yönetiliyor)
ollama run llama3.1:8b
# Belirli quantization seviyesi seçmek için
ollama run llama3.1:8b-instruct-q4_K_M
vLLM ile AWQ:
# vLLM kurulumu
pip install vllm
# AWQ modeli ile OpenAI uyumlu API sunucusu başlatma
python -m vllm.entrypoints.openai.api_server \
--model casperhansen/llama-3-8b-instruct-awq \
--quantization awq \
--host 0.0.0.0 \
--port 8000
AutoGPTQ ile GPTQ:
pip install auto-gptq transformers
python -c "
from auto_gptq import AutoGPTQForCausalLM
from transformers import AutoTokenizer
model_name = 'TheBloke/Llama-2-13B-Chat-GPTQ'
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoGPTQForCausalLM.from_quantized(
model_name,
device='cuda:0',
use_triton=False
)
print('Model yüklendi.')
"
Yerel LLM çalıştırma araçlarına genel bir bakış için En İyi Açık Kaynak Yerel LLM Araçları 2026 makalesini de inceleyebilirsiniz.
Q4 seviyesindeki bir model çoğu metin üretim görevi için yeterince iyi. Fark, çok adımlı mantık yürütme, kod üretimi veya hassas bilgi gerektiren sorularda belirginleşiyor. O tür işlerde Q5–Q8’e çıkmak ya da kalite koruması güçlü bir AWQ modeli tercih etmek daha güvenli. Hangi formatta çalışırsanız çalışın, bit derinliği ve format seçimi düşündüğünüzden çok fark yaratıyor.



