Raki的读paper小记:ConTinTin: Continual Learning from Task Instructions

Abstract&Introduction&Related Work

  • 研究任务
    Continual Learning from Task Instructions
  • 已有方法和相关工作
  • 面临挑战
  • 创新思路
    InstructionSpeak包含两个策略,充分利用task instruction来改善前向转移和后向转移:
    一个是从negative的输出中学习,另一个是re-visit以前任务的instruction
  • 实验结论

Problem formulation

ConTinTin

第一阶段描述其在学习第一个新任务之前的开始状态
第二阶段描述了它是如何随着一系列未完成的任务不断发展的
Raki的读paper小记:ConTinTin: Continual Learning from Task Instructions_第1张图片

Evolution process
每个任务会有a piece of textual description,其他同TIL

Initialization process
一开始要让模型学习一些任务,初始化阶段需要大量的数据

Evaluation protocol

  1. Forward-transfer evaluation
    量化在解决target task之前,学习之前的任务有多有效,直觉上来说,训练的任务越多效果越好
  2. Backward-transfer evaluation

在前一个任务完成k+i−1后学习每一个新任务时,U中所有新任务的平均成绩

外层循环遍历所有任务t

对于每个任务,随机采样m次,test its performance

Raki的读paper小记:ConTinTin: Continual Learning from Task Instructions_第2张图片

Backward-transfer evaluation

反向
Raki的读paper小记:ConTinTin: Continual Learning from Task Instructions_第3张图片

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
Raki的读paper小记:ConTinTin: Continual Learning from Task Instructions_第4张图片

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放在最前面,防止被截断
Raki的读paper小记:ConTinTin: Continual Learning from Task Instructions_第5张图片

给定S和U,InstructionSpeak中的整个learning pipeline是:

  1. S S S 进行预处理以获得模型 M ∗ M^{*} M
  2. 使用 M ∗ M^{*} M S S S 进行预测,以收集负样本集 S − S^− S
  3. S − S^− S 进行预处理,并对 S S S 进行微调,以获得增强的模型 M M M
  4. 对于 U U U 中的第 i i i 个未看到的任务 u i u_i ui,根据批次中所有早期任务 [ u 1 , ⋅ ⋅ , u i − 2 ] [u_1,··,u_{i−2}] [u1⋅⋅ui2]的instruction调整 M M M
  5. 如果可用,tune u i u_i ui 的负样本
  6. tune u i u_i ui 的正样本

Experiments

baseline:
Raki的读paper小记:ConTinTin: Continual Learning from Task Instructions_第6张图片
Raki的读paper小记:ConTinTin: Continual Learning from Task Instructions_第7张图片
Raki的读paper小记:ConTinTin: Continual Learning from Task Instructions_第8张图片
Raki的读paper小记:ConTinTin: Continual Learning from Task Instructions_第9张图片

Conclusions

这项工作引入了一个新的学习问题:
从任务instruction中不断学习。目标是通过理解instruction而不是被标记的样本,探索现有预训练语言模型在解决新任务中的潜力。凭借我们的问题解决方案和良好的系统,我们为未来在社区中研究这一挑战铺平了道路

Remark

提出了一个新的持续学习任务范式,train negative sample也有点启发,开了个坑,之后有可能会follow

你可能感兴趣的:(Continual,Learning,NLP,读paper,人工智能,深度学习,神经网络,python)