Yapay ZekaYazılım

Quantization Nedir? Yapay Zeka Modeli Nasıl Küçültülür?

Quantization nedir? Quantization (nicemleme), yapay zeka modellerinin ağırlıklarını ve bazen aktivasyonlarını daha düşük hassasiyetli sayı formatlarına dönüştürerek modelin bellek ayak izini küçültme ve çıkarım (inference) hızını artırma tekniğidir. 2026 itibarıyla milyarlarca parametreli dil modellerinin dizüstü bilgisayarlarda, telefonlarda ve hatta tarayıcı içinde çalıştırılabilmesinin en büyük nedenlerinden biri, bu modellerin quantization ile küçültülmüş sürümlerinin dağıtılıyor olması. Bu rehberde quantization’ın nasıl çalıştığını, hangi formatların (GGUF, GPTQ, AWQ, bitsandbytes) ne işe yaradığını, bir modeli adım adım nasıl küçültebileceğinizi, hangi donanımlarda hangi seçeneklerin mantıklı olduğunu ve bu süreçte sık yapılan hataları örnek kod parçaları ve karşılaştırma tablolarıyla ayrıntılı biçimde ele alıyoruz.

Table of Contents

Quantization Nedir, Neden Kullanılır?

Bir yapay zeka modelinin ağırlıkları normalde 32 bit kayan noktalı sayılar (FP32) veya 16 bit (FP16/BF16) formatında saklanır. Quantization, bu sayıları 8 bit (INT8) veya hatta 4 bit (INT4) gibi çok daha az bit ile temsil eder. Sonuç olarak model dosyası küçülür, bellek kullanımı azalır ve donanımın destek vermesi durumunda işlem hızı artar. Pratikte bu, 70 milyar parametreli bir modelin FP16 formatında 140 GB’tan fazla bellek isterken, 4 bit quantization ile yaklaşık 35-40 GB seviyesine inebildiği anlamına gelir.

Precision Seviyeleri: FP32’den INT4’e

FP32, FP16/BF16 ve INT8 farklı temsil seçenekleridir; güncel eğitimler sıkça karma hassasiyet kullanır. Dört bit nicemleme de her zaman düz INT4 anlamına gelmez: NF4 gibi kodlamalar ve GGUF içindeki karma bitli türler vardır. Bit sayısını azaltmak, belleği azaltabilir; hız kazanımı ise uygun donanım çekirdekleri ve yazılım desteğine bağlıdır.

Nicemleme Neden Bu Kadar Önemli Hale Geldi?

Yerel yapay zekâ ve cihaz üzerinde çalışan modeller (Edge AI) konusundaki talebin artması, quantization’ı bir “nice to have” özellikten çıkarıp temel bir dağıtım adımına dönüştürdü. Apple, Google ve Qualcomm gibi şirketlerin son nesil çiplerine özel NPU birimleri eklemesi de genellikle INT8 veya INT4 formatında çalışan modelleri hedef alıyor; bu nedenle bir modeli mobil veya masaüstü donanımda çalıştırmak isteyen geliştiricilerin quantization sürecini iyi anlaması gerekiyor.

Somut Bir Örnekle Bellek Tasarrufu

7 milyar ağırlığın FP16 depolaması yaklaşık 14 GB, 8 bit depolaması 7 GB, 4 bit depolaması 3,5 GB ham veri eder. Bu hesap yalnızca ağırlıklar içindir; ölçek bilgileri, KV cache, aktivasyonlar ve çalışma ortamı ek bellek ister. Bağlam uzunluğu ve eşzamanlı istek sayısı da toplamı artırır. Dolayısıyla 4 GB dosyanın 4 GB boş RAM ile çalışacağını varsaymayın.

Quantization Ekosisteminde Öne Çıkan Araçlar

Quantization kavramını teorik olarak anlamak bir yana, günlük kullanımda işinizi kolaylaştıran hazır araçları bilmek de en az o kadar önemli. Aşağıdaki araçlar, 2026 itibarıyla toplulukta en sık tercih edilen çözümler arasında yer alıyor.

