Hoppa till innehållet
AI-grafen
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

  1. softmax (radvis, stabil) — `softmax(z)` längs sista axeln, numeriskt stabil (subtrahera max).
  2. attention — `attention(Q, K, V, mask=None)` returnerar (utdata, vikter).
  3. 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.