14강 / 20강

트랜스포머 — 같은 덩어리를 쌓는다

어텐션 + 완전연결 + 잔차 + 층 정규화

트랜스포머 — 같은 덩어리를 쌓는다
덩어리 하나를 여러 번 쌓습니다. 안에 든 것은 이미 다 배웠습니다.

트랜스포머 한 덩어리에 든 것은 전부 앞에서 나온 것들입니다.

x ├──────────────┐ │ 층 정규화 (9강) │ 멀티헤드 어텐션 (13강) └──── + ───────┘ ← 잔차 연결 (6강) │ ├──────────────┐ │ 층 정규화 │ 완전연결 두 층 + ReLU (3강) └──── + ───────┘ ← 잔차 연결 │ 출력 → 다음 덩어리로

새로운 것은 멀티헤드 하나뿐입니다.

헤드마다 <b>다른 자리</b>를 봅니다. 차원을 쪼개 나눠 가지므로 계산량은 그대로예요.
Python 브라우저에서 실행
덩어리를 쌓아 보세요. 무엇이 반복되는지.
불러오는 중…

자리 정보를 따로 넣어야 한다

어텐션에는 순서 개념이 없습니다. Q·K 내적은 자리를 안 보거든요 — 서열을 뒤섞어도 결과가 같습니다.

그래서 위치 정보를 입력에 더해 넣습니다.

입력 = 토큰 임베딩 + 위치 임베딩 토큰 임베딩 "이 자리는 알라닌이다" 위치 임베딩 "이 자리는 앞에서 37번째다"

둘을 더한 것이 첫 덩어리로 들어갑니다. 이 한 줄이 없으면 트랜스포머는 서열을 순서 없는 주머니로 봅니다.

위치 임베딩 없이는 서열을 <b>뒤섞어도 결과가 같습니다</b>.
Python 브라우저에서 실행
🤔 확인 문제
트랜스포머에 위치 임베딩을 넣지 않으면?