이전 글 까지 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 모두 가능합니다.
'AI > NLP' 카테고리의 다른 글
Dependency Parsing (1) (0) | 2022.04.17 |
---|---|
오프라인(인터넷이 안되는)환경에서 Pre-trained Language Model 모델 부르기 with PORORO (0) | 2022.04.02 |
Pretrained Language Model - 13. RoBERTa (0) | 2021.11.05 |
Pretrained Language Model - 12. BERT (0) | 2021.11.02 |
Pretrained Language Model - 11. GPT (0) | 2021.10.31 |