Ollama

Ollama, önceden nicemlenmiş açık kaynak modelleri tek komutla indirip yerel olarak çalıştırmayı sağlayan bir araç. Kendi modelinizi quantize etmeseniz bile, topluluğun GGUF formatında paylaştığı hazır sürümleri kullanarak hızlıca deneme yapabilirsiniz. Komut satırından `ollama run model-adi` gibi basit bir komutla model indirilip başlatılabiliyor, bu da özellikle deneysel projeler için hız kazandırıyor.

LM Studio

LM Studio, GGUF formatındaki modelleri grafik arayüz üzerinden indirip yerel olarak çalıştırmayı sağlayan bir masaüstü uygulaması. Komut satırına alışkın olmayan kullanıcılar için farklı quantization seviyelerini (Q4, Q5, Q8 gibi) karşılaştırmalı olarak test etmeyi kolaylaştırıyor.

Hugging Face Optimum ve ONNX Runtime

Üretim ortamına daha entegre bir yaklaşım isteyen ekipler için Hugging Face Optimum kütüphanesi, modelleri ONNX formatına dönüştürüp ardından çeşitli donanımlara özel nicemleme profilleri uygulamayı destekliyor. ONNX Runtime ise bu nicemlenmiş modelleri hem CPU hem GPU üzerinde, farklı işletim sistemlerinde tutarlı biçimde çalıştırmaya olanak tanıyor; bu da özellikle çoklu platform desteği gereken kurumsal uygulamalarda tercih edilme nedeni.

Quantization Nasıl Çalışır? Teknik Mekanizma

Temelde quantization, bir sayı aralığını (örneğin -3.5 ile 4.2 arasındaki kayan noktalı ağırlık değerlerini) sabit sayıda tam sayı kovasına (örneğin -128 ile 127 arasına, INT8 için) eşleyen bir ölçekleme işlemidir. Bu eşleme sırasında bir “scale” (ölçek) ve gerekirse bir “zero point” (sıfır noktası) değeri hesaplanır; çıkarım sırasında bu değerler kullanılarak tam sayı işlemleri tekrar yaklaşık kayan noktalı sonuçlara dönüştürülür.

Post-Training Quantization (PTQ)

PTQ, eğitilmiş modeli düşük hassasiyete dönüştürür; GPTQ ve AWQ bunun yöntem örnekleridir. GGUF ise model tensörleri ve meta verisini taşıyan dosya biçimidir; tek başına bir nicemleme algoritması değildir ve FP16 gibi nicemlenmemiş ağırlıkları da içerebilir. AWQ, aktivasyon istatistikleriyle ağırlık nicemlemesini yönlendirir; adındaki activation-aware, tüm aktivasyonların nicemlendiği anlamına gelmez. AWQ araştırması.

Quantization-Aware Training (QAT)

QAT’te ise model, eğitim veya ince ayar (fine-tuning) sürecinde quantization etkisini “bilerek” eğitilir; yani ileri geçişte düşük hassasiyet simüle edilir, böylece model bu kısıtlamaya uyum sağlayacak şekilde ağırlıklarını ayarlar. Bu yöntem daha fazla hesaplama kaynağı ve zaman gerektirir, ancak özellikle çok agresif nicemleme seviyelerinde (INT4 ve altı) PTQ’ya kıyasla daha az doğruluk kaybı sağlama eğilimindedir.

Quantization Format ve Yöntemlerinin Karşılaştırması

