什么是指令微调?如何微调

背景知识(扫盲):

零次学习(zero-shot learning)基本概念:

参考:零次学习(Zero-Shot Learning)入门 (zhihu.com)

假设小暗(纯粹因为不想用小明)和爸爸,到了动物园,看到了马,然后爸爸告诉他,这就是马;之后,又看到了老虎,告诉他:“看,这种身上有条纹的动物就是老虎。”;最后,又带他去看了熊猫,对他说:“你看这熊猫是黑白色的。”然后,爸爸给小暗安排了一个任务,让他在动物园里找一种他从没见过的动物,叫斑马,并告诉了小暗有关于斑马的信息:“斑马有着马的轮廓,身上有像老虎一样的条纹,而且它像熊猫一样是黑白色的。”最后,小暗根据爸爸的提示,在动物园里找到了斑马(意料之中的结局。。。)。

上述例子中包含了一个人类的推理过程,就是利用过去的知识(马,老虎,熊猫和斑马的描述),在脑海中推理出新对象的具体形态,从而能对新对象进行辨认。(如图1所示)ZSL零次学习就是希望能够模仿人类的这个推理过程,使得计算机具有识别新事物的能力。

使得纯监督学习在很多任务上都达到了让人惊叹的结果,但其限制是:往往需要足够多的样本才能训练出足够好的模型,并且利用猫狗训练出来的分类器,就只能对猫狗进行分类,其他的物种它都无法识别。这样的模型显然并不符合我们对人工智能的终极想象,我们希望机器能够像上文中的小暗一样,具有通过推理,识别新类别的能力。

ZSL就是希望我们的模型能够对其从没见过的类别进行分类,让机器具有推理能力,实现真正的智能。其中零次(Zero-shot)是指对于要分类的类别对象,一次也不学习。这样的能力听上去很具有吸引力,那么到底是怎么实现的呢?

假设我们的模型已经能够识别马,老虎和熊猫了,现在需要该模型也识别斑马,那么我们需要像爸爸一样告诉模型,怎样的对象才是斑马,但是并不能直接让模型看见斑马。所以模型需要知道的信息是马的样本、老虎的样本、熊猫的样本和样本的标签,以及关于前三种动物和斑马的描述。将其转换为常规的机器学习,这里我们只讨论一般的图片分类问题:

在ZSL中,我们希望利用  和  来训练模型,而模型能够具有识别  的能力,因此模型需要知道所有类别的描述 。ZSL这样的设置其实就是上文中小暗识别斑马的过程中,爸爸为他提供的条件。

一种简单的方法来提升语言模型的 Zero-Shot 能力——指示(或指令)微调(instruction tuning) ,在一组通过指示描述的数据集上对语言模型微调,大大提高了在未见过任务上的 Zero-Shot 能力。

什么是prompt?

参考:

(129条消息) 一分钟搞懂 微调(fine-tuning)和prompt_prompt 微调_沃洛德.辛肯的博客-CSDN博客

(129条消息) 一分钟搞懂 微调(fine-tuning)和prompt_prompt 微调_沃洛德.辛肯的博客-CSDN博客

个人理解:

Fine-tuning中:是预训练语言模型(大数据训练出的模型,或者其他领域训练的模型)“迁就(迁移)“到各种下游任务;

Prompting中,是各种下游任务“迁就“预训练语言模型。

微调(fine-tuning)和prompt是自然语言处理领域中常用的两个术语,它们都是指训练和生成语言模型的过程中使用的技术。

prompt是指为了训练特定类型的语言模型而设计的一系列文本或代码提示。prompt可以看作是一种能够帮助语言模型更好地理解特定任务或领域的“指令”。prompt通常包括一个问题、任务描述或预定义的文本片段,用于指导模型生成合适的文本结果。融入了Prompt的新模式大致可以归纳成”pre-train, prompt, and predict“。在该模式中,下游任务被重新调整成类似预训练任务的形式。例如,通常的预训练任务有Masked Language Model,在文本情感分类任务中,对于 “I love this movie.” 这句输入,可以在后面加上prompt “The movie is ___” 这样的形式,然后让PLM(预训练语言模型)用表示情感的答案填空如 “great”、“fantastic” 等等,最后再将该答案转化成情感分类的标签,这样以来,通过选取合适的prompt,我们可以控制模型预测输出,从而一个完全无监督训练的PLM可以被用来解决各种各样的下游任务。

文章内容

摘要:

本文试图总结当前关于教学学习的研究,特别是通过回答以下问题:

什么是任务教学,存在什么教学类型?

不同的指令最初是为不同的目标而设计的(例如,Mturk指令最初是为人类注释者的理解而创建的,而prompt是为了引导plm)

