콘텐츠로 바로가기

Transformer Architecture

"Attention Is All You Need"(2017)에서 제안된 아키텍처. RNN의 순차 처리를 Self-Attention으로 대체하여 병렬 학습과 장거리 의존성 포착을 동시에 달성. 입력 시퀀스의 각 토큰이 다른 모든 토큰과의 관련성을 계산: `√d_k`...

지식 성숙도: evergreen

목차 보기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의 역할과 dk\sqrt{d_k} 스케일링의 이유.
  • 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으로 따로 넣어야 하며, 이를 빼면 "개가 사람을 문다"와 "사람이 개를 문다"를 구분하지 못합니다.
  • 스케일링 없는 내적 어텐션: QK⊤QK^\top 를 dk\sqrt{d_k} 로 나누지 않으면 dkd_k 가 클수록 내적 값의 분산이 커져 softmax가 한 위치에 쏠리고 기울기가 매우 작아집니다. 원 논문도 이 점을 스케일링의 이유로 듭니다.
  • "깊게 쌓으면 항상 학습된다"는 가정: 잔차 연결과 정규화 없이 층만 늘리면 기울기 흐름이 나빠져 학습이 불안정해집니다. 깊은 Transformer는 이 구성 요소들이 함께 있어야 학습됩니다.

4. Prerequisites

  • 선형대수와 softmax (Basic): 행렬 곱, 내적, softmax의 정규화 의미를 알아야 어텐션 수식을 읽을 수 있습니다.
  • 토큰 임베딩 (Basic): Transformer의 입력은 토큰 ID가 아니라 임베딩 벡터입니다. → LLM Embedding Spaces
  • RNN의 한계 (Recommended): 순차 처리와 장거리 의존성 문제를 알면 어텐션이 해결하려는 문제가 분명해집니다.

5. Learning Map

Sequence Core Cluster Objective & Description Evidence (BoK)
1 Self-Attention 각 토큰이 다른 모든 토큰과의 관련성을 계산해 문맥 의존적 표현을 만드는 과정을 수식으로 따라갑니다. Primary:Vaswani2017
2 Multi-Head Attention 여러 헤드가 서로 다른 관계 패턴을 병렬로 학습하고 결과를 합치는 구조를 이해합니다. Primary:Vaswani2017
3 Building Blocks 위치 인코딩, 정규화, FFN, 잔차 연결이 한 층 안에서 맡는 역할을 구분합니다. Primary:Vaswani2017
4 Variants 인코더-디코더 구조와 디코더 전용 구조가 어떤 작업에 쓰이는지 연결합니다. Primary:Radford2018

연결 노트

6. Learning Topics

Basic

Core Topic 01: Self-Attention 메커니즘 (Scaled Dot-Product)

  • Why to Learn: Transformer의 모든 층은 어텐션 위에 세워져 있으므로, 이 한 줄의 수식을 정확히 읽을 수 있어야 나머지 구조가 이해됩니다.
  • What to Learn:
    • Concepts: 한 토큰이 같은 시퀀스의 나머지 모든 토큰을 얼마나 참조할지 점수로 계산하는 연산입니다.
    • Skills: 아래 수식에서 Q,K,VQ, K, V 의 의미와 softmax 이후 가중 평균이 만들어지는 과정을 설명합니다.
    • Tools: NumPy, PyTorch.
    • Trade-offs: 모든 위치 쌍을 직접 비교하므로 장거리 관계를 한 단계에 연결할 수 있는 대신, 계산량이 시퀀스 길이의 제곱에 비례합니다.

Attention(Q,K,V)=softmax ⁣(QK⊤dk)V\mathrm{Attention}(Q,K,V) = \mathrm{softmax}\!\left(\dfrac{QK^{\top}}{\sqrt{d_k}}\right)V

  • QQ (Query): 현재 위치가 찾고 있는 정보를 나타내는 벡터

  • KK (Key): 각 위치가 어떤 정보를 갖고 있는지 나타내는 벡터

  • VV (Value): 가중 평균으로 실제 섞이게 될 내용

  • How to Learn:

    • 1단계: 토큰 4개, dk=4d_k = 4 짜리 작은 행렬로 QK⊤QK^\top, softmax, VV 곱을 손으로 계산합니다.
    • 2단계: dk\sqrt{d_k} 로 나누는 이유를 확인합니다. dkd_k 가 커지면 내적의 크기도 함께 커지고, softmax가 한쪽으로 쏠려 기울기가 거의 0이 되는 포화 구간에 들어갑니다. 원 논문은 qq, kk 성분이 평균 0, 분산 1인 독립 변수라고 가정하면 내적의 분산이 dkd_k 가 된다고 설명하며, 스케일링으로 이를 안정화합니다.
  • Implement: 마스크 없는 단일 헤드 Scaled Dot-Product Attention 함수를 직접 구현하고 스케일링 유무에 따른 softmax 출력 분포를 비교.