Yöntem/Format Tipik Hassasiyet Kullanım Alanı Artı Eksi
GGUF (llama.cpp) FP16 veya Q4_K_M, Q8_0 gibi tensor türleri Yerel CPU/GPU çıkarımı, masaüstü uygulamalar Kurulumu kolay, geniş donanım desteği Eğitim için uygun değil, yalnızca çıkarım
GPTQ INT4, INT3 GPU üzerinde hızlı çıkarım Düşük bit derinliğinde iyi doğruluk Kurulum ve bağımlılık yönetimi daha karmaşık
AWQ INT4 GPU üzerinde çıkarım, üretim ortamı Aktivasyon istatistikleriyle ağırlık nicemlemesi Model ve çalışma motoru desteği kontrol edilmeli
bitsandbytes INT8, NF4 Hugging Face Transformers ile hızlı entegrasyon Python ekosistemine doğal entegrasyon Bazı donanımlarda GGUF kadar hızlı olmayabilir

Adım Adım: Bir Modeli Quantize Etme

Aşağıdaki adımlar, Hugging Face üzerinde barındırılan bir modeli hem Python tarafında 8 bit yükleme, hem de yerel çalıştırma için GGUF formatına dönüştürme sürecini özetliyor.

1. Adım: bitsandbytes ile 8-Bit Model Yükleme (Python)

Önce sanal ortamınızın terminalinde bağımlılıkları kurun. bitsandbytes desteği işletim sistemi, donanım ve paket sürümüne bağlıdır; resmi uyumluluk belgesini kontrol edin. Aşağıdaki örnek çıkarım içindir.

python -m pip install -U transformers accelerate bitsandbytes

Sonra aşağıdaki Python kodunu ayrı bir dosyada çalıştırın. Örnek, erişilebilir BLOOM-560m modelini kullanır; kullanımınız için model kartını ve lisansını okuyun.

from transformers import AutoModelForCausalLM, BitsAndBytesConfig

config = BitsAndBytesConfig(load_in_8bit=True)
model = AutoModelForCausalLM.from_pretrained(
    "bigscience/bloom-560m",
    quantization_config=config,
    device_map="auto",
)
print("Agirlik bellegi (bayt):", model.get_memory_footprint())

2. Adım: llama.cpp ile GGUF Formatına Dönüştürme (Terminal)

Linux/macOS için örnek CMake akışı aşağıdadır; C/C++ derleyicisi, CMake ve Python bağımlılıkları gerekir. /yol/model-klasoru yerel, tam bir Hugging Face model klasörünü temsil eder; desteklenen mimarileri llama.cpp deposundan kontrol edin. Windows ve GPU seçenekleri için derleme belgesini izleyin.

git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
python -m pip install -r requirements.txt
cmake -B build
cmake --build build --config Release -j 2
python convert_hf_to_gguf.py /yol/model-klasoru --outfile model-f16.gguf --outtype f16
./build/bin/llama-quantize model-f16.gguf model-q4_k_m.gguf Q4_K_M

Q4_K_M karma nicemleme türüdür; her tensörün tam olarak dört bit olduğu anlamına gelmez. Aynı donanım, bağlam uzunluğu ve istemlerle kalite, gecikme ve toplam bellek kullanımını ölçün. Bu örnekler sitede yapılmış bir donanım testinin sonuçları değildir.

3. Adım: Kalite Kontrolü Yapın

Dönüştürme sonrası modeli birkaç örnek istemle test edin ve orijinal modelle karşılaştırın. Cevapların tutarlılığında belirgin bir bozulma varsa, bir üst hassasiyet seviyesine (örneğin Q4 yerine Q5 veya Q8) geçmeyi değerlendirin.

Performans ve Kalite Dengesi: Doğruluk Kaybı Ne Kadar?

Nicemleme sonrası kalite kaybını ölçmenin standart yollarından biri perplexity (şaşkınlık skoru) karşılaştırmasıdır; düşük perplexity, modelin metni daha “doğal” tahmin ettiğini gösterir. Pratikte gözlemlenen genel eğilim şu şekilde özetlenebilir: FP16’dan INT8’e geçişte kalite kaybı çoğu görevde gözle görülür düzeyde değildir; INT8’den INT4’e geçişte ise özellikle karmaşık akıl yürütme veya matematik gerektiren görevlerde ölçülebilir bir kalite kaybı ortaya çıkabilir. Bu nedenle üretim ortamına almadan önce hedef kullanım senaryonuza uygun test setleriyle karşılaştırma yapmanız önerilir.

