반응형
안녕하세요 '코딩 오페라'블로그를 운영하고 있는 저는 'Master.M'입니다. 현재 저는 '초등학생도 이해하는 자연어 처리'라는 주제로 자연어 처리(NLP)에 대해 포스팅을 하고 있습니다. 제목처럼 진짜 핵심 내용을 쉽게 설명하는 것을 목표로 하고 있으니 자연어 처리(NLP)에 입문하고 싶은 분들은 많은 관심 부탁드립니다. 이번 시간에 알아볼 내용은 'T5: Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer'논문입니다.
등장배경
- 최근 unsupervised learning을 통해 pretrain을 하고(upstream task), 그 다음 supervised learning을 통해 finetuning 하는 (downstream task) transfer learning 방식이 성능이 제일 좋다는 것이 밝혀짐
- 이전에 성능이 좋았던 모델(BERT, GPT 등)의 성능을 비교
- 또한 T5에서는 모든 언어문제 접근방식을 Text-To-Text task로 접근
T5(Text-to-Text Transfer Transformer)
- generation 뿐만아니라 classification, regression 등 모든 문제를 Text-To-Text task로 접근
- 이렇게 모든 task들을 하나의 방식으로 풀게 되면, 다양한 downstream task에 동일한 model, loss function, hyperparameters 등을 적용 가능
Original Encoder-Decoder Transformer
- BERT는 Transformer의 Encoder만, GPT는 Transformer의 Decoder만을 사용함
- T5는 Transformer의 Encoder-Decoder구조를 그대로 사용함
- 약간의 변화
- Transformer의 Layer Normalization에 사용되는 bias를 제거하고 rescale만 수행
- Absolute positional embedding 대신 Relative positional embedding 사용
- Model layer 전체에서 position embedding parameter sharing
Denoising Corrupted Span
- BERT에서는 원래 일부 단어 token들을 masking 했음
- SpanBERT에서는 연속된 단어들(Span)을 하나의 mask token으로 masking 함. T5는 이러한 SpanBERT 방식을 선택함
- 위 그림에서 랜덤으로 단어 "for", "inviting", "last"를 선택
- 그다음 "for"과 "inviting"은 연속된 단어들 이므로 하나의 span으로 간주하여 "X"로 masking 함. "last"역시 "Y"로 masking 함
- Target의 경우 masking값과 반대로 "Tank you", "me to your party", "week"를 span으로 정의하고 masking 함
Why Denoising Span?
- Prefix language modeling: 문장을 앞 뒤로 나누고 학습
- BERT-style: BERT에 사용했던 것처럼 masking 하고 학습
- Deshuffling: 문장의 순서를 섞어 학습
- MASS-style: MASS논문에 사용했던 것처럼 masking하고 학습(BERT-style과 비슷함)
- replace spans: 위에서 T5가 사용한 "Denoising Corrupted Span" 방식
- drop tokens: 문장의 단어 일부를 삭제 후 학습
- 제안된 "Replace corrupted spans"방식의 성능이 가장 좋음
- Corruption rate(masking rate)로는 15%일 때 성능이 가장 좋음
Multi-task pretraining
- Multi-task learning: 하나의 unsupervised task에 대해 pretraining 진행 후 finetuning 하는 방식이 아닌, 여러 종류의 task에 대해 한번에 training을 진행하는 방식
- 일반적인 pretrain-finetune방식의 성능이 가장 좋음
- 따라서 일반적인 pretrain-finetune방식에 multi-task learning방식 도입
- 결과적으로 기존의 Unsupervised pretraining-finetuning 방식과 제안된 Multi-task pretraining-finetuning 방식의 성능이 거의 비슷함
Future Works
- Large model 뿐만 아니라 작은 크기의 모델로도 좋은 성능을 낼 수 있어야 함
- General knowledge의 학습이 가능한 더 효율적이고 성능 좋은 pretraining 방식이 필요
- 각 task 간 유사성을 공식화해 unsupervise pretraining이 아닌 supervised pretraining으로 발전해 나가야 함
지금 까지 저희는 'T5'에 대해 알아보았습니다. 도움이 되셨나요? 만약 되셨다면 구독 및 좋아요로 표현해 주시면 정말 많은 힘이 됩니다. 궁금한 사항 혹은 앞으로 다루어 주었으면 좋을 주제가 있으시면 댓글 남겨주시면 감사하겠습니다. 저는 '코딩 오페라'의 'Master.M'이었습니다. 감사합니다.
참조
https://paperswithcode.com/paper/exploring-the-limits-of-transfer-learning
반응형