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 등 수많은 후속 모델의 기반이 되었다.


아키텍처 상세

모델 스펙

모델ParamsLayers (L)Hidden (H)Heads (A)FFN DimContextVocab
BERT-Base110M1276812307251230,522
BERT-Large340M24102416409651230,522

아키텍처 핵심 구성요소

구성요소설명
Transformer EncoderDecoder 없이 Encoder만 사용 — 양방향 self-attention
Multi-Head AttentionStandard MHA, A heads
FFNGELU activation (당시 Transformer 표준 ReLU와 차별화)
Position EncodingLearned Absolute Position Embedding (최대 512)
NormalizationPost-LayerNorm
Segment Embedding문장 A/B 구분을 위한 추가 임베딩
[CLS] / [SEP] 토큰분류/문장 분리용 특수 토큰
WordPiece Tokenizer30,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 제거가 더 나은 결과를 보임

학습 데이터

데이터셋크기설명
BooksCorpus800M words미출판 도서 텍스트
English Wikipedia2,500M words텍스트만 (리스트/테이블 제외)
합계~3.3B words~16GB 텍스트

학습 하이퍼파라미터

항목BERT-BaseBERT-Large
OptimizerAdam (β₁=0.9, β₂=0.999)동일
Learning Rate1×10⁻⁴1×10⁻⁴
LR ScheduleLinear warmup + decay동일
Warmup Steps10,00010,000
Total Steps1,000,0001,000,000
Batch Size256 sequences256 sequences
Max Seq Length128 (90%) → 512 (10%)동일
Dropout0.1 (all layers)0.1
Weight Decay0.010.01
Hardware16 TPU v3 chips64 TPU v3 chips
학습 시간~4일~4일

파인튜닝 (Fine-tuning)

파인튜닝 하이퍼파라미터 (공통)

항목
Learning Rate{2, 3, 5} × 10⁻⁵
Batch Size{16, 32}
Epochs{2, 3, 4}
Dropout0.1
Max Seq Length태스크별 (128 또는 512)

벤치마크 비교

GLUE Benchmark

태스크BERT-BaseBERT-LargeGPT-1ELMo+BiLSTM이전 SOTA
MNLI (m/mm)84.6/83.486.7/85.982.180.6
QQP (F1)71.272.1
QNLI90.592.788.1
SST-293.594.991.3
CoLA (Mcc)52.160.545.435.0
STS-B (Corr)85.886.580.0
MRPC (F1)88.989.382.3
RTE66.470.156.061.7
GLUE Avg79.680.572.8

SQuAD (Question Answering)

모델SQuAD v1.1 (F1)SQuAD v2.0 (F1)
BERT-Base88.576.3
BERT-Large93.283.1
Human91.289.5

SWAG (Common Sense)

모델Accuracy
BERT-Large86.3
GPT-178.0
Human88.0

핵심 Ablation 결과

설정MNLI-mSQuAD v1.1 (F1)
BERT-Base (MLM + NSP)84.488.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.187.9

양방향(MLM)이 단방향(LTR)보다 확실히 우수, NSP는 일부 태스크에 기여


동시대 비교 매트릭스

특성BERT (2018.10)GPT-1 (2018.06)ELMo (2018.02)ULMFiT (2018.01)
아키텍처Transformer EncoderTransformer DecoderbiLSTMLSTM
방향성양방향 (MLM)단방향 (LTR)양방향 (얕은 concat)단방향
사전학습MLM + NSPAutoregressive LMbiLMLM
파라미터340M (Large)117M94M
파인튜닝전체 모델전체 모델Feature 추출점진적 unfreezing
GLUE80.572.8
핵심 기여양방향 사전학습생성적 사전학습문맥 임베딩전이 학습
후속 모델RoBERTa, ALBERT, DeBERTaGPT-2/3/4

한계 및 후속 연구

  • [MASK] 토큰 불일치: 사전학습 시 [MASK]가 파인튜닝/추론 시 등장하지 않는 mismatch (80-10-10 전략으로 부분 완화)
  • NSP의 한계: RoBERTa에서 NSP 제거가 더 나은 결과 → 불필요한 목적함수
  • Context 512 제한: 긴 문서 처리 불가 → Longformer, BigBird 등 후속 연구
  • 생성 불가: Encoder-only 구조로 텍스트 생성에 부적합 → T5(Encoder-Decoder)가 통합
  • 학습 효율: 15% 마스킹으로 토큰당 학습 신호가 적음 (ELECTRA에서 개선)