Model Boyutu ile Nicemleme Toleransı İlişkisi

Genel gözlem, daha büyük parametre sayısına sahip modellerin agresif nicemlemeye (INT4 gibi) daha dayanıklı olduğu yönündedir; küçük modellerde (birkaç milyar parametre altı) aynı seviyede nicemleme, göreceli olarak daha fazla kalite kaybına yol açabilir. Bu yüzden küçük bir modeli aşırı agresif şekilde küçültmek yerine, INT8 gibi orta seviyelerde durmak daha dengeli bir sonuç verebilir.

Quantization Terimleri Sözlüğü

Bu alana yeni başlayanlar için sık karşılaşılan terimleri kısaca netleştirmek faydalı olacaktır.

  • Scale (ölçek): Kayan noktalı değer aralığını tam sayı aralığına eşlemek için kullanılan çarpan.
  • Zero point (sıfır noktası): Asimetrik nicemlemede sıfır değerinin tam sayı uzayındaki karşılığını belirten ofset.
  • Kalibrasyon veri seti: GPTQ/AWQ gibi yöntemlerde ölçek değerlerini hesaplamak için kullanılan temsili örnek metin kümesi.
  • Simetrik/asimetrik nicemleme: Değer aralığının sıfır etrafında simetrik mi yoksa kaydırılmış mı ele alındığını belirten yaklaşım farkı.
  • Per-channel / per-tensor nicemleme: Ölçek değerinin tüm tensöre mi yoksa her kanala (satır/sütuna) özel mi hesaplandığını belirten ayrım; per-channel genellikle daha yüksek doğruluk sağlar.

Quantization ile Fine-Tuning Bir Arada Kullanılabilir mi?

Evet; QLoRA gibi teknikler, 4 bit nicemlenmiş bir temel modelin üzerine düşük ranklı adaptör katmanları (LoRA) ekleyerek, sınırlı GPU belleğiyle bile büyük modellerin ince ayarını mümkün kılıyor. Bu yaklaşım, tek bir tüketici sınıfı GPU ile (örneğin 24 GB VRAM’li bir kart) milyarlarca parametreli bir modeli kendi verinizle özelleştirmenize olanak tanıyabiliyor. Bu konudaki temel mantığı daha iyi kavramak isteyenler için yerel yapay zekâ rehberimizdeki donanım gereksinimleri bölümü de yol gösterici olabilir. QLoRA sürecinde dikkat edilmesi gereken nokta, adaptör katmanlarının eğitim sırasında daha yüksek hassasiyette (genellikle BF16) tutulması, yalnızca temel model ağırlıklarının 4 bit’te dondurulmasıdır; bu karma yaklaşım hem bellek tasarrufu sağlar hem de eğitim kalitesini büyük ölçüde korur.

Sık Yapılan Hatalar ve Çözümleri

1. Hata: Doğrudan En Agresif Seviyeye Geçmek

Modeli test etmeden doğrudan INT4 veya daha düşük seviyeye indirmek, beklenmedik kalite sorunlarına yol açabilir. Çözüm: Önce INT8 ile başlayıp kaliteyi doğrulayın, ihtiyaç varsa kademeli olarak INT4’e inin.

2. Hata: Donanım Uyumluluğunu Kontrol Etmemek

Her donanım her quantization formatını aynı verimlilikte çalıştırmaz; örneğin bazı eski GPU’lar INT4 çekirdek hızlandırmasını desteklemeyebilir. Çözüm: Hedef donanımın (CPU, GPU, NPU) desteklediği format ve kütüphaneleri önceden araştırın.

3. Hata: Kalibrasyon Verisi Kullanmamak

