Ana içeriğe geç

Quantization

Nicemleme

Türkçe karşılığı
kuantizasyon
Okunuşu
kuontızeyşın

Günlük kullanımda çoğunlukla İngilizcesi tercih edilir.

Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/quantization

Kısaca

Quantization, parametreleri 16 yerine 8 ya da 4 gibi daha az bitle saklayarak bir yapay zekâ modelini küçülten, inference'ı hızlandırıp ucuzlatan tekniktir.

Yapay zekâda quantization nedir?

Quantization, bir makine öğrenmesi modelinin içindeki sayıların hassasiyetini azaltır. Modeller genellikle parametreleri 16 ya da 32 bitlik kayan noktalı sayılar olarak saklanarak eğitilir; quantization bunları 8 bit veya 4 bitlik tamsayılar gibi daha küçük biçimlere dönüştürür. Model aynı mimariyi korur ve neredeyse aynı davranır, ama belleğin küçük bir kısmını kaplar ve çoğu zaman daha hızlı çalışır.

Temel yöntem, bir değer aralığını küçük bir düzey kümesine eşler. 8 bit quantization için her ağırlık grubu bir ölçek çarpanı alır ve her ağırlık bu ölçeğe bölünüp 256 tam sayıdan birine yuvarlanır; çalışma anında sayılar tekrar ölçekle çarpılır. Eğitim sonrası quantization bunu bitmiş bir modele uygular; quantization-aware training ise yuvarlamayı eğitim sırasında simüle eder, böylece model buna tahammül etmeyi öğrenir. Kazanç büyüktür: 70 milyar parametreli bir model 16 bitte yaklaşık 140 GB gerektirirken 4 bitte kabaca 35 GB gerektirir.

Bir benzetme, bir fotoğrafı daha az renkle kaydetmek ya da fiyatları en yakın liraya yuvarlamaktır: biraz ayrıntı kaybedersiniz, ama sonuç çok daha küçüktür ve işi görmeye devam eder. Quantization, yetenekli modelleri tek bir GPU'da, dizüstü bilgisayarda veya telefonda çalıştırmayı mümkün kılan şeydir ve sunucuların aynı donanımla daha fazla isteği karşılamasını sağlar. Ödünleşim biraz doğruluk kaybıdır; bu 8 bitte genellikle küçüktür, 4 bit ve altında ise daha belirgindir.

Quantization bazen bir dosyayı sıkıştırmakla karıştırılır, ancak quantize edilmiş bir model kullanılmadan önce açılmaz; doğrudan düşük hassasiyetli sayılar üzerinde çalışır ve kaybolan hassasiyet bir daha geri gelmez. Ayrıca daha büyük bir modeli taklit etmesi için yeni, daha küçük bir modeli eğiten distillation'dan (damıtma) ve ağırlıkları tamamen kaldıran pruning'den (budama) de farklıdır. Bu teknikler sıklıkla birleştirilir ve her ikisi de bir şeyleri sayılara dönüştürse de quantization'ın tokenization ile hiçbir ilgisi yoktur.

Önemli noktalar

  • Quantization, model parametrelerini 8 ya da 4 gibi daha az bitle saklar.
  • Bellek kullanımını keskin biçimde azaltır ve çoğu zaman inference'ı hızlandırır.
  • Bir ölçek çarpanı, orijinal değerleri küçük bir tamsayı aralığına ve geri eşler.
  • Doğruluk kaybı 8 bitte genellikle küçüktür, çok düşük bit genişliklerinde daha büyüktür.
  • Distillation ve pruning, modelleri küçültmenin farklı yollarıdır.

Örnek

Ağırlıkları 8 bitlik tamsayılara ve geri quantize etmekpython
# Quantize a few floating-point weights to 8-bit integers and back
weights = [0.4213, -1.27, 0.0318, 0.8871, -0.5096]

scale = max(abs(w) for w in weights) / 127       # map the largest value to 127
quantized = [round(w / scale) for w in weights]  # small integers: 1 byte each
restored = [q * scale for q in quantized]        # what the model computes with

print(quantized)                        # [42, -127, 3, 89, -51]
print([round(r, 3) for r in restored])  # [0.42, -1.27, 0.03, 0.89, -0.51]
# Close to the originals, but the small rounding errors are permanent

Sık sorulan sorular

Quantization model doğruluğunu azaltır mı?

Genellikle biraz. 8 bitte fark çoğu zaman fark edilmesi zordur; 4 bit ve altı ise özellikle karmaşık akıl yürütmede ölçülebilir düşüşlere yol açabilir. Bu yüzden quantize edilmiş modeller kendi görevlerinizde test edilmelidir.

4 bit quantization ne anlama gelir?

Her parametrenin 4 bitle saklandığı, yani her ağırlık grubu için yalnızca 16 farklı değere izin verildiği anlamına gelir. 16 bitlik ağırlıklara göre yaklaşık dörtte bir bellek kullanır; bu da çok daha büyük modellerin tüketici donanımına sığmasını sağlar.

Quantization ile distillation arasındaki fark nedir?

Quantization aynı modeli korur ama sayılarını daha düşük hassasiyetle saklar. Distillation ise daha büyük bir öğretmen modelin davranışını yeniden üretmesi için ayrı, daha küçük bir öğrenci model eğitir.

İlgili sayfalar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar