이전 글에서 BERT 후속 연구를 소개하였습니다.
T5는 모든(!) NLP task에 대해서 실험을 진행하였고 준수한 성능을 보이고 있으나, T5가 등장한 leaderboard는 몇개 안되는거 같습니다. 그래도 T5 연구가 효과적임을 보여주는 leaderboard가 하나 있으니.. 바로 여러 NLP task를 묶어 모델을 평가하는 SuperGLUE 데이터셋에서 당당히 1위를 찍었습니다.

글의 순서는 다음과 같습니다.
- Intro
- Basic Setup: 모델과 사용 데이터 설명
- Experiments: 모델 크기 변경, Unsupervised Training Variations, Pre-training에 사용된 데이터셋 등을 설명
- Reflection: 고찰
본 포스팅에서는 Intro와 Basic Setup을 소개하도록 하겠습니다.
1. Basic Setup
1) Intro
pre-training on large corpus + transferring to downstream taks 방식의 transfer learning은 많은 task들에 대해서 비약적인 성능 향상을 가져다 줬습니다. 이 성공의 주역은 단연 self-attention 기반의 Transformer 모델이며, 모델을 훈련시키기 위한 엄청난 하드웨어 자원이 필요해졌고 이를 감당해낼 수 있는 유수의 대기업들이 연구를 이끌어가고 있습니다.
T5 연구팀은 번역, 요약, 질의응답 등의 모든 task들은 자연어 문장이 들어가고 자연어 문장이 나온다는 점에 착안하여 모든 NLP task를 'Text-to-Text' task로 정의했습니다. NLP 형태에서 제약없는 output 모델이 필요한데요, BERT만 하더라도 classification, span prediction은 가능하나 input token만 활용하고 generative하지 못한 특성 때문에 translation, abstractive summarization에는 적용하기 어렵습니다.
연구팀은 또한 Transformer의 등장 이후 모델을 키우고 학습을 더 오래시키니 성능이 올라가는 경향성을 실험적으로 검증하고자 했습니다. (scaling up pre-training corpus and model)

2) Model ★
T5 모델은 기본적인 Transformer encoder-decoder 구조를 기반으로 합니다. encoder, decoder 모두 multi-head self-attention layer + feed forward nework 및 residual skip connection, dropout 기법을 사용하고 있습니다.
다른 점은 현재 많이 사용된다고 하는 input token에 relative position encoding을 사용했다는 점입니다(Transformer는 sinusoidal, BERT는 position embedding 사용). 즉 input으로 들어오는 각 token의 위치 별로 동일한 encoding을 주고 attention을 계산하는 것이 아니라, self-attention 계산 시 offset boundary 내의 token들에 relative position encoding 값을 준 것입니다. 만약 offset=2 라면 relative position encoding의 index는 다음과 같습니다.

"I think therefore I am"이라는 문장을 relative position encoding을 사용하여 transormer의 self-attention layer를 통과시키는 과정은 아래 그림과 같습니다. offset=2인데, 그 범위를 넘어가는 단어는 가장 바깥쪽 index의 encoding 값을 부여해줍니다. 때문에 아래 그림에서 offset 범위를 넘어가는 첫번째 토큰 I에 index 0의 encoding이 부여된 것입니다.

T5 연구진은 offset을 32에서 128로 설정하고 vector가 아닌 scalar로 값을 두었다고 합니다. 때문에 self-attention score에 더한 것 같은데 vector로 둔다면 self-attention 계산 전에 더해져도 무방할 것 같습니다.
3) C4 Dataset ★
T5 연구진은 unlabeled data의 품질, 특징, 크기의 특성을 실험하고자 했습니다. 이들이 사용한 것은 Common Crawl Project의 데이터인데요, Common Crawl은 웹에서 text source를 스크랩해서 여러 데이터 형태로 변환하는 프로젝트이며, 월 20TB의 HTML 데이터를 모으고 있습니다. 이를 다음과 같은 기준으로 전처리하여 C4(Colossal Clean Crawled Corpus) 데이터셋을 제작했습니다.
- 구두점으로 끝나는(쉼표, 마침표 등) 문장만 선택
- 불건전한 페이지의 모든 문장 제외
- javascript, lorem ipsum, { 등이 포함된 모든 문장 제외
- 3개 문장이 중복된 페이지는 하나만 남김
- langdetect를 활용하여 0.99의 확률로 영어인 페이지만 사용
전처리 후 학습에 사용된 총 데이터는 750GB이며 XLNet이나 RoBERTa에서 사용한 양의 6배에 해당됩니다. BERT의 경우 16GB 크기의 corpus를 사용했는데, text 데이터가 750GB라니... 정말 구글이 아니고서야 실험할 수 없는 스케일 인 것 같습니다.
4) Downstream Tasks
Baseline을 실험하기 위해서 machine translation(WMT), question answering(SQuAD), abstractive summarization(CNN/Daily Mail), text classification(GLUE, SuperGLUE), NLI 등의 task를 선정했는데 최종 실험에서는 거의 모든 NLP task에 대해서 실험했습니다.
5) Input and Output format ★
NLP task들의 input과 output은 다양한 형태를 가지고 있습니다. 이를 Text-to-Text로 디자인하기 위해서는 동일한 형태의 input과 ouput이 필요하죠. 이를 위해서 연구진은 downstream(fine-tuning) task의 데이터에 prefix를 붙여서 사용했습니다. 예를 들어 "That is good"이라는 문장 번역을 학습시킬 때는 "translate English to Geram"이라는 prefix를, NLI task에서는 "mnli premise", "hypothesis"라는 prefix를 추가하는 방식입니다.

