NLP 분야에서 BERT는 거의 모든 task들에 대한 성능 향상을 보여주었고, 몇몇 task에 대해서는 Human Performance를 뛰어넘기도 하였다. 또한 Pre-training Large Model + Transfer Learning이 NLP 연구에서 제일 효과적임을 보여주었고, 대부분의 자연어 처리 관련 연구들이 BERT로 인해 딥러닝 쪽으로 방향을 잡아나가고 있다.
BERT가 정말 대단하다고 생각이 들었고 과연 이러한 성능 향상을 보여줄 수 있는 연구가 또 나올까 싶은 찰나, 구글은 BERT를 발표한지 단 1년 만에 후속 연구인 T5 모델을 발표하였다.
이후 2019년 말~2020년 초중반에 발표되는 NLP 논문들 중 T5를 benchmark로 사용한 논문들이 계속 등장하였고, 논문을 읽어보니 저자들이 어떠한 관점과 이유로 모델을 개선해나갔는지 알 수 있었고, 솔직히 좀 재밌었다. 이 인간들은 뭘 먹길래 이런 생각들을 할까 싶은..
영어만 사용 가능하다보니 아직 국내에는 잘 알려지지 않은 것 같아서 정리해보고자 한다.
Transformer의 등장 및 후속 연구들
(아래 내용은 핑퐁 팀의 구상준 님의 글을 참고하였다.)
많은 NLP 연구에서는 문장을 'token의 연속적인 배열'로 간주하였었다. RNN, LSTM 등 문장 정보를 hidden state에 구겨넣고 이를 다시 활용하는 방식으로 사용했다. 그 와중에 encoder-decoder 모델의 변형 중 attention mechanism의 효과성이 발표되었고 이후 아예 attention만 사용한 모델인 Transformer가 발표되었다(해당 논문).
BERT는 Transformer의 encoder 부분만 사용하여 MLM objective pre-training + downstream task 조합으로 비약적인 성능 향상을 보였고, 이후 많은 변형들이 등장하며 각종 NLP leaderboard의 상위권을 차지하였다. BERT 안쓴 것은 찾아보기 어려울 정도로.
근데 BERT를 실제 application에 사용하려고 보니 몇 가지 문제점이 있었는데, 모델 서비스 시 inference time이 길기도 하지만 BERT 모델이 덜 훈련되어있다는 것이다. RoBERTa(논문) 연구팀에 의해 NLP task에 비해 모델이 너무 크다는 것이 실험적으로 발견되었고, 이후 연구들은 다음과 같이 두 가지 큰 방향으로 진행되었다.
1. 어떻게 더 많이, 더 잘 훈련시켜서 성능을 향상시킬 수 있을까?
2. Transformer 구현체를 축소시키면서 성능 손실을 막고 서비스가 가능한 형태로 어떻게 바꿀까?
2번은 Quantization, Pruning, Knowledge Distillation등 비교적 간단한 방법들이 있지만 1은 pre-training objective 변형, 모델 변경 등 연구 난이도가 훨씬 높고 computing resource도 많이 필요하다. 1과 관련된 연구는 XLNet, RoBERTa, MT-DNN 등이 있고 T5도 그 중 하나이다.
XLNet 등에 대해서는 구상준님 글에 정리가 매우 잘 되어 있기 때문에 그 내용을 참고하길 바라며, 각 모델의 개략과 성능은 아래와 같다.
T5 내용은 다음 글에서..
'논문 및 개념 정리' 카테고리의 다른 글
[2018] Deep contextualized word representations(ELMo) (0) | 2021.03.15 |
---|---|
[2017] Attention is All you Need (0) | 2021.03.15 |
Big Bird Implementation details (0) | 2021.02.16 |
[2019] Big Bird: Transformers for Longer Sequences (0) | 2021.02.15 |
Exploring Transfer Learning with T5 : the Text-To-Text Transfer Transformer (2) (0) | 2020.06.04 |