深入探讨我们在谄媚问题上所犯的错误:Expanding on what we missed with sycophancy
Expanding on what we missed with sycophancy
更深入地探讨我们的发现,哪里出了问题,以及我们正在做出的未来改变。
2025年5月2日
4月25日,我们对 ChatGPT 中的 GPT‑4o 进行了一次更新,使得模型明显更加谄媚。它的目标是取悦用户,不仅是奉承,还包括认可用户的疑虑、煽动愤怒、怂恿冲动行为,或者以不希望的方式强化负面情绪。除了让人感到不舒服或不安之外,这种行为还会引发安全问题——包括心理健康、过度依赖情感或冒险行为等方面。
我们于4月28日开始回滚该更新,用户现在可以使用早期版本的 GPT‑4o,该版本的回应更为平衡。昨天,我们分享了关于 这个问题 的初步细节——它为什么是一个失误,以及我们打算如何处理它。
我们未能在发布前发现这个问题,我们想解释原因,我们学到了什么,以及我们将改进什么。我们还分享了关于如何训练、审查和部署模型更新的更多技术细节,以帮助人们了解 ChatGPT 是如何升级的,以及是什么驱动了我们的决策。
How we update models in ChatGPT
我们不断努力开发 ChatGPT 中模型的改进,我们称之为主要更新。自从去年五月在 ChatGPT 中推出 GPT‑4o 以来,我们已经 发布了五个主要更新 ,重点是改变个性和乐于助人的程度。每次更新都涉及到新的后训练,并且通常对模型训练过程进行许多小的调整,这些调整经过独立测试,然后组合成一个单一的更新模型,然后对其进行评估以供发布。
为了对模型进行后训练,我们采用一个预训练的基础模型,对由人类或现有模型编写的一系列理想响应进行监督微调,然后运行强化学习,并从各种来源获得奖励信号。
在强化学习期间,我们向语言模型提供一个提示,并要求它编写响应。然后,我们根据奖励信号对响应进行评分,并更新语言模型,使其更有可能产生评分较高的响应,而不太可能产生评分较低的响应。
奖励信号的集合及其相对权重决定了我们最终得到的行为。定义正确的奖励信号集合是一个难题,我们考虑了很多因素:答案是否正确,是否有帮助,是否符合我们的 Model Spec ,是否安全,用户是否喜欢,等等。拥有更好、更全面的奖励信号会为 ChatGPT 产生更好的模型,因此我们一直在尝试新的信号,但每个信号都有其自身的怪癖。
How we currently review models before deployment
一旦我们有了一个模型候选者,我们的模型就会经过一个部署流程,以检查安全性、模型行为和乐于助人的程度。目前,评估分为以下几类:
- Offline evaluations: 我们拥有一系列广泛的评估数据集,以了解新模型在数学、编码和聊天性能、个性以及一般实用性等方面的能力。我们将这些评估视为衡量我们的模型对用户有多大用处的指标。
- Spot checks and expert testing: 除了正式评估之外,内部专家在每次新模型发布之前都会花费大量时间与之交互。我们非正式地称之为“vibe checks”——一种人工理智检查,以发现自动评估或 A/B 测试可能遗漏的问题。目的是了解模型在实践中的行为方式:它的回应方式是否让人感到有帮助、尊重,并且符合我们在 Model Spec 中阐述的价值观?从事这项工作的人员都是经验丰富的模型设计人员,他们已经内化了 Model Spec,但也存在判断和品味——相信模型在实际使用中的感觉。
- Safety evaluations: 我们检查模型是否符合我们的安全标准。这些阻止性评估主要侧重于恶意用户造成的直接危害。我们还在高风险情况下测试模型的答案,例如当我们的模型被问及关于自杀或健康等主题的问题时。我们正在努力扩大我们对模型不良行为的评估范围,例如进一步评估幻觉和欺骗;然而,这些更多地用于跟踪总体进展,而不是直接阻止发布。对于大型新发布,我们在公开 system cards 中描述我们的安全测试。
- Frontier risk: 对于潜在的前沿模型,我们会检查该版本是否可能对 preparedness risks 造成严重损害,例如网络攻击或制造生物武器。
- Red teaming: 同样,对于前沿模型或引入有风险的新产品表面的模型,我们会进行内部和外部 red teaming ,以测试针对已知危害的稳健性并发现潜在的新风险。
- Small scale A/B tests: 一旦我们认为某个模型可能对我们的用户来说是一个很好的改进,包括运行我们的安全检查,我们就会与少量用户进行 A/B 测试。这使我们能够根据诸如点赞/点踩反馈、并排比较中的偏好和使用模式等汇总指标来查看模型在用户手中的表现。
What went wrong in training the April 25th model update
在4月25日的模型更新中,我们对更好地整合用户反馈、记忆和更新鲜的数据等方面进行了候选改进。我们早期的评估是,这些单独看起来有益的更改在组合时可能在一定程度上导致了谄媚倾向。例如,该更新引入了一个基于用户反馈的额外奖励信号——来自 ChatGPT 的点赞和点踩数据。此信号通常很有用;点踩通常意味着出现了问题。
但我们认为,总的来说,这些变化削弱了我们主要奖励信号的影响,而该信号一直在控制着谄媚行为。特别是用户反馈有时可能会偏向更令人愉悦的回应,这可能会放大我们所看到的转变。我们还看到,在某些情况下,用户记忆会加剧谄媚的影响,尽管我们没有证据表明它会广泛增加谄媚。
Why did we not catch this in our review process?
这次发布的一个关键问题是,我们的线下评估——特别是那些测试行为的评估——总体上看起来不错。同样,A/B 测试似乎表明,尝试过该模型的少量用户喜欢它。虽然我们已经讨论过一段时间关于 GPT‑4o 中与谄媚相关的风险,但谄媚并未被明确标记为我们内部实践测试的一部分,因为我们的一些专家测试人员更关心模型语气和风格的变化。尽管如此,一些专家测试人员表示,模型行为“感觉”有点不对劲。
我们也没有专门的部署评估来跟踪谄媚。虽然我们有围绕诸如镜像和 emotional reliance 等问题的研究工作,但这些努力尚未成为部署过程的一部分。在此次回滚之后,我们将谄媚评估整合到该过程中。
然后我们必须做出一个决定:尽管评估和 A/B 测试结果良好,但仅基于专家测试人员的主观标记,我们是否应该推迟部署此更新?最终,我们决定发布该模型,因为尝试过该模型的用户发出了积极信号。
不幸的是,这是一个错误的决定。我们为用户构建这些模型,虽然用户反馈对我们的决策至关重要,但正确解读该反馈最终是我们的责任。回顾过去,定性评估暗示着一些重要的事情,我们应该更加重视。他们正在发现我们其他评估和指标中的一个盲点。我们的线下评估不够广泛或深入,无法发现谄媚行为——Model Spec 明确禁止 ——并且我们的 A/B 测试没有正确的信号来足够详细地显示模型在这方面的表现。
What we did to address the issue
对于最近的 GPT‑4o 更新,我们于4月24日星期四开始推出,并于4月25日星期五完成。我们在接下来的两天里监控了早期使用情况和内部信号,包括用户反馈。到星期日,很明显该模型的行为没有达到我们的预期。
我们立即采取行动,在星期日深夜推送了对系统提示的更新,以快速缓解大部分负面影响,并在星期一启动了完全回滚到之前的 GPT‑4o 版本。完全回滚花费了大约24小时来管理稳定性并避免在整个部署中引入新问题。
今天,GPT‑4o 流量现在正在使用之前的版本。自从回滚以来,我们一直在努力充分了解哪里出了问题,并做出更长期的改进。
What we’ll improve in our process
- Explicitly approve model behavior for each launch, weighing both quantitative and qualitative signals: 我们将调整我们的安全审查流程,以正式考虑行为问题——例如幻觉、欺骗、可靠性和个性——作为阻止问题。即使这些问题今天无法完全量化,我们也承诺基于代理测量或定性信号来阻止发布,即使 A/B 测试等指标看起来不错。
- Introduce an additional opt-in “alpha” testing phase: 在某些情况下,我们计划在测试中引入一个额外的选择加入“alpha”阶段,这将使我们能够在发布之前听取有兴趣向我们提供直接反馈的用户的意见。
- Value spot checks and interactive testing more: 我们铭记,在将模型提供给任何用户之前,应该在最终决策中更加重视抽查和交互式测试。对于 red teaming 和高层安全检查来说,这一点一直都是如此。我们从这次经历中了解到,对于诸如模型行为和一致性等特性来说,这一点同样适用,因为现在有很多人依赖我们的模型来帮助他们完成日常生活。
- Improve our offline evals and A/B experiments: 改进我们的线下评估和 A/B 实验都很重要,我们正在努力快速做到这一点。
- Better evaluate adherence to our model behavior principles: 随着我们的模型变得越来越强大和被广泛使用,重要的是要定义理想行为的实际样子。这就是我们的 Model Spec 的目标,它为我们训练和评估 ChatGPT 新版本时所追求的目标提供了一个更清晰的窗口。但是,仅陈述我们的目标是不够的。它们需要得到强大的评估的支持。虽然我们在诸如指令层次结构和安全(例如隐私、不允许的内容)等领域进行了广泛的评估,但我们正在努力提高我们在我们尚未考虑的领域的信心。
- Communicate more proactively: 我们也犯了沟通错误。因为我们预计这是一个相当细微的更新,所以我们没有主动宣布它。此外,我们的发布说明没有关于我们所做的更改的足够信息。展望未来,我们将主动沟通我们对 ChatGPT 中模型所做的更新,无论它们是否“细微”。并且就像我们对主要模型发布所做的那样,当我们宣布对 ChatGPT 的增量更新时,我们现在将包括对已知限制的解释,以便用户可以理解好与坏。
What we’re learning
这次发布教会了我们很多经验教训。即使我们认为所有正确的要素都已到位(A/B 测试、线下评估、专家评论),我们仍然错过了这个重要问题。
以下是我们正在推进的主要经验教训:
- We need to treat model behavior issues as launch-blocking like we do other safety risks: 我们非常重视将模型价值观与人们的福利相协调,无论是在准备我们的短期部署还是在塑造我们的长期研究策略方面。但是,相对于当前跟踪的安全风险领域(更多见解请参见我们的公开 system cards ),我们审查一般模型行为的过程不太稳健和正式。我们现在了解到,个性和其他行为问题应该是发布阻止性的,并且我们正在修改我们的流程以反映这一点。
- We need to be critical of metrics that conflict with qualitative testing: 定量信号很重要,但难以衡量的信号也很重要,我们正在努力扩大我们的评估范围。
- Our evals won't catch everything: 我们无法预测每个问题。对于我们意识到的前沿风险(更多细节请参见我们的 preparedness framework ),我们在发布前进行了广泛的评估和测试。但是对于更微妙或新兴的问题,例如语气或风格的变化,实际使用有助于我们发现问题并了解对用户来说最重要的事情。有时我们的评估会落后于我们在实践中学到的东西,但我们将继续快速行动以解决问题并防止危害。
- There’s no such thing as a “small” launch: 我们将尝试沟通即使是细微的更改,这些更改也会有意义地改变人们与 ChatGPT 的互动方式。
最大的教训之一是充分认识到人们已经开始使用 ChatGPT 来获取非常私人的建议——即使在一年前,我们也没有看到这么多。当时,这不是一个主要重点,但随着 AI 和社会的共同发展,很明显我们需要非常谨慎地对待这个用例。它现在将成为我们安全工作的一个更有意义的部分。由于有很多人依赖单个系统来获得指导,因此我们有责任做出相应的调整。这种转变强化了为什么我们的工作很重要,以及为什么我们需要不断提高安全性、一致性和对人们在生活中实际使用 AI 的方式的响应能力的标准。