LLM Evolution · NAACL 2019

BERT: Pre-training of Deep Bidirectional Transformers

양방향 인코더 + MLM/NSP 사전학습 — 사전학습·미세조정의 NLP 표준을 연 논문.

Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova · Google AI Language

berttransformermlmpretrainnlp

1. 핵심 요약

2. 왜 중요한가 — 쉬운 설명

30초 비유

빈칸 채우기 문제를 수억 개 풀며 언어를 익힌 학생을 상상하세요. 빈칸을 맞히려면 앞뒤 문맥을 동시에 봐야 합니다. 이렇게 다져 두면 실제 시험(번역·분류·QA)은 조금만 더 연습해도 잘합니다.

무엇을 제안했나

  • Masked LM — 문장의 일부 단어를 가리고 양쪽 문맥으로 복원 → 깊은 양방향 문맥 학습.
  • Next Sentence Prediction — 두 문장이 이어지는지 판별(문장 간 관계).
  • 그 뒤 소량 레이블로 미세조정.

그래서 무엇이 달라졌나

  • “대규모 사전학습 → 태스크별 미세조정”이 NLP의 표준 절차가 됨.
  • 발표 즉시 11개 벤치마크를 동시에 경신.

더 공부할 가치가 있을까?

  • NLP를 한다면 필수 — 인코더 계열(문장 이해·검색·분류)의 대표.
  • 대비해 볼 것 — 생성 중심인 GPT-2와 나란히 보면 인코더 vs 디코더 감이 잡힙니다.

3. 배경: ELMo · GPT의 한계

ELMo(2018): BiLSTM 문맥 임베딩. 순/역을 따로 합쳐 얕은 양방향.

GPT-1(2018): 디코더 LM. 왼쪽→오른쪽만 — “bank”가 강변인지 금융인지 오른쪽 없이 판단.

BERT 목표: 매 층에서 좌·우를 동시에 보는 진정한 양방향 트랜스포머. (인코더 뼈대는 Transformer.)

양방향 문맥

“bank”가 강변인지 금융인지 — 오른쪽 문맥이 필요합니다. 토큰을 눌러 초점을 바꾸세요.

한 번의 self-attention에서 좌·우가 동시에 섞입니다 (깊은 양방향).
왼쪽 (동시)오른쪽 (동시)focus
bank

BERT: 모든 층에서 좌·우를 동시에 self-attend. MLM으로 양방향을 학습합니다.

GPT=왼쪽만 · ELMo=순/역 분리 · BERT=동시 self-attend.

4. 사전학습: Masked LM

토큰의 15%를 고른 뒤:

  • 80% → [MASK]
  • 10% → 랜덤 토큰
  • 10% → 그대로 유지

파인튜닝에는 [MASK]가 없으므로 100% 마스킹하면 불일치가 납니다. 랜덤·유지로 모든 위치의 표현을 견고히 합니다.

LMLM=−∑i∈Mlog⁡P(xi∣x∖M)\mathcal{L}_{\mathrm{MLM}} = -\sum_{i\in\mathcal{M}}\log P(x_i\mid x_{\setminus\mathcal{M}})
마스크 집합 M에 대해서만 교차엔트로피
Masked LM 목적함수수식 상세 →
기호를 클릭하면 의미를 볼 수 있습니다
단계별 설명

Masked LM (15% · 80/10/10)

선택된 토큰만 예측합니다. [MASK]만 쓰면 파인튜닝과 불일치 → 랜덤·유지도 섞습니다.

80% → [MASK]10% → random10% → keep
I
went
to
the
bank
[MASK]→ by
the
river
.
[MASK]=1 · random=0 · keep=0

손실은 선택된 위치의 원본만. (데모는 공백 분리 토큰 — 논문은 WordPiece 15%.)

비율·시드를 바꿔 80/10/10 샘플을 확인.

5. 사전학습: Next Sentence Prediction

문장 A, B 쌍:

  • 50% 실제 다음 문장 (IsNext)
  • 50% 랜덤 문장 (NotNext)

QA·NLI처럼 문장 관계가 중요한 태스크를 위한 신호입니다. (이후 RoBERTa 등은 NSP를 빼기도 합니다.)

Next Sentence Prediction

50% IsNext / 50% NotNext. 문장을 보고 맞춰 보세요 — 라벨은 맞힌 뒤에 공개.

