learningAI
article thumbnail

해당 논문은 instruction tuning을 사용함에 따라 모델의 zero-shot 능력이 향상됨을 보여준다. 언어 모델을 다양한 dataset에 대한 instruction으로 fine-tuning을 진행했을 때, unseen task에 대한 모델의 zero-shot 성능이 향상되었다. FLAN은 137B 크기의 모델에 instruction templates가 적용된 60개의 NLP datasets을 학습시켰으며, 이를 unseen task에 대해 평가했다. FLAN은 175B GPT-3을 25 중 20개의 데이터셋에서 능가했다. 

Introduction

GPT 3와 같은 논문은 언어 모델의 크기가 커짐에 따라 few-shot의 성능이 증가함을 보여줬다. 하지만 GPT-3는 reading comprehension, QA, NLI와 같은 task에서 zero-shot 성능이 few-shot 성능보다 현저히 떨어졌다.

FLAN은 in-context learning을 적용하여 few-shot 성능을 향상시키는 대신에 instruction tuning을 사용해 zero-shot 성능을 향상시키는 method에 대해 다룬다. NLP task들은 "이 영화 리뷰가 긍정적인가, 부정적인가?""'How are you'를 한글로 번역해줘"와 같이 instruction 형태로 표현될 수 있으며, 이를 활용하여 instruction tuning을 진행한다. 

 

Pretrain-finetune, Prompting, and Instruction tuning

 

위 그림은 pretrain-finetune, prompting, 그리고 instruction tuning을 간단하게 나타낸다. Instruction tuning은 pretrain-finetune method와 유사하며, fine-tuning dataset에 instruction format을 적용한 것으로 볼 수 있다.

 

Methods

FLAN은 zero-shot 성능을 향상시키기 위해 instruction tuning을 진행하며, 모델에게 task를 설명하는 instruction을 제공함으로써 task의 이해도를 높이고, 결과적으로 unseen task에서도 instruction을 제공해줌으로써 좋은 성능을 보일 수 있다.

 

Templates

많은 데이터셋에 대해 instruction을 생성하기에는 무리이다... 따라서 연구 커뮤니티의 데이터를 instructional format으로 변형해서 사용했다고 한다. Tensorflow 데이터셋에서 사용 가능한 public 62 text dataset을 사용했으며, NLU(자연어 이해)와 NLG(자연어 생성) 데이터셋을 포함한다. 

 

Datasets

 

데이터의 구성은 위의 그림과 같다. 각 데이터셋에 대해 특정 instruction이 포함된다. 다양성을 위해 각 dataset에 대해 10개의 instruction templete를 구성하며, 그 중 3개의 templete은 데이터셋과 상관없는 instruction을 포함한다(예를 들어 감정 분석 task에서는 영화 리뷰를 생성하라는 instruction templete를 포함한다). 최종적으로 pretrained model에 instruction tuning을 진행하며, 템플릿은 랜덤하게 선택된다. 아래 그림에서 데이터셋에 대한 템플릿 예시를 볼 수 있다.

 

Multiple instruction templetes for dataset

 

Evaluation splits

논문은 FLAN을 unseen task에 대해 평가하기 위해 수집한 데이터셋을 나눈다. 평가를 보다 정확하게 하기 위해 task 종류에 따라 62개의 데이터셋을 12개의 클러스터로 나눠서 학습, 평가 데이터셋을 나눈다. 예를 들어 평가 데이터셋이 요약 task에 대한 것이라고 하면, 학습 과정에서는 요약문 task에 대한 데이터셋이 일절 쓰이지 않는다. 따라서 zero-shot FLAN은 $c$개의 task 클러스터에 대해 평가하고 싶을 때, $c$개의 모델을 instruction tuning해야 한다.

 

Classification

모델은 task에 따라 여러 class(classification) 혹은 free text(generation)을 출력해야 한다. FLAN은 decoder-only 모델이므로, 자동적으로 free-text의 출력을 생성하기 때문에 generation task를 위한 변환은 필요하지 않다.

분류 task의 경우, 다른 연구에서 ("yes"와 "no")에 대한 출력 분포를 측정하는 방법이 사용된 적 있는데, 이는 "yes" 및 "no"와 관련된 답변에 대해 확률 분포가 분산될 수 있으므로 정확하지 않다고 주장한다. 따라서 아래 그림과 같이 입력으로 [OPTIONS] 토큰을 삽입하고 그 이후에 보기 입력을 줌으로써 모델이 어떤 답변을 생성해야 하는지 안내해준다.

 

 

