☰
生成模型不确定性分解后的弃权闸门:失败含义与当天最小实验
2026/10/14 16:16:19 网站建设 项目流程

生成模型不确定性分解后的弃权闸门:失败含义与当天最小实验

千笔-AIWritePaper · https://www.aiwritepaper.com

上一篇事实核验闸门管的是「断言有没有可以打开的证据」。这篇往前挪一步,管「模型自己该不该开口」。在临床、法律、学术评审这类高风险场景里,一句自信的错话比一句「我不确定」代价高得多。问题在于,模型给出的置信分数往往说明不了它为什么不确定,也就没法决定接下来该弃权、该澄清,还是可以放行。

素材来自 Simons Institute for the Theory of Computing 频道 2026-10-09 发布的一场约 48 分钟的报告,题为What Kind of Hallucination Is This? Decomposing Uncertainty for Generative Models,讲者是法兰克福歌德大学的 Florian Buettner。下文对报告内容的转述都依据自动字幕意译,不编造原话,也不搬运报告里的任何实验数值。闸门实验用的是我构造的 12 条虚构种植样本,脚本和 CSV 在_w/uncertainty-abstain-gate/。

图:上排为三类判定信号及阈值;下排为基线与三类故障注入的放行、复核、弃权和错放结果。

目标说明

读完你应能独立完成五件事。

  1. 说清认知不确定和任意不确定的区别,以及各自对应的处理动作。
  2. 用三个信号把模型输出分成可弃权、须复核、可放行三档。
  3. 用种植样本测试闸门,记录错放的错误断言和被误拦的正确断言。
  4. 注入三类常见故障,看闸门会在哪里失守。
  5. 把阈值、样本和结果归档,换模型或换阈值时复跑。

适用与边界

适合高风险的生成式决策支持,比如给临床人员的建议、给审稿人的核查意见、给研究者的文献断言。只要错一句话会造成实际后果,就值得加这道闸门。

不该指望它做的事。它不能凭空算出不确定性,三个信号需要你用采样、集成或其他方法先估出来。它也不判断断言是否真实,真实性仍要靠上一篇的证据核验。

失败含义。闸门全过,只说明在这批种植样本上没有错放;种植样本覆盖不到的错误类型,闸门照样会漏。阈值 0.30、0.35、0.55 是示例,要在自己的验证集上重新定。

报告里的几个关键点

讲者从临床场景说起。模型给出幻觉或错误答案当然不好,更好的情况是模型能弃权,并且说清楚它在哪里、为什么不确定,这样临床人员才能有针对性地处理。他回顾了早年的一个现象,模型遇到严重偏离训练分布的图像时仍然给出很高的置信度,团队因此花了几年研究如何在分布偏移下保持置信度校准。

接着他指出,不确定并不总是模型的错,有时是问题本身有歧义。他举的例子是问「谁赢了世界大赛」,没有说是哪一年,合理答案就不止一个。所以要把总不确定拆开,任意不确定对应问题的歧义,认知不确定对应模型缺乏知识,后者才和幻觉直接相关。

具体做法上,他介绍了先让一个澄清模型列出问题可能的几种解读,再把每种解读交给目标模型多次采样,形成两阶段采样,然后在答案的嵌入上计算基于核的分数,把总不确定分解成两部分。评价方式是按不确定性从高到低去掉一部分样本,看剩余样本的准确率如何变化,这正对应实际使用时「不确定就弃权」的做法。他还提到一篇基准论文的结论,常见的度量未必真能区分两种不确定来源,不要假装一个分数同时捕捉了两件事。

这几点直接决定了闸门的设计,任意不确定高时去澄清,认知不确定高时去弃权,两种信号不能用一个总分替代。

闸门规则

信号阈值高风险时低风险时
认知不确定大于 0.30可弃权须复核
最差 token 置信小于 0.55可弃权须复核
任意不确定大于 0.35须复核(先澄清问题)须复核
以上均不触发可放行可放行

用最差 token 置信而不用平均置信,是因为一句话里往往只有一个关键数字或名字是编出来的,平均下来分数仍然很好看。

种植样本与故障注入

12 条样本里有 5 条是错误断言,分别对应高置信假断言、应弃权却强答、类型标错、只报分数不弃权、拿校准曲线当免责。另外 7 条是正确断言,其中两条带有较高的任意不确定。三类故障分别是关掉弃权阈值、用平均置信替代最差 token、把附带的解释文字当成校准证据直接放行。

