문장의 일부 토큰을 가린 뒤, 가려진 자리에 원래 무엇이 있었는지 맞히도록 학습시키는 사전학습 방식이다. 정답이 원문 자체에 들어 있으므로 사람이 라벨을 붙일 필요가 없다. self-supervised 학습의 대표적인 형태다.

입력: 오늘 [MASK] 는 정말 [MASK] 좋다
정답:      날씨              기분

왜 가리나

가리지 않고 “다음 토큰 맞히기” 를 시키면 모델은 왼쪽 문맥만 볼 수 있다. 오른쪽까지 보게 하면 맞혀야 할 답이 입력에 그대로 들어 있어 학습이 성립하지 않기 때문이다.

가려두면 이 문제가 사라진다. 답이 입력에서 지워졌으므로 양쪽 문맥을 모두 보게 해도 되고, 그래서 모델이 한 토큰을 이해할 때 앞뒤를 동시에 참고하는 표현을 배운다. BERT 가 이 방식으로 학습됐고, 이름의 Bidirectional 이 이 지점을 가리킨다.

BERT 의 구체적인 규칙

전체 토큰의 15% 를 고르고, 고른 토큰을 다음과 같이 처리한다.

  • 80% 는 [MASK] 로 바꾼다
  • 10% 는 무작위 다른 토큰으로 바꾼다
  • 10% 는 그대로 둔다

전부 [MASK] 로만 바꾸지 않는 이유는, [MASK] 토큰이 실제 다운스트림 작업의 입력에는 등장하지 않기 때문이다. 사전학습 때만 보이는 토큰에 모델이 의존하면 학습과 사용 시점의 입력 분포가 어긋난다. 일부를 다른 토큰이나 원래 토큰으로 남겨두면, 모델은 [MASK] 자리뿐 아니라 모든 자리에서 문맥에 맞는 표현을 유지해야 한다.

변형들

span corruption — 토큰을 하나씩 흩어서 가리는 대신 연속된 구간을 통째로 가린다. T5 가 쓰는 방식으로, 가린 구간을 하나의 sentinel 토큰으로 바꾸고 디코더가 그 구간을 복원한다.

PLM — 토큰 순서를 섞어 예측 순서를 바꾸는 방식이다. [MASK] 토큰을 쓰지 않아 학습·추론 불일치가 없고, 가려진 토큰들 사이의 의존 관계도 학습할 수 있다.

MLM 으로 사전학습한 모델은 이후 분류·태깅 같은 작업에 미세조정해서 쓰거나, RLHF 처럼 추가 정렬 단계의 출발점으로 삼는다.