你请模型查一位研究者的论文。它给出作者、标题、年份和一条像真的链接,语气毫不犹豫;打开链接却没有这篇文章。最麻烦的地方不是它答错,而是它没有把“我知道”“我推测”和“我没有证据”分开。
本章要解决三个不同问题:错误从哪里来,模型说的把握有多可信,以及少回答一些问题究竟换来了什么。我们会用十条教学答案亲手分桶,再核对选择性回答的两个分母。先修只需理解生成概率、数据分布与上一章的核验问题。
1.先分清错在哪里,再决定怎么补
“幻觉”没有覆盖所有研究的唯一口径。本章指模型给出貌似可信、实际不正确或缺乏所需依据的内容。它不意味着模型真的产生了人的感知体验,也不意味着每次错误都是故意说谎。
第一类是知识缺口。某个事实太新、太少见,或者根本没有进入训练材料,模型仍按熟悉的语言形式续写。论文标题的句式学得很好,并不意味着它掌握了这个标题对应的真实论文。
第二类是证据缺口。用户问“我们这份合同的取消期限”,模型可能知道常见合同写法,却没有读到实际条款。即使猜中的日期恰好正确,也没有完成“依据这份合同回答”的任务。事实正确与证据充分是相关但不同的评价轴。
第三类是生成或推理出错。资料已写明周四,模型摘要成周五;表格数字都看见了,加总却算错;原文只说部分情况,它扩展为全部情况。增加更多资料未必能解决这些错误,甚至可能引入更多干扰。
第四类是任务本身不完整。题目问“他什么时候回来”,却没交代“他”是谁。此时补一个最常见的名字,并不比询问更聪明。系统应识别缺少的条件,让问题变得可回答。
这些类别可能重叠,但诊断有用:知识过时需要现行来源;证据没取到需要检索;计算失误需要可靠计算和核对;条件含糊需要澄清。不能把所有问题都交给“再想一遍”,更不能因为回答写得更长,就认定它已被核验。
2.下一token概率为何不是整段答案的正确率
第4章介绍的概率回答的是:在当前前缀下,下一个token多大可能出现。它学习的是数据中的语言规律,而“这句话是否真实”是另一个事件。高概率可以来自常见措辞、训练材料的重复,或者一个广泛流传的错误。
设模型很确定论文标题应以“Towards”开头,这不说明后面的论文确实存在。反过来,一个罕见但正确的专有名词,也可能得到较低的token概率。直接把若干token概率相乘,还会受到句子长短和写法影响,不能当成通用事实置信度。
模型输出“我有90%的把握”,同样是生成的文本。这个数可能携带有用信号,也可能受到提示格式、训练习惯和迎合倾向影响。只有把它和大量可判定的真实结果对照,才能知道90%有没有接近九成正确的含义。
关于模型自我评估的研究发现,部分设置下可以提取有用的正确性判断,但跨到新任务时校准会变差。这支持“可以研究和验证信号”,不支持“自报百分比天然可靠”。语言模型自我评估研究
因此要明确置信度的对象:是最终答案完全正确的概率,某一个字段正确的概率,还是找到相关资料的概率?把“来源可信度90%”贴在整段结论上,会把尚未验证的推理步骤一起包进去。
3.校准:说八成的那一组,是否真的约八成正确
校准是概率承诺与实际频率之间的关系。假如系统在许多相似条件下,对一批答案都给出80%的正确概率,那么这批答案中应大约有80%正确。它不是承诺每十条必定恰好八条正确,也不能告诉你其中哪一条会错。
准确率与校准并非同一个指标。一个系统每次都报60%,长期恰好答对60%,可以在整体上校准,却没有能力区分哪道题危险。另一个系统能把难题排在后面,但习惯把70%的实际正确率报成95%,排序有用,概率刻度却不可信。
神经网络校准研究常用“可靠性图”:横轴放平均预测把握,纵轴放实际正确率;落在对角线上表示两者相等。对角线下面是过度自信,上面是偏保守。相关研究也讨论用独立数据重新调整概率刻度,但分类任务的结论不能无条件搬到自由生成答案上。神经网络校准原论文
下面只做教学演练。十道题都有事先确定的标准答案;先记录模型自报把握,再揭示判分。“对”记1,“错”记0,不给含糊答案随意加半分:
- 第1至4条:95%对、90%对、85%错、80%对
- 第5至8条:70%对、65%错、60%对、55%错
- 第9至10条:40%对、30%错
事先分成三个桶:低于50%,50%到不足80%,80%及以上。高把握桶有四条,平均把握是(95+90+85+80)÷4=87.5%,实际正确率是3÷4=75%。两者差12.5个百分点,表现为过度自信。
中间桶也是四条,平均62.5%,实际2÷4=50%,同样高估12.5个百分点。低把握桶有两条,平均35%,实际1÷2=50%,则低估15个百分点。

