| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
- til
- 알고리즘
- LangChain
- ps
- N과 M
- 자료구조
- Ai
- 패스트캠퍼스
- Deep Learning
- llm
- Problem Solving
- 코딩테스트 준비
- BFS
- 테디노트
- openai
- 백준
- 코딩테스트
- 랭체인
- 코딩 인터뷰
- ChatGPT
- rag
- 백트래킹
- LeetCode
- 파이썬
- 코딩 테스트
- 시뮬레이션
- nlp
- 딥러닝
- 구현
- Python
- Today
- Total
AI Researcher 여정기
[논문 리뷰 - Transformer]: Attention is All You Need 본문
두둥 탁,,! 그 유명하고도 유명한 Transformer!
오늘은 Transformer 논문, "Attention is All You Need" (Vaswani et al., 2017)을 리뷰하고자 합니다.
정말 정말 정말 현대 AI 발전에 가장 큰 기여를 한 모델이라고 생각합니다.
워낙 유명하고 오래된 논문이기 때문에 다들 이론적으로 잘 아실 거라고 생각합니다.
저는 논문을 빠르게 훑고 정리하는 식으로 요약하고자 합니다.
그리고 실제로 전부 구현하는 느낌으로 가보겠습니다. (다음 포스팅에서!!)

Abstract

기존의 시퀀스 변환 모델은 복잡한 RNN 또는 CNN 구조를 사용하며, 인코더-디코더 사이에 어텐션을 결합하는 방식이 성능을 이끌어왔습니다.
이 논문은 이러한 복잡한 구조를 버리고 어텐션만으로 구성된 Transformer 아키텍처를 제안합니다.
결과적으로 기존 최고 성능을 넘어서는 BLEU 점수를 달성하며, 병렬 처리와 학습 속도 측면에서도 큰 개선을 보여줍니다.
1. Introduction

ConvS2S, ByteNet 등은 CNN을 기반으로 순차성을 줄이는 시도를 해왔지만, 여전히 긴 거리의 의존성 학습에는 한계가 있었습니다.
Self-Attention은 단일 시퀀스 내에서 위치 간 관계를 효율적으로 표현할 수 있는 메커니즘이며, Transformer는 이 메커니즘만을 사용한 최초의 시퀀스 변환 모델입니다.
2. Background

ConvS2S, ByteNet 등은 CNN을 기반으로 순차성을 줄이는 시도를 해왔지만, 여전히 긴 거리의 의존성 학습에는 한계가 있었습니다.
Self-Attention은 단일 시퀀스 내에서 위치 간 관계를 효율적으로 표현할 수 있는 메커니즘이며, Transformer는 이 메커니즘만을 사용한 최초의 시퀀스 변환 모델입니다.
3. Model Architecture


Transformer는 기존의 시퀀스 변환 모델처럼 인코더-디코더 구조를 따르지만, 순환 구조 없이 self-attention과 position-wise feed-forward 네트워크만으로 구성되어 있습니다.
3.1 Encoder & Decoder Stacks

- Encoder는 동일한 구조의 층 6개로 구성되며, 각 층은 아래 두 개의 서브 레이어로 구성됩니다:
- Multi-head self-attention
- Position-wise feed-forward network
- Decoder도 6개의 동일한 층으로 구성되며, encoder 층에 더해:
- Masked multi-head self-attention
- Encoder-decoder attention

3.2 Attention Mechanism

Multi-Head Attention
단일 attention만 사용하는 대신, 여러 개의 head (h=8)를 사용하여 다양한 부분공간에서 정보를 동시에 추출합니다.

3.3 Feed-Forward Networks (FFN)
각 위치에 독립적으로 작동하는 두 개의 linear layer로 구성:

3.4 Embedding & Softmax

3.5 Positional Encoding
순환 구조가 없기 때문에 토큰의 순서를 알리기 위해 Positional Encoding을 추가:

- 고정된 사인/코사인 함수를 사용
- 학습 가능한 버전도 실험했으나 성능 차이는 미미
🏋️ 4. Training 요약
Transformer 모델을 효과적으로 학습하기 위해 저자들은 다음과 같은 세부 전략을 도입합니다.
데이터 및 태스크
- WMT 2014 영어-독일어 및 영어-프랑스어 번역 태스크 사용
- 총 4.5M 쌍(En-De), 36M 쌍(En-Fr)의 문장 페어 사용
배치 및 학습 설정
- 최대 시퀀스 길이: 100
- 배치 크기: 총 25,000개의 단어를 기준으로 구성
- 학습 시퀀스 구성: 최대 길이를 초과하지 않는 문장쌍으로 구성하여 효율적 병렬 처리
옵티마이저: Adam
- Transformer는 Adam Optimizer를 사용하여 학습함
- 일반적인 설정보다 β₂ 값을 낮춰서 더 빠른 적응을 유도
러닝레이트 스케줄링
- 일정 횟수까지는 learning rate를 선형으로 증가시키고, 이후엔 역√(step_num) 비율로 감소

📝 이 함수는:
- 처음에는 학습이 너무 느리거나 빠르지 않도록 linearly warm up
- 이후 안정적인 학습을 위해 decay
레귤러라이제이션
- Dropout: 0.1 비율로 attention과 FFN 내부에 적용
- Label Smoothing: Cross-entropy loss 계산 시 정답 분포에 약간의 부드러움을 추가

🧠 목적: 모델이 과도하게 확신(overconfidence) 하지 않도록 유도
결론
이 논문에서는 완전히 Attention 기반으로 구성된 새로운 모델 아키텍처, 즉 Transformer를 제안합니다. 이 구조는 기존의 RNN이나 CNN 없이도, 다양한 sequence-to-sequence 작업에서 뛰어난 성능을 보일 수 있음을 실증했습니다.
🎯 다음 포스팅 예고
다음 글에서는 이 구조를 직접 PyTorch로 구현해 보며, 구조 하나하나를 뜯어보는 포스팅으로 이어가겠습니다.
(혹은 Hugging Face로 빠르게 실습해 볼 수도 있죠!)