PaperReview

[FLAM]Finetuned Language Models Are Zero-Shot Learners

Black940514 2026. 2. 8. 15:03

Finetuned Language Models Are Zero-Shot Learners

저자: Jason Wei, Maarten Bosma, Vincent Y. Zhao 외 6명
발행년도: 2021년
인용수: None회
논문 링크: http://arxiv.org/abs/2109.01652v5
arXiv ID: 2109.01652


Instruction Tuning, "지시를 가르치면 처음 보는 문제도 풀 수 있을까?"

이 논문을 집어든 이유

GPT-3가 few-shot learning에서 놀라운 성능을 보여준 건 이미 잘 알려진 사실이었다. 그런데 zero-shot, 그러니까 예시 없이 순수하게 지시만으로 문제를 풀어야 하는 상황에서는 성능이 확 떨어졌다. 읽기 이해, 자연어 추론 같은 태스크에서 특히 그랬다.

이유가 뭘까 생각해보면 직관적이다. 사전학습 데이터에서 본 텍스트 형태와 프롬프트 형태가 너무 달랐던 것이다. 모델 입장에서는 "이 영화 리뷰의 감정이 긍정인가 부정인가?" 같은 질문을 자연스러운 문장 이어쓰기로 처리해야 하니 어색할 수밖에 없었다.

그래서 이 논문이 눈에 들어왔다. 제목부터 도발적이었다. "파인튜닝된 언어 모델은 제로샷 학습자다." 자연어 지시를 통해 다양한 태스크를 학습시키면, 한 번도 본 적 없는 태스크도 잘 풀 수 있다는 주장이었다.

핵심 아이디어: 지시를 가르친다는 것

이 논문의 핵심 개념은 instruction tuning이었다. 아이디어 자체는 놀랍도록 단순했다. 사전학습된 거대 언어 모델에게 60개 이상의 NLP 데이터셋을 자연어 지시 형태로 변환해서 파인튜닝하는 것이다. 이렇게 만든 모델을 FLAN(Finetuned Language Net)이라 불렀다.

Figure 2: Comparing instruction tuning with pretrain–finetune and prompting.
이 그림은 기존 pretrain-finetune 방식, GPT-3 스타일 프롬프팅, 그리고 FLAN의 instruction tuning을 비교한다. FLAN은 다양한 태스크를 자연어 지시로 학습한 뒤, 학습하지 않은 새로운 태스크에 대해 추론을 수행한다.

기존 방식들과 비교하면 차이가 명확했다. BERT나 T5 같은 pretrain-finetune 방식은 태스크마다 별도 모델이 필요했다. GPT-3의 프롬프팅은 하나의 모델로 여러 태스크를 처리하지만, few-shot 예시에 크게 의존했다. FLAN은 이 둘의 장점을 결합했다. 지도학습의 힘을 빌려 모델이 지시를 따르는 법 자체를 배우게 한 것이다.

핵심 통찰은 이것이었다. 충분히 다양한 태스크를 지시 형태로 학습하면, 모델이 "지시를 따르는 능력" 자체를 획득한다.

비유하자면, 수학 문제집을 여러 권 풀어본 학생이 처음 보는 유형의 문제도 감을 잡는 것과 비슷했다. 개별 문제의 답을 외우는 게 아니라, "문제를 읽고 풀어내는 방법" 자체를 체득하는 과정이었다.

어떻게 만들었나

전체 파이프라인은 크게 세 단계로 나눌 수 있었다.

먼저 62개의 텍스트 데이터셋을 모아 12개 태스크 클러스터로 분류했다. 자연어 추론, 읽기 이해, 감성 분석, 번역, 요약 등 NLU와 NLG를 아우르는 구성이었다. 각 데이터셋마다 10개의 고유한 자연어 지시 템플릿을 수작업으로 작성했다. "이 전제가 가설을 함의하는가?"처럼 원래 태스크를 설명하는 템플릿과, "영화 리뷰를 생성하라"처럼 태스크를 뒤집는 템플릿도 포함했다.

Figure 3: Datasets and task clusters used in this paper
NLU 태스크(파란색)와 NLG 태스크(청록색)로 구분된 12개 클러스터와 62개 데이터셋의 전체 구성을 보여준다.

그 다음이 사실 이 논문에서 제일 중요한 부분이었다. 평가 방식에서 태스크 클러스터 단위의 hold-out을 적용했다. 예를 들어 자연어 추론 성능을 평가할 때는, 학습 과정에서 모든 NLI 데이터셋을 제외했다. 단순히 같은 데이터셋을 빼는 게 아니라, 같은 유형의 태스크 자체를 통째로 빼버린 것이다. 이건 꽤 보수적인 평가 기준이었고, 덕분에 결과의 신뢰도가 높아졌다.

베이스 모델로는 137B 파라미터의 LaMDA-PT를 사용했다. 2.49T 토큰으로 사전학습된 decoder-only 트랜스포머였다. 파인튜닝은 30k 스텝, 배치 사이즈 8,192 토큰, 학습률 3e-5로 진행했다. 분류 태스크에서는 OPTIONS 토큰을 붙여 선택지를 명시하는 방법도 적용했는데, 이건 rank classification의 확률 분포 문제를 깔끔하게 해결하는 아이디어였다.