图1|十条答案的分桶与可靠性图。三个点分别为(35%,50%)、(62.5%,50%)、(87.5%,75%);点旁保留样本数2、4、4,避免把小样本波动当成稳定规律。
十条合起来,平均把握67%,准确率60%,看起来只差7个百分点。但高估与低估会抵消。若把每个桶的差取绝对值,再按桶大小加权,得到0.4×12.5+0.4×12.5+0.2×15=13个百分点。这是一种分桶校准误差的教学算法,分桶方式不同,数也可能不同。
不要从这十条推断某个真实模型“校准误差就是13%”。每桶只有两到四条,换一道题即可大幅改变结果。这个实验教你核对概率刻度,真正评价还需要更多独立样本、明确任务范围,以及没有拿测试答案反复调过的规则。
如果要修正概率刻度,应使用单独的校准数据。例如在一批开发样本里,原先报九成的答案长期只有七成正确,可以学习一个把分数映射得更保守的规则,再到从未参与调整的测试集检查。这通常不改变原答案本身,所以可能改善概率诚实度,却没有增加知识或纠正事实。
用一条具体映射辨认改了什么。假设某个开发阶段提出q=0.8p+0.05,p是原把握,q是新把握,两者都用0到1表示。原来95%、90%、85%、80%分别变为81%、77%、73%、69%;四条答案的文字和“对、对、错、对”标签一字未动。因为这条映射严格单调递增,原有高低排序保持不变;如果仍使用80%这个数值门槛,四条中却只剩原95%那条可以回答。
这只是演示“刻度变化如何影响决策”的合成规则,不是拿十条样本拟合出的可靠校准器,也没有证明它让校准改善。一般校准方法未必严格保持排序。即使排序不变,继续沿用旧数字门槛,也是在使用不同的回答策略。
可以把数据职责分成三步:校准数据用于学映射;开发数据用于根据弃答与错误代价选择门槛;最后的留出测试只用于评价已固定的方案。前两项也可共同构成一个开发阶段,但必须说明两项都看过那些数据,不能再称其为独立测试。这与分别测试一个评分器的数值刻度、一个门槛的决策行为相似:检查概率承诺,不会自动纠正答案内容。
还要检查大桶是否掩盖差异。同报80%的普通题可能九成正确,同报80%的罕见题却只有七成;混合后刚好八成,不代表两个场景都可靠。系统换了语言、用户群、检索资料或模型版本,原来的刻度也可能失效,需要重新验证。
4.允许不答以后,两个分母必须分开
现在规定:只有自报把握至少80%才给出具体答案,其余暂不作答。这里的“拒答”更准确地说是弃答:因为证据或把握不足而暂停;它与涉及危险请求的安全拒绝不是同一回事。
十条中四条被回答,其中三条正确。覆盖率是回答数除以全部问题数,即4÷10=40%;选择性准确率是答对数除以已回答数,即3÷4=75%。一个分母是10,另一个是4。
如果写成“系统准确率75%,覆盖所有十道题”,就隐去了六道没回答的问题。相应地,选择性错误率是1÷4=25%,而错误答案占所有问题的比例是1÷10=10%。它们也不能互换。
将门槛提到90%,只剩前两条,覆盖率20%,选择性准确率100%。这个100%不代表系统已变成无所不知:它只答了两道题,另外八道还需要澄清、检索、人工处理或接受暂时无解。