본격적인 실험과 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 (1) (0) | 2020.06.01 |
이전 글에서 BERT 후속 연구를 소개하였습니다.
T5는 모든(!) NLP task에 대해서 실험을 진행하였고 준수한 성능을 보이고 있으나, T5가 등장한 leaderboard는 몇개 안되는거 같습니다. 그래도 T5 연구가 효과적임을 보여주는 leaderboard가 하나 있으니.. 바로 여러 NLP task를 묶어 모델을 평가하는 SuperGLUE 데이터셋에서 당당히 1위를 찍었습니다.

글의 순서는 다음과 같습니다.
- Intro
- Basic Setup: 모델과 사용 데이터 설명
- Experiments: 모델 크기 변경, Unsupervised Training Variations, Pre-training에 사용된 데이터셋 등을 설명
- Reflection: 고찰
본 포스팅에서는 Intro와 Basic Setup을 소개하도록 하겠습니다.
1. Basic Setup
1) Intro
pre-training on large corpus + transferring to downstream taks 방식의 transfer learning은 많은 task들에 대해서 비약적인 성능 향상을 가져다 줬습니다. 이 성공의 주역은 단연 self-attention 기반의 Transformer 모델이며, 모델을 훈련시키기 위한 엄청난 하드웨어 자원이 필요해졌고 이를 감당해낼 수 있는 유수의 대기업들이 연구를 이끌어가고 있습니다.
T5 연구팀은 번역, 요약, 질의응답 등의 모든 task들은 자연어 문장이 들어가고 자연어 문장이 나온다는 점에 착안하여 모든 NLP task를 'Text-to-Text' task로 정의했습니다. NLP 형태에서 제약없는 output 모델이 필요한데요, BERT만 하더라도 classification, span prediction은 가능하나 input token만 활용하고 generative하지 못한 특성 때문에 translation, abstractive summarization에는 적용하기 어렵습니다.
연구팀은 또한 Transformer의 등장 이후 모델을 키우고 학습을 더 오래시키니 성능이 올라가는 경향성을 실험적으로 검증하고자 했습니다. (scaling up pre-training corpus and model)

2) Model ★
T5 모델은 기본적인 Transformer encoder-decoder 구조를 기반으로 합니다. encoder, decoder 모두 multi-head self-attention layer + feed forward nework 및 residual skip connection, dropout 기법을 사용하고 있습니다.
다른 점은 현재 많이 사용된다고 하는 input token에 relative position encoding을 사용했다는 점입니다(Transformer는 sinusoidal, BERT는 position embedding 사용). 즉 input으로 들어오는 각 token의 위치 별로 동일한 encoding을 주고 attention을 계산하는 것이 아니라, self-attention 계산 시 offset boundary 내의 token들에 relative position encoding 값을 준 것입니다. 만약 offset=2 라면 relative position encoding의 index는 다음과 같습니다.

"I think therefore I am"이라는 문장을 relative position encoding을 사용하여 transormer의 self-attention layer를 통과시키는 과정은 아래 그림과 같습니다. offset=2인데, 그 범위를 넘어가는 단어는 가장 바깥쪽 index의 encoding 값을 부여해줍니다. 때문에 아래 그림에서 offset 범위를 넘어가는 첫번째 토큰 I에 index 0의 encoding이 부여된 것입니다.

T5 연구진은 offset을 32에서 128로 설정하고 vector가 아닌 scalar로 값을 두었다고 합니다. 때문에 self-attention score에 더한 것 같은데 vector로 둔다면 self-attention 계산 전에 더해져도 무방할 것 같습니다.
3) C4 Dataset ★
T5 연구진은 unlabeled data의 품질, 특징, 크기의 특성을 실험하고자 했습니다. 이들이 사용한 것은 Common Crawl Project의 데이터인데요, Common Crawl은 웹에서 text source를 스크랩해서 여러 데이터 형태로 변환하는 프로젝트이며, 월 20TB의 HTML 데이터를 모으고 있습니다. 이를 다음과 같은 기준으로 전처리하여 C4(Colossal Clean Crawled Corpus) 데이터셋을 제작했습니다.
- 구두점으로 끝나는(쉼표, 마침표 등) 문장만 선택
- 불건전한 페이지의 모든 문장 제외
- javascript, lorem ipsum, { 등이 포함된 모든 문장 제외
- 3개 문장이 중복된 페이지는 하나만 남김
- langdetect를 활용하여 0.99의 확률로 영어인 페이지만 사용
전처리 후 학습에 사용된 총 데이터는 750GB이며 XLNet이나 RoBERTa에서 사용한 양의 6배에 해당됩니다. BERT의 경우 16GB 크기의 corpus를 사용했는데, text 데이터가 750GB라니... 정말 구글이 아니고서야 실험할 수 없는 스케일 인 것 같습니다.
4) Downstream Tasks
Baseline을 실험하기 위해서 machine translation(WMT), question answering(SQuAD), abstractive summarization(CNN/Daily Mail), text classification(GLUE, SuperGLUE), NLI 등의 task를 선정했는데 최종 실험에서는 거의 모든 NLP task에 대해서 실험했습니다.
5) Input and Output format ★
NLP task들의 input과 output은 다양한 형태를 가지고 있습니다. 이를 Text-to-Text로 디자인하기 위해서는 동일한 형태의 input과 ouput이 필요하죠. 이를 위해서 연구진은 downstream(fine-tuning) task의 데이터에 prefix를 붙여서 사용했습니다. 예를 들어 "That is good"이라는 문장 번역을 학습시킬 때는 "translate English to Geram"이라는 prefix를, NLI task에서는 "mnli premise", "hypothesis"라는 prefix를 추가하는 방식입니다.

본격적인 실험과 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 (1) (0) | 2020.06.01 |