BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

hh_mon__a·2025년 1월 19일
0

NLP모델

목록 보기
1/5

1. BERT란?

  • 소개

    • BERT(Bidirectional Encoder Representations from Transformers)
    • 구글이 2018년에 발표한 자연어 처리 모델
    • 트랜스포머 아키텍처를 기반으로 함
    • 기존 NLP 모델과 달리 BERT는 입력 텍스트를 양방향으로 이해함
  • 주요 특징

    • 양방향성(Bidirectional): 이전과 이후의 문맥을 동시에 고려
    • 사전 학습(Pre-traing), 미세조정(Fine-tuning): 다양한 NLP 태스크에 쉽게 적용 가능
  • 논문 링크

2. BERT의 입력과 작동 방식

2-1. Input

  • BERT의 입력은 토큰화된 텍스트로 구성
  • 이를 모델이 처리할 수 있는 형태로 변환
    bert input

Token Embedding

  • 입력 문장은 WordPiece Tokenizer로 나누어져 토큰 단위로 변환
  • [CLS] : 시작 토큰
  • [SEP] : 문장 끝 또는 문장 구분을 나타내는 구분 토큰
    • 예: "Here is the sentence" -> ['[CLS]', here', 'is', 'the', 'sentence', '[SEP]']

Segment Embedding

  • 문장이 하나 또는 두 개인지 구분하기 위헤 사용
  • 두 문장을 입력할 때 문장 A와 문장 B를 각각 구분
    • 문장 A → Segment ID = 0
    • 문장 B → Segment ID = 1

Position Embedding

  • 각 토큰의 위치 정보를 추가로 포함
  • BERT는 입력 문장이 한꺼번에 들어가기 때문에 문장 내 단어 순서를 이해하기 위해 포지션 정보를 인코딩하여 모델 입력에 추가해야 함

★ Input(최종) Embeddings

  • Input Embedding은 위의 3가지 정보를 합산하여 구성:
    InputEmbedding = TokenEmbedding + SegmentEmbedding + PositionEmbedding
  • 입력은 고정된 길이(최대 512개 토큰)의 벡터 시퀀스로 변환됨

2-2. 내부 메커니즘

  • 트랜스포머(transformer)의 인코더(encoder)만 사용하는 모델
    • 트랜스포머는 인코더, 디코더를 둘다 사용함
    • 디코더(decoder)를 사용하지 않는 이유는 디코더는 주로 텍스트 생성(generation) 작업에 적합함
  • 반면, BERT는 감정분석, 질의응답, 문장 분류와 같이 텍스트 의미를 분석하고 이해하는 태스크를 목표로 함
  • 인코더는 입력 시퀀스의 양방향 문맥을 동시에 고려할 수 있지만, 디코더는 주로 이전 시퀀스(왼쪽 문맥)만 참조함

2-3. 사전 학습(Pre-training)

1. 마스크 언어 모델(Masked Language Model, MLM)

  • BERT의 사전 훈련을 위해 입력 텍스트의 15%의 단어를 랜덤으로 마스킹(Masking)함
  • 이후, 모델에 마스킹된 단어(Masked words)를 예측하도록 함
    • 예: '나는 [mask]에서 배달을 시켰다. [mask]가 맛있었다.' -> '횟집', '연어' 예측
  • 전부 [mask]를 변경하지 않고, 랜덤으로 선택한 15% 단어들을 비율을 정함
    • 80%의 단어들은 [MASK]로 변경한다.
    • 10%의 단어들은 랜덤으로 단어가 변경된다.
    • 10%의 단어들은 동일하게 둔다
  • 이렇게 하는 이유는, 사전학습 단계와 파인 튜닝 단계에서 불일치가 발생하는 문제를 해결하기 위함

2. 다음 문장 예측(Next Sentence Prediction, NSP)

  • 두 문장이 연속인지 여부를 예측
  • 두 개의 문장을 준 후에 이 문장이 이어지는 문장인지 아닌지를 맞추는 방식으로 훈련
    • 이어지는 문장의 경우: Label = IsNextSentence
    • 이어지는 문장이 아닌 경우: Label = NotNextSentence

2-4. 파인 튜닝(Fine-tuning)

  • 사전학습된 모델을 특정 도메인에 맞게 추가 학습시키는 방법

  • Sentence Pair Classification(문장 쌍 분류)

    • 두 문장 간의 관계를 예측하는 작업
  • Single Sentence Classification

    • 하나의 문장을 입력받아 특정 클래스(레이블)을 예측하는 작업
    • 감정 분석, 주제 분류, 스팸 필터링
  • Question Answering

    • 주어진 질문과 문맥을 기반으로 질문에 대한 답변 추출
  • Single Sentence Tagging

    • 단일 문장의 각 토큰에 대해 특정 태그(레이블)를 예측
    • 개체명 인식(Named Entity Recognition, NER):
      - 예: "John lives in New York." → John: PERSON, New York: LOCATION
    • 품사 태깅: 각 단어의 품사를 예측

사전학습과 파인튜닝 차이점

profile
데이터분석/데이터사이언스/코딩

0개의 댓글