D· AI-utvecklareLaboration· ca 60 min· container
Labb: scaled dot-product attention med kausal mask
Implementera softmax, attention(Q, K, V) och en kausal mask i NumPy, och verifiera egenskaperna: vikter summerar till 1, ingen token ser framåt.
Lär ut: attention · Kräver: matriserembeddings
Teori
Attention(Q,K,V) = softmax(QKᵀ/√d)·V. Kausal mask: sätt poäng för framtida positioner till −∞ före softmax.
Deluppgifter
- softmax (radvis, stabil) — `softmax(z)` längs sista axeln, numeriskt stabil (subtrahera max).
- attention — `attention(Q, K, V, mask=None)` returnerar (utdata, vikter).
- kausal mask — `causal_mask(n)` returnerar n×n boolsk matris där True = får ses.
Evals: referens-diff (max_abs_diff <= 0.000001)
Logga in för att köra laborationen.
Förväntade resultat
Vikterna summerar till 1 radvis; med kausal mask är vikterna ovanför diagonalen exakt 0; skillnad mot referensen < 1e-6.
Vanliga fel
- softmax utan max-subtraktion → overflow för stora poäng.
- Maskar efter softmax i stället för före (då summerar raderna inte till 1).
- Glömmer √d.