← 문제 목록/Token Embedding + PE (더하기)
문제 해설

Token Embedding + PE (더하기)

신경망 · easy

preview

Token Embedding + Positional Encoding

Transformer 입력 = 토큰 임베딩 + 위치 인코딩. embedding-lookup-v1, positional-encoding-sinusoidal-v1 두 조각을 합치는 과정.

Xb,l,:=E[idxb,l]+PE[l]X_{b,l,:} = E[\text{idx}_{b,l}] + \text{PE}[l]

  • E: 토큰 임베딩 테이블 (V, d).
  • idx_batch: (B, L) 정수.
  • pe: (max_L, d) 사전계산된 PE (max_L ≥ L).

배치 축 B 에서 PE 는 broadcasting — 같은 PE 를 모든 배치에 더함.

과제

함수 add_positional_encoding(E, idx_batch, pe) 를 완성하세요.

  • shape: E (V, d), idx_batch (B, L), pe (max_L, d).
  • 반환: (B, L, d).
  • 구현: E[idx_batch] + pe[np.newaxis, :L, :] (또는 broadcasting 으로 pe[:L]).

테스트 케이스

#이름검증
1shape (B, L, d)
2pe=0 이면 embedding_lookup 와 동일
3같은 idx 다른 위치 → 다른 값permutation invariance 깨짐
4B 축 broadcasting모든 배치에 동일 PE 추가
5공식 일치모든 (b, l) 에서 E[idx]+PE
코드 작성
Loading...
실행 결과

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