AI VIDEO BRIEFING

BERT 원리 완전 정리: 마스크 언어 모델과 다음 문장 예측, 파인튜닝이 GPT와 다른 이유

BERT는 왜 다음 단어를 예측하지 않을까. 인과 마스크를 걷어내 좌우 문맥을 함께 읽는 구조와 마스크 언어 모델·다음 문장 예측 학습, CLS 토큰과 파인튜닝으로 과제를 푸는 방식을 정리했다.

GPT와 다른 길을 간 BERT, 좌우 문맥을 함께 읽는 언어 모델의 원리 영상 대표 이미지

핵심 메시지

  • 일반적인 언어 모델은 다음 단어의 확률을 계산하는 확률 모델이며, 학습과 추론 모두 이전 토큰만 보고 다음 토큰을 이어 붙이는 방식으로 이뤄진다.
  • GPT·라마 계열은 어텐션 점수 행렬의 대각선 위쪽을 음의 무한대로 채우는 인과 마스크를 써서 미래 토큰을 보지 못하게 만든다.
  • BERT는 이 인과 마스크를 쓰지 않기 때문에 각 토큰이 왼쪽과 오른쪽 문맥을 모두 참조한다.
  • BERT는 다음 토큰 예측 대신 마스크 언어 모델과 다음 문장 예측이라는 두 과제로 사전 학습됐다.
  • BERT는 프롬프트로 과제를 지시하는 대신, 목적에 맞는 데이터로 파인튜닝해 텍스트 분류나 질의응답에 특화시킨다.

쉽게 이해하기

영상은 BERT를 곧바로 설명하지 않고 언어 모델의 기본기부터 되짚는다. 언어 모델은 단어 열에 확률을 부여하는 확률 모델로, '상하이는 어느 나라의 도시인가' 같은 문장 뒤에 특정 단어가 올 확률을 계산한다. 학습할 때는 문장 앞에 시작 토큰을 붙인 입력과 끝에 종료 토큰을 붙인 정답을 짝지어 교차 엔트로피 손실로 역전파하고, 추론할 때는 모델이 내놓은 마지막 토큰을 입력 뒤에 이어 붙여 다시 넣는 과정을 종료 토큰이 나올 때까지 반복한다.

그다음은 트랜스포머 인코더의 구성 요소다. 토큰은 어휘 사전에서의 위치로 바뀐 뒤 의미를 담은 임베딩 벡터로 변환되고, 여기에 문장 안에서의 자리를 알려주는 위치 인코딩이 더해진다. 셀프 어텐션은 이 행렬을 쿼리·키·값 세 벌로 복사해, 쿼리와 키의 내적을 차원의 제곱근으로 나눈 뒤 소프트맥스를 적용해 토큰 사이의 관계를 계산한다. 여기서 미래 토큰과의 상호작용을 음의 무한대로 바꿔 소프트맥스 후 0이 되게 만드는 것이 인과 마스크이며, 이 때문에 각 토큰은 자기 앞의 토큰만 참조하게 된다.

BERT의 결정적 차이는 이 마스크를 쓰지 않는다는 점이다. 어텐션 점수 행렬을 그대로 두면 모든 토큰이 좌우 양쪽을 함께 본다. 발표자는 사람의 대화에 빗대 설명한다. 전화 통화에서 상대의 앞선 말에 기대어 답하는 것이 왼쪽 문맥이라면, 아이가 '엄마 목걸이가 망가졌다'는 결론을 먼저 정해 놓고 그 앞의 변명을 지어내는 상황은 뒤에 올 말에 앞부분을 맞추는, 오른쪽 문맥의 직관에 가깝다는 것이다.

사전 학습은 두 과제로 이뤄진다. 마스크 언어 모델은 문장에서 토큰의 15%를 골라 그중 80%는 마스크 토큰으로 바꾸고 10%는 무작위 단어로 바꾸며 10%는 그대로 두는데, 세 경우 모두 원래 단어를 맞혀야 한다. 다음 문장 예측은 두 문장을 이어 붙여 넣고 뒤 문장이 실제로 바로 다음 문장인지 판정하게 하는 과제다. 이때 두 문장을 구분하기 위해 토큰 임베딩과 위치 임베딩에 더해 어느 문장에 속하는지를 나타내는 세그먼트 임베딩을 추가로 더하고, 맨 앞에는 CLS 토큰을, 문장 사이와 끝에는 구분자 토큰을 넣는다.