Core Topic 02: Multi-Head Attention

  • Why to Learn: 단일 어텐션은 한 가지 가중 평균만 만들기 때문에, 서로 다른 관계 패턴을 동시에 포착하려면 여러 부분 공간에서 어텐션을 병렬로 수행해야 합니다.
  • What to Learn:
    • Concepts: 같은 입력에 서로 다른 투영을 적용한 hh 개의 어텐션을 나란히 계산해, 여러 종류의 관계를 동시에 학습할 수 있게 합니다.
    • Skills: 각 헤드의 입력 투영, 헤드 출력의 연결(Concat), 출력 투영 WOW^O.
    • Tools: PyTorch nn.MultiheadAttention.
    • Trade-offs: 원 논문 기본 설정은 dmodel=512d_{model}=512, h=8h=8, 헤드당 dk=dmodel/h=64d_k = d_{model}/h = 64 로, 헤드 수를 늘려도 총 계산량이 크게 늘지 않도록 헤드당 차원을 줄입니다.

MultiHead=Concat(head1,…,headh) WO\mathrm{MultiHead} = \mathrm{Concat}(\mathrm{head}_1,\dots,\mathrm{head}_h)\,W^{O}

  • How to Learn:
    • 1단계: 한 층의 헤드별 어텐션 가중치를 시각화해 서로 다른 패턴을 보이는지 관찰합니다.
    • 2단계: 헤드 수를 바꿔도 파라미터 수가 거의 같게 유지되는 이유를 dk=dmodel/hd_k = d_{model}/h 로 설명합니다.
  • Implement: 위 단일 헤드 구현을 hh 개 헤드로 확장하고 Concat과 WOW^O 투영을 붙이는 모듈 작성.

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이 학습이 안정적이라는 분석이 있어 현재 널리 쓰입니다.
구성 요소 보완하는 점 비고
Positional Encoding 어텐션은 위치에 무관하므로 토큰 순서를 입력에 따로 알려 줍니다. 원 논문은 sinusoidal 방식
Layer Normalization 층을 거치며 값의 크기가 흔들리는 것을 막아 학습을 안정시킵니다. 요즘은 Pre-norm 배치가 일반적
Feed-Forward Network 각 위치에 같은 2층 MLP를 적용해 비선형 변환을 더합니다. 위치마다 독립적으로 계산
Residual Connection 입력을 출력에 더해 기울기가 깊은 층까지 흐르게 합니다. 깊은 층 학습의 전제
  • 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

Term (EN / ko, abbr) 1문장 정의 단계(기본/권장/실무/심화) 역할/맥락 관련 개념 유사/대비/함께 사용 오해 포인트 Evidence(Primary/Secondary/Industry:ID) Flags(core)
Self-Attention 한 시퀀스의 각 위치가 같은 시퀀스의 모든 위치와의 관련성을 계산해 정보를 모으는 연산입니다. 기본 핵심 연산 Q/K/V vs. Cross-Attention 순서 정보까지 알고 있다고 오해함 Primary:Vaswani2017 core
Multi-Head Attention 여러 개의 어텐션을 서로 다른 투영으로 병렬 수행한 뒤 연결하는 구조입니다. 권장 표현 다양화 Head / WOW^O vs. Single-Head 헤드마다 사람이 이해할 수 있는 역할이 있다고 단정함 Primary:Vaswani2017 core
Positional Encoding 어텐션이 알지 못하는 토큰 순서를 입력에 더해 주는 위치 정보입니다. 기본 순서 주입 Sinusoidal / Learned vs. Token Embedding 임베딩과 별개로 학습되어야 한다고 오해함 Primary:Vaswani2017 core
Residual Connection 층의 입력을 출력에 더해 기울기가 깊은 층까지 전달되도록 하는 연결입니다. 권장 학습 안정화 Layer Norm vs. Skip-less Stack 성능 향상용 부가 기능으로만 여김 Primary:He2015 core
Pre-norm 정규화를 각 sublayer 앞에 두는 배치로, 깊은 모델에서 학습이 안정적인 경향이 있습니다. 심화 구조 변형 Post-norm vs. Post-norm 원 논문의 구조와 같다고 가정함 Secondary:Xiong2020 core

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 위치 인코딩, dmodel=512d_{model}=512, h=8h=8 설정.
  • [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(QK⊤/dk)V\text{softmax}(QK^\top/\sqrt{d_k})V 의 각 항이 무엇을 계산하는지 손으로 설명할 수 있는가?
  • dk\sqrt{d_k} 로 나누는 이유를 softmax 포화와 기울기 소실로 설명할 수 있는가?

Secondary Checklist

  • Positional Encoding이 없으면 어떤 정보가 사라지는지 구체적 예로 설명할 수 있는가?
  • 한 Transformer 블록에서 잔차 연결과 정규화가 놓이는 위치(Post-norm과 Pre-norm)를 그릴 수 있는가?

Industry Checklist

  • 사용하려는 모델이 인코더-디코더인지 디코더 전용인지 구분하고 그에 맞는 마스크 설정을 확인했는가?
  • 레이어 수, 헤드 수, dmodeld_{model} 이 파라미터 수와 메모리에 미치는 영향을 추정할 수 있는가?

Transformer Architecture & LLM Foundations

7 / 7