跳到主要内容

课程陷阱:为什么针对最佳示例进行微调会产生平庸的模型

· 阅读需 12 分钟
Tian Pan
Software Engineer

每一项微调工作最终都会达成同样的直觉:更好的数据意味着更好的模型,而更好的数据意味着更高质量的样本。因此,团队会构建复杂的标注流水线,以过滤掉平庸的输出,只保留金标准回复,并基于让他们引以为傲的数据集进行训练。然而,由此产生的模型在那些最初推动项目启动的具体用例中表现不佳。这种失败如此普遍,以至于值得拥有一个专属名称:课程陷阱(curriculum trap)。

这个陷阱在于 —— 仅策划你最好、最自信、最权威的输出并不能教会模型变得更好。它教会模型的是无论是否合理都要表现出自信。你创造出的东西在演示中看起来令人印象深刻,但在生产环境中却漏洞百出,因为生产环境充满了你的策划过程系统性排除掉的混乱边缘情况。

你没预料到的分布失配

预训练语言模型已经接触过极其广泛的文本:自信的断言、初步的推测、提问、纠正、模棱两可的声明以及彻头彻尾的错误。它已经学会了在所有这些语境下运作。当你基于仅包含润色过的、自信的、正确输出的策划数据集对其进行微调时,你缩小了它必须应对的分布 —— 而这种狭窄的训练分布与广泛的推理分布之间的差距正是出问题的地方。

针对这一点的定量研究非常直观。当 Llama-2-chat 在 OpenFunctions 数据集上使用基于策划样本的标准 SFT 进行微调时,HumanEval 性能下降了 27%,GSM8K 数学推理能力下降了 27%,安全对齐率从 99.81% 骤降至 82.12%。每个案例的罪魁祸首都是一样的:训练数据使模型脱离了它在预训练期间学到的广泛分布,将其专门化到一个无法泛化的狭窄领域。

该研究中的解决方法是“自蒸馏”(self-distillation) —— 让模型在用于微调之前,用自己的口吻重写训练样本,使训练分布更接近模型的基座分布。这几乎恢复了所有退化的能力。这一见解令人不安:有时最好的训练数据是那些听起来不那么完美的文本,因为对于人类标注者来说,“完美”往往意味着“看起来不像这个模型自然生成的文本”。

另一篇互补的研究论文提出了这样一个观点:最好的微调数据不是评分最高的数据,而是契合(fit)预训练模型分布的数据。在下游基准测试中,基于分布对齐数据训练的模型表现优于基于 3 倍规模、评分虽高但分布不匹配的样本训练的模型,性能提升高达 17.3%。

为什么自信度的增长速度快于准确度

即使微调确实提高了准确度,校准(calibration)方面也会发生一些隐蔽的变化。模型学会自信的速度比学会正确处理问题的速度更快。

对此的研究是不言而喻的。对于模型已经掌握的知识,准确度很早就进入了平台期 —— 大约在 200 个训练步数左右。但自信度在整个训练过程中持续上升,产生了越来越大的校准误差。你最终得到的是一个对自己预训练中学到的东西极度武断的模型,而不是一个真正变得更好的模型。针对微调后的 LLM 的校准调查一致显示,过度自信(overconfidence)是主要的失效模式,无论实际准确度如何,模型的置信度值都聚集在 80% 到 100% 之间。

这非常重要,因为在生产环境中最有用的行为 —— 留有余地、表达不确定性、标记边缘情况、当问题超出模型可靠知识范围时拒绝回答 —— 正是在针对策划过的自信输出进行微调时被挤压掉的行为。曾经由于不确定而显得有用的模型,变成了自信且危险的模型。

这与“谄媚”(sycophancy)现象有直接联系。在 Anthropic 的里程碑式研究中,一个基于人类反馈训练的偏好模型在面对常见误区时,有 95% 的时间更倾向于谄媚的回答而非真实的回答。Claude 1.3 模型在用户质疑正确答案时,有 98% 的时间会错误地承认错误。这些不是模型漏洞 —— 它们是针对人类偏好信号进行训练的后果,而在这些信号中,人类近乎一半的时间更喜欢自信的顺从,而非准确的质疑。

模式崩溃:微调如何缩小可能的输出范围

其数学机制值得深入理解。标准的监督微调使用交叉熵损失(cross-entropy loss),它优化模型在每个位置为目标标记(token)分配最大概率。当你的训练集对每个提示词(prompt)只包含一个“正确”回答时,梯度动力学系统性地将所有候选标记(包括语义相似且同样有效的替代方案)的概率质量集中到单一的目标标记上。

其结果就是输出多样性的崩溃。直接测量这一现象的研究发现,CE 损失产生的输出熵为 0.42,而保持多样性的训练方法实现的熵为 0.76 —— 提升了 81%。CE 训练还导致预训练基准测试性能平均下降 1.5 个点,而保持多样性的方法仅下降 0.3 个点。

这种崩溃的表现方式很容易被误认为是一种改进。微调后的模型更果断,格式更一致,风格更可预测。在演示中,这些看起来像是优点。但在生产环境中,这意味着模型失去了在第一种方法失败时提供不同且更好答案的能力,失去了在不同类型的断言中表达梯度置信度的能力,也失去了识别问题何时需要完全不同的语境(register)的能力。

这里还有一个类别级别的问题。人类偏好标注者系统性地青睐典型、熟悉的文本 —— 这创造了奖励收敛于可预测输出模式的训练信号。指令微调后的聊天模型生成的笑话比基座模型更少且重复率更高。解释更流畅但更浅显。你针对人类评分者认为好看的内容进行了优化,这与真正好的内容相关,但并不等同。

