← 문제 목록/Scaled Dot-Product Attention 🎯
문제 해설

Scaled Dot-Product Attention 🎯

신경망 · easy

preview

Scaled Dot-Product Attention 🎯 (100번째 문제!)

여기까지 온 여정 전체가 모이는 곳. softmax-v1, embedding-lookup-v1, causal-mask-v1 가 어떻게 한 공식으로 합쳐지는지 보세요.

Vaswani et al., Attention Is All You Need (2017):

Attention(Q,K,V)=softmax-v1 ⁣(QKdk)V\text{Attention}(Q, K, V) = \text{softmax-v1}\!\left(\frac{QK^\top}{\sqrt{d_k}}\right) V

직관

  • QQ (query): "나는 지금 뭐가 궁금해?"
  • KK (key): 각 token 의 "검색 태그".
  • VV (value): 각 token 의 "실제 콘텐츠".
  • QKQK^\top: query 와 각 key 의 매칭 점수 (내적).
  • dk\sqrt{d_k} 로 나누기: 차원이 커지면 점수 분산이 커져 softmax-v1 가 포화 → 이를 상쇄.
  • softmax-v1: 점수 → 확률 분포 (attention weights).
  • · V: 확률 가중 합으로 value 들을 섞음.

과제

함수 attention(Q, K, V, mask=None) 를 완성하세요.

  • Q: (L_q, d_k).
  • K: (L_k, d_k).
  • V: (L_k, d_v).
  • mask: (L_q, L_k) bool 또는 None. True = 참조 허용, False = 차단.
  • 반환: (L_q, d_v).

구현:

  1. scores = Q @ K.T / sqrt(d_k)(L_q, L_k)
  2. mask 가 있으면 scores = where(mask, scores, -1e9)
  3. attn = softmax-v1(scores, axis=-1)
  4. out = attn @ V

테스트 케이스

#이름검증
1shape (L_q, d_v)
2같은 Q, K → 자기 자신 attend 우세softmax-v1 대각 우세
3scale 1/√d_kd_k 늘려도 포화 안 됨
4mask 적용차단 위치 weight 0
5V 가중합수식 일치 (ref)
코드 작성
Loading...
실행 결과

코드를 작성하고 Run 을 눌러보세요.