카테고리 없음
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
- 문장 분류
- 토큰 단위 분류
- 문장 생성
- 번역
성능
- Text noise 방식에 따른 비교
* 참고
링크 : https://arxiv.org/abs/1910.13461
BERT vs GPT vs BART
Pretrain 방식