본문 바로가기
Paper

논문 리뷰 | Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer (2019)

by 힢힢 2025. 5. 1.

 

Text-to-Text Transfer Transformer (T5) 모델과 Colossal Clean Crawled Corpus (C4) 데이터셋을 소개하는 Google Research의 논문이다.

 

https://arxiv.org/abs/1910.10683v4

 

Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer

Transfer learning, where a model is first pre-trained on a data-rich task before being fine-tuned on a downstream task, has emerged as a powerful technique in natural language processing (NLP). The effectiveness of transfer learning has given rise to a div

arxiv.org

 


[ Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer (2019) ]

✦ Introduction

 

cv에서는 주로 ImageNet과 같이 대량의 labeled data로 supervised learning을 통해 사전 학습하지만, NLP에서는 주로 unlabeled data를 unsupervised learning으로 사전 학습한 모델을 downstream task 별로 fine-tuning 하여 사용한다. 이는 인터넷에서 대량의 unlabeled 텍스트 데이터를 수집할 수 있어 neural network의 scalability에 기여하기 때문이다. neural network의 scalability란, 모델의 크기 (파라미터 수)를 키우고, 더 많은 데이터로 학습시키면 일반적으로 성능이 더 좋아지는 것을 의미한다. 이러한 시너지는 NLP에서의 transfer learning methodology 연구를 활발하게 만들었다.

 

그런데, 기술이 급속도로 발전하면서 서로 다른 알고리즘을 비교하기 어려워졌고, 성능 향상의 원인이 무엇인지를 분석하기가 힘들어졌다. 이에 본 논문에서는 통합된 접근법을 사용하여 서로 다른 접근 방식을 분석한다. 모든 텍스트 처리 문제를 "text-to-text" 문제로 통일하여 동일한 모델, objective, training procedure, decoding process를 모든 task에 적용할 수 있게 하였다. 또한, 모델을 확장하여 성능의 한계를 밀어붙이는 실험으로 많은 task에서 SOTA를 달성하였다. 

 

 

* Transfer learning : 전이 학습, 한 태스크에서 학습한 지식을 다른 태스크에 활용하는 기술로, 데이터가 풍부한 task에서 사전 훈련된 모델을 다운스트림 task로 파인튜닝하여 활용하는 방법


 

✦ Setup

  - Model

 

본 논문에서 다루는 모델들은 모두 트랜스포머 구조이고, T5 모델도 처음 제안된 트랜스포머 구조와 거의 동일한 구조를 가진다. 인코더는 self attention layer와 작은 feed forward network로 구성된 블록의 스택으로 구성된다. bias를 제거하고 스케일만 조정하는 단순화된 layer normalization이 각 블록의 인풋에 적용되고, residual skip connection과 drop out이 적용된다. 디코더는 인코더와 거의 유사한 구조이지만 autoregressive (causal) self attention을 사용한다는 점이 다르다. 이를 masked self attention이라고도 하는데, 미래 단어를 보지 않고 앞 단어만 보고 예측하도록 제한하는 것이다.

self attention은 어텐션 연산 과정에서 set처럼 작동하기 때문에 인풋 시퀀스의 순서 정보를 고려하지 않는다. 이를 해결하기 위해, 기존 트랜스포머는 sinusoidal position signal / learned position embeddings를 사용하여 explicit positional signal을 제공하였다. 그러나, 최근 연구에서는 relative position embeddings를 일반적으로 사용한다. 본 논문에서는 쿼리 토큰과 키 토큰 사이의 거리 (offset)에 따라 다른 임베딩을 사용한다. 효율성을 위해 같은 포지션 임베딩 파라미터를 모든 레이어에서 공유하되, 각 어텐션 헤드마다 별도로 학습된 포지션 임베딩을 사용한다. 

 

 

  - The Colossal Clean Crawled Corpus (C4)

 

기존의 많은 연구가 대량의 unlabeled data set을 transfer learning에 사용하기 때문에 unlabeled data의 퀄리티, 특징, 사이즈의 영향을 측정하기 위해 새로운 데이터셋인 C4를 만들게 되었다. 이 데이터셋은 Common Crawl이라는 기존 웹 크롤링 데이터에서 기반한 것인데, Common Crawl은 웹에서 수집한 html 파일에서 마크업이나 non-text를 제거한 데이터이다. 그러나, 데이터의 대부분이 자연어가 아니고 무의미한 내용이 다수 포함되어 있어 정제 작업의 필요성이 대두되었고, 아래와 같은 여러 휴리스틱으로 데이터를 정제하여 C4를 만든다. 기존 데이터셋은 뉴스나 위키피디아처럼 범위가 제한적이었고, 정제 기준 또한 제한적이며 데이터셋을 공개하지 않는 경우도 많았다. 반면, C4는 합리적으로 정제된 방대한 양의 natural english text 데이터셋이자 공개 데이터라는 점에서 의의를 갖는다.

 

