Abstract&Introduction&Related Work
- 研究任务
Continual Learning from Task Instructions - 已有方法和相关工作
- 面临挑战
- 创新思路
InstructionSpeak包含两个策略,充分利用task instruction来改善前向转移和后向转移:
一个是从negative的输出中学习,另一个是re-visit以前任务的instruction - 实验结论
Problem formulation
ConTinTin
第一阶段描述其在学习第一个新任务之前的开始状态
第二阶段描述了它是如何随着一系列未完成的任务不断发展的
Evolution process
每个任务会有a piece of textual description,其他同TIL
Initialization process
一开始要让模型学习一些任务,初始化阶段需要大量的数据
Evaluation protocol
- Forward-transfer evaluation
量化在解决target task之前,学习之前的任务有多有效,直觉上来说,训练的任务越多效果越好 - Backward-transfer evaluation
在前一个任务完成k+i−1后学习每一个新任务时,U中所有新任务的平均成绩
外层循环遍历所有任务t
对于每个任务,随机采样m次,test its performance
Backward-transfer evaluation
反向
Data
总共有六种不同的任务:
13 question generation tasks (QG)
16 answer generation tasks (AG)
12 classification tasks (CF)
8 incorrect answer generation tasks (IAG)
10 minimal modification tasks (MM)
2 verification tasks (VF)
每个任务有一堆instructions
data split
对于训练数据,从61个任务中随机挑选k个任务,S中的所有培训任务都有instruction,并保留其标记的样本集。剩余的61-k个任务被视为不可见的任务集U。U中的每个任务只有instruction;标记的样本集用于testing
持续学习中的任务顺序会影响最终成绩,我们不试图释放S和U的固定分割。在实验中,我们将随机生成它们多次,以形成不同的任务链,并报告平均性能
InstructionSpeak
NEGATIVE TRAINING
同时学习正负样本
最小化负样本输出概率,并不能使得模型表现更好, Since many “negative” outputs contain tokens that exist in the gold answers
先拿负样本去训练,让模型生成so-called 负样本,再去fine-tune,会使得模型效果更好
对于U中每一个看不见的任务,如果可用,我们直接采用它的负样本。对于S中的k个训练任务,正样本(包括指令中的正样本和标记的任务样本)比负样本多得多,我们使用S上的预训练模型对S的所有输入进行预测,如果输出不等于正确输出,我们将此(输入,预测输出)视为负样本。这意味着我们对“负输出”有一个loose definition:一旦它不等于ground truth,它就是负的。
由于S上的预训练模型已经可以保证生成质量,因此产生的negative output大多与正确输出相关
HISTORY TRAINING
不保存之前任务的样本,只保存instruction
每次学一个新任务之前,会把之前i-2个任务的instructions训练一遍
输入形式如下,把instruction放在最前面,防止被截断
给定S和U,InstructionSpeak中的整个learning pipeline是:
- 对 S S S 进行预处理以获得模型 M ∗ M^{*} M∗
- 使用 M ∗ M^{*} M∗对 S S S 进行预测,以收集负样本集 S − S^− S−
- 对 S − S^− S− 进行预处理,并对 S S S 进行微调,以获得增强的模型 M M M
- 对于 U U U 中的第 i i i 个未看到的任务 u i u_i ui,根据批次中所有早期任务 [ u 1 , ⋅ ⋅ , u i − 2 ] [u_1,··,u_{i−2}] [u1,⋅⋅,ui−2]的instruction调整 M M M;
- 如果可用,tune u i u_i ui 的负样本
- tune u i u_i ui 的正样本
Experiments
baseline:
Conclusions
这项工作引入了一个新的学习问题:
从任务instruction中不断学习。目标是通过理解instruction而不是被标记的样本,探索现有预训练语言模型在解决新任务中的潜力。凭借我们的问题解决方案和良好的系统,我们为未来在社区中研究这一挑战铺平了道路
Remark
提出了一个新的持续学习任务范式,train negative sample也有点启发,开了个坑,之后有可能会follow