오늘은 T5 논문 리뷰를 가져왔습니다.
해당 논문은 2019년에 발표된 논문입니다.
논문 : Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer
저자 : Colin Raffel, Noam Shazeer, Adam Roberts, Katherine Lee, Sharan Narang, Michael Matena, Yanqi Zhou, Wei Li, Peter J. Liu
[1] Background
Transformer가 개발되고 GPT, BERT 등 후속 논문이 등장하면서
NLP에는 일명 전이 학습 붐이 일었습니다.
전이 학습이란?
대규모 Unlabeled Text Data 로 언어 모델을 사전학습시켜서 언어 자체에 대한 이해, 베이스를 만들고
적용하고자 하는 Down Stream Task에 맞춰서 적은 양의 Labeled Data로 추가 학습하는 방법을 얘기합니다.
아무래도 Labeled Data 특성상 많은 양을 기대하기 어렵기 때문에 대규모의 Unlabeled Data로 먼저 학습시키고
Labeled Data로 추가 학습시키면 성능도 오르고 학습 효율성도 좋을 수밖에 없습니다.
그런데, 기존 NLP 모델에서 전이학습을 적용하기 위해서는 사전학습 모델에 Task에 맞게 추가하거나 변형을 주어야 합니다.
예시는 다음과 같습니다.
- 번역 (Translation) : Seq-to-Seq 모델
- 분류 (Classification) : 특정 분류기 사용
- 요약 (Summarization) : 추출 혹은 생성 기반 모델
그래서 T5에서는 모든 Task를 "Text → Text" 문제로 단순화시켜서 생각하려고 합니다.
<예시>
번역: "translate English to French: How are you?" → "Comment ça va?"
질의응답: "question: What is the capital of France? context: Paris is the capital of France." → "Paris"
분류: "review: This movie was amazing! sentiment: positive"
위 예시처럼 말이죠.
이렇게 했을 때 장점은 다양한 NLP 작업에서 동일한 모델, 손실함수, 하이퍼파라미터를 사용할 수 있기 때문에 굉장한 범용성과 실용성을 가질 수 있게 됩니다.
그래서 T5의 이름이 "Text to Text Transfer Transformer" 를 줄여서 T5가 된 겁니다.
추가로 본 논문이 강조하고자 하는 것은 새로운 방법론을 제시하는 것이 아니라 현재 NLP 전이학습 분야의 현황을 종합적으로 연구하는 것이라고 합니다.
그래서 논문이 대부분 실험 위주의 본문이 많고 많은 실험을 하다 보니까 굉장히 긴 논문이 된 게 아닐까 생각이 듭니다..
[2] Set up
1) Model
본 논문에서는 Encoder - Decoder 구조보다 Basic한 Transformer 구조가 성능이 높아 이 구조를 사용했다고 합니다. 모델 자체는 원본 Transformer와 거의 동일하지만 Layer Norm 편향 현상을 제거, Layer Norm을 residual layer 밖으로 이동시키고 기존에 사용했던 position embedding과는 다른 위치 임베딩 전략을 사용했다는 점이 다르겠습니다.
2) Datasets
Domain specific data는 Task에 도움이 되지만 그 데이터의 크기가 작은 경우 Overfitting을 야기할 수 있기 때문에 주의가 필요합니다. 그래서 본 논문에서는 “The Colossal Clean Crawled Corpus (C4)” 데이터셋을 사용했습니다.
Common Crawl은 대중적으로 이용 가능한 웹 저장소로, HTML 파일에서 추출된 마크업이나 다른 non-text 데이터를 제거한 “웹에서 추출된 텍스트”를 제공합니다. 하지만 이러한 텍스트의 대부분은 자연어가 아닙니다. 대신, 대부분 메뉴, 오류 메시지, 중복 텍스트와 같은 의미 없는 문구(gibberish)나 표준문구(boiler-plate)로 구성됩니다. 게다가, 스크랩 된 텍스트의 많은 양이 논문에서 고려하는 어떤 태스크에도 유용하지 않을 것 같은 내용을 담고 있습니다 (공격적인 언어, 플레이스홀더, 소스코드 등과 같은..). 이러한 문제들을 해결하기 위해, 본 논문에서는 Common Crawl의 웹 추출 텍스트를 클리닝 하기 위해 다음과 같은 휴리스틱한 방법을 사용합니다.
- 종단 구두점(반점, 느낌표, 물음표 등)으로 끝나는 라인만 유지
- 5문장 이하의 페이지는 제거, 최소 3글자 이상을 가진 라인만 유지
- 비속어가 있는 페이지 제거
- 데이터셋에서 두 번 이상 나타난 3문장 Span은 하나만 남기고 모두 제거 등등
3) Input and Output Format
T5(Text-to-Text Transfer Transformer) 모델은 모든 자연어 처리(NLP) 태스크를 하나의 통합된 형식으로 변환하여 처리하는 접근 방식을 사용합니다.
기존 NLP 모델들은 각 태스크마다 다른 형식을 사용해야 했지만, T5는 모든 문제를 "텍스트 입력 → 텍스트 출력" 방식으로 변환하여 해결합니다.
이러한 프레임워크 덕분에, 사전 학습(Pre-training)과 파인튜닝(Fine-tuning) 과정에서도 동일한 방식으로 모델을 훈련할 수 있습니다.
T5는 모델 학습 과정에서 "Teacher Forcing" 기법을 사용해, max likelihood를 추정하는 방식으로 학습됩니다.
📌 Teacher Forcing이란?
실제 정답을 모델이 예측한 값 대신 다음 단계의 입력으로 제공하는 기법을 말합니다.
훈련 과정에서 정답 데이터를 적극적으로 활용하여 빠르고 안정적인 학습 가능해지죠.
T5는 하나의 모델로 다양한 NLP 태스크를 수행할 수 있는데 각 태스크를 구분하기 위해 입력 텍스트 앞에 "접두어(Prefix)"를 추가하는 특징이 있습니다.
📌 예제 1: 기계 번역 (Machine Translation)
- 입력: "translate English to German: That is good."
- 출력: "Das ist gut."
📌 예제 2: 텍스트 분류 (Text Classification)
- 입력: "mnli premise: I hate pigeons. hypothesis: My feelings towards pigeons are filled with animosity."
- 출력: "entailment"
즉, 모델은 입력 앞부분의 접두어를 통해 수행할 작업을 인식하고, 이에 맞는 출력을 생성합니다.
그런데 만약, T5 모델이 정해진 라벨(예: "entailment", "neutral", "contradiction") 이외의 단어를 생성하면 어떻게 될까요?
예를 들어, "hamburger" 같은 단어를 출력한다면 이는 유효한 정답이 아닙니다.
이러한 경우, 모델이 생성한 단어가 태스크에서 정의한 라벨에 포함되지 않으면 "오답"으로 처리합니다.
다만, 실험 과정에서 이러한 문제는 발생하지 않았음을 논문에서 언급하고 있습니다.
태스크를 구분하는 접두어(Prefix)는 하이퍼파라미터로 볼 수 있습니다.
하지만 연구 결과, 접두어의 문장을 약간 다르게 설정해도 모델 성능에는 큰 영향을 미치지 않는 것으로 나타났습니다.
따라서, 본 연구에서 다양한 접두어를 실험적으로 최적화하는 과정은 수행하지 않았음을 명시하고 있습니다.
즉, "translate English to German:" 대신 "English-German translation:"처럼 바꾸더라도 모델 성능에는 큰 차이가 없었다고 합니다.
[3] Model
1) Model Architecture
T5는 Transformer 기반의 표준 인코더-디코더 구조를 사용합니다.
기존 NLP 모델들은 단일 Transformer 스택을 사용하는 경우가 많았지만, T5는 생성(generative) 태스크와 분류(classification) 태스크 모두에서 좋은 성능을 내기 위해 인코더-디코더 구조를 선택했습니다.
📌 T5 모델의 핵심 구조
- 인코더(Encoder) & 디코더(Decoder)
- 각각 12개의 블록(layer stack) 으로 구성됨
- 각 블록은 셀프 어텐션(Self-Attention), 인코더-디코더 어텐션(Optional), 피드포워드 신경망(Feed-Forward Network, FFN) 포함
- 피드포워드 신경망(FFN) 구조
- 첫 번째 밀집층(Dense layer)의 차원: 3072 ($d_{ff}$ = 3072)
- 활성화 함수: ReLU (Rectified Linear Unit)
- 이후 두 번째 밀집층(Dense layer)으로 연결
- 어텐션 메커니즘 내부 구조
- 키(Key)와 밸류(Value) 행렬의 차원: 64 ($d_{kv}$ = 64)
- 모든 어텐션 메커니즘은 12개의 어텐션 헤드(Attention Heads) 사용
- 임베딩 및 기타 서브 레이어 차원
- 모델 차원($d_{model}$) = 768
위와 같은 구조의 T5의 베이스라인 모델은 약 2억 2천만 개(220M)의 파라미터를 보유하고 있다고 합니다.
이는 BERT BASE 모델(약 1억 개)보다 약 2배 크며, 그 이유는 인코더와 디코더의 두 개의 레이어 스택을 사용하기 때문입니다.
2) Training
NLP 모델에서 전이 학습(Transfer Learning) 을 적용할 때, 초기 연구들은 MLM 방식을 많이 사용했습니다. (BERT)
T5는 여기에 추가로 BART처럼 Span을 마스킹하고 복원하는 방식의 학습 방법을 채택했습니다.
📌 입력 문장:
"Thank you for inviting me to your party last week."
📌 손상된 문장:
"Thank you <X> me to your party <Y> week."
📌 출력 문장:
"<X> for inviting <Y> last <Z>"
T5는 단순히 단어를 마스킹하는 것이 아니라, 연속된 단어(Span)를 삭제하고 이를 Sentinel Token으로 대체합니다.
모든 손실된(삭제된) 토큰은 Sentinel Token으로 대체되고 각 Sentinel Token은 문장 내에서 유일한 ID를 가집니다.
이러한 설계를 통해 T5는 기존 BERT보다 더 효과적으로 문맥을 학습할 수 있습니다.
📌 기존 BERT와의 차이점은?
- BERT: 한 문장에서 단어 일부를 랜덤하게 선택하여 마스킹(masking)
- T5: 여러 개의 연속된 단어(Span)를 삭제하고, 각각의 Span을 하나의 Sentinel Token으로 대체
- T5 방식의 장점: 모델이 긴 문맥(Context)을 더 잘 학습할 수 있도록 함
3) Model Structure
T5 모델에서 고려한 주요 마스킹 패턴은 다음과 같습니다.
(1) Fully-Visible Masking (완전 가시적 마스킹)
- 모든 입력 단어들이 서로를 참고 가능, BERT 같은 인코더 모델에서 사용됨 (왼쪽)
(2) Causal Masking (인과적 마스킹)
- 출력 단어 i는 i 이전의 입력 단어들만 볼 수 있음, GPT 같은 언어 모델에서 사용됨 (가운데)
(3) Prefix Masking (접두사 마스킹)
- 입력의 일부(prefix)는 완전한 정보를 볼 수 있지만 나머지는 causal masking 적용, T5 모델의 디코더에서 사용됨 (오른쪽)
정리하자면, Transformer로 구성된 인코더-디코더 모델 구조로 되어 있고 인코더는 BERT와 유사하지만 Span Masking을 적용한 마스킹 기법을 적용한 인코더고, 디코더는 GPT와 유사하지만 입력의 일부를 볼 수 있게 한 Prefix LM을 적용한 디코더입니다.
[4] Corruption
T5 논문에서 실험을 굉장히 많이 진행했는데 그 중에서 Corruption에 관한 부분입니다. 여기서 Corruption이란 sequence와 비슷한 의미입니다.
- High-level approach (사전학습 방식 비교)
- BERT-Style 방식이 가장 높은 성능을 기록
- Prefix Language Modeling보다 높은 점수를 기록하며, 다양한 태스크에서 균형 잡힌 성능을 보임
- Deshuffling 방식은 가장 낮은 성능을 보여, NLP 태스크에 적합하지 않음을 시사
- Corruption Stretegies (손상 데이터 처리 방식 비교)
- Replace Corrupted Spans 방식이 가장 우수한 성능을 기록
- Drop Corrupted Tokens보다 더 높은 점수를 기록, 의미 있는 컨텍스트를 유지하는 것이 중요함을 시사
- MASS-Style 방식은 일부 태스크에서 준수한 성능을 보였으나, 전반적으로 Replace 방식이 더 뛰어남
- Corruption Rate (손상 비율 비교)
- 손상 비율 15%일 때 가장 좋은 성능을 기록
- 10%일 때보다 성능이 향상되며, 25%를 초과하면 성능이 점차 저하됨
- 즉, 일정 수준의 노이즈(15%)를 추가하면 학습이 더 잘 되지만, 너무 많으면 오히려 성능이 하락
- Corruption Span Length (손상된 Span 길이 비교)
- Span Length를 3으로 했을 때 성능이 가장 좋았다고 시사
- 길이가 너무 짧으면 정보 손실이 적어 학습 효과가 낮아지고, 길이가 너무 길면 학습이 어려워짐
- 즉, 적절한 크기의 정보 손실(Span Length = 3)이 최적의 학습 효과를 나타냄
[5] Results
- 수많은 실험을 진행했고 물론 T5가 SOTA를 달성하지 못한 분야도 있었음
- 그 때는 ALBERT, RoBERTa 등 다른 모델이 SOTA
- 하지만 거의 모든, 대부분의 NLP Task에서 높은 성능을 기록한 모델이 T5
[6] Conclusion
- text-to-text 프레임워크를 사용했는데 이러한 접근법은 생성 요약, 분류, 회귀 등 여러 Task에서 잘 적용될 수 있음을 시사, 입증하고 있음
- 기존의 Encoder만 사용하는 BERT, Decoder만 사용하는 GPT와 다르게 기존 Transformer의 Encoder - Decoder 구조를 거의 비슷하게 사용함
- 한쪽만 사용하는 모델보다 2배 많은 파라미터를 사용하겠지만 연산 비용은 비슷함, 파라미터를 공유하기 때문, 그리고 성능은 상승 good
- Colossal Clean Crawled Corpus Dataset을 Cleansing해서 사용함
- 굉장히 많은 NLP Task에서 SOTA를 달성했으며 왠만한 Task에서 준수한 성능
[7] Reference
https://arxiv.org/abs/1910.10683
https://youtu.be/v7diENO2mEA?si=zEH5MFi0IeobD6Du
[논문리뷰] BERT 논문 리뷰
자, 오늘은 X:AI Seminar 2024에서 진행한 BERT 논문 리뷰를 가져왔습니다.해당 논문은 2019년에 발표되어 ELMO, GPT-1의 모델과 비교를 하면서 얘기를 시사하고 있습니다. 논문 : BERT, Pre-training of Deep Bidire
dangingsu.tistory.com
'논문리뷰' 카테고리의 다른 글
[논문리뷰] CoCa 논문 리뷰 (0) | 2024.08.06 |
---|---|
[논문리뷰] SimVLM 논문 리뷰 (0) | 2024.08.01 |
[논문리뷰] FILIP 논문 리뷰 (5) | 2024.07.23 |
[논문리뷰] ALBEF 논문 리뷰 (2) | 2024.07.17 |
[논문리뷰] CLIP 논문 리뷰 (0) | 2024.07.10 |
[논문리뷰] XL-Net 논문 리뷰 (0) | 2024.07.03 |
[논문리뷰] Transformer 논문 리뷰 (0) | 2024.06.26 |
[논문리뷰] MT-DNN 논문 리뷰 (0) | 2024.05.23 |