본 글은 자연어처리(NLP)에서 널리 쓰이는 Transformer 구조를 간단하게 정리한 글입니다.
복잡한 수식보다 '핵심 개념' 위주로 정리해봤어요!
2017년 구글 논문 "Attention Is All You Need" 에서 처음 등장한 모델입니다.
- 기존의 RNN, LSTM 없이도 문장의 순서를 고려하며 학습 가능
- 병렬 연산이 가능해 학습 속도가 빠르고 효율적
- 현재 GPT, BERT, T5 등 대부분의 최신 AI 모델들의 기반 구조
🧱 핵심 구조
Transformer는 크게 두 부분으로 나뉩니다:
| 구성 요소 | 설명 |
|---|
| Encoder | 입력 문장을 이해하는 역할 |
| Decoder | 출력을 생성하는 역할 (ex. 번역 결과) |
대부분의 NLP 작업은 Encoder만 쓰거나, Encoder + Decoder를 함께 사용합니다.
⚙️ 주요 컴포넌트
1. Self-Attention
- 단어 하나가 문장 전체를 바라보며 중요한 단어에 더 집중
- 예: "나는 밥을 먹는다" → "밥"은 "먹는다"와 강하게 연결됨
✅ 예제: "나는 밥을 먹었다"
이 문장에서 각 단어가 문맥을 이해하는 방식은 다음과 같아요:
- "먹었다"는 동사이므로 "밥을"과 연결돼야 의미가 완성됩니다.
- Self-Attention은 "먹었다"가 문장 전체를 살펴보고,
"밥을"이 중요한 단어라는 것을 학습합니다.
- 이렇게 단어 간 의미 연결성을 수치로 계산해 반영합니다.
즉, "나는 밥을 먹었다"에서
→ "먹었다"는 "밥을"을 주로 주목하게 됩니다.
2. Multi-Head Attention
- Self-Attention을 여러 번 동시에 수행
- 다양한 관점에서 문장을 분석할 수 있게 해줌
3. Positional Encoding
- Transformer는 순서를 모르기 때문에, 단어의 위치 정보를 인코딩해서 입력에 더해줌
4. Feed Forward + Layer Normalization
- Attention 후에는 각각 독립적인 작은 신경망을 거치며 학습
- 잔차 연결(Residual) + LayerNorm으로 안정적인 학습 가능
🧠 한 줄 요약
"문장 안에서 각 단어가 누굴 중요하게 여길지를 계산하고, 그 정보를 반복적으로 처리한다!"
🔗 참고 링크