카테고리 없음

BART 논문 정리

뿅삥 2021. 12. 23. 17:22

BART?

BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension

  • transformer 기반 텍스트 생성 모델
  • BERT와 GPT의 아키텍처를 같이 사용
  • encoder + decoder

 

How to Pretrain

  • 텍스트에 노이즈 부여
  • 노이즈 있는 텍스트를 원래 텍스트로 복구

NOISE TEXT → BART → ORIGINAL TEXT

 

노이즈 부여 방식

1. Token Masking

  • 토큰(텍스트)에 랜덤하게 [MASK] 부여함
  • BERT의 방식과 동일함
Original Text : "날씨가 좋다. 학교에 간다."
Token Masking : "날씨가 [MASK]. 학교에 간다."

Original Text로 복구되게 학습 + [MASK]에 어떤 토큰(텍스트)이 들어올지 맞출 수 있게 학습 

 


2. Token Deletion

  • 토큰(텍스트)을 랜덤 하게 삭제 
Original Text : "날씨가 좋다. 학교에 간다."
Token Deletion : "날씨가. 학교에 간다."

Original Text로 복구되게 학습 + 토큰(텍스트)이 사라진 위치가 어디인지 맞출 수 있게 학습함

 

 

3. Text Infilling

토큰(텍스트) 여러개에 [MASK]를 한 번에 부여

Original Text : "날씨가 좋다. 학교에 간다."
Text Infilling : "날씨가 [MASK] 간다."

Original Text로 복구되게 학습 + [MASK] 자리에 몇 개의 토큰이 있는지 맞출 수 있게 학습함

 

 

4. Sentence Permutation

  • 문장 순서 변경
Original Text : "날씨가 좋다. 학교에 간다."
Sentence Permutation : "학교에 간다. 날씨가 좋다."

이 경우 어떤 방식으로 학습 하는지 명확하게 명시되어있지 않음

따라서, Original Text로 복구하는 방식으로만 학습 되지 않을까 예상함

 

 

5. Document Rotation

  • 랜덤하게 토큰 몇 개 선택
Original Text : "날씨가 좋다. 학교에 간다."
Document Rotation : "간다. 날씨가 좋다. 학교에"

Original Text로 복구되게 학습 + 텍스트의 시작 지점이 어디 인지 맞출 수 있게 학습



Finetuning Task

  1.  문장 분류 
  2.  토큰 단위 분류
  3.  문장 생성
  4.  번역

 

성능

  • Text noise 방식에 따른 비교

 

 


* 참고

 

링크 : https://arxiv.org/abs/1910.13461

 

BERT vs GPT vs BART

 

Pretrain 방식