img1

Introduction

GPT-3 같은 경우에 few-shot learning을 통해 대단한 성능을 냈으나 zero-shot learning performance는 특정 태스트에서 few-shot perofrmance보다 성능이 좋지않음. few-shot 예시없이는 사전 학습 데이터의 형식과 유사하지 않은 프롬프트에서 모델이 잘 수행하기가 더 어려움.

간단한 방법을 통해 zero-shot performance를 향상시킬 수 있음을 밝혀냈음. 즉 더 general한 모델을 만들었음을 의미함. 연구진은 직관을 효율적으로 사용했는데 NLP 태스크는 자연어 instructions을 통해 다음과 같이 묘사할 수 있음. “이 영화리뷰의 sentiment는 긍정일까 아님 부정일까?” 또는 “‘어떻게 지내?’를 중국어로 번역하라”. 연구진은 137B 규모의 사전학습된 언어모델을 만들었으며 instruction tuning을 수행하였음. 이 모델을 FLAN이라 부르기로 함.

FLAN의 unseen-task에서의 zero-shot 성능을 평가하기위해 태스크의 타입별로 NLP 데이터셋을 cluster로 그룹화하였음. 그 후, FLAN을 이제껏 보지못한 어떠한 NLI 태스크에 instruction tuning을 한채로 setup 시켰고 그러고나서 모델의 zero-shot NLI 능력을 평가하였음.

137B 규모의 모델에서 zero-shot performance가 대부분 향상하였음. 25개의 데이터셋 중, 20개의 데이터셋에서 GPT-3 모델보다 FALN의 zero-shot 성능이 더 뛰어났으며 심지어 few-shot task에서도 큰 격차로 성능이 더 좋았음 (단, 특성 benchmark에서만). Ablation study에서도 instruction tuning에서 태스크 클러스터의 숫자가 중가할때 성능이 향상된다는 것을 밝혀냈으며 insturction tuning의 이점은 모델 규모가 충분할 때만 나타난다는 것을 밝혀냈음.

figure2

Instruction tuning은 위 그림과 같이 단순한 방법으로 사전학습+파인튜닝과 언어모델의 inference-time에 대한 성능을 향상시키기 위한 파인튜닝을 통한 프롬프팅 패러다임에서 나타나는 측면을 결합한 형태임. Instruction을 통한 순수하게 묘사되어진 태스크들을 수행하기위한 언어모델의 유망한 능력들로 하여금 연구진들의 실증적인 결과가 나타났음.

FLAN : Instruction Tuning Improves Zero-shot Learning

메인 아이디어로는 지시(supervision)를 사용하여 언어모델에 특정 task에 대해 가르치는 것임. 그 언어모델은 심지어 unseen task 일지라도 잘 작동할 것이며 instruction을 따르기 위해 잘 학습할 것임. 밝혀지지 않은 task에 대해 평가하기 위해 작업 유형별로 데이터 세트를 클러스터로 그룹화하고 각 작업 클러스터를 평가하기 위해 보류하고 나머지 모든 클러스터에서 instruction tuning을 진행함.

Tasks & Templates

figure3

많은 태스트들을에 대한 Instruction tuning 데이터셋을 처음부터 끝까지 만드는 것은 매우 resource차원에서 힘든일이기에, 연구진은 존재하는 데이터셋들을 instructional format으로 변환하였음. 총 62개의 텍스트 데이터셋을 통합하였고 이 데이터셋은 공개적으로 이용가능한 Tensorflow 데이터셋을 포함한 언어이해, 언어 생성 데이터셋이 이해 해당. 위 그림에 이 데이터셋들이 나타나있음. 각각의 데이터셋은 총 12개로 카테고리화 되어있음.

각 데이터셋을 위해 연구진은 수동으로 10개의 독특한 템플릿을 구성하였고 이는 데이터셋에 대한 task를 설명하기 위해 natural language instruction을 사용함. 10개의 템플릿들은 원래의 task에 대해 묘사하는 반면에, 다양성을 증대시키기 위해 각각의 데이터셋에 3개의 템플릿을 추가하였음. (에를들어, sentiment classification task에 영화 리뷰를 생성하게 해달라는 템플릿을 포함하게했음). 그러고나서 모든 데이터셋을 섞어 사전학습된 언어모델에 아래와 같이 instruction 튜닝하였음.

figure4

Evaluation Splits

연구진은 FLAN이 어떻게 instruction tuning을 밝혀지지 않은 task에 대해 수행하며 그것이 밝혀지지않은 task에서 무엇을 세는지 정확히 규정하는것에 대해 중대하게 생각함. 몇몇의 이전 연구에선 unseen task에 대해 학습시에 똑같은 데이터셋을 보여주는것을 제한함으로써 명확히 규정한데 반해, 우리는 task cluster를 사용하는 더 보수적인 방법을 차용하였음.

