CodeBlanks Logo Icon CodeBlanks

Özet - Attention

Bu grupta self-attention, QKV ve multi-head attention'ı öğrendin.

Özet: attention

Bu grupta:

  • Attention, skorların softmax ağırlıklarıyla değerlerin ağırlıklı ortalamasını alır.
  • Öz-dikkatte her eleman tüm dizine bakar; maliyet n² ile büyür.
  • Q, K, V ayrı öğrenilen dönüşümlerdir: skor q·k, taşınan bilgi v.
  • Ölçekli nokta çarpım: softmax(QKᵀ/√d_k) V; ölçekleme softmax doygunluğunu önler.
  • Çok başlı dikkat temsili h başa böler, farklı ilişkileri paralel öğrenir.

Uygulama PyTorch ile karşılaştır

NumPy'daki attention fonksiyonunu yaz. Verilen küçük Q, K, V için sonucu np.round(..., 4) ile yazdır. Ardından elle hesapladığın ilk satırın softmax([1/√2, 1/√2]) @ V[:, 0] ve @ V[:, 1] olduğunu, yani [5, 5] çıktığını kontrol et: np.allclose(Y[0], [5, 5]) sonucunu yazdır.

Başlangıç kodu

model.py
import numpy as np

def softmax(z, eksen=-1):
    e = np.exp(z - z.max(axis=eksen, keepdims=True))
    return e / e.sum(axis=eksen, keepdims=True)

Q = np.array([[1., 1.], [2., 0.]])
K = np.array([[1., 0.], [0., 1.]])
V = np.array([[10., 0.], [0., 10.]])

# buraya yaz

Örnek çözüm

model.py
import numpy as np

def softmax(z, eksen=-1):
    e = np.exp(z - z.max(axis=eksen, keepdims=True))
    return e / e.sum(axis=eksen, keepdims=True)

Q = np.array([[1., 1.], [2., 0.]])
K = np.array([[1., 0.], [0., 1.]])
V = np.array([[10., 0.], [0., 10.]])

def attention(Q, K, V):
    A = softmax(Q @ K.T / np.sqrt(Q.shape[-1]), eksen=-1)
    return A @ V

Y = attention(Q, K, V)
print(np.round(Y, 4))
print(np.allclose(Y[0], [5, 5]))

Beklenen çıktı

[[5.     5.    ]
 [8.0443 1.9557]]
True

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Dizi uzunluğu 4 katına çıkarsa öz-dikkatin hesap maliyeti yaklaşık kaç katına çıkar?

  • 16 Doğru cevap
  • 4
  • 2
  • 64

Açıklama: Maliyet n²'dir: 4² = 16.

2 Transformer dikkat formülünü tamamla.

Soru
Y = softmax(Q @ K.T / np.sqrt(d_k)) ____ V
Cevap
Y = softmax(Q @ K.T / np.sqrt(d_k)) @ V

Açıklama: Ağırlıklar değerlerle matris çarpımına girer.

3 Kavramları eşleştir.

Kavram Anlamı
QKᵀ Benzerlik skorları
√d_k Ölçek
softmax Satır olasılıkları
çok başlı Paralel ilişkiler

Uzman bölümündeki tüm dersler