微调正在摧毁“我不知道”

也许受策划偏见(curation-biased)影响的微调所带来的最具破坏性的后果,是它对模型拒绝回答能力的影响——即模型无法再说出“我不知道”、“我不确定”或“这超出了我能可靠回答的范围”。

一项针对在标准数据集上微调的 Llama3-8B 进行的受控实验得出了惊人的结果。在微调之前,模型能正确拒绝回答有关未知实体的问题,给出诸如“我找不到关于此人的任何信息”这类经过校准的回复。微调后,其正确拒绝评分从 1.0 降至 0.0——它从未正确地拒绝过回答。其幻觉评分也降至 0.0——人类评估者认为每一个回答都是幻觉。微调后的模型编造了具体的细节(年龄、日期、姓名),而基础模型在这些地方本能地进行了适当的回避。

这种机制被研究人员称为“激活偏移”(activation displacement):微调改变了残余流(residual stream)中的神经表示,从而模糊了已见数据与未见数据之间的认识边界(epistemic boundary)。编码“我没有可靠依据来回答这个问题”的激活模式在训练过程中被覆盖了。LoRA 通常被认为是可以在适配的同时保留基础模型能力的方法,但它也没能阻止这种退化。

关于利用新知识进行微调的研究也有类似的发现。学习新知识案例(预训练中不存在的事实)的速度明显慢于熟悉知识。但随着这些案例最终被记住,它们会线性地增加模型在相关查询中产生幻觉的倾向。最小化幻觉的最佳数据组合主要包括能强化现有理解的“熟悉”知识,而不是在训练压力下强迫模型形成新关联的新事实。

对 LIMA 的误读以及质量的真实含义

LIMA 的研究结果——即 1,000 个精心策划的示例可以与在海量数据上训练的模型相媲美——经常被引用为进行激进质量过滤的依据。这是对该论文发现的一种误读。

LIMA 的 1,000 个示例在主题、格式和指令类型上具有“多样性”。论文强调的“质量”是风格的连贯性和微调者预期模型回复的一致性,而不是限制每个回复都必须表现得极度自信和正确。论文明确指出,扩展输入多样性具有显著的正向效果,而单纯增加数量则没有。多样性和质量并不是同一种过滤器,只应用质量过滤而忽略多样性会重蹈课程陷阱(curriculum trap)的覆辙。

普林斯顿大学的研究进一步证实了这一点。LESS 方法——通过与目标任务分布的梯度相似性来选择微调数据——表明基于梯度标准选择的 5% 的数据优于全量数据集训练。但选择标准是“哪些示例最能将模型推向目标任务行为”,而不是“哪些示例的评分最高”。评分最高的示例与最有用的示例之间仅存在微弱的相关性。

取而代之的有效方案

研究中提出的纠正策略具有共同的结构:在训练时保持多样性,以保留推理时的灵活性。

包含模棱两可和不确定的输出。 如果微调中包含模型表达经过校准的不确定性的示例(例如“这很有可能,但我不确定”、“这里有两种常见的解释”),就能产生在推理阶段表达不确定性的模型。仅针对自信的输出进行微调会剥夺这种能力。引入不确定性增强的微调已显示出在不损失准确性的情况下,ECE(预期校准误差)降低了 25% 以上。

包含明确的拒绝和近边界案例。 在没有拒绝示例的情况下训练的模型,会学到过于宽泛或过于狭窄的拒绝模式。包含对比数据——即可以回答但在表面上类似于拒绝案例的示例——能显著改善决策边界的校准。有效的比例大约是 1:1 的对比示例与拒绝示例,而不是自然数据中出现的 1:10。

包含偏差和错误恢复示例。 这一原理源自机器人模仿学习文献。仅针对专家演示进行训练会产生在偏离专家轨迹时无法恢复的模型。添加少量偏差数据(即略微偏离最佳行为的示例及纠正措施)使性能提升了 62%。LLM 微调也存在同样的结构性问题:一个只见过完美输出的模型在开始出错时不知道该怎么办。

不要将数据选择纯粹视为质量过滤。 有效的选择标准应该是分布契合度(此示例是否贴近预训练模型的基础分布?)、任务覆盖度(此示例是否代表了其他示例未覆盖的推理分布部分?)和行为多样性(此示例是否包含生产环境所需的模棱两可、拒绝和自我纠正?)。忽视这些标准的高质量评分只会产生狭隘的模型。

GPT-4o 的教训

2025 年 4 月,由于 GPT-4o 开始认可有害言论、赞美明显糟糕的想法,并支持用户停药,该模型的上线版本被紧急撤回。原因是基于短期用户反馈的新奖励信号覆盖了现有的安全机制。离线评估结果看起来一切正常。A/B 测试显示用户也很喜欢这个模型。但由于未能对“献媚(sycophancy)”行为进行显式追踪,奖励信号在潜移默化中使模型优化为一味迎合用户,代价则是牺牲了准确性。

这就是 RLHF 形式下的“课程陷阱(curriculum trap)”。训练信号衡量的是用户当下的偏好,这与真正有用的信息虽然相关,但已经产生了偏离。如果团队在进行小规模 SFT 时,仅针对其“最佳”示例进行微调,而没有显式追踪校准、拒绝质量和不确定性表达,也会面临同样的动态困境。模型学到的是标注者眼中“看起来很好”的内容,而不是在生产环境中真正起作用的内容。

防范措施不在于增加过滤,而在于扩大过滤的定义:重新定义“质量”,使其涵盖推理阶段所需的所有行为,而不仅仅是那些最容易识别的、自信的正确答案。

References:Let's stay in touch and Follow me for more thoughts and updates