Atlas’ta ara

Keşfetmeye buradan başla

Öğren/Verimlilik

Büyük modeller nasıl küçültülür?

Niceleme, damıtma ve LoRA: bir modeli daha az bellekle çalıştırmanın ve daha ucuza uyarlamanın üç farklı yolu, ve her birinin ödediği bedel.

ÖN BİLGİ

Bu yazıyı rahat izlemek için şunlara önce bakmış olman iyi olur:

01Önce hesap: bir model kaç bayt?#

Bir modelin ağırlıkları, parametre sayısı × sayı başına bayt kadar bellek kaplar. 7 milyar parametreli bir model, ağırlıkları 16 bitlik (2 bayt) sayılarla saklanırsa 7 × 10⁹ × 2 = 14 GB tutar; 4 bitlik (yarım bayt) sayılarla saklanırsa 3,5 GB. Bu hesap yalnızca ağırlıkları kapsar: KV önbelleği ve ara hesap değerleri ayrıca bellek ister.

Üç ayrı soru birbirine karışır: çıkarımı ucuzlatmak (daha az bellek, daha hızlı), küçük bir model elde etmek, ve uyarlamayı ucuzlatmak (bir modeli yeni göreve ayarlamak). Her soru için ayrı bir teknik var.

02Niceleme: aynı ağırlıklar, daha az bit#

Niceleme (quantization), ağırlıkları (ve bazen ara değerleri) daha az bitle saklamaktır: sürekli bir sayı aralığı, birkaç ayrık seviyeye yuvarlanır. Bellek ve bant genişliği azalır; bedeli, yuvarlama hatasıdır.

İşin ince yanı, büyük dil modellerinde bazı değerlerin çok büyük olmasıdır. Dettmers ve arkadaşları, dönüştürücü modellerin ara temsillerinde, yaklaşık 6,7 milyar parametreden itibaren, sistematik ve büyük genlikli “aykırı özelliklerin” ortaya çıktığını ve bunları ayrıca ele almayan basit 8 bitlik yöntemlerin kalitenin düşmesine yol açtığını gösterdi. Çözümleri LLM.int8(), aykırı özellikleri 16 bitlik hesaba ayırıp değerlerin %99,9’undan fazlasını 8 bitte çarpıyor ve 16 bitlik doğruluğu koruyor. LLM.int8() ↗

03Damıtma: büyük öğretmen, küçük öğrenci#

Bilgi damıtma (distillation), büyük bir modelin (öğretmen) çıktılarını küçük bir modelin (öğrenci) taklit etmesi için kullanır. Hinton, Vinyals ve Dean’in önerdiği fikirde öğrenci yalnızca “doğru etiket”ten değil, öğretmenin olasılık dağılımından öğrenir: dağılım, yanlış sınıfların da ne kadar makul göründüğünü taşır ve bu, tek bir doğru etiketten daha zengin bir sinyaldir. Hinton ve diğerleri ↗

Bu, önceki derslerde gördüğün olasılık dağılımının bir başka kullanımıdır: yalnızca “en olası token”ı değil, bütün dağılımı öğretmek.

04LoRA: yalnızca küçük bir parçayı eğit#

Bir modeli yeni bir göreve ince ayarlamak, bütün ağırlıkları güncellemek demekse, bu çok pahalı olabilir. LoRA (düşük ranklı uyarlama) ağırlık matrisini dondurur ve onun yanına, çarpımı bir güncellemeyi temsil eden iki küçük matris ekler; yalnızca bunlar eğitilir. Fikir, ince ayarda ağırlık değişiminin “düşük bir içsel rank”a sahip olduğu varsayımına dayanır.

Sayıyla görelim: 4096 × 4096’lık bir ağırlık matrisinde 16.777.216 parametre var. Rank 8 ile iki küçük matris, 2 × 4096 × 8 = 65.536 parametre tutar. Bu, orijinalin yaklaşık %0,39’u. Hu ve arkadaşları, GPT-3 175B’nin Adam ile tam ince ayarına kıyasla LoRA’nın eğitilebilir parametre sayısını 10.000 kat, GPU bellek ihtiyacını 3 kat azaltabildiğini ve (adaptörlerin aksine) ek çıkarım gecikmesi yaratmadığını bildirdi. LoRA ↗

QLoRA, iki fikri birleştirir: dondurulmuş modeli 4 bitle nicelenmiş hâlde tutar ve gradyanları bu modelden geçirerek LoRA katmanlarını eğitir. Yazarlar, 65 milyar parametreli bir modelin tek bir 48 GB’lık GPU’da ince ayarlanabildiğini ve 16 bitlik ince ayar performansının korunduğunu bildirdi; 16 bitlik normal ince ayarın aynı model için 780 GB’tan fazla GPU belleği gerektirdiği belirtiliyor. QLoRA ↗

05Hiçbiri bedava değil#

TeknikNeyi azaltırBedeli
NicelemeBellek ve çıkarım maliyetiYuvarlama hatası; bazı değerler özel ele alınmazsa kalite düşer
DamıtmaModel boyutu ve çıkarım maliyetiÖğrenci, öğretmenin tüm yeteneğini taşımayabilir; yeni bir eğitim gerekir
LoRA / QLoRAUyarlama (ince ayar) maliyetiAğırlıkların tamamının değişmesi gereken durumlarda sınırlı kalabilir

Bir modelin ağırlıklarının hepsini her token için kullanmak zorunda olmadığı bir tasarım da var: Uzman karışımı.

KENDİNİ SINA

Bu yazıyı bitirdiğinde:

  • Bir modelin bellek ihtiyacını parametre sayısı ve bayt sayısıyla hesaplayabilirsin.
  • Niceleme, damıtma ve LoRA’nın farklı şeyler yaptığını anlatabilirsin.
  • Küçültmenin bedava olmadığını örneklerle açıklayabilirsin.

Cümlelerden birini kendi sözlerinle anlatamıyorsan, ilgili bölüme dön ve demoyu yeniden dene.

İlerleme yalnızca bu tarayıcıda saklanır.
BAĞLANTILI KAVRAMLAR

Bir fikri diğerine bağla.

Rotanı gör: sıradaki adım ne? Bütün dersler