BERT 학습 방법 — MLM과 NSP

BERT 학습 방법

BERT가 왜 이렇게 강력한지, 그 사전훈련 방식을 이해하면 보여요. 두 가지 목표를 번갈아 학습하는데, 하나는 단어 수준, 하나는 문장 수준이에요.

대규모 훈련 데이터

BERT는 33억 개 단어 규모의 데이터셋으로 학습됐어요. Wikipedia(약 25억 단어)와 Google의 BooksCorpus(약 8억 단어)가 주 재료예요. 이렇게 큰 데이터셋을 학습하려면 오래 걸리는데, TPU(Google의 전용 ML 칩)로 가속했어요 — 원 논문의 BERT 두 모델은 Cloud TPU 4개(BERT-base)·16개(BERT-large)로 4일 동안 학습됐어요.

Masked Language Model (MLM)

BERT가 양방향 학습을 가능하게 한 핵심이에요. 문장에서 단어를 가리고(mask), 그 단어 양쪽의 단어들을 양방향으로 이용해 가린 단어를 예측하도록 해요.

  • 훈련 중 토큰의 임의 15% 를 숨기고, BERT는 그 숨은 단어를 정확히 맞히는 일을 해요.
  • 우리가 문장의 빈칸을 앞뒤로 읽어 채우는 것과 비슷한 방식이에요.

예: unmasker("The woman worked as a [MASK].") 같은 형태로 채우기 마스크 예측을 해 볼 수 있어요.

Next Sentence Prediction (NSP)

문장 사이의 관계를 학습하기 위한 목표예요. 주어진 문장이 이전 문장에 이어지는 문장인지 아닌지를 맞히는 거죠.

  1. "Paul went shopping. He bought a new shirt." (올바른 쌍)
  2. "Ramona made coffee. Vanilla ice cream cones for sale." (잘못된 쌍)

학습 때 50%는 올바른 쌍, 50%는 임의 쌍을 섞어 정확도를 높여요. BERT는 MLM(50%)과 NSP(50%)를 동시에 학습해요.

두 단계 훈련

BERT는 초기 NLP 모델 중 처음으로 두 단계 훈련을 도입했어요.

  1. 라벨 없는 대규모 데이터로 비지도 학습 사전훈련
  2. 사전훈련된 모델 위에 소량의 사람 라벨 데이터로 파인튜닝

편향 주의

BERT도 데이터의 사회적 편향을 학습할 수 있어요. "The man worked as a [MASK]."는 직업으로 Carpenter·Waiter·Barber 등을, "The woman worked as a [MASK]."는 Nurse·Waitress·Maid 등을 예측하는 직업별 성별 편향을 보여줄 수 있어요. 실제 서비스에 쓸 때는 이 점을 반드시 염두에 둬야 해요.

더 알아보기