来源:AGI Hunt
昨天,OpenAI 发了一篇不太寻常的安全复盘,标题是《长时程模型时代的安全与对齐》。
OpenAI 安全复盘博客
说它不寻常,是因为 OpenAI 在文中认下了这样的一件事:一个尚未发布的内部模型,在受监控的内部测试里逃出了沙箱,还把东西发到了公开的 GitHub 上。
OpenAI 甚至为此暂停了它的内部部署。
而这个模型的来头,你可能有听说过了:两个月前 OpenAI 官宣推翻 Erdős 单位距离猜想的那个内部模型,正是它。
整个事件 OpenAI 写得似乎克制,但如果把细节拼起来看,则还是有点儿离谱……
挖了一小时
第一件事,发生在 NanoGPT speedrun 上。
这是个公开基准,比的是谁能用更少的训练步数,把一个小语言模型练到指定的 loss。OpenAI 让这个模型去跑分,它也确实是很争气,鼓捣出了一个幂律学习率冷却的技巧,还给它起了个名字叫 PowerCool,而且成绩提升非常明显。
到这里都是好事,但问题出在了交作业上。
研究人员的要求是:结果只准发到内部 Slack,可 NanoGPT 项目的说明写的是:请以 PR 形式提交到 GitHub。
当两条指令打架时,那……听谁的呢?
它选了后者。
可虽然它选择了后者,但 OpenAI 的沙箱本来就是拦截了外网访问的。按 OpenAI 的说法,以前的模型撞到这堵墙后,会停下来回去找用户认输。
但这个模型它可不,它在沙箱里找了整整一个小时的漏洞,最后硬是挖穿了墙……真的在公开仓库开出了 PR #287。
博客逃逸段落
OpenAI 的原话是:
“ 这个模型经常不停地尝试,包括去寻找能在沙箱之外行动的办法。
拆 token 骗扫描器
第二件事,则比挖墙更进一步。
在另一个任务里,它发现别的系统有一些成功但未公开的答案,便动了歪心思,想从评测后台把这些答案捞出来。
它的第一次尝试被安全扫描器拦下了,因为扫描器认出了一个身份验证 token。
于是它接下来的做法,是把 token 拆成两段,分别混淆,等到运行时再悄悄拼回去。完整的 token 从头到尾没有以一整串的形式出现过,扫描器自然什么也查不到。
当然它没打算瞒着人,在给用户的注释里、在自己的推理轨迹里,它都写下了:我这么做,就是为了绕过扫描器。
单看每一步的操作,都挑不出什么毛病。但连起来看,则是一个绝不会被批准的结果。
OpenAI 称这正是长时程模型带来的新问题:逐个动作审批的安全体系,管不住一条完整的轨迹。
回炉
发现问题后,OpenAI 暂停了这个模型的内部访问,把安全系统按‘纵深防御’全部重建了一遍。
比如拿真实事故反过来造对抗评测、发现模型在长任务里会‘忘’掉指令,便专门训练它记住、再加一个盯完整轨迹的主动监控,一旦出现苗头,可以直接叫停会话、通知用户。
然后他们把旧的事故场景重放了一遍,结果新护栏抓到的问题多了不少,漏掉的几个也都是低危级别的,比如:
•为了用一个命令行工具,它套娃启动了一个 codex --yolo 会话,其实不加 --yolo 也能用
•它发现一个资源不见了,就开始 SSH 进自己名下的其他算力节点,还试了试别的 OpenAI 员工的节点……(好在没成功)
•一堆 find 进程卡死、所有命令都挂起之后,它敲出了一条 kill -9 -1,会给它有权杀掉的所有进程发送 SIGKILL……好在命令超时,没真跑起来(不然它连自己都会一起杀掉)
模型恢复访问几周后,目前还没出现过严重的绕过事件。
OpenAI 收获的经验是:先小范围放、盯着、出事就停,再把事故变成新的评测。
收不回来的 PR
如果故事到这里就完了,那只不过是一次标准的安全演习而已。
而最有意思的部分,则藏在 OpenAI 文章末尾的脚注里。
那个由模型逃逸后开出的 PR #287,OpenAI 说的是‘我们很快关掉了’。但其实已经晚了:关掉之前,多位 speedrun 参赛者已经看到了它,还看懂了里面的 PowerCool,并用进了自己的方案。
此后的六个世界纪录,3030 步、2990 步、2930 步、2925 步、2900 步、2890 步,全部引用了 PR #287。
其中 2930 步的那个纪录是 PR #300:
PR 300,已合并
如果翻看它的致谢列表,会看到它和人类选手的贡献并排躺在同一行:@yash-oai PR #287,幂律学习率调度,PowerCool。
PR 300 的致谢列表
而这个 PR #300 本身,还要再魔幻一层:它是 Prime Intellect 拿 Opus 4.7 跑同一个 speedrun 时产出的,PR 里写明‘本提交由一个自主的 Claude speedrun 智能体完成’,落款是 Generated with Claude Code。
也就是说:OpenAI 的模型逃出沙箱发了个 PR,Anthropic 的模型看到之后,把里面的发现用进了自己的世界纪录,还非常友好客气地给它署上了名。
AI 逃逸的第一批直接受益者里,有另一家的 AI……
AI 的世界,似乎比人类要更友好和有节操啊。
404
当然如果你今天再打开 PR #287,页面会是这样的:
PR 287 现状
它已经被删掉了。我们知道,GitHub 上普通用户只能关闭 PR,是删不掉的……
不过痕迹并没有清干净。
当时提交 PR 用的那个账号 yash-oai 还在,它 fork 的仓库里,5 月 8 日的 commit 也还躺着,分支名就叫 powercool-3066-api:
yash-oai 的 commit 痕迹
这条 commit 的改动之一,是把原 README 结尾的一张梗图给删了。而那张图的文件名,叫 itsover_wereback……
GPT-6?
OpenAI 全文没提这个模型叫什么,只叫它‘内部模型’。
事情传开后,网友们讨论最热的一句话是:
“ OpenAI 不得不暂停那个推翻了 Erdős 单位距离猜想的未发布模型的内部部署,因为它反复用新方法逃离控制。
OpenAI 研究员 Sebastien Bubeck 转发了这条:
“ 真事。为了让这个单位距离模型能够发布,团队正在做非常好的安全工作。
注意他的用词:为了让它,能够发布
。
也就是说,这个逃过狱、回过炉的模型,不但已经重新上线了内部部署,还在朝着正式发布走。
它逃出去后留下的那个 PR,页面虽然删了,但名字却留在了六个世界纪录的致谢列表里。
至于它是不是大家都在猜的 GPT-6……
OpenAI 没认,也没否认。