Dikkat mekanizması ve transformer mimarisi
Dikkati sorgu-anahtar-değer üçlüsüyle yapılan içerik tabanlı bir arama olarak kurar; maskeleme tercihlerini ve dizi uzunluğunun hesap ile bellek maliyetine etkisini açıklar.
Önkoşul: Deep Learning, Neural Networks
BU DERSİN SONUNDA
- Dikkati sorgu, anahtar ve değer rolleri üzerinden açıklamak
- Yinelemeli mimarinin hangi iki kısıtının dikkati doğurduğunu göstermek
- Nedensel, iki yönlü ve dolgu maskelerini işe göre seçmek
- Dizi uzunluğunun hesap ve önbellek maliyetine etkisini tahmin etmek
- 1
Teori
Kavramın çalışma mantığı
- 2
Örnek
Gerçek bir senaryo üzerinde gösterim
- 3
Lab
Uygulamalı alıştırma
- 4
Test
Kısa ölçüm
- 5
Proje
Rotadaki projeye katkı
Kısa cevap
Dikkat, her konumun diğer konumlara ne kadar bakacağını içeriğe göre belirleyen ağırlıklı bir toplamdır: sorgu ile anahtarın eşleşmesi ağırlıkları üretir, değerler bu ağırlıklarla toplanır. Transformer bu işlemi çok başlı ve çok katmanlı olarak yığar. Mimarinin kazancı, her konumun her konuma tek katmanda erişebilmesi; bedeli, dizi uzadıkça hesabın karesel büyümesidir.
Teori: yinelemenin yerini neden aldı#
Yinelemeli ağ durumu adım adım taşır ve bu iki maliyet üretir. Eğitim dizi boyunca paralelleştirilemez, çünkü her adım bir öncekini bekler. Ayrıca iki uzak konum arasındaki yol, aralarındaki mesafe kadar uzundur; gradyanın bu kadar çok çarpımdan sağ çıkması gerekir. Dikkat her konuma her konumu tek katmanda erişilebilir kılar: yol uzunluğu sabitlenir ve dizi aynı anda hesaplanır.
Ödenen bedel açıktır. Her konum her konuma baktığı için hesap ve dikkat belleği dizi uzunluğunun karesiyle büyür; yinelemede bu büyüme doğrusaldı. Mimari çalışmalarının büyük kısmı bu bedeli ortadan kaldırmaya değil, daha ucuza ödemeye çalışır: pencereli veya seyrek dikkat her konumun bakacağı kümeyi daraltır, anahtar-değer başlarını paylaşmak bellek ayak izini düşürür.
Sorgu, anahtar, değer#
| Rol | Ne temsil eder | Sezgi |
|---|---|---|
| Sorgu | Bu konumun aradığı bilgi | Bende eksik olan ne? |
| Anahtar | Her konumun sunduğu etiket | Bende şu var |
| Değer | Eşleşme olursa taşınacak içerik | Getirilecek yük |
| Dikkat ağırlığı | Sorgu-anahtar iç çarpımının ölçeklenip normalleştirilmiş hali | Bu konuma ne kadar bakayım |
İç çarpımın baş boyutunun kareköküne bölünmesi bir ayar düğmesi değil sayısal bir gerekliliktir. Boyut büyüdükçe iç çarpımların ölçeği de büyür; ölçekleme yapılmazsa normalleştirme doyuma ulaşır, dağılım tek konuma çöker ve o bölgede gradyan neredeyse kaybolur.
Çok başlılık ve konum bilgisi#
- Tek bir dikkat dağılımı tek tür ilişkiyi yakalayabilir; başlar aynı katmanda farklı ilişkileri paralel olarak taşır.
- Başlar bağımsız çalışır, çıktıları birleştirilip yeniden izdüşürülür; bu yüzden baş sayısını artırmak baş başına düşen boyutu küçültür.
- Dikkat işleminin kendisi sıra bilgisi taşımaz: girdiler karıştırılırsa her tokenin çıktısı içerik olarak aynı kalır, yalnızca yeri değişir; token çiftleri arasındaki ağırlık ise mesafeden değil içerikten gelir.
- Sıra, konum kodlamasıyla girdiye eklenir. Bu bir eklenti değil, mimarinin sırayı öğrenebilmesinin tek yoludur ve uzun dizilerdeki davranış büyük ölçüde bu tercihe bağlıdır.
Maskeleme: aynı mekanizma, farklı iş#
| Maske | Konum neyi görür | Uygun iş |
|---|---|---|
| Nedensel | Yalnızca kendisini ve öncesini | Bir sonraki tokeni üretme: metin üretimi |
| İki yönlü | Dizinin tamamını | Sınıflandırma, gömme çıkarma, yeniden sıralama |
| Dolgu maskesi | Yalnızca gerçek tokenları; dolgu görünmez | Farklı uzunluktaki dizileri aynı yığında işleme |
Maliyet: dizi uzadıkça ne olur#
Birbirine karıştırılmaması gereken iki büyüme var. Dikkat hesabı dizi uzunluğunun karesiyle büyür: bağlamı iki katına çıkarmak hesabı kabaca dörde katlar. Üretilmiş tokenlar için saklanan anahtar-değer önbelleği ise uzunlukla ve katman sayısıyla doğrusal büyür. Bu ayrım üretimde doğrudan hissedilir: ilk tokeni üretmek hesap ağırlıklı, sonraki her token bellek bant genişliği ağırlıklı bir iştir.
Sık yapılan hata#
En yaygın yanılgı, dikkat ağırlıklarını bir açıklama olarak okumaktır: “model şu kelimeye baktı, demek ki sebebi bu”. Dikkat ağırlığı yalnızca bir katmanın bir başında bilginin nereden nereye taşındığını gösterir; çıktı, katmanlar boyunca karışan değerlerin ve birçok başın ortak sonucudur. İkinci yanılgı, uzun bağlamı bedava sanmaktır — pencere büyüdükçe hem hesap hem önbellek maliyeti büyür.
LAB · UYGULAMALI ALIŞTIRMA
Dikkat ağırlıklarını elle hesaplayın
- 1Beş tokenluk kısa bir dizi seçin ve her token için elle dört boyutlu bir vektör yazın; iki tokeni kasten birbirine benzer yazın.
- 2Sorgu, anahtar ve değer için üç adet 4×4 izdüşüm matrisi yazın; birim matrisle başlayıp birkaç girdiyi değiştirin.
- 3Sorgu-anahtar iç çarpımlarını hesaplayıp baş boyutunun kareköküne bölün ve satır bazında normalleştirin.
- 4Elde ettiğiniz 5×5 ağırlık matrisini yazdırın; benzer yazdığınız iki tokenin birbirine verdiği ağırlığı işaretleyin.
- 5Nedensel maskeyi uygulayın (üst üçgene çok büyük negatif değer) ve normalleştirmeyi tekrarlayarak hangi ağırlıkların sıfırlandığını gösterin.
- 6Karekök bölmesini kaldırıp aynı hesabı yineleyin ve dağılımın ne kadar keskinleştiğini karşılaştırın.
Beklenen çıktı
Maskesiz ve nedensel maskeli iki 5×5 dikkat ağırlık matrisi ile ölçeklemenin dağılım keskinliğine etkisini gösteren kısa bir karşılaştırma notu.
Sık sorulan sorular
Maliyet karesel büyüyorsa uzun bağlamlar nasıl mümkün oluyor?
Karesel büyüme ortadan kalkmıyor, katsayısı ve tabanı küçültülüyor. Pencereli veya seyrek dikkat her konumun bakacağı küme sayısını sınırlar; anahtar-değer başlarını paylaşmak önbellek belleğini düşürür; bellek trafiğini azaltan parçalı çekirdekler aynı hesabı daha az veri taşıyarak yapar. Bunlar farklı ödünleşimler taşır ve ücretsiz değildir.
Transformer'ı güçlü kılan dikkat mi, ölçek mi?
İkisi birbirine bağlı. Dikkat, dizi boyunca paralel hesaba izin verdiği için ölçeği ekonomik hale getirdi; aynı donanımda çok daha fazla veri görmek mümkün oldu. Mimarinin katkısını yalnızca ifade gücü olarak okumak eksik kalır.
Kodlayıcı-kod çözücü mü, yalnızca kod çözücü mü?
İşin tipine bakın. Serbest metin üretimi için nedensel maskeli tek yığın yeterlidir. Girdiyi bütün olarak okuyup sabit bir çıktı üretmek (sınıflandırma, gömme, yeniden sıralama) iki yönlü maskeden yararlanır. Mekanizma aynı; değişen şey maske ve eğitim hedefidir.
LEARN
Generative AI Engineer rotasına devam et
Dersler tek başına da okunabilir, ama sıralı ilerlemek önkoşul boşluklarını kapatır.
