Model niceleme (quantization): düşük hassasiyetle çalışan model
Sözlük

Model niceleme (quantization): düşük hassasiyetle çalışan model

Hazırlayan: Mindset Institute EditörlüğüGüncellendi: 4 dk okuma

Niceleme, bir modelin ağırlıklarını ve aktivasyonlarını daha az bit kullanan sayılarla göstererek bellek ve hesap maliyetini düşürme tekniğidir. Nasıl çalıştığını, yöntemlerini ve doğruluğu nasıl etkilediğini anlatır.

Bir bakışta

  1. Niceleme, sayıları daha az bitle saklamaktır. Tipik örnek, ondalık sayıların tam sayılara çevrilmesidir.
  2. Kazanç bellekte ve hızdadır. Daha küçük model daha az bellek ister, tam sayı işlemleri çoğu donanımda daha hızlı yapılır.
  3. Bedeli bir miktar doğruluk kaybı riskidir. Kayıp modele, yönteme ve görev türüne göre değişir; her zaman ölçülmelidir.
  4. Yöntem seçimi kolaydan zora doğru ilerler. Önce eğitim sonrası dinamik, gerekirse statik, en sonda eğitim sırasında niceleme denenir.

Niceleme nedir?

Niceleme (quantization), bir sinir ağının ağırlıklarını ve aktivasyonlarını yüksek hassasiyetli sayılar yerine düşük hassasiyetli veri türleriyle göstermektir. Standart gösterim genellikle float32'dir; niceleme bunu float16 ya da int8 gibi daha küçük türlere çevirir. Daha az bit, daha az bellek ve çoğu durumda daha hızlı matris çarpımı demektir.

Bu, büyük dil modelleri için özellikle önemlidir: modelin boyutu doğrudan hangi donanımda çalışabileceğini belirler. Niceleme, aynı modeli daha küçük bir bellek alanına sığdırarak maliyeti ve gecikmeyi azaltmaya yardım eder, ayrıca yalnız tam sayı destekleyen gömülü cihazlarda çalıştırmayı mümkün kılar.

Nasıl çalışır?

Ondalıklı bir değerin tam sayıya çevrilmesinde iki parametre kullanılır: ölçek (scale) ve sıfır noktası (zero-point). Ölçek, gerçek değer aralığının tam sayı aralığına nasıl sığdırılacağını belirler; sıfır noktası ise gerçek sıfırın tam sayı karşılığıdır. Sıfırın tam olarak temsil edilmesi önemlidir, çünkü modellerde sıfır her yerde kullanılır.

İlişki x = S × (x_q − Z) biçimindedir; burada x gerçek değer, x_q nicelenmiş değer, S ölçek, Z sıfır noktasıdır. Aralığın dışına taşan değerler en yakın temsil edilebilir değere kırpılır. Aralık simetrik seçilirse sıfır noktası sıfır olur ve bazı toplama işlemleri atlanabildiği için hız kazancı sağlanabilir.

Bu yüzden asıl iş değer aralığını doğru belirlemektir. Ağırlıkların aralığı eğitim sonrası bellidir; aktivasyonların aralığı ise veriye bağlıdır ve kalibrasyon adımıyla bulunur.

Yöntemler: kolaydan zora

Eğitim sonrası dinamik niceleme: Aktivasyon aralıkları çalışma anında hesaplanır. Az emekle iyi sonuç verir ama her seferinde aralık hesabı yapıldığı için statik yönteme göre biraz yavaş olabilir ve her donanımda desteklenmez.

Eğitim sonrası statik niceleme: Aralıklar önceden, temsilî örnek veriyle modeli çalıştırıp aktivasyon değerlerini kaydederek belirlenir. Genellikle daha hızlıdır ama doğrulukta düşüş görülebilir.

Eğitim sırasında niceleme (QAT): Eğitim sırasında niceleme hatası taklit edilir ve model bu hataya uyum sağlar. En fazla emek isteyen, doğruluğu koruma açısından en güçlü yöntemdir.

Pratikte önerilen yol sırayla ilerlemektir: önce çalışma süresinin çoğunu yiyen işlemler (doğrusal katmanlar, matris çarpımları) seçilir, dinamik yöntem denenir, yetmezse statik yönteme, doğruluk yetersizse eğitim sırasında nicelemeye geçilir.

Şekil 1

Önce en kolay yöntem denenir, doğruluk yetmezse bir üst basamağa çıkılır

  1. Dinamik nicelemeAralıklar çalışma anında hesaplanır; en az emek
  2. Statik nicelemeAralıklar kalibrasyon verisiyle önceden belirlenir
  3. Eğitim sırasında nicelemeModel hatayı eğitimde görür; en çok emek, en iyi koruma
Kaynak: Yöntem sırası Hugging Face Optimum rehberindeki pratik adımlara dayanır.Mindset Institute

Doğruluğu nasıl etkiler?

