BERT

leehyuna·2024년 11월 12일

• 논문 : BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding (2018)
• Bidirectional Encoder Representations from Transformers
• BERT is designed to pre-train deep bidirectional representations from unlabeled text by jointly conditioning on both left and right context in all layers.
• As a result, the pre-trained BERT model can be fine-tuned with just one additional output layer to create state-of-the-art models for a wide range of tasks, such as question answering and language inference, without substantial task-specific architecture modifications.

Input

(1) Token Embeddings

  • Wordpiece embedding 방식
  • 문장의 시작 : [CLS] 토큰
  • 문장의 끝 : [SEP] 토큰 (문장을 구분)
  • 임베딩 벡터의 종류는 단어 집합의 크기로 30,522개

(2) Segment Embeddings

  • 각 문장을 구분
  • 두 개의 문장을 구분하기 위한 임베딩
  • 임베딩 벡터의 종류는 문장의 최대 개수인 2개

(3) Position Embeddings

  • 토큰의 순서를 임베딩, 위치 정보 학습
  • 임베딩 벡터의 종류는 문장 최대 길이인 512개
  • BERT는 Transformer의 인코더를 사용함, Transformer는 self-attention 모델을 사용하기 때문에 입력 토큰의 위치 정보를 주어야 함
    • Self-attention은 입력의 위치에 대해 고려하지 못하므로 입력 토큰의 위치 정보를 주어야 함

=> 3가지 각 임베딩들의 토큰 별로 모두 더하여 BERT의 입력 벡터로 사용

  • BERT의 입력은 token sequence
    • Single sentence || two sentences packed together (pair of sentences (e.g., <Question, Answer>))
    • 여기서 [SEP]으로 구분되는 두 sentence는 문장의 단위가 아니고, 문장, 텍스트, 문서 일 수 있음

BERT의 Pre-training과 Fine-Tuning

  • Pre-training : 거대 encoder가 입력 문장들을 임베딩하여 언어를 모델링

    • During pre-training, the model is trained on unlabeled data over different pre-training tasks
  • Fine-tuning : 여러 자연어 처리 down-stream task 수행

    • For fine-tuning, the BERT model is first initialized with the pre-trained parameters, and all of parameters are fine-tuned using labeled data from the down-stream tasks.
    • 모든 parameters가 fine-tuned
  • Output layers를 제외하고, pre-training과 fine-tuning에서 같은 아키텍쳐가 사용됨

  • Pre-training을 위해 두 가지 방법 사용 (two unsupervised tasks)
    -> BERT가 양방향으로 학습되어 문맥을 더 잘 파악할 수 있게 함
    1) Masked Language Model (MLM)

    • 일련의 단어가 주어지면 그 단어를 예측하는 작업
    • 입력 토큰 중 무작위로 15% 토큰을 [MASK] 토큰으로 마스킹
    • 15% 중 80%는 [MASK]로, 10%는 무작위 단어로 바꿈, 10%는 동일하게 유지
    • 이를 Transformer 구조에 넣어 주변 단어의 맥락으로 마스킹된 토큰만 예측
    • MLM을 수행하며 문맥을 파악하는 능력을 기름

    2) Next Sentence Prediction (NSP)

    • 두 문장의 관계를 이해하기 위해 BERT의 학습 과정에서 두 번째 문장이 첫 번째 문장의 바로 다음에 오는 문장인지 예측하는 방식
    • 두 개의 문장을 준 후에 이 문장이 이어지는 문장인지 아닌지 맞추는 방식으로 훈련
    • In order to train a model that understands sentence relationships, we pre-train for a binarized next sentence prediction task that can be trivially generated from any monolingual corpus.
    • Fine-tuning (작성중)
      §
  • BERT는 MLM과 NSP를 위해 Transformer를 기반으로 구성

  • MLM과 NSP는 따로 학습하는 것이 아니라 loss를 합하여 학습이 동시에 이루어짐

  • BERT는 Trm의 인코더, 디코더 중 인코더만 사용

  • BERT의 transformer는 양방향 self-attention을 사용하는 반면,
    GPT의 transformer는 모든 토큰이 왼쪽 context에만 attend 할 수 있는 제한된 self-attention 사용

profile

0개의 댓글