결과가 말해주는 것들

FLAN의 zero-shot 성능은 기대 이상이었다. 평가한 25개 데이터셋 중 20개에서 175B GPT-3의 zero-shot을 넘어섰다. ANLI, RTE, BoolQ, OpenbookQA 등 6개 데이터셋에서는 GPT-3의 few-shot 성능까지 뛰어넘었다.

Figure 5: Zero-shot performance of FLAN compared to baselines
NLI, 읽기 이해, closed-book QA, 번역 네 가지 태스크 클러스터에서 FLAN(별 마커)이 LaMDA-PT, GPT-3, GLaM 대비 대부분 우위에 있음을 확인할 수 있다.

특히 NLI에서 큰 격차가 나타났다는 점이 흥미로웠다. GPT-3가 NLI에서 고전하는 이유는 사전학습 데이터에 NLI 형식의 텍스트가 자연스럽게 등장하지 않기 때문이었다. FLAN은 "Does [premise] mean that [hypothesis]?"처럼 자연스러운 질문으로 바꿔서 이 문제를 우회했다.

반면 instruction tuning이 잘 안 먹히는 영역도 있었다. 상식 추론이나 공참조 해결처럼 문장 완성 형태의 태스크에서는 효과가 제한적이었다. 이미 사전학습의 언어 모델링 목적과 동일한 형태라서, 지시를 추가하는 것이 오히려 중복이었던 셈이다.

Ablation에서 발견한 진짜 재미있는 것들

이 논문의 ablation study가 특히 인상적이었다.

첫째, 태스크 클러스터 수가 늘어날수록 성능이 계속 올라갔다. 1개에서 7개까지 클러스터를 늘리면서 평균 성능이 49.9에서 63.5로 꾸준히 상승했고, 아직 포화되지 않은 것처럼 보였다. 더 많은 태스크를 넣으면 더 좋아질 수 있다는 암시였다.

둘째가 진짜 핵심이었다. 모델 스케일에 따른 instruction tuning의 효과가 극적으로 달라졌다. 100B 이상 모델에서는 큰 성능 향상이 있었지만, 8B 이하 모델에서는 오히려 성능이 떨어졌다. 저자들의 해석이 설득력 있었는데, 작은 모델은 40개 태스크를 학습하는 데 모델 용량을 전부 소진해버려서 새 태스크에 일반화할 여력이 없다는 것이었다.

Figure 7: Scaling laws for instruction tuning
X축은 모델 크기(0.4B~137B), Y축은 held-out 태스크의 zero-shot 정확도다. Instruction tuning(삼각형)은 68B 이상에서만 untuned 모델(원형)을 넘어서며, 8B 이하에서는 오히려 성능이 하락한다.

셋째, 지시문 없이 태스크명만 주거나 입출력만 주는 방식은 FLAN 대비 크게 뒤처졌다. 4개 클러스터 평균으로 FLAN이 55.2인 반면, 지시 없는 파인튜닝은 37.3에 그쳤다. 자연어 지시가 단순한 장식이 아니라 핵심 요소라는 점이 명확히 드러났다.

한 가지 더, 데이터셋당 템플릿 수(1개 vs 10개)는 성능에 거의 영향을 주지 않았다는 결과도 눈에 띄었다. 처음에는 다양한 템플릿이 과적합을 방지할 거라 기대했지만, 이 규모의 모델은 단일 태스크에 쉽게 과적합되지 않는 모양이었다.

솔직한 생각

이 논문의 가치는 방법론의 참신함보다 메시지의 명확함에 있다고 생각했다. "다양한 태스크를 지시로 가르치면 새 태스크도 잘한다"는 직관을, 137B 스케일에서 체계적으로 검증했다. 특히 태스크 클러스터 hold-out이라는 엄격한 평가 프로토콜은 이후 연구들의 기준이 되었다.

아쉬운 점도 있었다. 지시 템플릿을 모두 수작업으로 만들었다는 건 확장성 측면에서 한계가 분명했다. 또 입력 길이가 1024 토큰으로 제한되어 요약 같은 태스크는 제대로 평가하지 못했다. 137B라는 규모도 실제 서빙을 고려하면 부담스러웠다.

그래도 이 논문이 열어준 길은 분명했다. Instruction tuning이라는 패러다임은 이후 FLAN-T5, FLAN-PaLM, 그리고 ChatGPT로 이어지는 InstructGPT까지 직접적인 영향을 미쳤다. 태스크별 레이블 데이터가 범용 모델의 일반화 능력을 끌어올릴 수 있다는 발견은, specialist vs generalist 논쟁에 중요한 한 축을 제공했다.

나라면 여기서 지시 템플릿의 자동 생성을 시도해볼 것 같다. 그리고 instruction tuning이 모델 내부에서 어떤 표상 변화를 만들어내는지, 더 작은 모델에서도 효과를 얻으려면 어떤 조건이 필요한지를 파고들어볼 것이다. 다음에는 FLAN-v2 논문과 T0(Sanh et al., 2021)를 비교하면서 읽어봐야겠다.