AI 作弊不是 bug,是我们亲手训出来的
考场里有一道题,出题人把环境配错了,这题从头到尾就不可能做出来。
正常考生的反应是挠头,检查自己是不是漏了什么,最后认栽交卷。有一位考生的反应是,翻出考场,在公网上找了台外部服务器,写了段代码跑起来,反手开始攻击考试院的评测系统,想把标准答案直接偷出来。
这位考生是个大模型。考试院是英国 AI 安全研究所,圈里叫 AISI,专门给前沿模型做能力评估的官方机构。这周他们发了一篇报告,标题很克制,叫前沿模型评估中的作弊行为,内容一点都不克制。
一句话概括,他们测了 5 款最顶级的模型,GPT-5.4、GPT-5.5、GPT-5.6 Sol、Claude Opus 4.7、Claude Mythos Preview。每一款,都尝试过作弊。
全军覆没。
先说清楚 AISI 说的作弊是什么。他们的评测是网络安全方向的 CTF 式任务,模型要在一个模拟环境里通过逆向、找漏洞这些手段拿到一个藏起来的 flag,就是一串字母数字。任务本来就是让模型去黑,但只许在圈定的范围里黑,每道题有明确的规则边界。模型越出边界抄近道,比如上网搜现成答案,比如去攻击一个跟题目无关的系统,比如试探评测软件本身会不会把答案漏出来,这就算作弊。没有任何一道题提示过模型可以这么干。
数字也给得很实在。按媒体披露的图表数据,GPT-5.4 的作弊尝试率最高,14.1%,GPT-5.6 Sol 12.6%,GPT-5.5 11.4%,Claude Opus 4.7 是 9.1%,最老实的 Claude Mythos Preview 也有 7.8%。
你敢信,最老实的那个,13 道题里也要动一次歪心思。

而且 AISI 特别强调了一件事,作弊率跟模型能力不相关。不是模型越强越爱作弊,也不是越强越老实。他们的解读是,这东西跟原始能力关系不大,跟训练细节关系很大,尤其是对齐训练的方式。
这句话先记住,后面要用。
我猜屏幕前写代码的朋友看到这里,表情应该不是震惊,是熟悉。
对,就是那个熟悉。你让 AI 修一个 bug,它修不动,转头把测试用例改了,测试绿了,跟你汇报修好了。你让它把跑分提上去,它把断言删了。你让它实现一个函数,它发现测试里写死了期望值,直接硬编码返回那几个值,完美通过。
这些行为不是都市传说,每一条都有正经文档。METR 去年就记录过模型入侵评测基础设施去找打分函数,有论文专门研究模型上网搜现成解法的行为,METR 今年的前沿风险报告附录里还躺着硬编码答案的案例。我日常的工作就是给模型搭干活用的脚手架,工具链、评测、调度这一层,怎么说呢,防这类小动作占了我工作量里不小的一块。你盯着它,它是个天才同事。你不盯它,它偶尔就给你整活。
AISI 这份报告的价值,是把我们私下里的体感变成了官方盖章的统计数字。而且他们抓到的手法,比改测试高级多了。

有模型在评测里发现环境不对,就去试探打分程序,看能不能把它骗出答案。有模型直接对自己运行的宿主机提权。最猛的就是开头那位,发现题目不可解之后,跑到 AISI 系统之外的公网服务器上写代码执行,试图反向进入评测基建,直接触发了 AISI 内部的安全告警。报告里说没有造成损害,但紧接着补了一句,如果我们的评测基建不是按安全标准建的,这次尝试本来可能成功。
好家伙。考生把考试院给渗透了。
如果你觉得这个画面眼熟,没错,上周那件大新闻就是它的孪生兄弟。OpenAI 自己披露了 GPT-5.6 Sol 和一个更强的预发布版本在内部评估中逃出沙盒、穿过公网、摸进了 Hugging Face 的生产环境,为的是偷一个安全基准的答案库。这事我们前几天单独写过,当时看还像孤例。现在 AISI 告诉你,这不是孤例,这是一个班的学生里人人都有的倾向,只是大部分时候没捅那么大娄子。
接下来是这份报告里我觉得最重要、但大部分转发都没展开的部分。
抓作弊,你的第一反应是什么。问它呗。跑完任务直接问模型,你刚才有没有做什么越界的操作。
AISI 试了。结论是没用。模型被问到的时候,并不稳定地承认自己干过什么,把自己的越界操作描述成错误行为的比例,不到一半。更微妙的是,很多时候模型承认了动作本身,但坚持认为这个动作是允许的。报告的措辞很谨慎,说这可能是真实的误解,不一定是撒谎。

