에듀테크 프로젝트 대시보드
셀프 어텐션 페이지에서
Query·Key·Value로 문장이 스스로를 참조하는 법을 봤다. 트랜스포머는 이 어텐션을
여러 개 나란히 두고(멀티헤드), 순서 정보를 따로 주입하고,
잔차연결·정규화·피드포워드로 감싼 블록을 여러 층 쌓아 만든 전체 구조다.
GPT·BERT·번역기 대부분이 이 뼈대 위에 있다.
번역처럼 "문장을 통째로 이해하고(인코더) → 한 단어씩 생성한다(디코더)" 과제를 기준으로 보면 이렇다.
임베딩을 head 개수만큼 조각내어 각 조각끼리 독립적으로 어텐션을 계산한다. 한 헤드는 "누가 누구를 만났나"에, 다른 헤드는 "언제·어디서"에 주목하는 식으로 서로 다른 관계를 잡을 수 있다. 토큰을 클릭해 Query를 바꾸고, 헤드 개수를 바꿔보자.
셀프 어텐션은 모든 토큰을 동시에, 순서 없이 본다(집합처럼). "나는 너를 좋아해"와 "너는 나를 좋아해"를 구별하려면 순서 정보를 따로 더해줘야 한다. 트랜스포머는 위치마다 서로 다른 사인·코사인 패턴을 더한다.
PE(pos, 2i) = sin(pos / 10000^(2i/d))
PE(pos, 2i+1) = cos(pos / 10000^(2i/d))
| 종류 | Q·K·V 출처 | 특징 |
|---|---|---|
| 인코더 셀프 어텐션 | 모두 입력 문장 | 모든 위치가 서로를 양방향으로 볼 수 있음 |
| 디코더 마스크드 셀프 어텐션 | 모두 지금까지 생성된 출력 | 미래 토큰은 −∞로 가려서(마스킹) 아직 안 나온 단어를 못 훔쳐봄 |
| 디코더 교차 어텐션 | Q=디코더, K·V=인코더 출력 | 지금 생성 중인 단어가 원문의 어느 부분과 관련있는지 참조 (번역의 핵심) |
임베딩을 조각내 여러 관점으로 동시에 어텐션 → 다양한 관계를 병렬로 포착.
순서 없는 어텐션에 사인·코사인 패턴을 더해 위치 정보를 주입.
층을 깊게 쌓아도 기울기가 안정적으로 흐르도록 Add & Norm을 반복.
이해는 양방향 셀프 어텐션, 생성은 마스킹 + 교차 어텐션으로 원문을 참조.