“指令微调过程中,是否需要mask掉提示词部分的损失?”这似乎是个很常见的问题,很多训练仓库里边这部分输入的label都会改成-100,计算损失的时候,忽略这部分。当然也有的仓库会计算这部分,比如trl里边比较早的一些例子。

针对这种冲突,当然有一些研究给出了一些实验结果,如下图为,qlora中的一个对比图,发现只在target上训练上可以获得更好的效果。相对来说,这些实验因为都是一些附加实验,所以不够深入,今天的分享的文章深入探讨了这个问题。

简洁版结论:
-
名词定义:损失同时考虑prompt+response,称为IM(instruction modelling);损失只考虑response,称为IT(instruction tunning)
-
通过在 21 个不同的基准测试中进行实验,作者发现 IM 方法在许多情况下都能有效地提升 LMs 在自然语言处理(NLP)任务(例如 MMLU、TruthfulQA 和 HumanEval)以及开放式生成基准测试(例如 MT-Bench 和 AlpacaEval)上的性能。特别是在 AlpacaEval 1.0 上,IM 方法在最有利的情况下能够将模型性能提升超过 100%。

-
影响 IM 有效性的两个关键因素:(1)训练数据中指令长度与输出长度之间的比率;当训练数据中的指令较长而输出较短时,IM 特别有效。(2)

