BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
Digest: BERT는 **Masked Language Model(MLM)**과 **Next Sentence Prediction(NSP)**을 통해 Transformer Encoder를 양방향으로 사전학습한 최초의 모델이다. GPT-1의 단방향(autoregressive)과 ELMo의 얕은 양방향(biLSTM concat)의 한계를 극복하여, 11개 NLU 벤치마크에서 SOTA를 달성했다. BERT-Large는 GLUE 80.5, SQuAD v1.1 F1 93.2, SQuAD v2.0 F1 83.1을 기록했으며, 파인튜닝 시 태스크별 아키텍처 설계 없이 하나의 사전학습 모델 + 단순 출력층만으로 다양한 태스크를 해결하는 “pre-train then fine-tune” 패러다임을 확립했다. 이후 RoBERTa, ALBERT, DeBERTa 등 수많은 후속 모델의 기반이 되었다.
아키텍처 상세
모델 스펙
모델
Params
Layers (L)
Hidden (H)
Heads (A)
FFN Dim
Context
Vocab
BERT-Base
110M
12
768
12
3072
512
30,522
BERT-Large
340M
24
1024
16
4096
512
30,522
아키텍처 핵심 구성요소
구성요소
설명
Transformer Encoder
Decoder 없이 Encoder만 사용 — 양방향 self-attention
Multi-Head Attention
Standard MHA, A heads
FFN
GELU activation (당시 Transformer 표준 ReLU와 차별화)
Position Encoding
Learned Absolute Position Embedding (최대 512)
Normalization
Post-LayerNorm
Segment Embedding
문장 A/B 구분을 위한 추가 임베딩
[CLS] / [SEP] 토큰
분류/문장 분리용 특수 토큰
WordPiece Tokenizer
30,522 vocab
graph TD
A["입력: [CLS] Sent A [SEP] Sent B [SEP]"] --> B["Token Embedding<br/>+ Segment Embedding<br/>+ Position Embedding"]
B --> C["Transformer Encoder × L"]
subgraph TE["Transformer Encoder Block"]
C1["Multi-Head Self-Attention<br/>(양방향)"] --> C2["Add & LayerNorm"]
C2 --> C3["FFN (GELU)"] --> C4["Add & LayerNorm"]
end
C --> D{"태스크별 출력"}
D -->|"분류"| E["[CLS] → Linear → Softmax"]
D -->|"QA"| F["각 토큰 → Start/End 예측"]
D -->|"NER"| G["각 토큰 → 태그 예측"]
사전 학습 (Pre-training)
사전학습 목적함수
1. Masked Language Model (MLM)
입력 토큰의 15%를 마스킹
마스킹 전략: 80% [MASK], 10% 랜덤 토큰, 10% 원본 유지
양방향 문맥을 모두 활용하여 마스킹된 토큰 예측
GPT의 단방향 대비: 모든 위치의 토큰이 양방향 문맥 참조 가능
2. Next Sentence Prediction (NSP)
두 문장 (A, B)이 실제 연속인지 랜덤 페어인지 이진 분류
50% 실제 연속 / 50% 랜덤
QA, NLI 등 문장 쌍 태스크를 위한 사전학습
후속 연구(RoBERTa)에서 NSP 제거가 더 나은 결과를 보임
학습 데이터
데이터셋
크기
설명
BooksCorpus
800M words
미출판 도서 텍스트
English Wikipedia
2,500M words
텍스트만 (리스트/테이블 제외)
합계
~3.3B words
~16GB 텍스트
학습 하이퍼파라미터
항목
BERT-Base
BERT-Large
Optimizer
Adam (β₁=0.9, β₂=0.999)
동일
Learning Rate
1×10⁻⁴
1×10⁻⁴
LR Schedule
Linear warmup + decay
동일
Warmup Steps
10,000
10,000
Total Steps
1,000,000
1,000,000
Batch Size
256 sequences
256 sequences
Max Seq Length
128 (90%) → 512 (10%)
동일
Dropout
0.1 (all layers)
0.1
Weight Decay
0.01
0.01
Hardware
16 TPU v3 chips
64 TPU v3 chips
학습 시간
~4일
~4일
파인튜닝 (Fine-tuning)
파인튜닝 하이퍼파라미터 (공통)
항목
값
Learning Rate
{2, 3, 5} × 10⁻⁵
Batch Size
{16, 32}
Epochs
{2, 3, 4}
Dropout
0.1
Max Seq Length
태스크별 (128 또는 512)
벤치마크 비교
GLUE Benchmark
태스크
BERT-Base
BERT-Large
GPT-1
ELMo+BiLSTM
이전 SOTA
MNLI (m/mm)
84.6/83.4
86.7/85.9
82.1
—
80.6
QQP (F1)
71.2
72.1
—
—
—
QNLI
90.5
92.7
88.1
—
—
SST-2
93.5
94.9
91.3
—
—
CoLA (Mcc)
52.1
60.5
45.4
—
35.0
STS-B (Corr)
85.8
86.5
80.0
—
—
MRPC (F1)
88.9
89.3
82.3
—
—
RTE
66.4
70.1
56.0
—
61.7
GLUE Avg
79.6
80.5
72.8
—
—
SQuAD (Question Answering)
모델
SQuAD v1.1 (F1)
SQuAD v2.0 (F1)
BERT-Base
88.5
76.3
BERT-Large
93.2
83.1
Human
91.2
89.5
SWAG (Common Sense)
모델
Accuracy
BERT-Large
86.3
GPT-1
78.0
Human
88.0
핵심 Ablation 결과
설정
MNLI-m
SQuAD v1.1 (F1)
BERT-Base (MLM + NSP)
84.4
88.4
NSP 제거
83.9 (↓0.5)
87.5 (↓0.9)
LTR (Left-to-Right, GPT 방식)
82.1 (↓2.3)
87.7 (↓0.7)
BiLSTM 추가 (LTR 위에)
82.1
87.9
→ 양방향(MLM)이 단방향(LTR)보다 확실히 우수, NSP는 일부 태스크에 기여
동시대 비교 매트릭스
특성
BERT (2018.10)
GPT-1 (2018.06)
ELMo (2018.02)
ULMFiT (2018.01)
아키텍처
Transformer Encoder
Transformer Decoder
biLSTM
LSTM
방향성
양방향 (MLM)
단방향 (LTR)
양방향 (얕은 concat)
단방향
사전학습
MLM + NSP
Autoregressive LM
biLM
LM
파라미터
340M (Large)
117M
94M
—
파인튜닝
전체 모델
전체 모델
Feature 추출
점진적 unfreezing
GLUE
80.5
72.8
—
—
핵심 기여
양방향 사전학습
생성적 사전학습
문맥 임베딩
전이 학습
후속 모델
RoBERTa, ALBERT, DeBERTa
GPT-2/3/4
—
—
한계 및 후속 연구
[MASK] 토큰 불일치: 사전학습 시 [MASK]가 파인튜닝/추론 시 등장하지 않는 mismatch (80-10-10 전략으로 부분 완화)
NSP의 한계: RoBERTa에서 NSP 제거가 더 나은 결과 → 불필요한 목적함수
Context 512 제한: 긴 문서 처리 불가 → Longformer, BigBird 등 후속 연구
생성 불가: Encoder-only 구조로 텍스트 생성에 부적합 → T5(Encoder-Decoder)가 통합