01Attention sırayı kendiliğinden görmez#
Transformer yazısında “Kedi köpeği kovaladı” ile “Köpek kediyi kovaladı” cümlelerinin aynı parçaları içerip aynı şeyi söylemediğini, bu yüzden konum bilgisine ihtiyaç duyulduğunu söylemiştik. Bunun nedenini somutlaştıralım: attention bir tokenın çıktısını, diğer tokenların değer vektörlerinin ağırlıklı toplamı olarak hesaplar. Girdi tokenlarını karıştırırsan, her tokenın çıktısı da aynı biçimde karışır, ama değişmez: işlem, tokenların “dizinin neresinde durdukları” bilgisini taşımaz. (Nedensel maske dolaylı bir sıra ipucu verebilir; yine de modeller konumu açıkça kodlar.)
Çözüm, sıra bilgisini vektörlerin içine koymaktır. Özgün Transformer, farklı frekanslarda sinüs ve kosinüs dalgalarından oluşan sabit konum kodlamalarını token embedding’lerine ekledi. Her konum, kendine özgü bir sayı desenine sahip olur; model bu desenleri, tokenların nerede durduğunu ayırt etmek için kullanabilir. Vaswani ve diğerleri ↗
02Mutlak yer mi, uzaklık mı?#
“Bu token cümlenin 17. sırasında” bilgisi mutlak konumdur. Dil için çoğu zaman daha önemli olan, göreli konumdur: “bu zamir, üç token önceki isme işaret ediyor.” Bu yüzden birçok sonraki yöntem, konumu girdiye eklemek yerine attention hesabının içine katmayı tercih eder, öyle ki iki tokenın skoru, aralarındaki uzaklığa bağlı olsun.
03RoPE: konumu bir dönüşle kodla#
Döner konum gömmesi (RoPE), bu fikrin yaygın bir gerçekleştirmesidir. Sorgu ve anahtar vektörlerinin bileşenleri ikişerli gruplanır ve her grup, tokenın konumuyla orantılı bir açıyla döndürülür. Sonra her zamanki gibi sorgu ve anahtarın nokta çarpımı alınır. İki vektör döndürülünce nokta çarpımı yalnızca dönüşlerin farkına, yani tokenların konum farkına bağlı kalır. Makale, yöntemin mutlak konumu bir dönme matrisiyle kodladığını ve self-attention hesabının göreli konuma bağlı olduğunu, ayrıca keyfi dizi uzunluklarına esneklik ve uzaklık arttıkça azalan bir bağımlılık sağladığını belirtir. Su ve diğerleri ↗
Bu özelliği küçük bir hesapla doğrulayabilirsin. Sorgu q = [1; 0,5], anahtar k = [0,8; 0,3], dönüş açısı konum başına 0,5 radyan olsun. Tabloda her satır, sorgunun ve anahtarın konumlarını ve nokta çarpımını gösteriyor:
| Sorgu konumu | Anahtar konumu | Fark (anahtar − sorgu) | Skor |
|---|---|---|---|
| 0 | 0 | 0 | 0,9500 |
| 5 | 5 | 0 | 0,9500 |
| 0 | 2 | 2 | 0,5974 |
| 7 | 9 | 2 | 0,5974 |
| 2 | 0 | −2 | 0,4291 |
| 0 | 4 | 4 | −0,3044 |
Aynı farka sahip çiftler (0–0 ve 5–5, 0–2 ve 7–9) tam olarak aynı skoru veriyor, mutlak konumdan bağımsız. Bu değerler gerçek bir hesaptan geliyor; bir dil modelinin içindeki skorlar değil, mekanizmayı gösteren iki boyutlu bir örnek. Gerçek modellerde dönüşler birçok frekansta, vektörün farklı çiftlerine uygulanır.
04Neden tek bir attention yetmez?#
Bir attention başı, her tokenın diğerlerinden tek bir ağırlıklı karışım almasını sağlar. Çoklu başlı attention, bunu birden fazla kez, farklı öğrenilmiş Q, K, V dönüşümleriyle paralel yapar: her baş kendi sorgu–anahtar–değer uzayında çalışır, kendi ağırlık matrisini ve dolayısıyla kendi bilgi karışımını üretir. Sonra başların çıktıları birleştirilir ve bir çıkış dönüşümünden geçer. Özgün makalede başların boyutu, model boyutunun baş sayısına bölünmesiyle seçilir; böylece baş sayısı artarken toplam hesap yaklaşık aynı kalır. Vaswani ve diğerleri ↗
Pratikte bunun anlamı: model, aynı cümleye birden fazla bakış atabilir. Ama bir başa “özne bulucu” gibi kesin bir görev atamak yanıltıcıdır; başların ne yaptığı modele, katmana ve girdiye bağlıdır (bkz. Transformer yazısı).
Çoklu baş tasarımının bir maliyeti de var: her baş için anahtar ve değerlerin üretim sırasında saklanması gerekir. Bu önbelleğin boyutu, uzun bağlamlarda belleğin büyük kısmını yer. Bu yüzden bazı tasarımlar, birçok sorgu başının daha az sayıda anahtar–değer başını paylaşmasını sağlar. Bunu Dil modeli neden yavaşlar? yazısında ayrıntılı göreceksin.
Bu bloklar yüzlerce kez üst üste konuluyor; peki sinyal o kadar katmandan nasıl sağ çıkıyor? Yüz katmanlı ağ nasıl eğitilir?
Bu yazıyı bitirdiğinde:
- Attention’ın sırayı kendiliğinden neden görmediğini açıklayabilirsin.
- Mutlak konum ile göreli konum (RoPE) fikri arasındaki farkı anlatabilirsin.
- Tek bir dikkat başının neden yetmediğini söyleyebilirsin.
Cümlelerden birini kendi sözlerinle anlatamıyorsan, ilgili bölüme dön ve demoyu yeniden dene.
Yüz katmanlı ağ nasıl eğitilir? Artık bağlantı ve normalizasyon
Orta · 9 dk okuma