호돌찌의 AI 연구소
article thumbnail
Published 2021. 11. 11. 22:02
Pretrained Language Model - 14. BART AI/NLP

이전 글 까지 2가지 종류의 언어 모델을 언급했었습니다. 전통적인 방식의 언어 모델인 이전 단어들을 통해 다음 단어를 예측하는 Auto-regressive Model과 앞과 뒤 단어들을 통해 Masked 된 빈칸을 예측하는 MLM 방식의 Autoencoding Model이었습니다. 이 Model들은 Transformer의 Decoder만을 활용하거나, Encoder만을 활용하는 것이었습니다. 이번 글은 Encoder와 Decoder를 모두 활용하면서 NLG와 NLU Task를 전부 가능케 하는 PLM인 BART(Bidirectional and Auto-Regressive Transformers, 2018)를 소개하고자 합니다. 

 

1. Pretrain

- Encoder, Decoder 모두 사용하여 사전학습하는데, 입력 문장에 noise를 추가하는 형태입니다. 이제, Encoder로 부터 정보를 받아 Decoder에서 Auto-regressive 하게 원래 문장 복원을 합니다.

- Encoder, Decoder끼리는 I/O의 길이가 달라도 괜찮습니다. BERT에서와 달리 Mask 이외의 유연한 노이즈 추가가 가능해집니다. (즉, BERT에서는 Mask 하나에 한 토큰이어야하는데, BART에서는 0개 또는 n개 단어를 Masking을 하여 더 유연한 Masking을 할 수 있다는 뜻입니다. )

- 또한 GPT와 달리 Decoder는 Encoder에 Attention 수행을 통해서도 Inference가 가능합니다. 

 

2. Objective 

 

- Encoder와 Decoder 끼리의 구조 특성에 의해 다양한 Noise를 추가하여 NLU능력도 향상시키면서 NLG task도 가능하다는 뜻입니다. 

- 문장 내 단어들을 Permutation을 할 수도 있고, Rotation도 가능, 딘어를 지웠다가 복원하여 모델 입장에서는 더 문장을 복원하기 더 힘들어집니다. 이를 통해 더 고도화된 모델을 만들 수 있습니다. 

 

3. Fine-Tuning Text CLS

 

 

- Decoder 끝에 <EOS>가 떨어지고 난 뒤에 Softmax layer를 달아서 분류하는 방식으로 진행하면 됩니다. 

 

4. Fine-Tuning Machine Translation

 

 

- 기계번역인 경우, Encoder에 여러 언어들이 들어올 수 잇는데, Encoder에 Randomly Initialized Encoder 같은 서브 모듈을 달아서 일반적인 NLG를 진행합니다. 

 

5. Evaluation

- NLU의 PLM들과의 비교표 입니다. 성능이 향상된 것을 확인할 수 있습니다. 

- NLG에서 Machine Translation Task

- NLG에서 질의응답 Task

NLG Task도 마찬가지로 성능이 향상이 확실히 좋은 것이 드러나는 것이고, NLU는 살짝 비슷비슷한 것 같기도 합니다. BART는 적당히 다 잘하는 PLM이라고 생각이 됩니다. 

 

6. 정리

- Encoder, Decoder를 같이 사용하여 Noise를 부여하는 데 있어서 유연함을 알 수 있었습니다. 즉 다양한 Noise를 추가하여 기존 PLM보다 더 좋은 효과를 보여준다고 할 수 있습니다. 

- 추후 연구에 이 BART 보다 훨씬 Scale-up한 모델 T5에서도 이러한 방식이 성능이 뛰어남을 보여줍니다. 

- NLG, NLU Task 모두 가능합니다.

 

profile

호돌찌의 AI 연구소

@hotorch's AI Labs

포스팅이 도움이 되셨다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!