模型被允许做什么
在一个公开的统计页面顶部,这里可能有两三句话,描述这个计数器本月做了什么。它们是一个语言模型写的。模型在这里什么也不编造,而让这句话成立的那套安排值得描述一番——因为搭建这个功能的显而易见的做法,并不具备这个性质。
树莓派跑 SQL,决定哪个数字值得一提,然后写提示。模型把一个事实变成一句所要语言的话。之后树莓派把回答读回来,只要里面有一位数字不是来自提示,就把它扔掉。
所以模型唯一的自由是措辞。它不挑选,不计算,不取整。它贡献的恰恰是模板做不到的那件事:十一种读起来像语言的语言。
三道检查,以及每一道所针对的那次失败
没有一道是出于谨慎写下的。每一道之所以存在,是因为 2026 年 8 月 17 日有件具体的事出了错。一个小模型拿到了关于某个计数器的两个事实——最强的星期是周一,占 46 %;以及 76 % 的访客来自波兰,共 5 个国家——然后写出了一句话,说最强的是周三,而 46 % 的访客来自波兰。
一句话里两处不同的错误,而且哪一处都不是编造出来的数字。
- 每一位数字都必须出现在提示里。这抓的是编造的数字。它有一个后来很容易弄坏的推论:提示里的指令部分一个数字也不含。那里写的是「one or two sentences」,绝不写「1-2」,否则 1 和 2 就成了回答里被允许的数字。
- 每个事实一条提示。这抓的是张冠李戴的数字。上面那个 46 是真的——它只是属于另一个事实,而对数字集合做的检查看不出这一点。如果模型每次只看见一个事实,就没有什么可对调的。
- 名称也要检查。这抓的是周一变成周三。名称以目标语言写在事实里,必须原样出现在回答中,而它的同类不得出现。
它们抓不到什么
这一点该和其余内容一口气说完。有两样东西会漏过去。
一句不用数字却说了假话的话——明明是 46 % 却说「大多数访客」——三道检查一道也抓不到。吸收掉它的是结构本身:判断早就在树莓派挑出来的那个事实里,而不在模型的自由里。
还有一句说的是跟它的事实完全不同的主题、但数字对得上的话,也会漏过去。对付这个只能靠一个听指令的模型。对于带名称的特征——星期、设备、机器人、页面——第三道检查会额外覆盖。
一套只抓编造数字的核对,会原封不动地放过上面那句话。那是真数字放错了地方,而这种失败方式只有盯着输出、而不是盯着想法,才看得见。
广告