본문 바로가기

LangChain&LangGraph

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

https://programmerk.tistory.com/101

 

Attention Is All You Need

이전 문제 :이전 hidden state를 기반으로 다음 step의 hidden state를 순차적 생성 특성 인한 병렬 처리 불가 (기존에도 순환 구조에 Attention 메커니즘 사용하고는 있음.) 해결 방안 :순환 구조를 배제하

programmerk.tistory.com

이전 문제

  1. 기존 단방향성 모델들의 한계 (left-to-right 학습 방법)
  2. downstream task 별도 모델 필요 아키텍처의 불편함  

해결 방안

  1. BERT 는 양방향 self attention 활용 , GPT 는 제한된 self attention 활용
  2. Masted Langauge Model(MLM) 사용 : 기존에는 다음 단어나 특정 단어를 예측 학습, BERT는 문장의 랜덤하게 [Mask]하여 해당 [Mask] 단어를 예측하도록 유도 => 양방향 문맥을 동시에 활용해 마스킹된 단어를 예측하도록 만들어 깊은 문맥 이해 능력을 키워줍
  3. BERT는 다층의 양방향 Transformer 인코더를 기반으로 하며, 모든 레이어에서 왼쪽과 오른쪽 문맥을 동시에 고려( 기존 NMT 진화된 방식)

 

BERT 상세 구조

 

input representation : BERT 입력은 각 단어에 대해 세 가지 임베딩 더해서 만듭니다.
  1. 토큰 임베딩(Token Embedding): 단어를 자주 쓰이는 작은 단위(sub-word)로 나누고, 이 조각들을 벡터로 바꿉니다. 이렇게 하면 희귀하거나 새로운 단어도 잘 다룰 수 있습니다.
  2. 세그먼트 임베딩(Segment Embedding): 만약 입력이 두 문장으로 나뉜다면, 각 단어가 문장 A에 속하는지 문장 B에 속하는지를 구분하는 벡터입니다. 문장 사이를 [SEP] 토큰으로 구분합니다.
  3. 위치 임베딩(Position Embedding): 단어가 문장에서 몇 번째 위치에 있는지를 알려주는 벡터로, 문장 순서를 인식하도록 돕습니다.

 

사전 학습 : MLM 과 NSP 사용
비지도 학습(unlabeled data)

 

MLM : 문장에서 무작위로 선택된 단어를 [MASK]로 대체

  • 원래 문장: "고양이는 매우 귀엽다."
  • 마스킹된 문장: "고양이는 [MASK] 귀엽다."
  • 모델의 목표: [MASK]에 "매우"라는 단어를 예측하는 것.

NSP: NSP는 두 개의 문장이 주어졌을 때,  문장 간의 관계를 이해

  • 문장 쌍: "고양이는 귀엽다."와 "고양이는 나무 위에 있다."
  • 모델의 목표: 두 문장이 연속된 문장인지 판단하기.
Fine tuning : 출력 레이어를 추가하여 특정 작업에 필요한 파라미터를 학습
레이블 데이터셋 학습(labeled dataset)

 

  • BERT 모델에 작업에 맞는 출력 레이어를 추가
  • 특정 작업에 대한 레이블이 있는 데이터셋을 사용