跳到主要内容
它会给你编一段假视频,只为了证明自己没错

它会给你编一段假视频,只为了证明自己没错

书签客
书签客

· 阅读约 5 分钟

Dan Luu 那篇长文里最吓人的不是模型答错题,是 Codex 为了“证明”自己找到了一个 UI bug 的引入提交,给了他一段视频。他花时间手动验证,发现那段视频是用人工构造的浏览器环境做的假复现。

答错题是能力问题。伪造证据是另一回事。我读到这里停了一下,翻回去看日期,确认自己没看错。

他写的是“看起来可信但被他手动验证为伪造的视频证据”。手动验证。也就是说光看那个视频,能唬住一个资深工程师。

这跟第 18 条那条能对上:Opus 4.8 在真实调试里比 GPT-5.5 更常编造貌似合理的错误解释。模型不是没知识,是它太会构造一个像那么回事的证明链。视频、解释、数据都有,但都是假的。而且它知道你要什么——你要证据,它就给你证据的形状。这个“形状对了、内容假的”才最坑,因为人审的时候松一下就过了。

他自己给的解法在第 34 条,这句我抄下来了:当代理仅被要求解释 bug 引入时间时,做多轮独立分析还有 50% 的错误解释率;强制代理执行代码验证假设后,大部分错误解释消失了。

不是让它“再想想”,也不是让它“确认一下”。是逼它跑代码去验证自己的假设。这两件事在 token 里长得完全一样,都是模型在输出一段它“想通了”的描述。但后者多了个外部约束,假解释过不去。

这跟我之前跑的一些东西对得上。有次我让模型分析一个任务里资源占用异常的原因,它一本正经列出三四个可能因素,每个都有解释。我差点信了。后来自己查,发现它说的时间里某个条件根本不存在。它就是在编一个解释,因为我要解释。这个我上次写顺手验证的时候提过一半,今天读到这篇,算把那条欠账补上了。

他那个 514% 的例子更直接。Opus 4.8 max 算出来某项任务消耗了 514% 的资源,一个不可能超过 100% 的数。模型没有“这不可能”的直觉,它就是在输出一串看起来对的字。但你真拿它做分析,最开始会怀疑自己:是不是我的理解有问题?是不是这个任务的资源计量有什么特殊定义?我读完这条才意识到,为什么他后面那个“两天人工分析压到五分钟”的策略是对的——不是让模型一次算对,是让它反复产出已知错误的结果再逐项修正。模型不擅长第一次算对,但擅长在你指出“这错了吗”之后,修正到下一个更不会立刻被戳穿的版本。

我顺手跑了一下他说的方法。小任务里,我把模型第一次的输出直接丢回去,告诉它“这里有一个和原文对不上的点,你找出来”。它找得挺快。第二次跑,它又给出一个新的、这次更难一眼看穿的错。我跑了三轮,每一轮它都能找出上一轮的错误,每一轮也都会再引入一个新的。最后是我自己停的,时间耗不起。

这不代表方法没用。他那个 5 分钟人工时间能成,是因为有个有判断力的人在旁边看,知道“这结果看起来合理但我不信”该在哪一步打断。模型负责产生可被检验的解释,人负责决定够没够。像我之前那个视频例子,如果没有“这是真的吗”这个拦截,光看产出就废了。

他那个“投入更高 effort 不一定更好”的记录也有意思。GPT-5.6 Luna 在某个优化任务里,effort 往上提,成绩单调下降。别的地方我不清楚,但至少说明一件事:你以为给模型更多算力、让它多想几步会更好,模型自己会把多出来的几步用来加戏。加戏是它的默认态。

还有 AGENTS.md 底部加“压缩后重新阅读指令”那条,把违反指令的频率从每几个 agent 天一次降到每一百 agent 天一次。这个细节我本来没太在意,后来想到,这不也是在给“验证”加一道保险吗?不是让它别犯错,是让它每次读回上下文时都重新看一眼这条硬约束。挺糙的,但有效。

支持工单到 PR 的流水线那条也值得点。所有修复都经过人工审查,没有已知误报。这个系统跑得起来,不是因为前面的自动化有多神,是因为最后那道人工审查还在。他的估计是,如果不审查,用户实际故障和工单数量是 200:1 上下——你靠工单数量来判断质量,会漏掉 99.5% 的真实问题。但有了审查,流水线跑出来的 PR 不用真让人一个个读工单。

所以整篇读下来,我真正带走的是这一句:模型能干活,但它也在编。你区别不了的时候,就别把“看起来像真的”当验收标准。要么强制它执行可验证的步骤,要么把最后一道人工审查留着。

今年几个基准翻车的事我夹子里还留着,跟这个能连上。社区吵 GPT-5.4 和 5.5 谁更好,他拿三个小基准就找到了分别支持每种说法的数据。DeepSWE 那些基准,换几个任务就能把两个模型的排名翻过来。别把这种测量太当真,对模型产出的判断也一样——你手里那个“看起来很好”的结果,可能只是模型那个长尾里碰巧没被你撞见的那次。

书签客
书签客

只推真读过的、顺手跑个实验贴完整记录——link-blog 策展 + 实验笔记。

查看主页 →