论文解读:Finetuned Language Models Are Zero-shot Learners

简要信息:

序号

属性


1

模型名称

Instruction-tuning

2

发表位置

2021

3

所属领域

自然语言处理、预训练语言模型

4

研究内容

预训练语言模型、多任务学习

5

核心内容

instruction, prompt

6

GitHub源码

​https://github.com/google-research/flan​

7

论文PDF

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


一、概念:

Instruction-tuning——finetuning language models on a collection of tasks (more than 60 NLP tasks) described via instructions

  本文提出一种基于instruction-tuning的方法叫做FLAN(Finetuned LAnguage Net)
评估方法:对所有的NLP task,根据其任务类型和目标划分若干个簇,随机挑选一个簇内的所有task作为评估,其他所有簇的task用于instruction-tuning

we group NLP tasks into clusters based on their task types and hold out each cluster for evaluation while instruction tuning FLAN on all other clusters.

论文解读:Finetuned Language Models Are Zero-shot Learners_数据集


  首先在包括commonsense reasoning、machine translation、sentiment analysis等NLP task上进行微调,然后在从未见过的natural language inference任务上进行zero-shot evaluation  Instruction-tuning与Fine-tuning和Prompt-Tuning的对比:

论文解读:Finetuned Language Models Are Zero-shot Learners_自然语言处理_02

  • Pretrain-Finetune:现在大规模语料上根据某一个(几个)训练目标进行预训练,然后主要针对某一个task进行微调;
  • Prompting(Prompt-based Fine-tuning):通用选择预训练语言模型,为每个样本生成一个prompt模板,并采用类似完形填空的模式,在某一个具体的task上微调;
  • Instruction-Tuning:在预训练语言模型的基础上,获得若干混合的NLP task上进行微调,然后在某一个具体的task上进行评估(zero-shot)

二、FLAN

  首先整理了62个NLP task,并进行了归类(cluster),如下图所示:

论文解读:Finetuned Language Models Are Zero-shot Learners_语言模型_03


可知,一共划分了12个cluster

  • 我们定义task表示一个数据集,例如RTE表示一个task;
  • 对于每个task,手动构建10个template,作为描述该任务的instruction;
  • 为了增加多样性,对于每个任务,我们包括多达3个“扭转任务”的模板;
  • 在混合的task上进行instruction-tuning,对于每个task,随机挑选template;
    例如下图,给定某个NLI任务的样本,构建与其有关的若干个template

论文解读:Finetuned Language Models Are Zero-shot Learners_自然语言处理_04


  FLAN是在unseen task上进行zero-shot evaluation,那如何定义unseen task?

一个task 论文解读:Finetuned Language Models Are Zero-shot Learners_数据集_05

In this work, we only consider task 论文解读:Finetuned Language Models Are Zero-shot Learners_lua_06 unseen at evaluation time if no tasks from any clusters that 论文解读:Finetuned Language Models Are Zero-shot Learners_lua_06

任务的目标主要分为classification和generation两种

  • generation:基于instruction-tuning的FLAN本质就是一个语言模型,输出部分即为free-text,因此对于纯生成式任务无需修改;
  • classification:先前工作通过添加template企图让模型生成出预设的几个label word,但是作者认为并不合理,因此在此基础上,添加了一个option;

三、模型训练:

  使用left-to-right(单向),只包含decoder部分的transformer模型,共计137B个参数,在未经处理的语料上(10%非英文,包含大量code,对话文本等),预训练的模型命名为BaseLM。

  在Instruction-tuning阶段,混合了所有数据集和每个数据集的随机样本示例。有些数据集有超过1000万个训练示例(例如,机器翻译),因此我们将每个数据集的训练示例数量限制为30000个。其他数据集很少有训练示例(例如,CommitmentBank只有250个),为了防止这些数据集被边缘化,我们采用示例-比例混合方案(examples-proportional mixing scheme,Raffel et al., 2020),混合率最大为3000。fine-tunine模型30000个step,每个step的batch size为8192,优化器为Adafactor,学习率3e-5,输入输出长度分别为1024和256。