Transformer Architecture
"Attention Is All You Need"(2017)에서 제안된 아키텍처. RNN의 순차 처리를 Self-Attention으로 대체하여 병렬 학습과 장거리 의존성 포착을 동시에 달성. 입력 시퀀스의 각 토큰이 다른 모든 토큰과의 관련성을 계산: `√d_k`...
목차 보기23
1. Overview
트랜스포머 아키텍처(Transformer Architecture)는 2017년 "Attention Is All You Need" 논문에서 제안된 신경망 구조로, 순환(recurrence)이나 합성곱 없이 어텐션만으로 시퀀스를 처리합니다. 오늘날 GPT 계열을 비롯한 대부분의 LLM이 이 구조의 변형 위에 서 있습니다.
RNN은 토큰을 순서대로 하나씩 처리해야 해서 시퀀스 방향의 병렬화가 어렵고, 멀리 떨어진 토큰 사이의 정보가 여러 단계를 거쳐 전달되어야 합니다. Transformer는 Self-Attention으로 모든 위치 쌍의 관련성을 한 번에 계산하므로 병렬 학습과 장거리 의존성 포착을 동시에 노립니다. 이 글은 Self-Attention과 Multi-Head Attention의 수식, 이를 감싸는 구성 요소(위치 인코딩, 정규화, FFN, 잔차 연결), 그리고 인코더-디코더와 디코더 전용 변형의 차이를 정리합니다.
2. Scope & Boundaries
In-Scope
- Self-Attention 계산 (Scaled Dot-Product): Q/K/V의 역할과 스케일링의 이유.
- Multi-Head Attention: 여러 헤드를 병렬로 수행하고 연결하는 구조.
- 구성 요소 (Building Blocks): Positional Encoding, Layer Normalization, Feed-Forward Network, Residual Connection.
- 아키텍처 변형 (Variants): 인코더-디코더 구조와 디코더 전용 구조.
Out-of-Scope
- 어텐션 메커니즘의 심화(Cross-Attention, 복잡도 완화) → Attention Mechanism 영역.
- 사전 학습 목적 함수와 생성 절차 → Next-Token Prediction 영역.
- 학습 인프라와 서빙 최적화: 분산 학습, KV 캐시 운영 등은 MLOps 영역입니다.
Boundaries
- Transformer vs. Attention: 어텐션은 가중 평균으로 정보를 모으는 연산 하나이고, Transformer는 어텐션과 FFN, 정규화, 잔차 연결을 층으로 쌓은 전체 아키텍처입니다. 어텐션만으로 구성된다는 표현은 순환·합성곱을 쓰지 않는다는 뜻입니다.
- Transformer vs. LLM: Transformer는 모델 구조이고, LLM은 이 구조를 대규모 데이터로 학습한 모델을 가리킵니다.
3. Counterexample
- "Attention이 순서를 안다"는 오해: Self-Attention은 입력 토큰의 순서를 바꾸면 출력도 같은 방식으로 순서만 바뀌는(permutation-equivariant) 연산입니다. 순서 정보는 Positional Encoding으로 따로 넣어야 하며, 이를 빼면 "개가 사람을 문다"와 "사람이 개를 문다"를 구분하지 못합니다.
- 스케일링 없는 내적 어텐션: 를 로 나누지 않으면 가 클수록 내적 값의 분산이 커져 softmax가 한 위치에 쏠리고 기울기가 매우 작아집니다. 원 논문도 이 점을 스케일링의 이유로 듭니다.
- "깊게 쌓으면 항상 학습된다"는 가정: 잔차 연결과 정규화 없이 층만 늘리면 기울기 흐름이 나빠져 학습이 불안정해집니다. 깊은 Transformer는 이 구성 요소들이 함께 있어야 학습됩니다.
4. Prerequisites
- 선형대수와 softmax (Basic): 행렬 곱, 내적, softmax의 정규화 의미를 알아야 어텐션 수식을 읽을 수 있습니다.
- 토큰 임베딩 (Basic): Transformer의 입력은 토큰 ID가 아니라 임베딩 벡터입니다. → LLM Embedding Spaces
- RNN의 한계 (Recommended): 순차 처리와 장거리 의존성 문제를 알면 어텐션이 해결하려는 문제가 분명해집니다.
5. Learning Map
연결 노트
- Next-Token Prediction — Transformer가 다음 토큰 확률을 출력하는 디코더
- LLM Embedding Spaces — 토큰 임베딩이 Transformer의 입력
- LLM Scaling Laws — Transformer의 레이어/헤드 수가 스케일링 파라미터
- LLM Fine-Tuning & Alignment — LoRA는 Transformer 레이어의 가중치 행렬에 저순위 어댑터 삽입
6. Learning Topics
Basic
Core Topic 01: Self-Attention 메커니즘 (Scaled Dot-Product)
- Why to Learn: Transformer의 모든 층은 어텐션 위에 세워져 있으므로, 이 한 줄의 수식을 정확히 읽을 수 있어야 나머지 구조가 이해됩니다.
- What to Learn:
- Concepts: 한 토큰이 같은 시퀀스의 나머지 모든 토큰을 얼마나 참조할지 점수로 계산하는 연산입니다.
- Skills: 아래 수식에서 의 의미와 softmax 이후 가중 평균이 만들어지는 과정을 설명합니다.
- Tools: NumPy, PyTorch.
- Trade-offs: 모든 위치 쌍을 직접 비교하므로 장거리 관계를 한 단계에 연결할 수 있는 대신, 계산량이 시퀀스 길이의 제곱에 비례합니다.
-
(Query): 현재 위치가 찾고 있는 정보를 나타내는 벡터
-
(Key): 각 위치가 어떤 정보를 갖고 있는지 나타내는 벡터
-
(Value): 가중 평균으로 실제 섞이게 될 내용
-
How to Learn:
- 1단계: 토큰 4개, 짜리 작은 행렬로 , softmax, 곱을 손으로 계산합니다.
- 2단계: 로 나누는 이유를 확인합니다. 가 커지면 내적의 크기도 함께 커지고, softmax가 한쪽으로 쏠려 기울기가 거의 0이 되는 포화 구간에 들어갑니다. 원 논문은 , 성분이 평균 0, 분산 1인 독립 변수라고 가정하면 내적의 분산이 가 된다고 설명하며, 스케일링으로 이를 안정화합니다.
-
Implement: 마스크 없는 단일 헤드 Scaled Dot-Product Attention 함수를 직접 구현하고 스케일링 유무에 따른 softmax 출력 분포를 비교.
Recommended
Core Topic 02: Multi-Head Attention
- Why to Learn: 단일 어텐션은 한 가지 가중 평균만 만들기 때문에, 서로 다른 관계 패턴을 동시에 포착하려면 여러 부분 공간에서 어텐션을 병렬로 수행해야 합니다.
- What to Learn:
- Concepts: 같은 입력에 서로 다른 투영을 적용한 개의 어텐션을 나란히 계산해, 여러 종류의 관계를 동시에 학습할 수 있게 합니다.
- Skills: 각 헤드의 입력 투영, 헤드 출력의 연결(Concat), 출력 투영 .
- Tools: PyTorch
nn.MultiheadAttention. - Trade-offs: 원 논문 기본 설정은 , , 헤드당 로, 헤드 수를 늘려도 총 계산량이 크게 늘지 않도록 헤드당 차원을 줄입니다.
- How to Learn:
- 1단계: 한 층의 헤드별 어텐션 가중치를 시각화해 서로 다른 패턴을 보이는지 관찰합니다.
- 2단계: 헤드 수를 바꿔도 파라미터 수가 거의 같게 유지되는 이유를 로 설명합니다.
- Implement: 위 단일 헤드 구현을 개 헤드로 확장하고 Concat과 투영을 붙이는 모듈 작성.
Practical
Core Topic 03: 핵심 구성 요소 (Building Blocks)
- Why to Learn: 어텐션만으로는 순서 정보, 비선형 변환, 깊은 층의 학습 안정성이 해결되지 않으므로 나머지 구성 요소가 각각 무엇을 보완하는지 알아야 모델을 읽고 수정할 수 있습니다.
- What to Learn:
- Concepts: 아래 표의 네 가지 구성 요소.
- Skills: 원 논문의 sinusoidal Positional Encoding과 학습형 위치 임베딩의 차이, Post-norm과 Pre-norm 배치의 차이.
- Tools: 모델 구조 출력 도구(
print(model)), Hugging Face Transformers 소스. - Trade-offs: 원 논문은 sublayer 뒤에 정규화를 두는 방식(Post-norm)이었으나, 층이 깊을 때는 정규화를 sublayer 앞에 두는 Pre-norm이 학습이 안정적이라는 분석이 있어 현재 널리 쓰입니다.
- How to Learn:
- 1단계: 한 Transformer 블록을 "어텐션 → 잔차+정규화 → FFN → 잔차+정규화" 순서로 그려 보고 각 단계의 입출력 형상(shape)을 적습니다.
- 2단계: 위치 인코딩을 제거한 모델에서 토큰 순서를 섞어도 출력이 같은 순서로 섞일 뿐임을 확인합니다.
- Implement: 위 구성 요소를 조합한 최소 Transformer 블록(Pre-norm 기준)을 구현하고 층 수를 늘려 학습 손실이 수렴하는지 확인.
Advanced
Core Topic 04: 인코더-디코더와 디코더 전용 변형 (Architecture Variants)
- Why to Learn: 번역용 구조와 텍스트 생성용 구조가 같은 부품으로 다르게 조립되며, 현재 LLM이 어느 쪽에 속하는지 알아야 학습 목적과 마스크 설계를 이해할 수 있습니다.
- What to Learn:
- Concepts: 원 논문은 인코더-디코더 구조였고, GPT 계열은 디코더만 사용하며 미래 토큰을 보지 못하게 하는 인과 마스크(causal mask)를 씁니다.
- Skills: 마스크 유무에 따른 어텐션 행렬 모양, 디코더의 Cross-Attention.
- Tools: 어텐션 마스크 시각화.
- Trade-offs: 인코더 구조는 양방향 문맥을 쓸 수 있는 대신 자유 생성에 직접 쓰기 어렵고, 디코더 전용 구조는 생성에 단순하지만 한 방향 문맥만 씁니다.
- How to Learn:
- 1단계: 길이 5 시퀀스의 인과 마스크 행렬(하삼각)을 그리고 softmax 이전에 어떤 값이 가려지는지 확인합니다.
- 2단계: 연결 노트의 Next-Token Prediction에서 이 디코더가 확률 분포를 출력하는 과정을 이어 읽습니다.
- Implement: 위 블록에 인과 마스크를 추가해 문자 단위 소형 언어 모델을 학습하고 샘플 텍스트를 생성.
7. Terminology
8. References
Primary References
- [Vaswani et al., 2017. "Attention Is All You Need." arXiv:1706.03762] — Transformer 원 논문. Scaled Dot-Product Attention, Multi-Head Attention, sinusoidal 위치 인코딩, , 설정.
- [Radford et al., 2018. "Improving Language Understanding by Generative Pre-Training." OpenAI] — 디코더 전용 Transformer를 언어 모델 사전 학습에 사용한 GPT의 출발점.
Secondary References
- [Xiong et al., 2020. "On Layer Normalization in the Transformer Architecture." arXiv:2002.04745] — Pre-LN과 Post-LN의 학습 안정성 비교.
- [Ba et al., 2016. "Layer Normalization." arXiv:1607.06450] — Layer Normalization 정의.
- [He et al., 2015. "Deep Residual Learning for Image Recognition." arXiv:1512.03385] — 잔차 연결의 원 논문.
Industry References
- [Hugging Face Transformers Documentation] — 주요 Transformer 변형의 구현과 설정 참고.
9. Final Checklist
Primary Checklist
- 의 각 항이 무엇을 계산하는지 손으로 설명할 수 있는가?
- 로 나누는 이유를 softmax 포화와 기울기 소실로 설명할 수 있는가?
Secondary Checklist
- Positional Encoding이 없으면 어떤 정보가 사라지는지 구체적 예로 설명할 수 있는가?
- 한 Transformer 블록에서 잔차 연결과 정규화가 놓이는 위치(Post-norm과 Pre-norm)를 그릴 수 있는가?
Industry Checklist
- 사용하려는 모델이 인코더-디코더인지 디코더 전용인지 구분하고 그에 맞는 마스크 설정을 확인했는가?
- 레이어 수, 헤드 수, 이 파라미터 수와 메모리에 미치는 영향을 추정할 수 있는가?