Quantization
Nicemleme
- Türkçe karşılığı
- kuantizasyon
- Okunuşu
- kuontızeyşın
Günlük kullanımda çoğunlukla İngilizcesi tercih edilir.
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
# 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 permanentSı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
- Model ParametreleriYapay Zekâ ve Makine Öğrenmesi, s. 33Model parametreleri, bir makine öğrenmesi modelinin eğitimde öğrendiği ve girdileri çıktılara dönüştürmek için kullandığı ağırlık ve sapma gibi iç sayılardır.
- InferenceYapay Zekâ ve Makine Öğrenmesi, s. 26Inference, eğitilmiş bir makine öğrenmesi modelinin, öğrendiklerini değiştirmeden yeni verilerden tahmin ya da çıktı üretmek için kullanıldığı aşamadır.
- LLMYapay Zekâ ve Makine Öğrenmesi, s. 28LLM, çok büyük metin yığınlarıyla eğitilmiş ve bir sonraki en olası metin parçasını tekrar tekrar tahmin ederek dil üreten bir makine öğrenmesi modelidir.
- Yapay Sinir AğıYapay Zekâ ve Makine Öğrenmesi, s. 49Yapay sinir ağı, bağlantılı yapay nöron katmanlarından oluşan ve sayısal ağırlıkları ayarlayarak verilerden örüntü öğrenen bir makine öğrenmesi modelidir.
- Derin ÖğrenmeYapay Zekâ ve Makine Öğrenmesi, s. 14Derin öğrenme, görüntü ve metin gibi ham verilerden karmaşık örüntüleri öğrenmek için çok katmanlı sinir ağları kullanan bir makine öğrenmesi alt kümesidir.
- Edge ComputingDevOps ve Bulut, s. 17Edge computing, gecikmeyi azaltmak için kodu ve veriyi uzak bir merkezi veri merkezi yerine kullanıcıların ya da cihazların yakınında çalıştırıp işlemektir.
- LoRAYapay Zekâ ve Makine Öğrenmesi, s. 29LoRA, büyük modellere ucuzca ince ayar yapma yöntemidir: ağırlıklar dondurulur, yalnızca eklenen küçük matrisler eğitilir; yeni beceri birkaç megabayta sığar.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin