Kuantizasyon, büyük dil modellerinin (LLM – Large Language Models) parametrelerinin daha düşük bit genişlikleriyle temsil edilerek bu modellerin daha az bellek kullanması ve daha verimli çalışması amacıyla uygulanan bir optimizasyon tekniğidir.
Büyük dil modelleri, milyarlarca parametre içeren derin sinir ağlarıdır. Metin üretimi, özetleme ve çeviri gibi doğal dil işleme görevlerinde yüksek başarı gösteren bu modellerin çalıştırılması, önemli ölçüde hesaplama gücü, bellek ve enerji gerektirir. Örneğin, FP16 hassasiyetinde eğitilmiş bir Mistral 7B modeli yaklaşık 13–14 GB GPU belleği kaplar. Daha büyük modellerde bu gereksinim çok daha yüksek seviyelere ulaşır.
Bu tür maliyetleri azaltmak için kullanılan kuantizasyon, modelin ağırlıklarını ve aktivasyonlarını daha düşük bit değerlerine (örneğin 8-bit tamsayı - INT8, ya da 4-bit - INT4) dönüştürerek, modelin boyutunu küçültür ve daha az kaynakla çalışmasını sağlar.
Kuantizasyonun Temel Mantığı
Bir dil modeli eğitilirken genellikle 32-bit kayan nokta (FP32) ya da 16-bit kayan nokta (FP16) veri tipleri kullanılır. Bu formatlar yüksek hassasiyet sağlar; fakat bir o kadar da bellek ve hesaplama gücü tüketir. Kuantizasyon, bu veri tiplerini 8-bit tamsayı (INT8), 4-bit tamsayı (INT4) ya da daha düşük bit genişliklerine dönüştürmeyi amaçlar.
Bu işlem, modelin davranışını büyük oranda koruyarak ağırlık ve aktivasyonları daha dar bir sayı aralığına sıkıştırır. Bu sayede:
- Modelin toplam boyutu küçülür
- Bellek tüketimi azalır
- Çıkarım (inference) süresi kısalır
- Düşük güçlü cihazlarda çalıştırmak mümkün hale gelir
Kuantizasyon Türleri
Kuantizasyon, uygulama zamanına ve modelin eğitilip eğitilmediğine göre iki ana türe ayrılır:
PTQ (Post-Training Quantization – Eğitim Sonrası Kuantizasyon)
PTQ, kuantizasyonun model eğitildikten sonra uygulandığı bir yaklaşımdır. Eğitim aşaması tamamlanmış modele sonradan düşük bit hassasiyetinde ağırlık dönüşümleri uygulanır. Bu yöntem, genellikle hızlı ve kolay uygulanabilir olmasıyla öne çıkar. Yeniden eğitim gerektirmez; bu da zaman ve kaynak açısından avantaj sağlar. Ancak, özellikle 4-bit ve altı gibi düşük bit genişliklerinde doğrulukta belirgin kayıplar yaşanabilir.
QAT (Quantization-Aware Training – Kuantizasyona Duyarlı Eğitim)
QAT yaklaşımında model, eğitimi sırasında kuantizasyon etkilerini göz önünde bulundurarak öğrenir. Eğitim esnasında, ağırlıklar ve aktivasyonlar düşük bit değerlerinde simüle edilir. Bu sayede model, kuantizasyonun neden olabileceği hassasiyet kayıplarına karşı daha dayanıklı hale gelir. Özellikle 4-bit ve altı gibi senaryolarda doğruluk korunur. Ancak bu yöntem daha uzun bir eğitim süreci ve yüksek işlem gücü gerektirir.
Kuantizasyon Teknikleri
Birkaç yaygın ve etkili kuantizasyon tekniği aşağıda özetlenmiştir:
GPTQ (Generative Pre-trained Transformer Quantization)
GPTQ, eğitim sonrası kuantizasyon (PTQ) tekniğine dayalı bir yöntemdir. Model eğitildikten sonra, ağırlıklar düşük bit genişliklerine indirgenirken Hessian matrisine dayalı bir analiz yapılır. Bu analiz, her ağırlığın doğruluk açısından ne kadar hassas olduğunu belirler ve böylece kuantizasyon işlemi minimum bilgi kaybıyla gerçekleştirilir. GPTQ genellikle INT4 gibi çok düşük bit formatlarında bile etkili sonuçlar verir. Bu nedenle, özellikle büyük modellerin hassasiyetini koruyarak küçültülmesi gereken durumlarda sıkça tercih edilir.
AWQ (Activation-aware Weight Quantization)
AWQ da bir PTQ yöntemidir ancak klasik tekniklerden farklı olarak yalnızca ağırlıklara değil, aynı zamanda aktivasyonların dağılımına da odaklanır. Aktivasyonların hangi aralıklarda yoğunlaştığını analiz ederek ağırlıkların kuantizasyonunu bu bilgilere göre optimize eder. Bu yaklaşım, özellikle INT4 gibi düşük bit derinliklerinde model doğruluğunun daha stabil kalmasını sağlar. GPTQ’ya benzer şekilde eğitimden sonra uygulanabilir, ancak düşük hassasiyetli senaryolarda daha tutarlı sonuçlar sunması açısından öne çıkar.
LLM.int8()
LLM.int8(), klasik kuantizasyondan farklı olarak karma (mixed) bir yaklaşım benimser. Aktivasyonların önem derecesine göre farklı hassasiyetlerde işlem yapılır: önemli kanallar FP16 formatında korunurken, daha az kritik olanlar INT8'e dönüştürülür. Bu teknik, yüksek doğruluk gerektiren uygulamalarda performansı korurken, aynı zamanda bellek kullanımını önemli ölçüde azaltır. Özellikle LLaMA ve GPT-3 gibi büyük dil modellerinde kullanılmak üzere tasarlanmıştır ve bu tür modellerde doğruluk kaybını minimumda tutarak verimliliği artırır.
Kuantizasyonun Kullanım Alanları ve Sınırlamaları
Kuantizasyon, büyük dil modellerinin daha geniş bir donanım yelpazesinde verimli şekilde çalıştırılabilmesini sağlar. Özellikle mobil cihazlar ve IoT gibi edge cihazlarda LLM'leri çalıştırmak için önemli bir rol oynar. Aynı zamanda model dağıtım süreçlerinde belleği ve işlem gücünü optimize ederek sunucu maliyetlerini azaltır. Gerçek zamanlı tepki gerektiren sohbet botları ya da sesli asistanlar gibi uygulamalarda da işlem süresini kısaltarak kullanıcı deneyimini iyileştirir. Ancak tüm bu avantajlarına rağmen bazı sınırlamalar ve zorluklar da söz konusudur. Özellikle çok düşük bit oranlarında, modelin doğruluğu belirgin biçimde düşebilir. Ayrıca her donanım kuantize edilmiş ağırlıklarla çalışmaya uygun değildir; bazı cihazlar düşük bitli hesaplamaları desteklemez. Bunun yanı sıra, QAT gibi yöntemler daha karmaşık bir eğitim süreci gerektirir ve uygulama aşamasında daha fazla teknik bilgi ister. Son olarak, kuantize edilmiş modellerin bazı çıkarım motorları (örneğin ONNX veya TensorRT) üzerinde sorunsuz çalışabilmesi için ek uyarlamalar gerekebilir.

