Flan-T5: 명령어 튜닝으로 소형 모델이 거대 모델을 넘다

개요

Flan-T5는 2022년 10월 Google Research가 발표한 명령어 파인튜닝(Instruction Tuning) 모델이다. 핵심 질문은 단순하다: “파라미터를 키우지 않고도 모델을 더 똑똑하게 만들 수 있을까?”

답은 명령어 튜닝에 있었다. T5를 1,836개의 다양한 태스크에 걸쳐 자연어 명령어 형태로 파인튜닝한 결과, 3B 파라미터 Flan-T5 XL이 175B GPT-3를 MMLU에서 능가하는 놀라운 결과가 나왔다. 이는 모델의 크기보다 학습 방법론이 더 중요할 수 있다는 패러다임 전환의 신호탄이었다.

‘Flan’은 Finetuned Language Net의 약자로, Google이 개발한 대규모 명령어 튜닝 방법론을 지칭한다.

아키텍처 상세

Flan-T5는 T5의 인코더-디코더 구조를 그대로 유지한다. 아키텍처적 변경은 없으며, 데이터와 학습 방법론만 변경했다:

모델파라미터레이어Hidden DimHeads
Flan-T5 Small80M85126
Flan-T5 Base250M1276812
Flan-T5 Large780M241,02416
Flan-T5 XL3B242,04832
Flan-T5 XXL11B244,09664

모든 모델은 다음 구성을 공유한다:

  • Vocab Size: 32,100 (SentencePiece)
  • 정규화: RMSNorm (Pre-Norm)
  • 활성화 함수: ReLU
  • 위치 인코딩: Relative Attention Bias

핵심 혁신: Flan Collection과 Chain-of-Thought

Flan Collection

Flan-T5의 핵심은 1,836개 태스크로 구성된 대규모 명령어 데이터셋인 Flan Collection이다:

  • 태스크 유형: 분류, 번역, 요약, QA, 추론, 수학, 코드, 대화 등
  • 템플릿: 각 태스크마다 최대 10개의 명령어 템플릿 사용
  • Input Inversion: 역 태스크도 학습하여 다양한 형식에 강건하게 대응

Chain-of-Thought (CoT) 파인튜닝

Flan-T5의 두 번째 핵심 혁신은 CoT 데이터를 파인튜닝에 포함한 것이다:

질문: 사과가 3개 있고 2개를 더 샀다면 총 몇 개인가?

# CoT 없는 답변
답: 5개

# CoT 포함 답변  
생각: 처음에 사과 3개가 있었다. 2개를 더 샀으므로 3 + 2 = 5이다.
답: 5개

핵심 발견: CoT 데이터를 5%만 포함해도 제로샷·퓨샷 모두에서 1~7포인트 향상이 나타났다.

혼합 프롬프트 설정

제로샷, 퓨샷, CoT 프롬프트를 혼합하여 학습했을 때 모든 설정에서 2%+ 성능 향상이 나타났다.

from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
 
# Flan-T5 모델 로드
tokenizer = AutoTokenizer.from_pretrained('google/flan-t5-xl')
model = AutoModelForSeq2SeqLM.from_pretrained('google/flan-t5-xl')
 
# 제로샷 명령어 수행
prompt = "Translate the following sentence to French: 'The weather is nice today.'"
inputs = tokenizer(prompt, return_tensors='pt')
outputs = model.generate(inputs['input_ids'], max_length=100)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
# 출력: "Le temps est beau aujourd'hui."
 
# CoT 추론
prompt_cot = """Answer the following question by reasoning step by step.
Question: If a train travels at 60 km/h for 2.5 hours, how far does it go?"""
inputs = tokenizer(prompt_cot, return_tensors='pt')
outputs = model.generate(inputs['input_ids'], max_length=200)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

벤치마크/성능

벤치마크Flan-T5 XL (3B)Flan-T5 XXL (11B)GPT-3 (175B)PaLM 62B
MMLU52.4%55.1%43.9%49.0%
BBH-direct-43.7%-37.5%
BBH-CoT-45.3%-42.1%

핵심 결과

  • Flan-T5 XL(3B)이 GPT-3(175B)를 MMLU에서 8.5%p 능가 (52.4% vs 43.9%)
  • Flan-T5 XXL(11B)이 PaLM 62B를 BBH-direct에서 6.2%p 능가 (43.7% vs 37.5%)
  • 동일 크기 T5 대비 평균 9% 이상 성능 향상
  • MMLU에서 3%+, BBH에서 8% 개선

관련 모델 비교

특성T5Flan-T5GPT-3InstructGPT
구조Enc-DecEnc-DecDec-onlyDec-only
명령어 튜닝XO (1,836 태스크)XO (SFT+RLHF)
CoT 학습XOX부분적
제로샷 일반화약함강함보통강함
오픈소스OOXX
파라미터 효율보통높음낮음낮음

학습 상세

시작점

  • T5 사전 학습 체크포인트에서 시작 (추가 사전 학습 없음)

명령어 튜닝 설정

  • 데이터: Flan Collection (1,836 태스크)
  • 배치 크기: 64
  • Optimizer: Adafactor (lr = 5e-4)
  • CoT 태스크 가중치 상향 조정
  • 인프라: 128 TPU v3 코어

실무 활용

1. 제로샷 NLP 파이프라인

파인튜닝 없이 다양한 NLP 태스크를 처리할 수 있는 범용 모델로 활용된다.

2. 경량 추론 서버

Flan-T5 Small/Base는 CPU에서도 구동 가능하여, 비용 효율적인 추론 서버를 구축할 수 있다.

3. RAG 시스템의 생성 컴포넌트

Retrieval-Augmented Generation에서 검색된 문서를 기반으로 답변을 생성하는 생성기(generator)로 널리 사용된다.

4. 교육 및 연구

다양한 크기로 제공되어 리소스 제약이 있는 환경에서도 실험이 가능하다.

5. 파인튜닝 베이스

이미 명령어를 이해하는 상태에서 추가 파인튜닝하면, 순수 T5에서 시작하는 것보다 빠르게 수렴한다.

한계 및 전망

한계

  1. 컨텍스트 길이: 512 토큰으로 제한되어 긴 문서 처리에 부적합하다
  2. 다국어 지원: 영어 중심 학습으로 다국어 성능이 제한적이다
  3. 환각(Hallucination): 모르는 것을 “모른다”고 답하기보다 생성하는 경향이 있다
  4. 최신 지식 부재: 2022년 이후 정보를 포함하지 않는다

전망

Flan-T5는 명령어 튜닝의 효과를 대규모로 입증한 역사적 모델이다. 이 모델이 보여준 핵심 교훈—“작은 모델 + 좋은 학습 방법 > 큰 모델”—은 이후 Alpaca, Vicuna, LIMA 등 데이터 효율적 정렬(alignment) 연구의 이론적 근거가 되었다. 오픈소스로 공개되어 2024년 기준으로도 Hugging Face에서 가장 많이 다운로드되는 모델 중 하나이며, 특히 RAG 시스템과 경량 NLP 파이프라인에서 여전히 현역으로 활약하고 있다.


참고 문헌

  • Chung, H. W., et al. (2022). “Scaling Instruction-Finetuned Language Models.” arXiv:2210.11416
  • Longpre, S., et al. (2023). “The Flan Collection: Designing Data and Methods for Effective Instruction Tuning.”
  • Wei, J., et al. (2022). “Chain-of-Thought Prompting Elicits Reasoning in Large Language Models.”

관련 문서

  • T5 — 발전 기반