我们首先将这些指令总结为三类,它们执行ˆT、X和Y的不同组合面向隐含的、面向PLM的和面向人的),然后对它们进行比较,并提供指令的正式定义。

对于任务指令学习,我们的目标是通过按照指令来驱动系统达到给定输入的输出。因此,一个数据集由三个项目组成:

I=ˆT+Y:面向隐含的指令

处理分类任务的一种传统方案是将目标标签转换为索引,并让模型决定输入属于哪些索引。这个范例侧重于在编码输入语义的同时丢失标签语义。为了让系统识别新的标签而不依赖于大量的标签例子,将上下文学习中使用的模板视为指令,而不是少镜头的演示。结构(I)将模板(ˆT)与标签Y结合起来,以解释每个目标标签(Y)。由于这种范式自然满足文本蕴涵的格式(TE,其中任务输入和指令可以分别被视为前提和假设),这种类型的指令被称为“面向蕴涵的指令”。

I=ˆT+X::面向PLM的指令

面向PLM的指令利用一个特定于任务的模板来将原始输入转换为一个填写空白的问题。在大多数分类任务中,中间答案应该进一步映射到预定义的标签中。

I=ˆT+optinal{Xi,Yi}k=ˆT+=1:面向人的指令

面向人的指令基本上是指用于众包的指令可以在人工注释平台上工作(例如,亚马逊的MTurk指令)。与面向plm的指令不同,面向人的指令通常是一些人类可读的、描述性的、段落风格的特定于任务的文本信息,包括任务标题、类别、定义和需要避免的东西等。因此,面向人的指令更加用户友好,可以理想地应用于几乎任何复杂的NLP任务。

如何为指令建模?

引入了四种不同的建模方案:对于早期的基于机器学习的系统,(i)。基于语义解析器的策略是常用的指令编码方法;随着神经网络和预先训练好的语言模型的出现,(ii)。基于模板的提示式操作和(iii)。前缀基于教学的教学学习成为两种非常受欢迎的范式;最近,(iv)。基于超网络的方法也引起了更大的兴趣。

基于语义解析:

在机器学习的早期阶段,帮助系统理解自然语言指令,大量的工作使用语义解析指令转换为正式语言(逻辑公式),可以更容易执行的系统(例如,“你可以移动任何顶部卡空免费单元“→”卡(x)∧免费(y)∧空(y)”)

Prompting Template-based 基于模板的提示

对于基于神经网络的系统,我们可以直接将自然语言指令编码到模型的特征中,而不需要语义解析器的帮助。其中一个突出的建模策略是使用提示模板。基于提示模板的方法的本质是使用模板将任务输入转换为提示格式

LMs的最终输入可以描述为x 0 = f (x)或f(x,I),即任务不可知的模板f(·)是必需的,但特定于任务的信息I是可选的。例如,x=的“我喜欢这部电影。”和x 0 =“我喜欢这部电影。,没有提供任何特定任务的信息。

基于超网络

使用基于超网络的方法的本质是(i)。分别对任务指令I和任务输入x进行编码,以及(ii)。将指令转换为特定于任务的模型参数。例如,Ye和Ren(2021)使用超网络将任务指令转换为几个参数效适配器(Houlsby et al.,2019)。然后,他们将这些适配器插入到下面的多头注意层后面。

基于前缀指令

基于前缀指令的方法主要用于面向人的指令建模,其中提供足够的任务特定信息。

是什么因素影响和解释了该说明的表现?

基于指令的微调:

指令微调在各种指令数据集上对→语言模型LMS进行训练,每个输入通过使用提示模板f(·)(即前缀指令或阻塞指令将其转换为指令样式),以驱动模型学习遵循指令

。现有的研究表明,与未调优的LMS相比,多任务指令调优的LMS可以更好地遵循看不见的任务的指令

教学范式

保持教学范式也是教学学习的一个关键因素,主要是保持调优测试的简洁性。Wei等人(2022a)首先研究了改变教学范式对性能的影响。他们发现,与保持指令范式的结果(即任务名→句子式指令)相比,在评估短任务名称时,短任务名称的性能下降。同时,Gu等人(2022)也观察到在测试中将段落式指令改为句子式指令时的性能下降,进一步强化了这一结论。

教学范式

最近的一系列研究表明,规模在教学学习中也很重要,包括模型参数和调整任务。

模型和任务规模:

规模在教学学习中也很重要,包括模型参数和调整任务。

指令多样性:

在微调阶段的指令多样性(例如,各种创造力)也会影响LMs的跨任务性能和健壮性。

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值