Part 7 · Transformer Architecture - Bringing Everything Together
Transformer를 하나의 그림으로 이해하기
Tokenizer는 문장을 토큰으로 나누고, Embedding은 토큰을 의미 벡터로 바꾸며, Positional Encoding은 위치 정보를 더합니다. Self-Attention은 문맥을 이해하고, Feed Forward Network는 표현을 발전시키며, Encoder와 Decoder는 입력과 출력을 연결합니다.
각각의 기술은 독립적으로 존재하는 것이 아니라 서로 긴밀하게 연결되어 하나의 Transformer를 이룹니다. 지금까지 배운 모든 과정을 하나의 큰 흐름으로 정리해 보면 Transformer가 어떻게 현대 언어 모델의 기반이 되었는지 자연스럽게 이해할 수 있습니다.
The Big Idea
Transformer는 결국 무엇을 하는 모델일까?
Transformer는 입력 문장을 벡터로 바꾸고 문맥을 이해한 뒤,
다음 토큰을 하나씩 예측하여 새로운 문장을 생성하는 모델입니다.
The Whole Flow
Transformer 전체 흐름
입력 문장
사람이 입력한 텍스트
Tokenizer
문장을 토큰과 Token ID로 변환
Embedding
토큰을 의미 벡터로 변환
Position
벡터에 순서 정보 추가
반복
새 토큰을 다시 Decoder에 입력
Score + Softmax
다음 토큰의 확률 계산
Decoder
입력 문맥을 참고해 다음 토큰 생성
Encoder
입력 토큰의 관계와 문맥 계산
입력은 Encoder에서 문맥으로 정리되고,
Decoder는 그 문맥을 참고하며 출력 토큰을 하나씩 생성합니다.
What We Learned
지금까지 배운 핵심 개념 연결하기
1
Tokenizer
문장을 모델이 처리할 수 있는 토큰 단위로 나눕니다.
2
Embedding
Token ID를 계산 가능한 의미 벡터로 바꿉니다.
3
Position
각 토큰이 문장 안에서 몇 번째인지 알려 줍니다.
4
Self-Attention
한 문장 안의 토큰들이 서로 어떤 관계인지 계산합니다.
5
Multi-Head Attention
여러 관점에서 토큰 관계를 동시에 살펴봅니다.
6
Encoder
입력 전체를 읽고 문맥이 반영된 벡터를 만듭니다.
7
Decoder
지금까지 생성한 문맥을 이용해 다음 토큰을 예측합니다.
8
Cross-Attention
Decoder가 Encoder의 입력 문맥을 참고하도록 연결합니다.
Encoder vs Decoder
Encoder와 Decoder를 한눈에 비교하기
Encoder
입력 임베딩 + 위치 정보
Multi-Head Self-Attention
Residual + LayerNorm
Feed Forward
문맥 벡터
Decoder
이전 출력 임베딩 + 위치 정보
Masked Self-Attention
Cross-Attention
Feed Forward
다음 토큰 확률
Encoder는 입력을 이해하고,
Decoder는 이해한 입력을 참고해 출력을 생성합니다.
One Sentence Again
한 문장이 Transformer를 통과하는 과정
버튼을 눌러 같은 문장이 어떤 모습으로 바뀌는지 마지막으로 확인해 보세요.
1단계 · 입력 문장
현재 데이터
I love this book
이 단계의 역할
사람이 입력한 원래 문장입니다.
이제 이 문장을 모델이 계산할 수 있는 형태로 바꿉니다.
Why Transformer?
Transformer는 RNN과 무엇이 달랐을까?
RNN
토큰을 순서대로 하나씩 처리합니다.
앞의 정보를 Hidden State에 전달합니다.
문장이 길어질수록 오래된 정보가 약해질 수 있습니다.
시간 단계가 연결되어 병렬 계산이 어렵습니다.
VS
Transformer
Attention으로 토큰 관계를 직접 계산합니다.
멀리 떨어진 토큰도 바로 연결할 수 있습니다.
입력 토큰을 병렬로 처리할 수 있습니다.
대규모 데이터와 계산 자원을 활용하기에 유리합니다.
Transformer가 언제나 모든 긴 문장을 완벽하게 이해한다는 뜻은 아닙니다.
다만 RNN보다 먼 거리의 관계를 직접 계산하고 병렬 학습하기 좋은 구조를 제공합니다.
지금까지 따로 배운 구성 요소를 「Attention Is All You Need」 논문의 원본 도식과 거의 같은 배치로 다시 연결했습니다.
논문 도식처럼 입력과 출력은 아래쪽에서 시작하며, 계산 결과는 화살표를 따라 아래에서 위로 이동합니다.
주황색 우회선은 Residual Connection, 분홍색 가로선은 Encoder 출력이 Decoder의 Cross-Attention으로 전달되는 경로를 나타냅니다.
논문 원본처럼 모든 주 계산 화살표는 아래에서 위로 향합니다. Encoder의 최종 표현은 Decoder Cross-Attention의 Key와 Value로 전달됩니다.
Add & Norm
각 하위 층의 입력을 출력에 다시 더한 뒤 Layer Normalization을 적용합니다.
N×
점선 상자 안의 Encoder 층과 Decoder 층을 여러 번 반복해 깊게 쌓습니다.
Outputs (Shifted Right)
학습할 때 정답 토큰을 한 칸 오른쪽으로 이동해 Decoder가 미래 토큰을 미리 보지 못하게 합니다.
원본 Transformer는 왼쪽의 Encoder가 입력 전체를 이해하고,
오른쪽의 Decoder가 Masked Self-Attention과 Cross-Attention을 거쳐 다음 토큰의 확률을 계산하는 구조입니다.
각 Attention과 Feed Forward 하위 층에는 Residual Connection과 Layer Normalization이 빠짐없이 적용됩니다.
Final Summary
Transformer를 한 문장으로 정리하면
Transformer는 문장을 토큰과 벡터로 바꾸고,
위치와 문맥을 계산한 뒤,
입력에 맞는 다음 토큰을 하나씩 예측하여 출력을 완성합니다.