图2|同一批十题按原始把握作答,实心圆为已答对,叉为已答错,空心圆为弃答。全部回答、80%、85%、90%门槛对应10答6对、4答3对、3答2对、2答2对;同一题始终在同一列,两个分母逐行可数。
再做一个反例:门槛从80%提到85%,会删掉第4条正确答案,留下三条中的两条正确,选择性准确率反而降到约66.7%。提高门槛一定减少或保持回答数,但若信心排序有误,不保证每一步都提高准确率。风险与覆盖率应在真实数据上共同测量。选择性分类研究
即便排序很好,选择性回答也有代价。如果被弃答的主要是少数语言、冷门地区或复杂用户,就可能让整体数字改善,同时把困难集中留给某些人。需要按重要群体和题型分别检查覆盖率,而不只报告一个平均值。
5.真实案例:为什么“多答对一点”也可能多错很多
OpenAI关于幻觉的官方说明给出一个SimpleQA比较:在其引用的测试条件下,gpt-5-thinking-mini的正确、错误、弃答比例分别为22%、26%、52%;o4-mini则为24%、75%、1%。这些比例都以全部问题为分母,三项相加各为100%。OpenAI:为什么语言模型会产生幻觉
如果只看正确率,24%略高于22%;加入另外两栏,就看见它同时给出了更多错误答案。这个案例不能证明某模型在所有任务上更好,也不能把这组历史测试数当成今天任意产品的表现。它说明报告奖励什么,会影响我们如何理解“进步”。
当答错与不答都记零分,猜一下仍有机会得分,评价就偏向猜测。改变评价方式,需要把正确、错误、弃答分开,或按实际后果设置收益。官方研究讨论的是这种激励与幻觉的关系,不是说一张排行榜直接在运行时控制模型。
回到教学任务,设答对得1分,答错损失4分,弃答得0分。如果正确概率确实是p,回答的平均收益是p×1+(1−p)×(−4)=5p−4。p表示正确的概率;1−p是错误概率。超过80%才有正收益,恰好80%则与弃答打平。
这个门槛来自我们人为规定的代价,不是普遍最佳设置。如果漏答也有严重后果,或者可以低成本请人核验,最优决策会变化。更关键的是,未经验证的自报80%不能直接代入,当作已经校准的真实概率。
6.“不知道”应该怎样变成有用的下一步
好用的弃答应说明缺什么,并把能确认的部分保留下来。例如:“通知给出了周五15点,但没有地点;需要查看后续邮件。”这比把整条通知都丢弃有用,也比编一个会议室可靠。
可以将回答拆成可核查的主张,逐条连接证据。一个链接只能证明网页存在,未必支持紧邻的数字;来源写的是“预计”,回答不能改成“已完成”。引用检查要核对内容、适用对象、版本和时间,而不只是链接能否打开。
检索与工具能提供新证据,但也增加新的失败点:搜到旧规定、抽错表格行、计算工具接到错误输入,最后仍会得到流畅的错误。核验时应问“什么外部观察会推翻这条答案”,避免只让同一模型换句话重述自己的判断。
实际改进可分三层。数据层包含缺信息、冲突资料和应当澄清的示范;评价层分别统计错误与弃答,验证信心排序;系统层保留来源、使用可靠计算、对高后果动作设置独立检查。哪一层出问题,就优先修哪一层。
同时要测试过度拒答:答案已经明确写在资料里,系统却一直说不确定,同样会妨碍使用。可靠性的目标是把可回答的问题答好,把不可回答的边界说明白,并让后续处理有路可走。
本章练习
题目
问题1|重新检查校准的平均数
高、中、低三个桶分别有4、4、2条;平均把握为87.5%、62.5%、35%,实际正确率为75%、50%、50%。计算各桶绝对差、按样本数加权的误差,并解释为什么它不等于整体平均把握67%与正确率60%的差。
问题2|门槛改变了谁
图2中把门槛从80%提到85%,回答数、答对数、覆盖率、选择性准确率分别变为多少?为什么门槛提高后准确率反而下降?
问题3|按代价作决定
沿用答对+1、答错−4、弃答0的收益。假设两个问题的正确概率已经可靠校准,分别为0.7和0.9。各自回答的期望收益是多少,应回答还是弃答?如果全部弃答,“已回答中的准确率”应记为什么?
思考提示
提示1|对应问题1
先在各桶内取绝对值,再加权。先把有正有负的差合起来,会发生什么?
提示2|对应问题2
找出被门槛排除的那一条,检查它原来是对还是错,再分别写清分母。
提示3|对应问题3
用5p−4与弃答的0比较。没有回答时,选择性准确率的分母是什么?
参考答案与解析
答案1|对应问题1
绝对差为12.5、12.5、15个百分点,加权为0.4×12.5+0.4×12.5+0.2×15=13个百分点。整体差只有7个百分点,是因为低桶低估与另两桶高估相抵消。它们衡量的对象不同;这三个小桶仍不足以支持真实模型的稳定校准结论。
答案2|对应问题2
保留95%、90%、85%三条,其中两条对:回答数3、答对数2,覆盖率3÷10=30%,选择性准确率2÷3≈66.7%。被删去的是80%且回答正确的第4条;门槛只按自报把握排序,没按真实标签排序,因此不保证每一步都提高已答准确率。
答案3|对应问题3
p=0.7时收益为−0.5,按本题收益应弃答;p=0.9时收益为0.5,应回答。若全部弃答,覆盖率为0,“已回答中的准确率”分母为0,应记为无定义,而非100%。这种选择依赖概率已校准及题设收益;不能把任意自报把握直接当成真实概率。
下一章
我们已经学会把“答得像真的”“自己有把握”“有证据支持”拆开。但即使指标名称正确,题目分布、采样预算和判分方法也能改变结论。下一章会拿两个同为70%的成绩,检查一个评测分数究竟能支持多大的判断。