结果校验的最后一层,也是最难的一层:意思到底对不对。格式再漂亮、来源再可信,回答不了「这个结论本身成立吗」。这一层有个从软件测试借来的名字,叫 Test Oracle——大白话就是「检验答案对错的那个判官」。原书作者给它起了个更直观的名字:环境法则——把结果放回它所声称的环境里,看它能不能立住。
为什么这是核心挑战
软件测试里,Test Oracle 是经典难题:程序算出一个结果,你拿什么判断它对不对?对 AI 来说这个问题被放大了一百倍,因为 AI 什么都生成——文章、方案、代码、数字——每一样都要有个判官。语义能不能形式化地表示出来、能不能在环境里验证,是现在 AI 做所有事情的核心挑战。
判官的五种形态
好消息是,很多领域早就造好了判官,拿来就用:
一、代回去。解方程、做选择题,把答案代回原题验证。AI 说它算出了 x=7,你把 7 代进方程,两边不相等——错。这一手零成本,却很少有人做。
二、逆运算。质数分解,乘回去看对不对。AI 说 1234321 = 1111 × 1111,乘一遍就知道。凡是有逆运算的事,验证都比生成容易——这是数学送给我们的免费判官。
三、单元测试对代码。AI 写的代码,让它配套写单元测试,再跑起来看通不通过。注意测试也要查——测试和代码都是它写的,有可能测试本身就被写成了「一定能过」的样子。
四、定理和规则。用领域里的定理、规则做验证,保证螺母和螺栓能匹配。物理题的量纲对不对、会计报表的借贷平不平、设计稿的尺寸合不合规范——每个行当都有自己的硬约束,它们全是现成的判官。
五、覆盖率。软件测试里,需求和代码能不能对上、改动之后跑一遍 pick test(挑出受影响的测试重跑,大白话就是「改了哪里就重点查哪里」),看行覆盖率、代码覆盖率——改动有没有被测试覆盖到。一致性、特殊值对不对,都属于这一类。
对抗测试:让它自己打自己
还有一类更主动的判官:对抗测试——故意制造一个校验场面,让两份产物互相咬。经典例子:页面改了但规格说明书没改,怎么发现?让 AI 拿说明书生成一份 HTML,和真实页面比对——有差异,就说明说明书过时了,反过来修说明书。两份东西互为判官,不一致的地方就是问题所在。
环境法则的总思路就一句话:凡是能「代回去、乘回去、跑一遍、对一下」的,绝不用肉眼判断。验证比生成容易,是这个时代最该被利用的不对称。
没有判官的领域怎么办
数学、代码、物理有硬判官,但「这份方案好不好」「这段话得不得体」没有。弱一点的领域里,判官只能降级——其中最常见的一种,是让另一个 AI 来当裁判。这招有用,但坑极多,值得单独一章。下一章就讲:让 AI 评 AI,怎么评才不算瞎评。