데이터사이언스 이론 공부

BERT 모델에 대한 기본이해

soopy 2022. 12. 12. 13:04
728x90
구글 BERT의 정석 도서를 참고해서 정리했습니다.

BERT의 기본 개념

📌 BERT는 문장의 문맥을 이해한 다음 문맥에 따라 단어 임베딩을 생성하는 문맥 기반 모델이다.

BERT는 트랜스포머 모델에서 인코딩 부분만을 활용한 모델이다.

  • 인코더 내 Self Attention 에 대한 이해가 있다면 문맥 기반 모델임이 당연하게 느껴질 것이다.

 

BERT-base와 BERT-large

Attention is all you need에서 제안한 인코딩 레이어, 멀티 헤드의 개수와 다른 구조를 가진다.

  • BERT-base
    • 12 인코딩 레이어, 12 멀티 헤드, 768 차원의 피드 포워드
  • BERT-large
    • 24 인코딩 레이어, 16 멀티 헤드, 1024 차원의 피드 포워드

📌 여기서 말한 피드 포워드는 인코더 내 피드 포워드를 말하는게 아니다. BERT의 학습을 위해 인코딩 후 Softmax 및 평가가 진행되는 Hidden layer를 말한다.

 

BERT의 입력 표현

문장에서 아래 세 가지의 데이터가 합산된 결과를 임베딩 결과로 활용한다.

  • Tokken embedding
    • 첫 문장의 시작에 [CLS] 토큰을 부여하고, 각 문장의 끝에 [SEP] 토큰을 부여한다.
  • Segment embedding
    • 두 개의 문장이 입력될 경우 첫번째 문장 내 단어 포지션에 0, 두번째 문장 내 단어 포지션에 1을 부여하는 식으로 임베딩 벡터를 생성한다. (문장이 하나라면 0으로 가득찬 벡터가 생성된다.)
  • position embedding
    • 트랜스포머 모델에서도 소개된 단어 간 위치 정보를 전달하기 위한 데이터가 전달된다. positional embedding 방법은 다양하다.

최종적으로 위 세 가지 임베딩 벡터를 합하여 1 * max_sequence_length 차원의 임베딩 벡터로 만든다.

 

WordPiece Tokenizer

문장 내 단어 중 vocab에서 찾을 수 없는 단어가 발견된다면 해당 단어를 쪼갠 뒤 다시 살펴본다.

  • 가령 pretraining 이라는 단어가 vocab에 없다면
    • pre, train, ing 으로 분할하여 각 단어가 vocab에 있는지 다시 확인한다.
    • 모두 확인되었다면 pre, ##train, ##ing과 같이 표기한다.
    • pre, train, ing를 하위 단어라고 부른다.
  • 분해 후에도 vocab에 없는 단어는 [OOV]로 표기된다. OOV는 out of vocabulary를 의미한다.

 

사전 학습 전략

📌 BERT는 MLM과 NSP 이 두 가지 방식으로 사전 학습된다.

MLM

Masked language modeling의 줄임말이며, 문장 내 단어 일부를 마스킹 처리하여 마스킹 된 단어를 맞추는 방식으로 학습을 진행한다.

여기에는 전방과 후방 이렇게 두 가지 방식의 예측 방법을 활용한다.

  • Masked 단어를 예측하기 위해
    • 문장의 왼쪽부터 Masked 단어 직전까지의 정보를 Sequential하게 참조할 것인지
    • 반대로 문장의 오른쪽에서부터 역순으로 참조할 것인지로 구분된다.
  • 둘 중 한가지의 방향을 선택하는 단방향(auto-regressive language modeling) 또는 죄우 모두를 참조하는 양방향(auto-encoding language modeling) 방식이 존재한다.
  • BERT 모델에는 auto-encoding language modeling이 적용되어 있다.

How to)

  • 각 입력 문장의 15% 분량의 단어를 Masked 처리 한다.
  • 마스킹된 15% 단어 내 10%는 마스킹 토큰[MASK] 대신 틀린 단어를 넣어 둔다. 그리고 10%는 마스킹하지 않는다.(어떤 변경도 하지 않는다.)
    • 이러한 방식은 pre-training과 fine-tuning task 간 간극을 줄이기 위한 일종의 정규화 작업으로 여길 수 있다. fine-tuning task에는 마스킹 작업이 없기 때문이다.
  • 위 방식으로 토큰화를 진행한 뒤 임베딩을 진행한다.
  • 피드 포워드 네트워크에서 인코딩 결과에 대해 소프트맥스 함수를 적용, masked 단어가 정답을 예측하도록 학습한다.

 

WWM 모델링 및 방법

  • Whole Wod Masking의 줄임말이며, WordPiece Tokenizer가 적용되어 하위 단어의 개념이 포함된 문장을 모델링에 활용한다.
  • 마스킹 과정에서 하위 단어가 포함된다면 해당 하위 단어와 연관된 모든 단어가 Masked 처리 된다.
    • ex) ‘pre’, ‘##train’, ‘##ing → ‘pre’, [MASK], ‘##ing → [MASK], [MASK], [MASK]
  • 마스킹 처리 방식은 MLM과 동일하다.

 

NSP

Next sentence prediction의 줄임말로, 다음 문장을 예측하는 Task로 학습을 진행하는 방식을 말하며 이진 분류 테스트에 해당한다.

How to)

  • 입력 데이터로 문장 쌍이 필요하며 두 문장이 이어지는 문장이라는 IsNext, 아니라면 NotNext로 라벨링 한다.
  • IsNext에 해당하는 데이터의 경우 하나의 문서 내 두 문장씩 쌍으로 묶어서 준비할 수 있으며 NotNext의 경우 연관이 없는 A와 B문서에서 각각 하나의 문장씩 꺼내어 쌍을 이루는 방식으로 데이터를 준비할 수 있다.
  • 예측 및 평가에서 [CLS] 토큰에 대한 인코딩 결과(representation)만을 활용하여 이진 분류를 진행한다.
    • 인코딩 과정을 통해 CLS 토큰에 모든 토큰에 대한 집계를 담으므로 이진 분류 활용에 용이하다.

 

📌 BERT 모델은 MLM과 NSP를 동시에 사용하여 사전 학습을 진행한다.

728x90
728x90