指令调优与非指令调优大型语言模型之间的区别

Flo*_*Flo 18 language-model large-language-model fine-tuning

大语言模型的指令调优和普通微调有什么区别?

另外,我所指的指令调整不是上下文/提示的指令调整。

最近所有关于微调的论文似乎都是关于指令调优的。

我看过几篇关于微调/指令调优(例如 FLAN)的论文,但没有一篇真正描述指令调优和替代方案(无论替代方案是什么)之间的区别。

我理解指令调整是微调的一种形式,但带有指令数据集。但所有数据集都不是指令数据集吗?还有哪些种类呢?

Ber*_*ler 21

正如你所说,微调和指令调优并不相互排斥,但指令调优是(监督)微调的一种形式,因此微调没有区别于指令调优的显着特征,而只有另一个绕路。因此,第一个问题的答案是“否”(我将其读为“每个数据集都是指令数据集吗?”,而不是“指令数据集是否存在?”)。

指令调优的特殊之处在于,该模型针对指令跟踪任务进行了微调,其中涉及指示指令接收器执行另一项任务,即您有第二个“级别”的任务(例如“将以下数字拆分为数字”)仅在指令中定义,它们是模型输入序列的一部分。

在经典类型的监督微调中,您没有任何指令,而是直接调整模型以执行单个下游任务,例如将输入数字拆分为数字,而无需在模型输入中明确告知这样做。(但是,也存在涉及微调和显式指令的混合方法。)

因此,尽管“任务”一词经常用来指代其中任何一个,但在概念上区分以下两者至关重要:

  • 模型微调的任务(如果有的话),
  • 最终用户希望模型执行的任务,以及
  • 这些任务的输入呈现给模型的方式
  • (以及相应的数据集和统计分布)

总之,可以说,在指令跟随中,实际任务是在推理时动态确定的,而在没有指令或类似设备的经典微调方法中,实际任务是在训练时静态确定的。

您的困惑可能与以下事实有关:提示是另一种广泛的适应技术,它可能涉及任务的抽象描述(例如,在零样本提示中),可以将其表述为指令。

但同样,这不是必要的:少样本提示不一定涉及任务的抽象描述,但提示可能仅包含任务的输入输出示例,以及模型应预测输出的输入。

回答你的第二个问题:你可以在Hugging Face Hub上找到许多数据集/基准。如果您随机单击其中一些,您会在预览中看到其中大多数不包含任何说明。

编辑:我忘记提及指令调优的一个重要方面:根据应用或研究问题,指令调优的目标通常是泛化跨任务的指令遵循。也就是说,模型应该根据预训练期间积累的隐式知识来学习遵循指令,而不仅仅是基于指令调整期间看到的指令。为了衡量这种跨任务泛化能力,指令数据集通常被分为多个任务。其中一些任务(不仅仅是每个任务的某些部分)在指令调整期间保留,并且仅在评估期间使用。


Ler*_*ang 11

我认为这篇博客文章中的描述可能对您有所帮助:

指令调优和标准监督微调之间的主要区别在于模型训练的数据。有监督微调在输入示例及其相应输出上训练模型,而指令调整则通过指令增强输入输出示例,这使得指令调整模型能够更轻松地泛化到新任务。

这个说明性比较也非常有帮助:

在此输入图像描述 资料来源:微调语言模型是零样本学习者

正常的微调是上面的(A)部分,指令调优的是(C)部分。