论文解读:Finetuned Language Models Are Zero-shot Learners
简要信息:
序号 | 属性 | 值 |
1 | 模型名称 | Instruction-tuning |
2 | 发表位置 | 2021 |
3 | 所属领域 | 自然语言处理、预训练语言模型 |
4 | 研究内容 | 预训练语言模型、多任务学习 |
5 | 核心内容 | instruction, prompt |
6 | GitHub源码 | |
7 | 论文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.
首先在包括commonsense reasoning、machine translation、sentiment analysis等NLP task上进行微调,然后在从未见过的natural language inference任务上进行zero-shot evaluation Instruction-tuning与Fine-tuning和Prompt-Tuning的对比:
- Pretrain-Finetune:现在大规模语料上根据某一个(几个)训练目标进行预训练,然后主要针对某一个task进行微调;
- Prompting(Prompt-based Fine-tuning):通用选择预训练语言模型,为每个样本生成一个prompt模板,并采用类似完形填空的模式,在某一个具体的task上微调;
- Instruction-Tuning:在预训练语言模型的基础上,获得若干混合的NLP task上进行微调,然后在某一个具体的task上进行评估(zero-shot)
二、FLAN
首先整理了62个NLP task,并进行了归类(cluster),如下图所示:
可知,一共划分了12个cluster
- 我们定义task表示一个数据集,例如RTE表示一个task;
- 对于每个task,手动构建10个template,作为描述该任务的instruction;
- 为了增加多样性,对于每个任务,我们包括多达3个“扭转任务”的模板;
- 在混合的task上进行instruction-tuning,对于每个task,随机挑选template;
例如下图,给定某个NLI任务的样本,构建与其有关的若干个template
FLAN是在unseen task上进行zero-shot evaluation,那如何定义unseen task?
一个task
In this work, we only consider task unseen at evaluation time if no tasks from any clusters that
任务的目标主要分为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。