baseline 放行=5 复核=3 弃权=4 错放=[] PASS no_threshold 放行=12 复核=0 弃权=0 错放=['O03', 'O04', 'O06', 'O08', 'O10'] FAIL mean_conf 放行=7 复核=2 弃权=3 错放=['O03', 'O10'] FAIL expl_as_calib 放行=9 复核=2 弃权=1 错放=['O04', 'O06', 'O08', 'O10'] FAIL baseline 代价: 正确但被拦=['O05', 'O11'] CSV rows: 48

逐条看。

  • 基线没有错放,代价是两条正确断言被送去复核,它们的任意不确定较高,送去澄清是合理的。
  • 关掉阈值后 12 条全部放行,5 条错误断言一条不落地出去了。
  • 换成平均置信后,O03 漏了出去。它平均置信 0.91,最差 token 只有 0.32,认知不确定又不高,只有最差 token 这一个信号能抓住它。
  • 把解释文字当证据后错放 4 条。带解释的输出读起来更可信,可解释写得好不好和答案对不对没有关系。

失败含义

故障错放失败含义修复动作
关掉阈值5 条闸门形同虚设阈值写进配置并有变更审批
平均置信2 条局部编造被平均掩盖固定用最差 token
解释当校准4 条文字可信度替代了统计证据解释只给人看,不进判定
基线误拦0 条错放,2 条正确被拦复核工作量增加用验证集调阈值

当天最小实验

  1. 10 分钟,从自己系统里挑 12 条历史输出,人工标注对错和风险等级。
  2. 10 分钟,为每条估出认知不确定、任意不确定和最差 token 置信,填进脚本的样本表。
  3. 5 分钟,跑uncertainty_abstain_gate.py,记录基线的错放与误拦。
  4. 5 分钟,依次注入三类故障,确认每一类都会出现错放,否则说明你的种植样本覆盖不够。

三个信号从哪里来

脚本里的三个数是人工填的,真用起来要自己估。最差 token 置信最容易拿,生成时保留每个 token 的概率,取关键片段里的最小值即可。认知不确定通常靠多次采样或集成来估,同一个问题采样多次,答案在语义上分歧越大,模型越可能不知道答案。报告里提到的集成和蒙特卡洛 dropout 都属于这一类思路。任意不确定要先处理歧义,用澄清步骤把问题拆成几种解读,解读之间答案差异大而每种解读内部答案稳定,说明不确定主要来自问题本身。

这三步都有成本,采样次数越多越准也越贵。高风险场景值得多采几次,低风险场景可以只看最差 token,超过阈值再补采样。

误区

  • 「置信度高就能放行」。O03 平均置信 0.91,仍然是错的。
  • 「一个不确定分数就够了」。总分分不清是问题有歧义还是模型不知道,处理动作完全不同。
  • 「附上解释更安全」。解释提升了读者的信任,没有提升答案的正确率。
  • 「弃权越多越安全」。弃权太多,用户会绕开系统,误拦率同样要监控。

歧义问题先澄清再回答

任意不确定高的时候,最好的动作通常是反问,而不是弃权。像「谁赢了世界大赛」这种问题,系统可以列出几种解读让用户选,再按选定的解读回答。这一步可以直接借用报告里澄清模型的思路,先让模型列出可能的解读,解读多于一种就进入澄清流程。澄清后再算一次不确定,认知不确定仍然高,才进入弃权。

阈值怎么定

阈值不要凭感觉定。准备一批标注过对错的验证样本,画出按不确定性逐步弃权时的剩余准确率曲线,在业务能接受的弃权比例上取阈值。高风险和低风险场景各定一套,写进配置文件并纳入版本管理。换模型、换采样温度、换提示模板,都要重画曲线,因为不确定估计会跟着变。

总结

弃权闸门的关键在于分清不确定的来源。任意不确定指向问题本身,处理办法是澄清;认知不确定指向模型知识的缺口,处理办法是弃权或交给人。最差 token 置信能抓住被平均掩盖的局部编造,解释文字则不该进入判定。12 条种植样本和三类故障注入跑一遍不到半小时,能直接看到闸门会在哪里失守。闸门规则和复跑记录整理成文档时,可以交给千笔-AIWritePaper 统一排版归档。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询