A

나는 은행에 갔다.

[SEP]
B

돈을 인출했다.

[CLS] …A… [SEP] …B… [SEP]분류는 [CLS] 표현으로
정답을 골라 보세요

RoBERTa 이후 NSP는 종종 제거됩니다. 그래도 BERT가 문장 쌍 사전학습을 대중화했습니다.

예제만 보이고, 맞힌 뒤 IsNext/NotNext 공개.

6. 입력 표현

[CLS] 문장A [SEP] 문장B [SEP]

각 위치 임베딩 = 토큰 + 세그먼트(A/B) + 포지션.

입력 임베딩 = Tok+Seg+Pos

세 벡터를 더해 인코더에 넣습니다. 토큰을 클릭하고 층을 전환해 보세요.

E = Etok + Eseg + Epos

bank · seg=B · pos=5

[CLS]는 시퀀스 요약, [SEP]는 문장 경계. 세그먼트는 A/B 문장 구분입니다.

Tok / Seg / Pos / 합 층을 전환.

7. 파인튜닝

같은 인코더에 작은 헤드만 붙입니다.

  • 분류: [CLS] → 선형 → softmax
  • SQuAD: 각 토큰의 start/end 확률
  • NER: 토큰별 분류
P(class)=softmax(Wh[CLS])P(\mathrm{class}) = \mathrm{softmax}(W h_{[\mathrm{CLS}]})
BERT 분류 헤드수식 상세 →
기호를 클릭하면 의미를 볼 수 있습니다
단계별 설명
P(starti)=softmax(Shi)P(\mathrm{start}_i) = \mathrm{softmax}(S h_i)
SQuAD 시작 위치수식 상세 →
기호를 클릭하면 의미를 볼 수 있습니다
단계별 설명

파인튜닝 헤드

사전학습 인코더에 태스크 헤드를 붙입니다. SQuAD는 passage 구간만 span.

BERT Encoder
→
softmax(W · h_[CLS])

감성·NLI·유사도 등 — [CLS] 하나로 클래스.

분류: [CLS] → 선형 → softmax

사전학습(비지도) 후 소량 레이블로 헤드를 학습 — NLP의 “ImageNet 순간”.

분류 / SQuAD(passage span) / NER. start→end 순으로 클릭.

8. 크기 · 결과 · 계보

ModelLayersHiddenHeadsParams
BERT-Base1276812110M
BERT-Large24102416340M

계보 · 크기 · GLUE

ELMo→GPT→BERT 계보, Base/Large 스펙, GLUE 점프(확대 스케일).

BERT (2019)

MLM+NSP 사전학습 후 미세조정. NLU 벤치마크를 동시에 경신.

L24
H1024
Heads16
Params340M

막대 스케일 79–89 (차이 확대)

Prior
80.6
Base
84.6 (+4.0)
Large
86.7 (+6.1)
BERT-Large · MNLI

이전 SOTA 80.6 → Large 86.7 (+6.1). SQuAD도 인간 수준 F1에 근접.

계보 상세 · Base/Large · GLUE(확대 스케일 + Δ).

이후

RoBERTa(NSP 제거·데이터↑), ALBERT(공유), DistilBERT(증류), DeBERTa(분리 어텐션), KoBERT 등. ViT는 [CLS] + 인코더를 이미지에, CLIP은 EOS + 인과 Transformer를 텍스트에.

의의

사전학습+미세조정의 NLP 표준화 — NLU의 ImageNet 순간. 검색·번역·챗봇에 광범위 적용.

IdeaRole
MLMBidirectional context via cloze
NSPSentence-pair relations
[CLS]Sequence vector for classification
Pretrain→FTUnsupervised then small labeled data

이해도 점검

보기를 골라 정답과 해설을 확인하세요. 채점은 이 페이지 안에서만 이뤄집니다.

0 / 5 정답
  1. 1. BERT가 GPT·ELMo와 구별되는 핵심은?

  2. 2. Masked LM이 필요한 이유는?

  3. 3. MLM의 80/10/10 규칙이 뜻하는 것은?

  4. 4. NSP(다음 문장 예측)에 대한 이후 평가는?

  5. 5. BERT를 다운스트림 태스크에 적용하는 표준 방식은?