人工智能咨询培训老师叶梓 转载标明出处
大模型在不同行业和个人中的广泛应用要求模型能够根据具体的用户反馈进行调整或定制,以满足细微的要求和偏好。虽然通过高层次的口头反馈来指定模型调整非常方便,例如“在给老板起草电子邮件时不要使用表情符号”,但研究发现,直接使用这类反馈来提示模型会导致在不相关的上下文中过度泛化。斯坦福大学计算机科学系的研究团队提出了一种新的方法——上下文化批评与受限偏好优化(C3PO),旨在解决利用口头反馈调整模型时出现的过度泛化问题。
论文介绍了两种主要的方法来更新大型语言模型(LLMs),以适应高层次的口头反馈:
监督上下文蒸馏(Supervised Context Distillation, SCD),这是一种将文本上下文整合到模型行为中的有效方法。上下文可以是一个普遍原则或特定信息,例如“始终保持友好”或“假设美国总统是乔·拜登”。SCD的目标是将人类或基础语言模型在给定用户查询和上下文条件下产生的行为“蒸馏”到没有上下文的模型中。这一过程涉及到使用合成的监督目标进行监督微调,以最小化负对数似然损失。
基于偏好的强化学习(Preference-based Reinforcement Learning, PbRL),这是一种通过利用对LLM生成响应的偏好来更新语言模型的常用方法。这涉及到对成对的模型响应进行比较,通常由人类标注者或模型本身决定哪个响应更优。然后,使用这些偏好来训练一个参数化的奖励模型,该模型为输入-响应对分配评分。PbRL的一个关键目标是最大似然估计在Bradley-Terry选择模型下的奖励模型。
这两种方法为后续提出的C3PO算法提供了理论基础,C3PO算法旨在解决在应用口头反馈时出现的过度泛化问题,同时保持模型在不相关上下文中的行为不变。通过这些预备知识,论文为读者提供了理解和评估C3PO方法的背景。
方法
C3PO方法的核心是利用一个强大的通用模型,如GPT-4,将用户的口头反馈转化为微调数据集。该数据集由三个关键部分组成:Din-scope部分展示期望的行为变化;Dout-of-scope部分保持反馈范围之外的行为;Dnear-scope部分细化模型对何时何地应用反馈的理解。
图3所展示的C3PO数据生成方案,是研究者为解决口头反馈导致的过度泛化问题而设计的一套详细流程。这一流程的起点是利用GPT-4这样的先进语言模型,根据给定的口头反馈生成一系列可能相关的提示类别。这些类别将指导后续的提示生成,确保生成的提示既能够覆盖反馈适用的情景(in-scope),也能够覆盖表面相关但实际不适用的情景(near-scope),以及完全无关的情景(out-of-scope)。
接下来,研究者利用当前的语言模型π0为这些提示生成基线响应。这些响应代表了模型在未接受特定反馈时的默认行为。然后,针对in-scope提示,模型被进一步提示,要求其根据反馈修订响应,生成新的修订后响应y+i。这一修订过程是C3PO方法的关键,因为它直接体现了反馈对模型行为的具体影响。
通过这一过程,研究者能够自动创建三个关键的数据集:Din-scope、Dnear-scope和Dout-of-scope。这些数据集共同构成了微调模型的基础,它们不仅反映了期望的行为变化,还编码了在不相关提示上应保持的原有行为。
随后研究者采用一个精心设计的组合损失函数LC3PO对模型π0进行微调。这个损失函数包括三部分:针对in-scope数据的直接偏好优化(DPO)损失,以及针对out-of-scope和near-scope数据的标准软性损失(SFT)。这种设计使得模型在微调过程中能够在保持原有行为的同时,对in-scope提示进行适应性调整。
损失函数的具体形式如下:
这里,λ1和λ2是用于平衡不同部分影响的权重参数。通过这种方式,C3PO方法旨在优化模型,使其在接收到口头反馈时,能够更加精准地在适当的情况下应用反馈,避免在不适当的情况下过度泛化。
在解释C3PO损失时,研究者指出,C3PO生成的合成双策略偏好数据遵循Bradley-Terry偏好模型。这意味着,通过比较基线模型π0生成的响应y−和根据反馈修订后的响应y+,可以构建出一个评分函数,该函数能够量化响应之间的偏好关系。这种量化方法为研究者提供了一种强有力的工具,用以评估和优化模型的行为,确保其在遵循口头反馈时既精准又适度。
通过C3PO方法,研究者能够更精确地控制模型如何根据反馈进行调整,确保模型在接收到口头反馈时,只在适当的情境中做出改变,从而提高模型的灵活性和适用性。这对于LLMs的进一步发展和应用具有重要意义。
实验
实验旨在解答几个关键的研究问题:
1. 现有方法在学习口头反馈时,过度泛化问题有多严重?
2. C3PO是否能够减轻这种过度泛化效应?
3. 对标准方法进行简单修改,比如通过提示或监督上下文蒸馏来整合反馈,是否能有效减轻过度泛化?
4. C3PO是否能够学习多条反馈?
5. 在C3PO中,选择不同形式的约束损失对性能有何影响?
研究者构建了一个包含100条反馈的数据集,其中一半由研究者撰写,另一半由GPT-4生成。所有反馈都设计为仅在特定上下文中适用。为了C3PO和SCD + Negatives基线,他们根据C3PO程序采样了Dnear-scope和Dout-of-scope数据集,每个数据集包含960条out-of-scope提示及其对应的基线模型完成情况,用于正则化。他们从Open Instruction Generalist (OIG) 数据集中随机抽取提示,该数据集包含多样化的提示类型。
评估指标用于比较基线模型与学习反馈后的模型在反馈依从性方面的差异。研究者使用启发式规则和GPT-4两种方式来衡量反馈依从性。对于某些反馈,如修改响应长度或包含特定词汇,使用启发式规则;而对于需要定性评估的反馈,如使用更多隐喻或减少激进的语言,则使用GPT-4来衡量。
研究者将C3PO与以下方法进行了比较:
- In-Context学习:提供用户查询、反馈,并提示模型在适用时选择性地应用反馈。
- In-Context + CoT:使用思维链提示,让模型在回答前先推理反馈的适用性。
- SCD:在in-scope提示上执行监督上下文蒸馏。
- SCD + Negatives:在SCD的基础上,为out-of-scope提示添加加权约束。
- DPO:在Din-scope偏好数据集上执行直接偏好优化,没有额外的正则化。
研究者使用图2展示现有方法的局限性:成功地将反馈整合到模型中(X轴的高值)往往会导致在不适用的提示(out-of-scope prompts)上也应用这些反馈(Y轴的高值)。这表明,当模型在in-scope提示上成功遵循反馈时,也会在不相关的上下文中错误地应用这些反馈,这通过最佳拟合线的大斜率来体现。
为了解决这个问题,C3PO采用了一种更有效的折中方案,如图2中C3PO的最佳拟合线斜率明显更小,这表明C3PO能够在保持in-scope提示的反馈依从性的同时,更好地保留out-of-scope提示上的行为。
接着研究者使用图6展示了C3PO如何显著减少对于一般out-of-scope提示和更困难的near-scope提示的行为变化,同时仅轻微降低in-scope提示的反馈依从性。这种改进是通过C3PO的评估指标Sin和Sout来衡量的,其中Sin衡量in-scope提示的反馈依从性,而Sout衡量out-of-scope提示的行为变化。
研究者还探讨了C3PO学习多条反馈的能力。他们通过分别对两个不同的反馈z1和z2应用C3PO,生成了两组LoRA参数ϕ1和ϕ2。然后,他们提出了一种假设,即通过简单地将两组参数相加(ϕ′ = ϕ1 + ϕ2)来获得一个同时适应z1和z2的模型,而不是重新训练。图7比较了这种方法与分别应用和评估每条反馈的性能。结果显示,在in-scope反馈依从性和out-of-scope行为变化方面几乎没有退化,这为在不重新训练的情况下实现大型语言模型的快速个性化和定制提供了希望。
研究者最后讨论了C3PO中约束公式的选择。C3PO通过在微调过程中最大化基线模型在out-of-scope提示上响应的可能性来约束反馈调整的模型。研究者提出了一个假设,即在每个时间步对适应模型和基线模型的条件分布进行全知识蒸馏(full knowledge distillation)。这涉及到在out-of-scope提示上执行知识蒸馏,其中基线模型作为教师,适应模型作为学生。这种约束不仅仅最大化基线模型样本的可能性,而是最小化基线模型的条件分布与适应模型的条件分布之间的KL散度。尽管这种约束形式在持续学习的背景下成功利用了模型输出中低概率logits表示的“暗知识”,但研究者发现,这种更强的约束与最大似然约束相比,会显著损害in-scope提示的反馈依从性。因此,寻找合适的方法来约束out-of-scope模型行为是未来工作的一个重要课题。
通过这些实验,研究者证明了C3PO在减少过度泛化的同时,能够保持对in-scope提示的反馈依从性,这对于大型语言模型的定制和个性化具有重要意义。
论文链接:https://arxiv.org/abs/2402.10893
项目链接:RLVF: Learning from Verbal Feedback without Overgeneralization