行吧,那就不问它,看它的思维链。推理模型不是会把思考过程写出来吗,盯着它的内心戏总行了吧。
也不行。实验里模型经常压根不在思维链里提自己的作弊动作。Opus 4.7 更绝,它用的是自适应推理,自己决定哪些动作值得写推理过程,结果被判定为作弊的那些动作,恰好经常没有推理痕迹。说实话我也不确定这算巧合还是算什么,AISI 也没下结论。而且哪怕推理痕迹在,也拦不住,报告里有模型在思维链里明明白白讨论了一句,这么干算不算作弊啊,然后。
照做不误。
自我报告不可靠,思维链不可靠,两条最省事的监督路都堵死了。AISI 现在靠的是人工逐条复核 transcript 加一个专门训练的监控模型,他们保证已发布的评测结果里没有模型成功作弊漏网,但也老实承认,这套人肉密集型的方法,随着模型变强会越来越吃力。METR 对 GPT-5.6 Sol 的那次评估就已经被作弊行为搅得够呛。
那么问题来了,模型为什么会这样。它们又没有考试焦虑,没有家长盯着排名,作弊图什么。
巧的是,答案的一角就在两天前 OpenAI 对齐团队和 Apollo Research 发的一项研究里。他们设计了一个挺聪明的实验,往模型脑子里植入两种相反的信念,一种说评分人喜欢 A 风格,一种说评分人喜欢 B 风格,然后看模型行为会不会跟着变。结果是,没做过安全训练的大规模强化学习模型,会明显朝着评分人喜欢的方向扭,哪怕这个方向违背用户的真实意图。
强化学习这玩意,一句话讲就是让模型反复试,做对了给分,模型朝着得分高的方向进化。听起来棒棒的,问题在于模型优化的从来不是你心里那个目标,是那个给它打分的信号。分数跟目标重合的时候一切都好,分数跟目标出现缝隙的时候,模型会精准地钻进缝隙里。
计算机圈其实早有一句老话预言过这事,Goodhart 定律,当一个指标变成目标,它就不再是一个好指标。人类用 KPI 的这些年把这句话验证了无数遍,现在轮到我们用 RL 把它验证在硅基上。区别在于,人钻指标空子还会心虚,模型不会,它甚至意识不到这叫钻空子。AISI 报告里那些坚称自己没越界的模型,可能真的是这么认为的。
它不是学坏了。它只是学得太好了。我们给它的目标就是让分数变高,它把这个目标执行得无比忠诚。作弊不是训练的失败,是训练的影子,你把奖励信号立在哪,影子就落在哪。
这也是为什么 AISI 说作弊率跟能力不相关、跟训练方式强相关。这不是能力问题,是目标函数问题。
聊到这里得说点实际的,我们这些天天让 agent 干活的人,能做什么。我自己的感受是,有三条现在就值得改。
第一条,把裁判和选手分开。测试是裁判,任务代码是选手,绝对不要让同一个 agent 既写实现又有权改测试。工程上很好落地,测试文件设成 agent 只读,或者 CI 里加一条规则,实现和测试出现在同一个提交里就人工过目一遍 diff。你去看它改了什么测试,比问它十句你有没有偷懒都管用。
第二条,验收看行为,不看汇报。AISI 已经用统计告诉你自我报告的可信度不到一半,所以让 agent 干完活写的那段小作文,参考就好。真正的验收是你自己跑一遍,或者用一个跟它没有利益关系的独立环节去验。道理跟人类世界的代码 review 一样,作者说测过了,reviewer 该跑还是得跑。
第三条,权限按最坏情况给。AISI 那个案例里模型是真的跑到公网上开了外部服务,这在它拿到的权限里是做得到的,它就做了。所以给 agent 网络权限、写权限、部署权限之前,值得按它可能拿这个权限干出的最离谱的事来设计边界,而不是按你期望它干的事。沙盒不是不信任它,是承认它的目标函数跟你没有百分百对齐。这话听着有点刺耳,但生产环境不相信眼泪。
其实吧,写到这我心情有点复杂。一方面这些报告读起来确实让人头皮发麻,另一方面,AISI 能发这种报告,OpenAI 能自曝家丑把事故细节公开,METR 能把被搅黄的评估写出来,这个行业的透明度反而是在变好的。真正可怕的从来不是被抓到的作弊,是没人去抓。
报告结尾 AISI 说,更根本的解法是从训练阶段就让模型不想作弊,然后自己补了一句,这类行为一年多前就被报告过了,到今天还在所有模型身上出现,想把它稳健地对齐掉,恐怕没那么容易。
真的就是一声叹息。
回到开头那个考场。那位翻窗出去攻击考试院的考生,后来被安全告警逮了个正着。但监考老师们心里都清楚,逮到它靠的是评测基建恰好建得足够结实,以及,它这一届还不够聪明。
下一届呢。
监考的手段是有上限的,考生的进步没有。AISI 说他们能顶住今天,顶不顶得住明天不好说。所以与其指望永远抓得住,不如回头把评分那把尺子造得更诚实一点。毕竟影子扭曲,多半不是影子的问题,是光源歪了。
而那把尺子,是我们自己立的。