Niceleme bilgi kaybıdır: sürekli değerler sınırlı sayıda düzeye yuvarlanır. Etki, modele ve kullanılan veri türüne göre değişir. float16'ya geçiş genellikle sorunsuzdur; ancak çok küçük değerlere duyarlı işlemler (örneğin bazı normalleştirme katmanlarındaki küçük sabitler) float16'da temsil edilemeyip sayısal sorun çıkarabilir. int8'e geçişte ise çok daha dar bir değer aralığı söz konusudur ve aralık seçimi belirleyicidir.

Bu yüzden niceleme sonrası mutlaka ölçüm yapılır. Genel bir doğruluk skoru tek başına yetmez; modelin kritik görevlerinde, uzun girdilerde ve nadir durumlarda davranışı ayrıca izlenmelidir. Niceleme maliyeti de her zaman beklenen yönde değiştirmez: donanım desteği, model boyutu ve işlem düzeni sonucu etkilediği için faydayı gerçek ortamda ölçmek gerekir.

Kurgusal bir örnek: şirket içi soru-cevap modeli

Bir ekip, şirket içi dokümanlara soru soran bir dil modelini kendi sunucusunda çalıştırmak istiyor, ancak model sunucunun belleğine sığmıyor. Önce modelin yoğun hesap yapan doğrusal katmanları nicelemeye aday seçilir. Hazır modele dinamik niceleme uygulanır ve ekip temsilî soru kümesiyle yanıtları niceleme öncesi sonuçlarla karşılaştırır.

Yanıtlar genel olarak yeterli ama uzun belgelerde bazı sayısal ayrıntılar hatalı çıkarsa ekip kalibrasyon verisini genişletir, aralık hesabını değiştirir ya da hassas katmanları nicelemeden dışarıda bırakır. Bu, niceleme çalışmasının tipik yapısıdır: bir kez uygulayıp bırakmak değil, ölçüp ayarlamak.

Bilgi damıtma ile farkı

Niceleme mevcut modelin sayı gösterimini küçültür; model aynı kalır. Bilgi damıtma ise yeni ve genellikle daha küçük bir modeli, büyük modelin çıktılarını taklit ederek eğitir. İkisi birlikte kullanılabilir: önce damıtılmış küçük bir model elde edilir, sonra niceleme ile daha da hafifletilir. Niceleme çoğu durumda yeni bir eğitim gerektirmeden denenebilir; damıtma ise eğitim süreci ve veri ister.

Mindset programlarında bu konu nerede çalışılır?

Quantization ve Distillation programı, model sıkıştırmanın temellerini, eğitim sonrası niceleme ile eğitim sırasında niceleme yöntemlerini ve kalite değerlendirmesini ele alır. LLM Performans Optimizasyonu programı ise niceleme tekniklerini maliyet azaltma ve canlı ortamda servis etme çerçevesinde işler. Büyük dil modellerini kendi altyapısında çalıştırmak isteyen mühendislik ekipleri için uygundur.

İlgili Mindset programı

Quantization ve Distillation

Sık sorulanlar

Sık sorulan sorular

Niceleme ile model küçültme aynı şey midir?

Niceleme, modeli küçültmenin yollarından yalnızca biridir. Model sıkıştırma çatısı altında niceleme dışında bilgi damıtma ve budama gibi teknikler de yer alır. Niceleme mimariyi değiştirmeden sayı gösterimini küçülttüğü için en hızlı denenebilenlerden biridir.

Niceleme doğruluğu her zaman düşürür mü?

Her zaman belirgin biçimde düşürmez ama bilgi kaybı vardır. Etki yönteme, modele ve göreve göre değişir. Bu yüzden niceleme öncesi ve sonrası aynı değerlendirme kümesinde karşılaştırma yapmak ve kritik durumları ayrıca izlemek gerekir.

Dinamik ve statik niceleme arasındaki fark nedir?

Dinamik yöntemde aktivasyon aralıkları çalışma anında hesaplanır, statik yöntemde ise kalibrasyon verisiyle önceden belirlenir. Dinamik olan kurması kolaydır, statik olan genellikle daha hızlıdır ama doğrulukta daha fazla kayıp yaşatabilir.

Kalibrasyon verisi neden gerekir?

Aktivasyon değerleri girdiye bağlıdır ve önceden bilinmez. Temsilî bir örnek kümesi modelden geçirilerek bu değerlerin hangi aralıkta kaldığı ölçülür; seçilen aralık nicelemenin kalitesini belirler. Veri gerçek kullanımı temsil etmezse aralık yanlış seçilir.

Niceleme küçük modellerde de işe yarar mı?

Bellek tasarrufu sağlar ama hız ve enerji kazancı garanti değildir. Küçük modellerde sayıyı geri çevirme maliyeti kazancı silebilir. Bu yüzden niceleme etkisi, hedef donanımda ve gerçek yük altında ölçülmelidir.

Model Niceleme (Quantization) Nedir? Doğruluk Etkisi