Details

실험을 위해 LaMDA-PT 모델이 사용되었으며, decoder-only 137B개의 파라미터 수를 가진 모델이 사용된다. 이 모델은 다양한 인터넷 문서, 대화 샘플, 그리고 Wikipedia에 의해 사전훈련되었으며, 2.49T BPE 토큰으로 토큰화되었으며 32k 크기의 vocabulary가 생성된다. Pre-training에서 사용된 데이터는 10%의 non-english 데이터를 포함한다.

Instruction tuning은 여러 데이터셋을 복합적으로 학습시키는데, 밸런스를 위해 각 데이터셋에 대해 30k의 샘플 수를 가지도록 제한했다. 모델은 30k step 동안 tuning되며, batch size는 8,192, 학습률 3e-5로 Adafactor Optimizer을 활용해서 학습된다. 다양한 학습 샘플을 합치기 위해 packing이 사용되었으며 입력과 타겟은 [EOS] 토큰에 의해 분리된다. Instruction tuning은 TPUv3 128 cores로 60시간동안 학습되었다.

 

Results

 

위의 그래프에서 baseline들과 FLAN의 성능 비교 결과를 확인할 수 있다. 결과적으로 FLAN은 위의 task에서 같은 크기의 LaMDA-PT 모델을 큰 폭으로 능가했으며, 더 큰 모델인 GPT-3 모델과 비교했을 때도 한개의 데이터셋을 제외한 데이터셋에서 모두 능가하는 성능을 보여준다.

위의 task 클러스터에서 FLAN이 좋은 성능을 보였던 것에 반해, instruction tuning이 많은 task에 대한 성능을 향상시키지는 못했다는 한계점이 있었다. 7개의 commonsense reasoning task와 coreference resolution task에서 FLAN은 7개 중 3개의 데이터에서 LaMDA-PT와 비교했을 때만 더 나은 성능을 보였으며, 이러한 문제점은 downstream task가 original pre-training objective와 일치할때 발생했다. 최종적으로 zero-shot FLAN은 zero-shot LaMDA-PT를 능가하며 LaMDA-PT와 견주는 성능을 지닌다.

 

Ablations

 

FLAN의 중요한 쟁점은 "얼마나 instruction-tuning을 진행해야 zero-shot 성능이 좋아질까?"이다. 따라서 ablation study에서는 사용된 학습 cluster 수에 대한 모델 성능 향상을 실험했으며, 위의 그래프와 같다. 사용된 클러스터의 수는 1개에서 7개이며 1개의 클러스터를 사용한 학습과 7개의 클러스터를 사용한 학습을 비교했을 때 성능 차이가 엄청 큰 것을 확인할 수 있다.

 

 

또한 모델 scaling에 따라 instruction tuning을 진행했을 때, 작은 모델에서는 pre-trained 모델보다 성능이 떨어지지만, 모델 사이즈가 커짐에 따라 instruction tuning의 효과가 더 크게 작용함을 확인할 수 있다.

나머지 ablation study는 아래 삽입한 논문 원본에서 확인할 수 있다.

 

Conclusion

본 논문은 zero-shot에 instruction tuning을 진행했을 때 unseen task에서의 성능 향상에 대해 다뤘다. Pretrain-finetune과 prompting method를 통합한 instruction tuning은 평가가 진행된 중요 task에서 zero-shot GPT-3를 능가했으며, ablation study에서 task cluster의 수에 따라 unseen task에서의 성능이 증가함을 확인할 수 있었으며, 흥미로운 점은 충분한 모델 사이즈에서 instruction-tuning이 좋은 결과를 보인다는 것이다. 최종적으로 FLAN은 cross-task generalization이 모델 일반화에 중요하다는 것을 보여주며, 이후의 연구에 동기를 부여한다.

연구의 한계로는 클러스터를 분류하는 과정에서 주관적인 요소가 포함될 수 있다는 점과 비교적 간단한 instruction을 사용한 것에 있다. 또한, 평가 과정에서 사용된 데이터가 pre-training에 일부 포함되었을 수 있다. 마지막으로 FLAN의 137B 스케일링은 계산 비용이 많이 소모된다. Instruction tuning의 미래 연구는 tuning을 위해 더 많은 클러스터를 수집/생성하고 downstream classifier를 위해 데이터를 생성하는 등의 연구가 진행될 수 있다.

 

논문

https://arxiv.org/pdf/2109.01652.pdf

profile

learningAI

@YyunS

인공지능 공부하는 학생입니다!