만약 $D$라는 데이터셋이 entailment task이고 instruction tuning과정에서 entailment 데이터셋이 나타나지 않았다면 우린 모든 다른 cluster들을 instruction-튜닝했었음. 따라서 $c$개의 작업 클러스터에서 zero-host FLAN을 평가하기 위해 각 모델이 평가를 위해 서로 다른 작업 클러스터를 보유하는 $c$개 모델을 instruction-tuning함.

Classification with options

주어진 task를 위한 결과는 분류작업에서는 몇몇의 class들 중에 하나일 수 있고 또는 생성작업에선 자유로운 텍스트임. FLAN은 decoder-only의 언어모델을 instruction-tuning한 모델로서 이는 자연스럽게 자유로운 텍스트를 응답하며 생성 task를 위해 더이상의 수정사항이 필요하지 않음.

Classification task는 확률값에 따라 최종 output값이 결정되는데 이는 undesired distribution을 통해 확률값이 불안정해질 수 있음. 따라서 토큰 options라는 항목을 classification task의 끝에 추가하였음. 이는 classification task에 대해 요구되어지는 값을 모델이 더 잘 인지할 수 있도록 해줌.

Training Details

Instruction tuning procedure FLAN은 LaMDA-PT의 instruction tuning된 버전. 연구진의 튜닝 파이프라인은 모든 데이터셋을 섞었으며 각각의 데이터셋에서 무작위하게 sampling하였음. 각각의 데이터셋마다 크기가 다르기에 밸런스를 맞추기 위해 학습 예시의 수를 각 데이터셋 마다 30k로 제한했으며 Raffel et al., 2020에서 제안한 examples-proportional mixing 방식을 따랐음. tokenizer에서 special tokens으로 EOS를 차용하여 input과 target을 분리하였음.

Results

각 데이터셋에 대해 모든 템플릿에서의 performance의 평균값을 사용했음. Instruction tuning은 대부분의 데이터셋에서 LaMDA-PT의 성능을 향상시켜줬음.

GPT-3 175B과 GLaM 64B와 비교 결과, zero-shot에선 25개의 데이터셋 중 20개의 데이터셋에서 GPT-3를 능가했고 few-shot에선 10개의 데이터셋에서 능가하는 성능을 보여줬음. 또한 19개 중 13개의 데이텃세에서 zero-shot GLaM를 능가하였고 one-shot에선 19개 중 11개를 기록했음.

Instruction tuning이 특정 task에 맞춰 모델 자체를 변경하는 것보다 훨씬 더 효율적이고 효과적임을 나타냈음. 근데 직접적으로 계산하는 task(e.g., commonsense reasoning, coreference resolution)에선 꽤나 좋지 않은 성능을 냄.

figure5

Ablation study & Further analysis

Number of Instruction tuning clusters

이 논문의 가장 큰 맹점은 “어떻게 instruction tuning이 모델의 zero-shot performance를 향상시킬까?” 인데 이를 해소하기 위한 첫번째 ablation은 “클러스터와 task의 수가 성능에 얼마나 영향을 미칠까?” 이다.

실험을 위해 NLI, closed-book QA, commonsense reasonning에서 실험을 진행하였으며 instruction tuning을 통해 7개의 클러스터를 사용하였음.

figure6

cluster수를 추가하면 추가할 수록 성능이 늘어났음 (sentiment 제외).

Scaling laws

figure7

“모델 scale이 instruction tuning에 주는 이점은 뭘까?” 위에서 설정했던 클러스터 split 방법과 동일한 방법을 사용하여 연구를 진행했고 각각 422M, 2B, 8B, 68B, 137B 모델로 수행했음.

스케일이 적은 모델에 한해서 instruction tuning을 하게되면 전체적인 모델의 사용성과 새로운 task에 대해 모델의 성능에 대해 더 안좋게 수행을 한다는 것을 밝혀냈음. 대규모 모델의 경우 instruction tuning을 통해 모델 용량을 일부 채울 수 있지만 이러한 모델에 지침을 따르는 방법을 가르쳐서 남은 용량으로 새로운 작업으로 일반화할 수 있습니다.

Role of instructions

figure8

multi-task 파인튜닝으로부터 전체적인 성능향상의 가능성과 instruction없이 수행되어지는 모델. 2가지 finetuning setup을 구성했음.

  • $no template$ setup : 오직 input과 output만 존재
  • $dataset name$ setup : 매 input앞에 task와 데이터셋의 이름을 prepend

Conclusions

이 논문에서는 언어 모델의 능력을 대규모로 개선하기 위한 간단한 방법을 살펴봤고 zero-shot task를 수행할 수 있는 간단한 방법을 탐구하였음. 명령어 튜닝 모델인 FLAN은 GPT-3와 비교했을 때 대규모 언어 모델이 지침을 따르는 데 있어 잠재적인 능력을 보여줌.