‹ Lecture 4 09 / 20

T5

T5는 task마다 다른 output head를 붙이는 대신 모든 task의 input과 output을 text로 표현한다. 이름은 Text-to-Text Transfer Transformer에서 온다. Encoder가 source 전체를 읽고, causal Decoder가 output text를 생성하는 구조이므로, task가 달라져도 같은 Tokenizer·Vocabulary·backbone·LM output layer를 사용할 수 있다.

One Text-to-Text Interface

Task prefix는 같은 모델에 어떤 일을 해야 하는지 알려준다. Translation, Summarization뿐 아니라 Classification도 label을 text로 만들면 같은 interface에 들어간다.

InputOutput
translate English to German: The house is wonderful.Das Haus ist wunderbar.
summarize: state authorities dispatched …a short summary
cola sentence: The course is jumping well.unacceptable

CoLA의 마지막 예는 문법적 수용 가능성을 label text로 출력하는 경우다. Task-specific heads와 서로 다른 output format을 제거한 것이지, downstream task 학습 자체를 제거한 것은 아니다. 하나의 task나 multitask mixture에 대한 fine-tuning은 여전히 필요하다.

Encoder의 hidden states는 Decoder Cross-Attention의 K/V가 되고, Decoder state는 Q가 된다. 따라서 output을 생성할 때 이미 생성한 prefix뿐 아니라 source의 필요한 부분도 읽을 수 있다. 교수님은 T5의 relative position bias, Pre-LN, 그리고 Encoder input·Decoder input·LM output에서 Embedding을 공유하는 구조도 앞 강의와 연결했다. Relative position bias는 absolute sinusoidal vector를 input에 더하는 방식과 달리 token 사이의 상대적 위치를 Attention score에 반영한다. ALiBi와 연결해 이해할 수 있지만 같은 식을 쓰는 것은 아니다.

강의에 제시된 T5 release sizes는 60M, 220M, 770M, 3B, 11B이며, 모두 약 750GB의 cleaned web text인 C4로 pre-training한다.

Span Corruption

Pre-training에서는 연속한 token span을 가리고 그 내용을 생성한다. 각 span은 서로 다른 Sentinel로 표시하므로, Decoder는 어떤 빈칸의 내용을 생성하는지 구분할 수 있다.

StageText
OriginalThank you for inviting me to your party.
Encoder inputThank you <X> me to your party.
Decoder target<X> for inviting <Y>

첫 Sentinel <X> 뒤에는 첫 번째로 가린 span인 for inviting이 온다. 마지막 <Y>는 target의 끝을 나타낸다. 빈칸이 여러 개이면 각 Sentinel 뒤에 해당 missing span을 차례로 생성한다. Thank you처럼 이미 input에 있는 부분을 다시 생성하는 target이 아니다.

Default setting은 tokens의 15%를 가리고 mean span length를 3으로 둔다. 평균이 3이라는 말은 모든 span이 정확히 3 tokens라는 뜻이 아니다. 한 번에 여러 token을 복원하도록 하면서, 원문 전체를 생성하는 것보다 target을 짧게 만들 수 있다. 교수님이 설명한 계산상의 이점도 여기에 있다. Decoder가 만들어야 하는 output이 짧아져 generation 부담이 줄어든다. BART의 full-original reconstruction과 비교할 때 이 target 차이를 먼저 보아야 한다.

Prompt-Based Fine-Tuning

Span을 채우는 능력은 task template를 만드는 연구에도 연결된다. Sentiment Classification을 별도 0/1 head로만 푸는 대신, 문장 주변에 template를 두고 masked 위치에 great나 bad 같은 label word를 예측하도록 만들 수 있다. T5의 span generation은 이런 template를 구성하는 데 활용된다.

이 방식의 의미는 pre-training에서 배운 masked prediction과 downstream task의 prediction 형식을 가깝게 만든다는 데 있다. 다만 prompt-based fine-tuning도 학습 방식이다. Prompt를 사용한다는 이유만으로 test-time weights가 고정된 In-context Learning과 같아지는 것은 아니다.

mT5 and FLAN-T5

mT5는 같은 span-corruption recipe를 101개 언어의 mC4에 적용하며, 모델 크기는 300M–13B다. 여러 언어를 함께 쓰면 corpus가 큰 언어가 학습을 지배하기 쉬우므로 language sampling을 조정한다. 교수님은 sampling의 α=0.3\alpha=0.3 설정과, 250K처럼 큰 Vocabulary가 매 output projection의 비용을 늘린다는 점도 설명했다. 다국어 coverage는 language balance와 실행 비용을 함께 고려해야 한다.

FLAN-T5는 T5 checkpoint에 instruction fine-tuning을 추가한다. 강의의 mixture는 NIV2 1,554 + T0-SF 193 + Muffin 80 + CoT 9 = 1,836 tasks다. Instructions를 따르는 text pair로 추가 학습한 뒤에는, unseen task의 inference에서 별도 학습 없이 지시를 수행하는 것을 평가한다. “Inference에 extra training이 없다”와 “instruction fine-tuning을 하지 않았다”는 전혀 다른 말이다.

당시 instruction data는 template로 정형화된 형식이 많았고, 교수님은 중복·다양성의 한계와 이후 augmentation·paraphrasing으로 이를 보완하는 흐름도 연결했다. FLAN-T5의 핵심은 T5의 architecture를 새로 발명하는 것이 아니라, 기존 checkpoint가 지시를 따르도록 학습하는 stage를 추가했다는 점이다.

Check

T5 span objective의 target이 원문 전체가 아닌 이유와 Sentinel의 역할은?

Answer

누락 spans를 순서대로 복원하는 objective다. Sentinel은 각 span의 경계/식별과 마지막 종료를 표시한다.

mT5와 FLAN-T5는 T5에서 어느 축을 확장했는가?

Answer

mT5는 multilingual pretraining data, FLAN-T5는 여러 instruction-format tasks의 fine-tuning으로 지시 수행 능력을 확장한다.

Sentinel target이 원문보다 짧아지는 이유와 그 계산상의 이점은?

Answer

Sentinel 뒤에 missing spans만 생성하고 이미 input에 남은 text는 다시 만들지 않기 때문이다. 여러 tokens의 span을 복원하면서도 Decoder target을 짧게 하여 generation 부담을 줄인다. BART의 full-original target과 다르다.

T5 Span Corruption에서 input과 target을 만드는 순서를 말하라.

Answer

Original에서 spans 선택 → 각 span을 고유 Sentinel로 치환한 input → Sentinel + 누락 span을 순서대로 target에 이어붙임 → 마지막 Sentinel로 종료.

T5 · BART를 축별로 비교하고 그 차이가 필요한 이유를 설명하세요.

Answer

Corruption과 decoder target을 분리해서 비교한다.

공통: T5=Encoder-decoder / corrupted input / BART=Encoder-decoder / corrupted input

기본 corruption: T5=15% tokens / mean span3 / unique Sentinels / BART=30% infilling + sentence permutation (Large)

Target: T5=Sentinels + missing spans / BART=Full original sequence

강의 예시: T5=<XX> for inviting <Y> / BART=원문 전체 left-to-right

추가 흐름: T5=mT5 multilingual / FLAN instruction tuning / BART=Conditional generation / Teacher forcing

Contents