* Heuristics

  1. terminal punctuation mark로 끝나는 문장만 남김
  2. 3문장 이하 페이지 삭제, 5단어 이상 문장만 남김
  3. naughty words 삭제
  4. Javascript 단어 포함된 줄 제거
  5. lorem ipsum 포함 페이지 제거
  6. 중괄호 포함된 문서 제거 (코드 포함 페이지 제거)
  7. [1], [citation needed] 등 마커 제거
  8. "terms of use", "privacy policy" 등 포함 줄 제거 (정책/약관 제거)
  9. 3문장 단위로 중복된 부분 제거

+ langdetect를 이용해 영어일 확률이 0.99 이상인 페이지만 사용

 

 

 

  - Input and Output Format

 

text-to-text framework

 

모델이 수행해야 할 task를 구체화하기 위해 인풋 시퀀스에 task specific prefix를 추가한다. figure에서 인풋 시퀀스의 "translate English to German: ", "cola sentence: " 등이 이 prefix에 해당한다. prefix는 하이퍼 파라미터이지만 워딩을 약간 다르게 해도 모델 성능에 큰 영향을 미치지 않아 깊은 실험을 진행하지 않았다고 한다.

 

* 기존 프레임워크

• Natural Language Decathlon : 모든 NLP 태스크를 QA 형식으로 통일

• GPT2 : 입력에 prefix를 포함하고 autoregressive한 방식으로 출력을 생성하여 zero shot learning의 성능을 검증

• span extraction : 입력과 정답 후보를 주고 정답의 시작 위치와 끝나는 위치를 예측하여 출력 공간 제한적

 

 


 

✦ Experiments

 

objective, model architecture, unlabeled dataset 등 각 요소가 성능 향상에 어떤 기여를 하였는지 분석하기 위해 적절한 베이스라인으로부터 하나의 요소만 변경하여 기여도를 분석하는 방법을 사용한다. BERT와 같은 encoder only 모델은 classification, span prediction task처럼 전체 맥락을 활용하는 태스크는 잘 수행하지만, abstractive summarization과 같은 생성 태스크를 잘 수행하지 못해 실험에 encoder only 구조를 고려하지 않았다. 대신, BERT의 objective인 MLM과 BERT와 유사하게 동작하는 모델 구조를 비교 대상에 포함하였다.

 

 

  - Baseline

 

T5의 인코더와 디코더는 각각 BERT-base 수준으로 설계되어 12개의 블럭을 가진다. 각 블럭은 self attention, optional encoder-decoder attention, feed-forward network로 구성된다. feed-forward network는 출력 차원이 3072인 dense layer와 ReLU, 그리고 3072차원을 768차원으로 줄이는 또 다른 dense layer로 구성된다. 각 토큰은 768차원으로 임베딩되고, 어텐션 헤드가 12개이므로 각 헤드에서 64차원 (= 768/12) 의 키, 밸류를 처리하여 concat을 통해 다시 768차원으로 결합한다. 전체 파라미터 수는 약 2억 2천만개로 BERT-base의 2배 수준이다. (BERT-base를 두 개 붙인 꼴이니까 당연함..) 

 

아마도 요러케...? 피티가 계산해줌 호호

 

 

앞서 말했듯이 모든 문제를 text-to-text 포맷으로 변환하기 때문에 하나의 모델로 항상 동일하게 maximum likelihood, teacher forcing (이전 시점의 예측값 대신, 정답 토큰을 다음 입력으로 사용해 학습하는 것), cross entropy loss로 학습할 수 있게 된다.

 

 

(사실 maximum likelihood를 사용한다는 것이 뭔지 잘 모르겠어서 작년에 수강했던 NLP 수업 자료들을 다시 살펴보고 정리해보았다 ㅎㅎ.. 근데 이걸 말하는 게 맞는지 몰게씀..... )

 

 

 

 

 

  - Baseline Performance

 

baseline 모델이 다양한 downstream task에서 어느 정도의 성능을 내는지, 그리고 pre-training이 없는 경우와 비교해 어떤 차이가 있는지 확인한 섹션이다. pre-training을 수행한 baseline이 수행하지 않은 모델보다 모든 태스크에서 우수한 성능을 보였다. 또한, 각 태스크에 대해서 10회만 학습하였기 때문에 충분히 학습하지 못한 상태, 즉, 제한된 데이터 상에서 pre-training이 태스크 성능을 얼마나 향상시키는 지를 강조한다. EnFr의 영어에서 프랑스어로 번역하는 태스크는 데이터가 풍부해서 pre-training의 영향이 적었음을 시사한다.

 

 

 

  - Architectures

 

different attention mask patterns

 

