Foundations · NeurIPS 2017
Attention Is All You Need — Transformer
RNN/CNN 없이 어텐션만으로 시퀀스를 모델링한 현대 LLM의 뿌리.
1. 핵심 요약
이 논문은 순환/합성곱 없이 트랜스포머(Transformer) 아키텍처를 제안합니다. 병렬 처리가 가능해 학습 속도가 크게 향상되었고, 현존 대형 언어 모델의 표준 뼈대가 되었습니다.
2. 왜 중요한가 — 쉬운 설명
30초 비유
긴 문장을 이해할 때, 단어를 하나씩 순서대로 읽는 대신(옛 RNN 방식) 모든 단어가 서로를 동시에 쳐다보며 “지금 이 단어는 어떤 단어를 참고해야 하지?”를 정합니다. 회의에서 각 발언자가 다른 사람들의 말을 얼마나 반영할지 스스로 저울질하는 것과 같습니다.
무엇을 제안했나
- Self-Attention — 각 단어가 문장 안 모든 단어에 “주목도(가중치)”를 매겨 정보를 섞음. 순서대로 기다릴 필요가 없음.
- Multi-Head — 이 주목을 여러 관점(문법·의미·거리 등)으로 동시에 수행.
- Positional Encoding — 어텐션은 순서를 모르므로, 위치 정보를 신호로 더해 줌.
그래서 무엇이 달라졌나
- 단어를 동시에 처리 → 병렬 학습이 가능해져 모델·데이터를 훨씬 키울 수 있게 됨.
- 번역 SOTA를 RNN 없이 달성했고, 이후 GPT·BERT·LLaMA가 모두 이 구조에서 나옴.
더 공부할 가치가 있을까?
3. 배경 및 문제 제기
2017년 이전 NLP의 주류는 RNN/LSTM이었습니다. 시퀀스를 왼쪽→오른쪽으로 순서대로 처리합니다.
구조적 한계
- 순차 처리: t번째 상태는 t−1에 의존 → GPU 병렬화 어려움
- 장거리 의존성: 문장이 길수록 앞 정보가 희미해짐
- 기울기 소실/폭발: 긴 시퀀스에서 역전파가 불안정
어텐션은 이미 RNN의 보조 기법으로 쓰였지만, 이 논문은 어텐션만으로 전부 대체할 수 있다고 주장합니다.
4. 핵심 아이디어: Self-Attention
각 토큰이 다른 모든 토큰을 얼마나 주목할지 학습합니다. 입력은 세 역할로 투영됩니다.
- Query (Q): 무엇을 찾는가?
- Key (K): 무엇을 제공할 수 있는가?
- Value (V): 실제 내용은 무엇인가?
셀프 어텐션 계산 흐름
토큰을 Query로 고르고, 아래 단계를 따라가면 수식과 같은 계산이 보입니다. (데모용 작은 임베딩)
Query와 각 Key의 내적으로 ‘얼마나 관련 있나’ 점수를 만듭니다.
- 로 나누는 이유: 차원이 커질수록 내적이 커져 softmax 기울기가 사라지는 것을 방지
- 결과: 각 단어가 문장 내 모든 단어의 가중합으로 표현됨
멀티헤드 어텐션
하나의 어텐션이 아니라 h개 헤드를 병렬로 수행합니다. 헤드는 구문·의미·위치 등 서로 다른 관계를 포착합니다.
멀티헤드: 병렬로 다른 관계 보기
같은 문장을 여러 헤드가 동시에 봅니다. 헤드마다 강한 연결이 다릅니다 → Concat 후 Wᴼ로 합칩니다. (설명용 예시 가중치)
한 헤드만 쓰면 한 종류의 관계만 봅니다. 여러 헤드를 합치면 구문·의미·위치를 동시에 담을 수 있습니다.
5. 아키텍처 구조
Transformer 전체 구조
블록을 클릭하면 역할이 하이라이트됩니다.
왼쪽 Encoder가 원문 전체를 읽고, 오른쪽 Decoder가 번역을 한 토큰씩 생성합니다. 가운데 Cross-Attention으로 Encoder 정보를 끌어옵니다.
인코더 (Encoder)
N=6개의 동일 레이어. 각 레이어:
- Multi-Head Self-Attention
- Position-wise Feed-Forward Network
- 각 서브레이어 뒤 Residual + LayerNorm
디코더 (Decoder)
N=6 레이어, 서브레이어 3개:
- Masked Multi-Head Self-Attention (미래 토큰 차단)
- Multi-Head Cross-Attention (인코더 출력을 K/V로 사용)
- Position-wise Feed-Forward Network
한 레이어 안: Residual + LayerNorm
Encoder/Decoder 블록은 같은 패턴을 두 번(어텐션→FFN) 반복합니다.
이전 레이어(또는 임베딩+PE)에서 온 벡터.
…포지셔널 인코딩 사인/코사인
차원 i를 바꾸면 파장이 달라집니다. 위치 pos를 옮기며 각 차원이 어떤 값을 갖는지 보세요.
낮은 차원은 천천히, 높은 차원은 빠르게 진동합니다. 상대 위치 오프셋을 선형 변환으로 표현하기 쉬운 형태입니다.
6. 실험 결과
| Model | EN-DE BLEU | EN-FR BLEU | Training FLOPs |
|---|---|---|---|
| Prior SOTA (ensemble) | 26.30 | 41.29 | — |
| Transformer (base) | 27.30 | 38.10 | 3.3×10¹⁸ |
| Transformer (big) | 28.40 | 41.80 | 2.3×10¹⁹ |
- WMT 2014 영어→독일어에서 기존 대비 2 BLEU 이상 향상
- 학습 비용은 기존 대비 크게 절감되면서도 성능 우위
7. 의의 및 영향
8. 한계점
- 어텐션은 시퀀스 길이 제곱 메모리/연산 → FlashAttention, Linear Attention 등으로 보완
- 사인 포지셔널 인코딩은 최대 길이에 묶이기 쉬움 → RoPE, ALiBi 등 상대 위치 인코딩으로 발전
이해도 점검
보기를 골라 정답과 해설을 확인하세요. 채점은 이 페이지 안에서만 이뤄집니다.
1. 스케일드 닷-프로덕트 어텐션에서 을 로 나누는 이유는?
2. Transformer가 포지셔널 인코딩을 더하는 근본 이유는?
3. 멀티헤드 어텐션이 단일 헤드보다 나은 이유로 가장 적절한 것은?
4. 시퀀스 길이 에 대해 self-attention 한 층의 시간·메모리 복잡도는?
5. "Attention Is All You Need"의 핵심 주장은?