对回答本身的检查
回答发出之前要过的那几道检查——每一道拦的是什么、多久响一次,以及为什么"经常响"的检查是 bug 而不是尽责。
检索决定模型能看到什么。这一页讲的是它写完之后的事:最后一个字生成完,到答案出现在别人屏幕上,中间的那一刻。
这一层之所以存在,来自一个不太舒服的观察:提示词里的规则只是一个请求。 你可以在每一轮的开头写上"绝不给出材料里没有的数字",多数轮次会照办,而没照办的那几轮,恰恰是一个细心的读者本来能看出来的。所以真正管用的规则不写成请求,而写成对成品文本的检查——在代码里跑,那句话要么在材料里,要么不在。
一道检查的形状
这里每一道检查都由三部分组成,顺序固定,而顺序正是它便宜的原因:
- 确定性前置。 对刚写出来的回答做字符串和模式匹配——不打模型、不走网络。绝大多数时候它说"没有这个形状",检查就此结束。
- 命中之后才花的那一次抽取调用。 让模型从材料里逐字抄出句子——不让它判断,也不让它下结论。"把所有说明这件事准不准的句子抄出来"是一个可核对的问题;"这个回答对不对"不是。
- 判定回到代码。 抄出来的句子必须逐字出现在材料里才算数。少了这一步比对,判官可以编一句话,用它推翻一个正确的回答——这不是假设,正是那一步存在的原因。
经常响的检查是 bug。 这里有一道曾经靠"大写词后面跟一个代号"来判断回答有没有提到某个分级。在法规文字里,这个形状会撞上条款引用、货币代码、化学登记号、月份名——以及 within 这个词,比如"必须在 30 个工作日内提出申请"。它在 100 轮里响了 57 次,每响一次就是一次抽取调用加一次完整重答,而那些回答本来是对的。改成认真正的分级词之后,它响 4 次。命中率高的检查不是更尽责,是量错了对象,而且是在拿你的响应时间去量。
它们各自拦什么
每一道都是因为有一条不该发出去的回答发出去了才存在的。触发率是在存下来的真实回答上量的,而且刻意压得很低。
| 回答做了什么 | 为什么要紧 | 触发率 |
|---|---|---|
| 说材料明确允许或明确禁止某件事,而材料里没有这样一句话 | "材料里写着 X"是一句关于原文的断言,可以逐字核对 | 279 条里 2 条 |
| 答**"会被接受",而材料白纸黑字写着不会被接受** | 这是这个产品最糟的一种错:客户照着它去准备申报,然后被退回 | 300 条里 1 条 |
| 给出一个在任何召回片段里都找不到的数字 | 一个旁边带着引注的数字,是智能体能给出的最有说服力的错误 | — |
| 给了数字却没说是哪个法域,而材料全部来自同一个法域 | 各国费率和时限不同,一个不带归属的数字会被用错地方 | — |
| 引的是唯一那片出自别的文件的材料,而问题点名的是另一份 | 两份文件常有措辞几乎一样的条目,而措辞更像的往往是错的那一份 | 399 条里 2 条 |
| 引了材料里的例外条款,然后用一般惯例把它推翻 | 材料读对了,又被论证掉了 | 109 条里 1 条 |
| 整段回答就是一次工具调用,而不是一个答案 | 原始调用语法绝不能到达读者——见在开源模型上运行 | — |
表里的破折号不是省略。那几道检查早于这里说的这套测量纪律,触发率没有按同一种方式数过;把它们列出来是因为它们确实在跑,而不是因为能引一个数字。
命中之后会发生什么
带着同一份材料重答一次,外加一句说明第一次错在哪。 不是删掉,也不是换成一句道歉。
这是刻意的选择。能回答这个问题的材料通常还在那儿——第一次是够过去了、读了相邻那一行、或者含糊其辞。拿同样的片段重答能把它捞回来,拒答不能。
那句纠正词遵守一条用学费换来的规矩:它只说这一轮要交出什么,绝不说不要做什么。 早先有一版纠正词把不该有的格式用三个例子摆了出来,然后请模型不要产出那种格式。它照着又写了一次,读者拿到的是一句道歉——而答案就在召回的材料里,一字不差。
只说"你错了"的纠正,往往什么都改变不了。 有一道检查拦的是"引了出自别的文件的那一片"。只这么告诉模型,它三次里三次照原样再答一遍——因为它自认为用的就是那份文件。真正起作用的是把它推不出来的那个对应关系给它:这几个片号出自你被问的那份文件,你引的那一片不是。 即便如此,它也只有大约三分之一的时候能改对。这道检查如实说明自己是"改善"而不是"解决"。
这一层不做什么
- 它不检查回答是不是真的。 它检查回答关于材料的断言是不是真的。这是两件事,而只有后一件在这里判得出来。
- 它在多数轮次不响。 这是设计目标。上面那些低触发率是设计的意义,不是它的局限。
- 它不能替代材料本身是对的。 如果能定这道题的那一片从来没被召回,任何对输出的检查都变不出它来。那是检索那一层的问题,在那里解决,或者根本不解决。
- 每一道检查都"判不出来就放行"。 抽取调用出错或者返回看不懂的东西,回答照原样发出去。一个会因为后端变慢而挡住回答的校验层,比它要防的那件事更糟。