CLS 토큰이 분류에 쓰이는 이유도 인과 마스크가 없다는 점에서 나온다. 어떤 값도 0으로 가려지지 않으므로 CLS 위치의 출력은 문장 안 모든 토큰과의 관계를 끌어모은 결과가 된다. 발표자는 이를 주주가 직원 개개인 대신 CEO에게 묻는 상황에 비유한다. 파인튜닝에서는 이 CLS 출력만 떼어 선형 계층에 넣는데, 문의 유형을 하드웨어·소프트웨어·건물 문제로 나누는 텍스트 분류라면 출력 특징이 세 개인 선형 계층을 붙인다. 질의응답은 질문을 문장 A, 문맥을 문장 B로 인코딩한 뒤 각 토큰이 답의 시작인지 끝인지를 가리키는 두 개의 출력으로 답의 구간을 찾아낸다.

주요 인사이트

  • BERT가 512토큰을 넘는 문장을 다루지 못하는 것은 위치 정보를 고정 함수로 계산하지 않고 학습되는 임베딩으로 두었기 때문이다. 학습된 위치 임베딩이 512개뿐이라 그 이상은 표현할 자리가 없다.
  • BERT 베이스는 인코더 블록 12개가 쌓여 있고 어텐션 헤드는 12개, 임베딩 차원은 768이다. 원논문의 트랜스포머가 쓰던 512차원과 다르며, BERT 라지는 1024차원을 쓴다.
  • 토크나이저도 다르다. BERT는 워드피스 토크나이저로 한 단어를 여러 조각으로 나눌 수 있게 했고, 어휘 사전 크기는 약 3만 개다.
  • 같은 질의응답 과제라도 접근이 갈린다. GPT·라마 계열은 예시 몇 개를 프롬프트에 담는 퓨샷 방식으로 풀지만, BERT는 프롬프트를 쓰지 않고 과제별 데이터로 파인튜닝해 마지막 선형 계층을 목적에 맞게 바꾼다.
  • 구조적 차이는 용도의 차이로 이어진다. BERT는 긴 글을 생성하는 데 쓰도록 만들어지지 않았고, 대신 분류나 답 구간 추출처럼 문장 전체를 이해해야 하는 과제에 강하다.

자주 묻는 질문

BERT는 왜 다음 토큰 예측으로 학습하지 않나요?

다음 토큰 예측은 각 단어가 앞쪽 문맥만 보도록 인과 마스크를 걸어야 성립합니다. BERT는 좌우 문맥을 함께 쓰는 것이 목표이므로 마스크를 걷어내고, 대신 문장 속 단어를 가린 뒤 맞히는 마스크 언어 모델과 두 문장의 연속 여부를 맞히는 다음 문장 예측으로 사전 학습했습니다.

마스크 언어 모델은 단어를 어떤 비율로 가리나요?

문장에서 토큰의 15%를 고른 뒤, 그중 80%는 마스크 토큰으로 바꾸고 10%는 무작위 토큰으로 교체하며 10%는 원래대로 둡니다. 세 경우 모두 모델은 원래 단어를 출력해야 하고, 가려진 위치의 출력만 정답과 비교해 손실을 계산합니다.

CLS 토큰은 어떤 역할을 하나요?

입력 맨 앞에 붙는 특수 토큰으로, 인과 마스크가 없어 문장 안 모든 토큰과의 관계를 모을 수 있습니다. 그래서 분류나 다음 문장 예측에서 이 위치의 출력만 선형 계층에 넣어 판정에 사용합니다.

BERT로 질의응답은 어떻게 수행하나요?

질문을 문장 A, 답이 들어 있는 문맥을 문장 B로 인코딩해 구분자 토큰과 세그먼트 임베딩으로 구분한 뒤, 각 토큰이 답의 시작인지 끝인지를 나타내는 두 개의 출력을 가진 선형 계층으로 문맥 안 답의 구간을 찾아냅니다.

원문과 출처

이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.

YouTube 원본 영상 보기 ↗

관련 AI 소식