GPTQ ve AWQ gibi yöntemler genellikle temsili bir kalibrasyon veri kümesi ister; alakasız veya çok küçük bir kalibrasyon seti, nicemleme kalitesini olumsuz etkiler. Çözüm: Modelin gerçek kullanım senaryosuna yakın, çeşitli örnekler içeren bir kalibrasyon seti kullanın.

4. Hata: Yalnızca Tek Bir Metrikle Değerlendirmek

Sadece perplexity skoruna bakıp modeli üretime almak yanıltıcı olabilir; bazı görevlerde perplexity iyi görünse de gerçek görev başarımı (örneğin kod üretimi veya çok adımlı akıl yürütme) düşebilir. Çözüm: Hedef kullanım senaryonuza özgü birkaç farklı test görevi ile değerlendirme yapın.

5. Hata: Bellek Tasarrufunu Tek Kriter Olarak Görmek

Yalnızca dosya boyutuna bakarak karar vermek, çıkarım hızını ve donanım uyumluluğunu göz ardı etmenize neden olabilir. Çözüm: Bellek, hız ve kalite üçgenini birlikte değerlendirip kullanım senaryonuza uygun dengeyi bulun.

6. Hata: Nicemlenmiş Modeli Sürüm Kontrolü Olmadan Dağıtmak

Farklı quantization seviyelerinde üretilmiş model dosyalarını isimlendirme standardı olmadan paylaşmak, ekip içinde hangi dosyanın hangi ayarlarla üretildiğinin karışmasına yol açabilir. Çözüm: Dosya adlarına format, bit derinliği ve kaynak model sürümünü içeren tutarlı bir isimlendirme kuralı (örneğin `model-adi-v2-q4_k_m.gguf`) uygulayın ve hangi ayarların kullanıldığını bir değişiklik günlüğünde belgeleyin.

Quantization Kimin İçin, Hangi Durumda Uygun?

Sınırlı bellek veya bütçeyle çalışan geliştiriciler, kendi donanımında yerel model çalıştırmak isteyen meraklılar ve mobil/masaüstü uygulamalara yapay zekâ entegre etmek isteyen ekipler için quantization neredeyse vazgeçilmez bir adım haline geldi. Buna karşılık, en yüksek doğruluğun kritik olduğu (örneğin tıbbi teşhis destek sistemleri gibi hassas) ve bulut GPU kaynağına sınırsız erişimin bulunduğu senaryolarda, FP16 gibi daha yüksek hassasiyetli formatlarla çalışmak daha güvenli bir tercih olabilir. Çoğu genel amaçlı sohbet botu, kod tamamlama aracı veya iç kullanım asistanı için INT8 ile INT4 arası bir seviye, bellek tasarrufu ile kalite arasında pratikte iyi bir denge sunuyor.

Bu konuyu model distillation (bilgi damıtma) rehberimizle birlikte değerlendirmek faydalı olabilir; çünkü iki teknik genellikle birbirini tamamlayacak şekilde, önce damıtılmış küçük bir model üzerinde, ardından bu modelin quantization ile daha da küçültülmesi şeklinde bir arada kullanılıyor.

Quantization ve Donanım Uyumluluğu: Neye Dikkat Etmeli?

Bir modeli nicemlemeden önce hedef donanımın hangi formatları hızlandırılmış biçimde desteklediğini bilmek, sonradan yaşanacak hayal kırıklıklarını önler. Apple Silicon çipler (M serisi) Metal API üzerinden GGUF modellerini iyi destekliyor; NVIDIA GPU’lar CUDA çekirdekleri sayesinde GPTQ ve AWQ formatlarında güçlü performans sunuyor; Qualcomm ve son nesil Android çipleri ise genellikle kendi NPU’larına özel INT8 optimizasyonlarını tercih ediyor. Sunucu tarafında ise NVIDIA’nın TensorRT-LLM gibi araçları, üretim ortamında düşük gecikmeli çıkarım için özel nicemleme profilleri sunuyor.

Bulut mu, Yerel mi: Maliyet Açısından Nicemleme Ne Zaman Anlamlı?

