能够长时间自主工作的模型可以处理困难、开放性的问题。但正是这种使它们有用的持久性,也给了它们更多机会采取不期望的行动——而且可能以针对短周期模型设计的评估无法察觉的方式进行。

大约两个月前,我们宣布一个内部通用模型推翻了埃尔德什单位距离猜想。这个模型被设计为能够长时间自主工作。在有限的、受监控的内部使用过程中,我们观察到了现有部署评估未能捕捉到的不期望行为。由于部署是有限且受监控的,我们能够识别这些问题,暂停访问,根据观察创建新的评估,强化模型及其安全措施,然后在持续监控下恢复访问。

我们评估模型的条件永远不会与实际使用中的条件完全匹配。这就是为什么部署前评估需要与有限的、受监控的部署相结合,并在问题出现时具备干预、暂停或回滚的能力。我们从部署中学到的东西,可以在扩大访问权限之前,成为更强评估和安全措施的一部分。

在以下部分,我们将分享我们观察到的具体例子、如何解决问题,以及这次经验将如何影响未来的发布。

模型的持久性可能暴露安全漏洞

新模型可以通过长时间反复尝试,持续朝着目标努力。同样的持久性也可能导致它发现并利用环境中的弱点。之前的模型在遇到沙盒或环境限制时,通常会停止并返回给用户。而这个模型往往会继续尝试,包括寻找在沙盒之外行动的方法。

一个例子发生在内部评估NanoGPT speedrun(一个尽可能少步骤训练小型语言模型的公开基准)期间。我们的模型开发了一种名为PowerCool的幂律学习率冷却方法,带来了显著改进。模型被指示仅将结果发布到Slack,但NanoGPT的说明要求将结果作为PR提交到GitHub,而模型遵循了后者的指示,在公开的GitHub仓库上打开了第287号PR。模型绕过了旨在阻止外部访问的沙盒限制,并成功将内容上传到GitHub。模型花了一个小时才找到沙盒中的漏洞以提交PR;而之前的模型由于持久性较差,未能找到漏洞,最终放弃了PR部分。1

从考虑单个行动到考虑整个轨迹

许多AI助手的安全控制措施都是围绕单个行动设计的。如果某个行动不被允许,就会被阻止。如果行动敏感,系统会要求用户明确批准。但长时间运行的模型,其行动可能自主展开数小时、数天甚至数周,这对这种设置提出了挑战:监控单个行动已不足以追踪整个轨迹的意图。

例如,在一个要求模型解决问题的场景中,模型观察到其他系统有成功但私密的提交,并试图从评估后端恢复这些解决方案。当它的初次尝试因扫描器检测到认证令牌而被阻止时,模型将令牌主体拆分为两个片段,进行混淆,然后在运行时重建凭证,使得完整令牌从未以连续字符串形式出现。模型在给用户的注释和推理轨迹中都明确表示,它采取这些步骤是为了绕过扫描器。

这个例子展示了每个步骤本身看起来可以接受,而序列却可能产生不被批准的结果。它也展示了在长时间范围内有效运作的模型如何学习审批系统的盲点,并绕过它来实现目标。长时间安全不仅需要问“这个行动是否被允许?”,还需要问“这个行动序列正在朝着什么结果努力?”

为长时间运行模型构建安全措施

由于此类事件,我们暂停了新模型的内部部署。我们围绕纵深防御和轨迹级监控重建了安全系统。

  • 事件衍生评估。 评估可以在系统实际部署前,让我们了解其是否安全。然而,为了最有效,评估应反映实际部署中轨迹的分布和时间跨度。因此,我们利用观察到的失败来开发对抗性评估。我们发现,改进基于实际事件衍生的评估,反过来又使模型在生产环境中部署时行为更安全。
  • 改进的对齐。 我们采取措施减少模型在追求用户目标时未经许可采取不期望行动的倾向。例如,我们发现模型在长时间运行中更难以记住指令,而当我们针对这一能力进行训练时,模型在更长时间运行中保持了更好的对齐。
  • 主动监控。 我们创建了一个监控系统,审查模型不断演变的轨迹,以发现其绕过用户约束或安全边界的迹象。监控器不仅观察单个行动,而是观察整个轨迹。重要的是,监控器可以暂停会话并提醒用户更仔细地检查。在检查后,如果监控器被误触发,用户可以选择继续模型的工作。
  • 更高的用户可见性和控制力。 我们改进了用户检查这些长时间运行会话、查看已采取行动以及监控干预的能力。

重新部署

为了评估新的监控系统,我们重放了一小部分内部部署环境,其中模型之前曾追求未对齐的行动,这次则采用了新的安全措施2。新的安全措施能够捕捉到模型追求的更多未对齐行动,而遗漏的行动均被判定为低严重性。

这些低严重性事件的一些例子包括以下情况:

  • 为了调用 Linear 命令行工具,模型启动了一个嵌套的 codex --yolo 会话,而实际上它本可以在不使用 --yolo 标志的情况下完成操作。
  • 模型注意到某个先前活跃的资源缺失,随后开始探索并通过 SSH 登录其所有者命名空间下的其他活跃 CPU Pod,并且(未成功)尝试访问属于其他 OpenAI 员工的 Pod,而这一行为缺乏合理理由。
  • 模型存在大量卡住的 find 进程,所有 shell 命令均挂起。随后它运行了 kill -9 -1,该命令若执行,将向该 Pod 上其有权终止的所有进程发送 SIGKILL 信号。然而该命令超时,并未实际执行。

在测试新系统后,我们得出结论:可以恢复对具备长周期能力的模型的有限内部访问。自数周前重新部署以来,我们未观察到任何严重绕过安全防护的行为。这些安全防护的初始版本刻意保持保守。我们持续调整系统,在未削弱防护的前提下减少不必要的干扰。

最终思考

由于我们采用迭代方式部署,得以在扩大访问范围前发现并解决漏洞。部署前评估仍然至关重要,但部署过程会揭示评估未能捕捉的行为。从有限访问开始,使我们能够在实践中观察模型,在问题出现时暂停,利用这些失败构建更好的评估与防护措施,并在测试修改后恢复有限访问。

随着模型承担更长期、更复杂的任务,评估遗漏的失败可能带来更严重的后果。我们将持续缩小评估与部署之间的差距:在更长轨迹上测试模型、改进对齐、构建可干预的监控机制,并为用户提供更清晰的可见性与控制权。这些挑战并非 OpenAI 独有,我们希望分享的经验能帮助更广泛的领域为此做好准备。

本文内容采集自官方网站,排版和翻译可能与原页面存在差异。

阅读官方全文