실험에 활용된 다양한 모델의 마스크 방식이 다르다. 마스크는 특정 단어 간의 attend를 막기 위해 가중치를 0으로 만드는 것이다. 인코더는 figure의 맨 왼쪽과 같이 fully-visible mask를 사용한다. 이는 모든 입력 토큰이 서로를 자유롭게 참조할 수 있어 문장의 전체 맥락을 이해하는 데 도움을 준다. 디코더는 figure의 두 번째에 해당하는 causal mask를 사용한다. 이는 j가 i보다 큰 부분을 막는 것인데, 미래 토큰을 보지 못하고 이전 토큰만 참조하도록 하는 것이다. 그런데, 이러한 방식을 text-to-text 포맷에 적용하게 되면, i 이전 토큰에만 의존해 출력을 생성하므로 모델의 표현력을 제한한다. 그래서, sequence에서 prefix 부분까지는 fully-visible하게, target 부분은 causal mask 방식을 사용하는 prefix LM을 사용한다.

 

 

각 L개의 레이어를 가지는 인코더-디코더 모델(L+L) 은 2L 레이어로 구성된 decoder only 모델과 파라미터 수(P)가 유사하지만, 연산량(M)은 L층으로 구성된 decoder only 모델과 유사하다.

 

실험 결과, 인코더-디코더 구조와 denoising objective가 성능이 가장 좋은 조합이었다. 인코더와 디코더의 파라미터를 공유하면 전체 파라미터 수가 절반으로 줄어들면서도 성능은 최고 조합과 비슷하게 나타났다. 층 수를 줄이는 구조는 연산량은 줄지만, 성능이 크게 떨어졌다. 그리고, denoising objective가 전반적으로 좋은 성능을 보였다. 

 

 

 

세 가지의 pre-training objective를 비교한 실험에서는 BERT-style이 모든 태스크에서 좋은 성능을 보였기 때문에 이후 실험들은  모두 BERT-style에 기반하여 발전시킨다. 

 

 

마스킹 비율 실험에서는 기존의 BERT가 사용한 방식대로 15%를 마스킹할 때가 성능이 가장 좋았다. 결론적으로, objective를 비교함에 있어서 denoising objective 방식이 가장 효과적이었지만, denoising objective의 여러 변형들 사이에서는 큰 차이가 존재하지 않았다. 

 

 

 

  - Pre-training Data set

 

 

필터링을 거치지 않은 C4 데이터셋의 성능이 가장 좋지 않아 필터링의 중요성을 보여준다. 또한, 특정 도메인에서는 해당 도메인을 다루는 데이터셋이 더 좋은 성능을 보였다. 하지만, 이 방식은 범용성을 확보하기가 어렵고, 다양한 도메인을 포함한 pre-training 데이터가 더 많은 downstream task에서 효과적일 수 있다. 또한, 제한된 도메인에서만 사전학습을 수행할 경우, 데이터셋의 크기가 훨씬 작아질 수 있다.

 

 

 

pre-training 중 같은 데이터를 반복해서 학습하는 것이 좋은지를 실험한 부분이다. 이러한 실험을 수행한 이유는 모델이 확률적으로 학습하기 때문에 같은 데이터를 보아도 동일하게 학습하지 않기 때문이다. 데이터셋이 작을수록 반복 횟수가 많아져 결과적으로 성능이 하락하고 training loss도 급격하게 감소한다. 이는 모델이 데이터를 외우는 memorization 현상이 발생할 수 있음을 보여주어 큰 데이터셋의 중요성을 강조한다.

 

 

 

  - Training Strategy

 

 

Multi-task learning은 모델을 여러 태스크에 학습시키는 방식으로, text-to-text 프레임워크에서는 단순히 여러 데이터셋을 섞는 것을 의미한다. (데이터를 섞음으로써 하나의 unsupervised task로 간주하는 것) 그런데, multi-task learning만을 사용했을 때의 성능이 pre-training을 한 후에 태스크 별로 fine-tuning을 했을 때보다 낮았다. 그래서, 학습은 멀티 태스크 방식으로 하되, 태스크 별로 파인튜닝하는 방식을 채택한다.

 

 

 

  - Scaling

 

 

모델 크기, 학습 시간, 배치 사이즈, 앙상블을 비교한 결과이다. 모델 크기 증가, 학습 시간 증가, 배치 사이즈 증가 모두 성능 개선에 효과적이었고, 특히 모델 크기 증가는 추가적인 성능 향상을 제공하였다. trade off가 존재하기 때문에 어떤 방식이 최선인지는 사용 목적에 따라 다를 것이다. 

 

 

 

 

  - Putting It All Together

 

 

태스크 별로 기존 SOTA 모델과 여러 크기의 T5 모델의 성능을 비교한 것이다. T5 모델이 24개 중 18개의 태스크에서 SOTA를 기록하였고, 특히 T5-11B 모델이 대부분 최고 성능을 보였다. 모델 크기의 확장이 성능에 크게 기여함을 알 수 있다.

 

 


 

끝끝끝.... 진짜 양도 너무 많고 읽다 지쳐서 너무 힘들었던 논문이었다 ㅠㅠ

뭔 실험을 이렇게 많이 하는지...

하루 날 잡고 12시간인가 쉬지 않고 읽었는데 6분의 1 밖에 못읽어서 진짜 암담했음 엉엉

그래도 끝냈다 ~~!!! 

 

 

( 발표 자료 )