本文是 OpenAI 对其在 2025 年 4 月 25 日发布的 GPT-4o 更新中出现的“谄媚”(sycophancy)行为的深入分析、解释和后续改进措施。文章承认这是一次“失误”,并详细阐述了导致问题的原因、为何未在内部测试中发现、以及他们正在采取哪些措施来防止未来发生类似问题。翻译这篇文章的原因是这篇算是事故的文章写的特别好,从事故的缘由、事故的后果、事故的反思、事故的改进措施,都写的非常详细,值得我们学习。
问题描述:4 月 25 日的 GPT-4o 更新导致模型变得“明显更谄媚”,表现为“旨在取悦用户,不仅仅是奉承,还包括验证疑虑、助长愤怒、催促冲动行为,或以非预期的方式强化负面情绪”。这种行为被认为不仅“令人不适或不安”,还“可能引发安全担忧——包括围绕心理健康、情感过度依赖或冒险行为等问题”。
回滚与解决:OpenAI 迅速采取行动,在 4 月 28 日开始回滚更新至早期版本,并通过系统提示进行了部分缓解。
3.训练与更新过程: 文章详细介绍了 ChatGPT 模型更新的流程,包括后训练(Supervised Fine-Tuning 和 Reinforcement Learning with Reward Signals)。谄媚问题被认为与奖励信号的设定及其相对权重有关。
4.内部评审过程的不足: 尽管有一系列评审流程(离线评估、专家测试、安全评估、前沿风险检查、红队测试、A/B 测试),但未能发现谄媚问题。
- 离线评估和 A/B 测试的局限性: 这些量化评估在谄媚问题上表现良好或显示用户喜欢新模型,未能有效捕捉到负面行为。 专家测试的信号被低估: 尽管一些专家测试人员主观上感觉模型行为“有点不对劲”(“felt” slightly off),但由于缺乏明确的量化指标,这些定性信号最终未能阻止发布。
- 专门的谄媚评估: 部署流程中没有专门跟踪谄媚的评估指标。
5.导致问题的原因分析: 初步评估认为,新版本中引入的多项改进(更好地整合用户反馈、记忆和更新的数据)——尽管单独看起来有益——组合起来可能打破了平衡,削弱了主要奖励信号对谄媚行为的抑制作用。特别是基于用户反馈(点赞/点踩)的额外奖励信号,“总的来说,这些变化削弱了我们主要奖励信号的影响力,该信号一直在抑制谄媚行为”,并且“用户反馈有时可能偏向更令人愉悦的回复”。 ◦
6.未来的改进措施: OpenAI 列出了多项流程改进以避免类似问题:
- 明确批准模型行为作为发布阻碍: 将行为问题(如幻觉、欺骗、可靠性、个性)正式视为阻碍发布的因素,即使需要依赖代理测量或定性信号。
- 引入可选的“alpha”测试阶段: 让用户选择参与早期测试并提供直接反馈。
- 更重视专家测试和互动测试: 承认这些定性评估对于捕捉行为和一致性问题的重要性。
- 改进离线评估和 A/B 实验: 使其更能捕捉到行为层面的细微差别。
- 更好地评估模型对行为原则的遵守情况: 强化对模型规范(Model Spec)中行为原则的评估。
- 更主动的沟通: 承诺主动沟通模型更新,即使是细微变化,并在发布说明中包含已知限制。
7.学到的主要教训:
- 模型行为问题应被视为与其他安全风险一样重要的发布阻碍因素。
- 需要批判性地看待与定性测试冲突的量化指标。
- 评估无法捕捉所有问题,实际使用有助于发现更微妙的问题。
- 没有“小型”发布,任何可能显著改变用户交互方式的更新都需要认真对待。
- 认识到用户开始将 ChatGPT 用于“非常个人化的建议”,这是一个重要的使用案例,需要以极大的谨慎对待,并成为安全工作的重点。
关于 GPT-4o 模型过度迎合问题的深入探讨
2025年5月2日
4月25日,我们在 ChatGPT 中发布了 GPT‑4o 的一次更新,导致模型出现了明显的过度迎合(sycophantic)行为。它试图取悦用户,这种迎合不仅体现在奉承上,还会通过验证用户的疑虑、助长愤怒情绪、鼓励冲动行为,或者以非预期的方式强化负面情绪来表现。这种行为除了让人感到不舒服或不安之外,还可能引发安全问题,比如影响用户的心理健康、导致情感上的过度依赖,甚至鼓励危险行为。
我们从4月28日开始回滚了这次更新,目前用户使用的是 GPT‑4o 的早期版本,其响应更为平衡。本周早些时候,我们已经分享了关于 这个问题的初步详情 ——解释了为何会出现这次失误,以及我们计划如何改进。
我们在发布前未能发现这个问题。在此,我们想解释其中的原因,我们从中吸取了哪些教训,以及我们将如何改进我们的流程。我们还将分享更多关于模型训练、评审和部署更新的技术细节,帮助大家理解 ChatGPT 是如何升级的,以及我们做出决策的依据。
我们如何在 ChatGPT 中更新模型
我们持续致力于改进 ChatGPT 中使用的模型,我们将这些更新称为“主线更新”(mainline updates)。自去年5月在 ChatGPT 中推出 GPT‑4o 以来,我们已经 发布了五次主要更新(opens in a new window),这些更新主要集中在改变模型的个性和提升其有用性上。每次更新都涉及新的后训练(post-training)过程,通常会将对模型训练流程的许多微小调整独立测试后合并到一个新的模型中,然后对这个更新后的模型进行评估,决定是否发布。
模型的后训练过程通常是这样的:我们先从一个预训练基础模型(pre-trained base model)开始,使用大量由人类或现有模型编写的理想响应数据进行监督微调(supervised fine-tuning),然后利用来自不同来源的奖励信号(reward signals)进行强化学习(reinforcement learning)。
在强化学习阶段,我们会向语言模型(language model)提供一个提示,要求它生成响应。接着,我们会根据预设的奖励信号对生成的响应进行评分,并更新语言模型,使其更有可能生成高分响应,而更不可能生成低分响应。
奖励信号的组合及其相对权重,决定了模型在训练结束时表现出的行为特征。如何定义恰当的奖励信号集合是一个具有挑战性的问题。我们需要综合考虑很多因素:模型的回答是否准确、是否有帮助、是否符合我们的 Model Spec(opens in a new window)(模型规范)、是否安全、用户是否喜欢等等。拥有更好、更全面的奖励信号有助于为 ChatGPT 生成更优质的模型,因此我们一直在尝试新的信号,但每个信号都有其独特之处和潜在的问题。
我们目前如何在部署前评审模型
一旦有了候选模型,我们会对其进行部署流程前的评审,检查模型的安全性、行为和有用性。目前,评估主要分为以下几类:
- 离线评估 (Offline evaluations): 我们拥有一系列广泛的评估数据集,用以衡量新模型在数学、编程(coding)、聊天表现、个性以及通用有用性等方面的能力。我们将这些评估视为衡量模型对用户有多大用处的间接指标。
- 人工抽查和专家测试 (Spot checks and expert testing): 除了正式的评估外,内部专家在发布前会花费大量时间与每个新模型进行实际互动。我们非正式地称之为“直观感受评估”(vibe checks),这是一种人工的健全性检查(sanity check),旨在捕捉自动化评估或 A/B 测试(A/B tests)可能遗漏的问题。这样做的目的是感受模型在实际使用中的表现:它的响应方式是否让人觉得有用、尊重,并与我们在 Model Spec 中阐述的价值观一致?执行这项工作的人员是经验丰富的模型设计专家,他们深刻理解 Model Spec,但也需要依赖他们的判断和直觉——相信模型在真实使用中的感觉。
- 安全评估 (Safety evaluations): 我们检查模型是否达到了我们的安全标准。这些阻止发布的评估(blocking evaluations)主要关注恶意用户可能造成的直接危害(direct harms)。我们也会在高风险情境下测试模型的答案,例如当模型被问及自杀或健康等敏感话题时。我们正在努力扩展对模型不当行为的评估覆盖范围,例如进一步评估幻觉(hallucinations)和欺骗(deception)能力;不过,这些目前更多用于跟踪整体进展,而非直接阻止发布。对于重大的新发布,我们在公开的 system cards(opens in a new window) 中详细描述我们的安全测试。
- 前沿风险 (Frontier risk): 对于那些可能具有前沿能力(frontier models)的模型,我们会检查其发布是否可能根据 preparedness risks(准备度风险)造成严重危害,比如促成网络攻击或帮助制造生物武器。
- 红队测试 (Red teaming): 类似地,对于前沿模型或引入高风险新产品界面的模型,我们会进行内部和外部的 红队测试(opens in a new window),以测试模型对已知危害的抵御能力,并发现潜在的新风险。
- 小规模 A/B 测试 (Small scale A/B tests): 一旦我们认为某个模型可能对用户是一个不错的改进,并且通过了我们的安全检查,我们会与少量用户进行 A/B 测试。这使我们能够通过聚合指标(aggregate metrics),如点赞/点踩反馈(thumbs up / thumbs down feedback)、侧边比较(side by side comparisons)中的用户偏好以及使用模式(usage patterns),来观察模型在用户实际使用中的表现。
4月25日模型更新训练中出现的问题
在4月25日的模型更新中,我们加入了一些旨在改进的特性,比如更好地整合用户反馈、记忆能力和更即时的数据等。我们初步评估认为,这些单独看起来都有益的变化,在结合到一起时,可能导致了模型在过度迎合行为上失去了平衡。例如,这次更新引入了一个基于用户点赞和点踩数据(来自 ChatGPT)的额外奖励信号。这个信号通常是有用的;一个点踩通常意味着模型哪里出了问题。
但我们认为,总体而言,这些变化削弱了我们主要奖励信号的影响,而正是这个主要信号一直在有效地控制模型的过度迎合行为。特别是用户反馈,有时可能会偏好更顺从、更随和的响应,这很可能放大了我们观察到的这种转变。我们还发现,在某些情况下,用户记忆能力也会加剧过度迎合的影响,尽管我们没有证据表明它会普遍性地增加这种行为。
为什么我们在评审流程中没有发现这个问题?
这次发布的一个关键问题在于,我们的离线评估——尤其是那些测试模型行为的评估——整体看起来都表现良好。同样,A/B 测试的结果似乎也表明,试用该模型的少量用户是喜欢它的。虽然我们之前已经讨论过 GPT‑4o 中与过度迎合行为相关的潜在风险,但在我们内部的实际测试中,过度迎合问题并未被明确标记为需要阻止发布的问题,因为我们的一些专家测试人员更关注模型语气和风格的变化。尽管如此,确实有一些专家测试人员指出模型行为“感觉”有点不对劲。
此外,我们当时也没有专门用于跟踪过度迎合行为的部署评估流程。尽管我们有一些围绕模仿用户语气(mirroring)和情感依赖(emotional reliance)等问题的研究项目 情感依赖研究(opens in a new window),但这些研究成果尚未整合到我们的正式部署评审流程中。在这次回滚之后,我们正在将对过度迎合行为的评估纳入到该流程中。
接着我们面临一个艰难的决定:是否应该仅凭专家测试人员的主观感受标记,就推迟部署这个在评估和 A/B 测试中都显示出积极结果的更新?最终,基于试用该模型的用户给出的积极信号,我们决定发布这个模型。
不幸的是,这是一个错误的决定。我们为用户构建这些模型,用户的反馈对我们的决策至关重要,但最终正确地理解和解读这些反馈是我们的责任。回过头看,那些定性的评估信号预示着重要的问题,我们本应该给予更密切的关注。它们捕捉到了我们其他评估和指标的盲点。我们的离线评估不够广泛或深入,未能捕捉到过度迎合这种行为——而这恰恰是 Model Spec 中明确不鼓励的行为(opens in a new window)——而我们的 A/B 测试也没有设置合适的信号,无法足够详细地显示模型在这方面的表现。
我们为解决这个问题所做的努力
对于最近的 GPT‑4o 更新,我们于4月24日星期四开始分阶段推出,并在4月25日星期五完成。接下来的两天,我们监测了早期用户的使用情况和内部反馈信号,包括用户的直接反馈。到星期日,模型的行为明显不符合我们的预期。
我们立即采取了行动,在星期日深夜紧急更新了系统的提示词(system prompt),以快速减轻大部分负面影响。并在星期一开始了全面的回滚,将服务切换回了之前的 GPT‑4o 版本。为了确保系统的稳定性,并避免在回滚过程中引入新的问题,整个回滚过程花费了大约24小时。
目前,所有流向 GPT‑4o 的流量都在使用回滚后的旧版本模型。自回滚以来,我们一直在努力全面分析问题所在,并着手进行长期的改进。
我们将在流程中进行的改进
- 明确将模型行为批准作为每次发布的必要条件,并权衡定量和定性信号: 我们将调整安全评审流程,正式将模型行为问题——例如幻觉、欺骗、可靠性和个性表现——视为可能阻止模型发布的关键考量。即使这些问题目前还无法做到完美量化,我们也承诺将根据间接测量指标或定性信号来阻止发布,即使像 A/B 测试这样的定量指标看起来表现良好。
- 引入额外的可选“alpha”测试阶段: 在某些情况下,我们计划在测试流程中加入一个额外的可选“alpha”测试阶段。这将允许那些愿意提供直接反馈的用户在模型正式发布前先行体验。
- 更加重视人工抽查和互动测试: 我们深刻吸取教训,在将模型提供给任何用户之前的最终决策中,人工抽查和互动测试应该被赋予更高的权重。这对于红队测试和高级安全检查一直都是如此。通过这次经历,我们认识到这一点对于模型行为和一致性等品质同样重要,因为现在有非常多的人依赖我们的模型来辅助他们的日常生活。
- 改进我们的离线评估和 A/B 实验: 改进离线评估和 A/B 实验都至关重要,我们正在努力快速推进这些改进。
- 更好地评估模型对我们行为原则的遵守情况: 随着我们的模型能力越来越强,使用也越来越广泛,明确定义理想的模型行为至关重要。这也是我们 Model Spec(opens in a new window) 的目标,旨在更清晰地展示我们在训练和评估新版本 ChatGPT 时所追求的目标。但是,仅仅设定目标还不够。它们需要强有力的评估体系来支持。虽然我们在遵循指令层级(instruction hierarchy)和安全(例如隐私保护、不允许的内容生成)等方面已经建立了广泛的评估,但我们正在努力提升在那些我们目前评估不足领域的信心。
- 更主动地沟通: 我们在沟通上也犯了错误。由于我们预计这次更新会比较微妙,所以没有主动发布公告。此外,我们的发布说明中也没有足够详细地说明我们所做的具体改动。今后,我们将对我们在 ChatGPT 中进行的所有模型更新进行主动沟通,无论其变化是否“微妙”。并且,就像我们对待重大模型发布那样,今后在发布 ChatGPT 的增量更新时,我们也会包含已知局限性的解释,以便用户能够全面了解更新带来的好与坏。
我们正在学习的经验
这次发布给我们带来了许多教训。即使我们自认为已经具备了所有正确的要素(A/B 测试、离线评估、专家评审),我们仍然未能发现这个重要问题。
以下是我们正在吸取并向前推进的几个重要经验:
- 我们需要将模型行为问题视为阻止发布的因素,就像对待其他安全风险一样: 我们非常重视将模型价值观与人们的福祉对齐,无论是在准备短期部署,还是在制定长期研究策略方面。然而,与目前已跟踪的安全风险领域相比(更多见我们公开的 system cards(opens in a new window)),我们审查通用模型行为的流程还不够完善和正式化。我们现在认识到,模型的个性和其他行为问题应该成为阻止发布的关键因素,并且我们正在修改我们的流程来反映这一点。
- 我们需要批判性地看待那些与定性测试结果冲突的量化指标: 定量信号固然重要,但那些难以衡量的定性信号同样关键,我们正在努力扩展评估的范围和深度。
- 我们的评估并非万无一失: 我们无法预测所有可能出现的问题。对于我们已知的前沿风险(更多详情见我们的 准备度框架(opens in a new window)),我们在发布前已经进行了广泛的评估和测试。但对于更微妙或新出现的问题,比如语气或风格的变化,真实世界的使用能够帮助我们发现问题,并了解对用户而言最重要的是什么。有时我们的评估体系会滞后于我们在实践中学习到的经验,但我们会继续迅速采取行动,修复问题并防止潜在的危害。
- 没有所谓的“小型”发布: 我们会努力沟通即使是看似细微的变化,因为它们都有可能显著改变人们与 ChatGPT 的互动方式。
其中一个最大的教训是充分认识到人们已经开始将 ChatGPT 用于获取非常个人的建议——这种用法在一年前我们还很少看到。那时,这不是我们的主要关注点,但随着 AI 和社会共同发展演变,很明显我们需要非常谨慎地对待这种使用场景。它现在将成为我们安全工作中更重要的组成部分。既然有如此多的人依赖一个单一系统来获取指导,我们有责任进行相应的调整。这种转变更加凸显了我们工作的重要性,以及为什么我们需要在安全性、与人类价值观的对齐(alignment),以及对人们实际使用 AI 方式的响应方面不断提高标准。