Bulut GPU kiralama maliyetleri saatlik ücretlendirildiğinden, sürekli çalışan bir servis için daha küçük ve nicemlenmiş bir modelle daha ucuz bir GPU örneğinde çalışmak, aylık faturaları belirgin biçimde azaltabilir. Örneğin FP16 formatında iki adet yüksek bellekli GPU gerektiren bir kurulum, INT4 nicemleme sonrası tek bir orta seviye GPU’ya sığabilir hale gelebilir. Düşük trafikli veya deneysel projelerde ise maliyet avantajından çok, modelin hiç mi çalışıp çalışmadığı (donanımınıza sığıp sığmadığı) daha belirleyici bir faktör oluyor.

Sıkça Sorulan Sorular

Quantization model kalitesini ne kadar düşürür?

Bu, seçilen hassasiyet seviyesine ve modele göre değişir; INT8’e geçişte kalite kaybı genellikle sınırlıyken, INT4 ve altı seviyelerde özellikle karmaşık görevlerde ölçülebilir bir kayıp görülebilir. Üretime almadan önce kendi test senaryolarınızla doğrulama yapmanız önerilir.

GGUF ile GPTQ arasındaki temel fark nedir?

GGUF, öncelikli olarak CPU ve karma CPU/GPU ortamlarında yerel çalıştırma için tasarlanmış, kurulumu görece kolay bir formattır; GPTQ ise GPU üzerinde hızlı çıkarım için optimize edilmiş, kalibrasyon veri seti gerektiren bir nicemleme yöntemidir.

Quantization için özel bir GPU gerekir mi?

CPU üzerinde çalışabilen nicemlenmiş modeller vardır. GPU, NPU ve CPU ayrı işlem birimleridir; NPU, her GPU içinde bulunan bir bileşen değildir. Hızlandırma için model formatının hem donanım hem çalışma motoru tarafından desteklenmesi gerekir.

QAT her zaman PTQ’dan daha mı iyidir?

QAT her durumda daha iyi değildir; sonuç model, veri ve hedef bit sayısına bağlıdır. PTQ sonrası kalite yetersizse daha yüksek hassasiyet veya QAT değerlendirilebilir. QLoRA ise nicemlenmiş ve dondurulmuş temel model üzerinde adaptör eğitme yaklaşımıdır; QAT ile aynı işlem değildir.

Kendi bilgisayarımda hangi quantization seviyesini denemeliyim?

Sınırlı bellekli (8-16 GB RAM) tüketici donanımlarında genellikle Q4_K_M gibi orta seviye GGUF formatları iyi bir başlangıç noktasıdır; daha güçlü donanımınız varsa Q5 veya Q8 ile daha yüksek kaliteyi deneyebilirsiniz. Kesin bir kural yerine, birkaç seviyeyi indirip kendi kullanım senaryonuzda karşılaştırmalı test etmek her zaman en güvenilir yöntemdir.

Nicemlenmiş bir modeli tekrar orijinal hassasiyetine döndürmek mümkün mü?

Hayır, quantization sürecinde kaybedilen bilgi geri getirilemez; nicemlenmiş bir modeli “yükseltmek” yalnızca depolama formatını değiştirir, kaybolan hassasiyeti geri kazandırmaz. Bu nedenle orijinal FP16 veya FP32 model dosyasını bir yedek olarak saklamak, ileride farklı bir nicemleme seviyesi denemek isterseniz size esneklik sağlar.

özgür BAYRAM

Özgür Bayram, WordPress, Laravel, yapay zekâ ve web performansı alanlarında çalışan bir yazılım geliştiricisidir. Bilim Meraklısı’nda teknoloji, yazılım, hosting, SEO ve dijital araçlar hakkında anlaşılır, uygulanabilir rehberler hazırlar. Amacı, teknik konuları sade bir dille anlatarak okuyucuların doğru kararlar vermesine ve sorunlarını güvenle çözmesine yardımcı olmaktır.

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu