→
앞 장에서는 Encoder와 Decoder가 어떻게 협력하는지 살펴봤습니다.
이번 장에서는 하나의 문장이 실제로 어떤 모습으로 바뀌며 이동하는지 따라갑니다.
Part 7 · Transformer Architecture - Following the Entire Transformer Pipeline
지금까지 Transformer의 각 구성 요소를 하나씩 살펴보았습니다. 이제 입력 문장이 토큰으로 변환되고, 임베딩과 위치 정보를 거쳐 Encoder와 Decoder를 통과한 뒤 최종적으로 다음 토큰을 생성하기까지의 전체 흐름을 하나의 과정으로 연결해 보겠습니다.
토큰의 의미와 위치 정보가 들어 있는 벡터
다른 토큰과의 관계까지 반영된 문맥 벡터
첫 단계에서는 시작 토큰만 있고, 이후에는 “나는”, “나는 이”처럼 출력이 점점 길어집니다.
입력 문장 “I love this book”을 이해한 결과를 Cross-Attention으로 계속 참고합니다.
Decoder의 출력 벡터를 Vocabulary 크기의 점수로 바꾸고, Softmax를 적용하면 각 토큰의 확률을 얻을 수 있습니다.
| 생성 단계 | Decoder가 지금까지 본 출력 | 새로 선택한 토큰 |
|---|---|---|
| 1 | <시작> | 나는 |
| 2 | <시작> 나는 | 이 |
| 3 | <시작> 나는 이 | 책을 |
| 4 | <시작> 나는 이 책을 | 좋아한다 |
| 5 | <시작> 나는 이 책을 좋아한다 | <끝> |
지금까지 생성한 토큰을 Decoder에 넣습니다.
Masked Self-Attention과 Cross-Attention을 수행합니다.
Vocabulary의 모든 후보 토큰 점수를 계산합니다.
선택한 토큰을 뒤에 붙이고 다시 반복합니다.