——要求模型自报置信度的人工复核技巧与工程化落地路径
关键词:置信度校准 · 幻觉检测 · 人工复核 · 温度缩放 · 一致性采样 · 风险分级
摘要
大语言模型最危险的失效模式不是"答错",而是"错得理直气壮"。当模型在事实性问题上给出流畅、结构完整却完全虚构的答案时,使用者往往因为语言的自信而放松警惕。工程上一条被广泛采用的缓解手段,是直接追问模型"你有多大把握",用自报置信度作为人工复核的触发器。
但这条路并不平坦:模型的口头置信度普遍存在系统性高估,且对提示措辞高度敏感。本文以"置信度校准"为贯穿全文的独创性主线,把"追问把握"从一个直觉技巧,拆解为可测量、可校准、可编排的工程流水线。文章依次讨论:自报置信度为何失效(机理层)、如何规范采集(数据层)、如何量化评估(指标层)、如何校准与融合(算法层)、如何嵌入人工复核SOP(流程层),最后给出前沿预判与可复现的提示词模板。
本文评述:把"你有多大把握"当成一个信号采集接口而非"真相开关",是理解全部技巧的前提。置信度本身不产生正确性,它只产生"该不该让人来看一眼"的排序信息——这一点想清楚,后面所有工程决策都会顺理成章。
目录
一、问题的提出:为什么"自信的胡说"比"明显的错误"更危险
先把场景说清楚。假设你在做一个法律、医疗或金融领域的问答助手,用户问"某条法规的生效日期"。模型回答:"该法规于 2019 年 3 月 1 日生效。"语气笃定、格式规范、还顺手补了一句立法背景。问题在于,这个日期可能是编的。用户如果没有能力核实,就会把它当成事实使用。
这类现象在学术界通常被称为幻觉(hallucination)。Ji 等人在 2023 年发表于 ACM Computing Surveys 的综述《Survey of Hallucination in Natural Language Generation》中,把幻觉区分为"与输入矛盾"和"与事实矛盾"两大类,并指出其根源既包括数据与训练目标,也包括解码策略。本文评述:这篇综述的价值在于把幻觉从"偶发 bug"重新定义为"生成式模型的固有倾向"——模型的目标是生成高概率的续写,而不是生成可验证的真命题,这两者在开放域问题上并不等价。
1.1 危险的不是错误率,而是"错误与自信的耦合"
很多团队在评估模型时会看准确率:80% 正确率听起来还行。但真正决定用户体验和业务风险的,是错误答案的置信度分布。如果模型答错时总是犹犹豫豫("我不太确定,可能是……"),用户会自然警觉;如果模型答错时和答对时一样斩钉截铁,那么错误率哪怕只有 5%,在长尾场景里也会造成实际损害。
Kadavath 等人在 2022 年的预印本《Language Models (Mostly) Know What They Know》中系统研究了这一点。他们让模型对"某道题自己能否答对"做自我评估,发现较大模型在"知道自己不知道"这件事上表现出一定能力:在多项选择题上,模型自评的 P(True) 与真实正确率存在正相关。但同一研究也指出,这种能力在分布外问题上会显著退化。本文评述:这项工作的关键贡献不是"模型能自省",而是"自省能力随规模出现且不稳定"——它给了我们一个可用的信号,但绝不是一个可信的开关。
1.2 人工复核的经济学:把"人看全部"变成"人看该看的"
从工程视角看,人工复核是一种稀缺资源。假设一个系统每天产生 1 万条回答,全量人工复核在成本上不可行;但如果能用一个信号把最可疑的 10% 挑出来,让复核员优先处理,就能在相同人力下把风险敞口压缩一个数量级。这正是置信度信号的核心价值:它不是用来判断对错的,而是用来做优先级排序的。
这里可以借用信息检索里的"风险-覆盖(risk-coverage)"框架:系统可以选择对一部分样本"弃权"(交给人工),覆盖率越低,剩余自动回答的平均风险应越低。一个理想的置信度信号,应该让"弃权"这个动作精准命中高风险样本。本文评述:把置信度问题重新表述为"选择性预测(selective prediction)"问题,是本文认为最有工程价值的一次视角转换——它把玄学的"模型有没有把握"变成了可优化的目标函数。
1.3 本文的分析主线
基于以上,本文确立一条贯穿全文的主线:"追问把握"是一个信号采集与校准问题,而不是一个真值判定问题。围绕这条主线,后文将依次回答五个工程问题——信号从哪来(采集)、信号准不准(评估)、信号怎么修(校准)、信号怎么用(流程)、信号怎么演进(前沿)。每一节都尽量给出可操作的步骤,而不是停留在概念层面。
二、机理剖析:自报置信度为什么会系统性失真
在动手写提示词之前,必须先理解为什么"你有多大把握"这句话本身是有问题的。否则你会不断在提示词上打补丁,却始终得不到稳定信号。
2.1 训练目标决定了模型没有"校准"的动机
主流大模型的预训练目标是自回归的下一词预测,指令微调阶段用的是人类偏好对齐(如 RLHF)。这两个阶段都没有显式地优化"输出概率与真实正确率的一致性"。换句话说,模型被训练成"生成人类喜欢的回答",而不是"生成校准良好的概率"。一个流畅、确定的回答在人类标注中往往得分更高,这就在偏好层面鼓励了过度自信。
Guo 等人在 2017 年 ICML 的经典工作《On Calibration of Modern Neural Networks》中早已发现:现代深度网络相比早期模型,校准性反而变差,表现为系统性过度自信,而温度缩放(temperature scaling)是一种简单有效的后处理修正。本文评述:这项 2017 年的结论在大模型时代依然成立,甚至更严重——因为语言模型的输出空间是开放词表,校准问题从"分类概率"扩展到了"序列级置信度",难度更高。
2.2 口头置信度的三个失真来源
当模型用自然语言回答"我有 90% 把握"时,这个数字至少受到三重污染:
- 语言先验污染:训练语料中"我很有把握"这类表述常出现在需要说服对方的语境里,模型学到的是"表达确定"这一语用功能,而非真实概率。
- 提示敏感性:同一问题问"你有多大把握"和"请给出 0-100 的置信分",得到的分布可能完全不同。Xiong 等人在 2023 年 ACL 的《Can LLMs Express Their Uncertainty?》中系统比较了多种置信度引出方式,发现口头化置信度对提示措辞和格式极其敏感,且整体校准性弱于基于 token 概率的方法。
- 锚定效应:如果提示词里出现"请给出 0-100 的分数",模型倾向于在中间值附近聚集;如果示例里全是高置信,模型会跟着偏高。这是典型的上下文锚定。
本文评述:把这三个来源分开看很有必要——它们对应三种不同的修复手段:语言先验污染要靠"改问法"(用概率而非形容词),提示敏感性要靠"固定模板+多次采样",锚定效应要靠"去掉示例中的数值暗示"。混在一起谈,就会觉得"追问把握根本没用"。
2.3 一个容易忽略的陷阱:置信度与正确性的"错位"
即使模型能给出一个校准良好的置信度,也可能出现"高置信但错误"的样本。这类样本通常来自两类问题:一是训练数据中存在的系统性错误(模型学到了错误事实并很自信),二是问题本身存在歧义(模型按自己的理解回答,自信但偏离用户意图)。
这意味着,置信度信号只能降低风险,不能消除风险。工程上必须保留一定比例的低置信度样本进入人工复核,同时也要对高置信度样本做抽样审计。本文认为,把置信度当作"唯一防线"是危险的,它应该和检索增强、工具调用、输出结构校验等手段组成纵深防御。
三、采集路径:口头置信度与对数概率的两条技术路线
信号采集是整条流水线的入口。工程上主要有两条路线,各有适用场景,实践中往往是组合使用。
3.1 路线 A:口头化置信度(Verbalized Confidence)
做法是直接在提示词里要求模型输出一个置信度数值或等级。优点是实现简单、不依赖模型 API 暴露 logprobs、对闭源模型友好。缺点是前面提到的三类失真。
工程上提升口头置信度质量的关键技巧有三条:
- 先答后评:让模型先给出答案,再单独一轮评估置信度,避免"边答边评"导致的自我一致性偏差。
- 离散化:用"高/中/低"三档替代 0-100 连续分,减少数值锚定,也更贴近人工复核的分档需求。
- 要求给出理由:让模型说明"哪些部分我不确定",这既提供了额外信号,也迫使模型做一次内部一致性检查。
Lin 等人在 2022 年 EMNLP 的《Teaching Models to Express Their Uncertainty in Words》中提出用校准训练让模型学会用"我很确定/我不确定"这类词表达不确定性,并报告了在分布内问题上的改善。本文评述:这项工作说明口头置信度是可以被"训练"得更好的,但它依赖对模型本身的微调,对大多数只调用 API 的团队不可行——因此工程上更现实的路径是"提示词工程 + 后处理校准"。
3.2 路线 B:基于对数概率的置信度
如果 API 暴露 logprobs(如部分 OpenAI 接口、多数开源模型),可以直接读取答案 token 的对数概率,用序列级聚合得到置信度。常见聚合方式有:
本文评述:从工程经验看,"最小对数概率"在事实性问答里往往比"平均对数概率"更敏感——因为模型编造一个具体数字时,那个数字 token 的概率通常明显偏低,而周围的连接词概率很高,取平均会把信号稀释掉。建议把两者都算出来,作为两个独立特征进入融合模型。
3.3 路线 C(补充):一致性采样
第三条路线不依赖模型自报,而是对同一问题做多次采样(temperature > 0),统计答案的一致性。Wang 等人在 2022 年 ICLR 的《Self-Consistency Improves Chain of Thought Reasoning》中提出用多数投票提升推理准确率;同一思想反过来用——如果多次采样答案发散,说明模型对该问题不稳定,应降低置信度。
具体做法:对同一问题采样 N=5~10 次,把答案做语义聚类(可用嵌入相似度或规则归一化),用最大簇占比作为一致性分数。本文评述:一致性采样是三条路线里最"贵"但最稳的,因为它测量的是模型行为的稳定性而非自我报告。在成本敏感场景,可以对高价值问题才启用,或对口头置信度处于中间档的样本做二次采样。
四、评估指标:ECE、Brier、AUROC 与风险-覆盖曲线
采集到信号后,必须有一套指标回答"这个信号到底好不好用"。这里要区分两类目标:校准性(calibration)和区分性(discrimination)。前者问"说 80% 把握时,真的对了 80% 吗";后者问"能不能把对的和错的分开"。
4.1 校准性指标
ECE 由 Naeini 等人在 2015 年提出(贝叶斯分箱校准),后来成为校准评估的事实标准。本文评述:ECE 有一个常被忽视的坑——它对分桶策略和样本量很敏感,小样本下容易给出乐观估计。工程上建议同时报告 ECE 和 Brier,并对分桶数做敏感性分析(比如 10 桶和 15 桶各算一遍)。
4.2 区分性指标与风险-覆盖曲线
区分性用 AUROC(ROC 曲线下面积)衡量:把"错误"当作正类,置信度当作打分,AUROC 越高说明置信度越能把错误挑出来。但 AUROC 有一个工程上的缺陷:它不关心阈值,而实际部署必须选一个阈值。因此更贴近业务的指标是风险-覆盖曲线:横轴是自动回答的覆盖率,纵轴是这部分样本的错误率,曲线越靠左下越好。
举例说明(以下为模拟数据,用于演示读图方式):假设某系统整体错误率 8%,若按置信度从高到低排序,覆盖前 70% 的样本错误率降到 2%,覆盖前 50% 降到 0.8%。那么业务上就可以决策:"把 30% 的低置信样本转人工,自动回答部分的错误率控制在 2% 以内。"本文评述:风险-覆盖曲线是本文最推荐向业务方汇报的图,因为它直接对应"要花多少人力、换来多少风险下降"的决策语言。
4.3 数据集与预处理:评估的地基
评估置信度需要"有标注正确性"的数据集。常用来源包括:TriviaQA、Natural Questions、HotpotQA 等问答数据集,以及各类事实核查数据集。这些数据集原本不是为校准评估设计的,使用时需要预处理:
- 答案归一化:把日期、数字、实体统一格式(如"2019-03-01"),避免因格式差异误判为错误。
- 别名合并:同一实体的不同写法(如"纽约市"与"New York City")合并为同一标签。
- 构建拒答选项:对无法从给定上下文回答的问题,标注为"应拒答",用于评估模型是否会在该拒答时仍然自信作答。
- 划分校准集与测试集:校准参数(如温度)必须在校准集上拟合,在独立测试集上报告指标,防止过拟合。
本文评述:很多团队在校准上犯的最大错误,就是拿同一批数据既拟合温度又报告 ECE,结果得到一个漂亮但无意义的数字。校准集与测试集必须严格分离,这一点和传统机器学习没有区别。
五、校准方法:温度缩放、一致性采样与多信号融合
有了信号和指标,接下来是"修"。校准方法从简单到复杂可以分为三层。
5.1 第一层:温度缩放(Temperature Scaling)
温度缩放是最经典的后处理校准:在 softmax 前把 logits 除以温度 T,用校准集拟合 T 使 ECE 最小。T>1 会软化分布、降低过度自信。Guo 等人 2017 年的工作证明它在深度网络上简单有效,且不改变预测类别(只改概率)。
在大模型场景下,如果只能拿到 logprobs,可以近似地对序列级置信度做单调映射(如 Platt scaling 或等渗回归)。本文评述:温度缩放的前提是"过度自信是单调的",而大模型的失真往往不是单调的——低置信区间可能反而被低估。因此实践中建议先画可靠性图(reliability diagram)看形状,再决定用温度缩放还是等渗回归。
5.2 第二层:一致性采样与语义熵
Kuhn 等人在 2023 年 ICLR 的《Semantic Uncertainty》中提出"语义熵":对多次采样得到的答案按语义聚类,计算聚类分布的熵,作为不确定性度量。熵越高,说明模型在语义层面越不确定。本文评述:语义熵相比 token 级熵的优势在于它抓住了"换个说法但意思相同"这一现象——token 级熵会把同义改写误判为高不确定性,而语义熵不会。
工程实现上,语义聚类可以用句向量模型(如 Sentence-BERT 系列)加阈值聚类,也可以用轻量规则(对短答案做归一化后精确匹配)。成本上,N 次采样意味着 N 倍推理开销,因此建议只对中高风险样本启用。
5.3 第三层:多信号融合
实际系统里,单一信号往往不够。可以把以下特征拼成一个向量,训练一个轻量分类器(如逻辑回归或梯度提升树)预测"答案是否错误":
- 口头置信度(离散档位)
- 平均/最小对数概率
- 一致性采样的一致率
- 答案长度、是否包含具体数字/日期
- 是否引用了检索到的文档(检索增强场景)
- 问题类型(事实型/观点型/计算型)
本文评述:融合模型的价值不在于提升多少 AUROC,而在于可解释性——你可以看到哪个特征贡献最大,从而针对性优化。但要注意,融合模型本身也需要校准集训练和独立测试集评估,否则只是把过拟合从一层搬到另一层。
5.4 一个常被忽略的维度:拒答能力
校准的目标不只是"给对概率",还包括"在不知道时说不确定"。一个校准良好的系统,应该在低置信时主动表达不确定或拒答,而不是硬答。这需要在提示词和流程两个层面同时设计:提示词层面明确允许"无法确定"作为合法输出;流程层面把"拒答"映射到人工复核队列,而不是直接返回给用户。本文认为,拒答率应该作为一个一等指标被监控,因为它直接反映系统的"自知之明"。
六、工程落地:三档复核 SOP 与阈值调参流程
前面都是"造信号",这一节讲"用信号"。核心是把连续的置信度映射到离散的处置动作。
6.1 三档复核 SOP
本文评述:三档的边界不应拍脑袋定,而应由风险-覆盖曲线反推。具体做法是:先确定业务能承受的自动回答错误率上限(比如 2%),在曲线上找到对应的覆盖率,再据此确定阈值。这样阈值就有了业务含义,而不是一个魔法数字。
6.2 阈值调参流程(可复现步骤)
- 准备评估集:至少 500 条带正确性标注的样本,覆盖主要业务问题类型。
- 采集信号:对每条样本记录口头置信度、logprob 聚合值、一致性分数。
- 拟合校准:在校准集上拟合温度/等渗映射,输出校准后置信度。
- 画风险-覆盖曲线:按校准置信度排序,计算不同覆盖率下的错误率。
- 选阈值:根据业务错误率上限确定高/中/低分界。
- 上线监控:持续记录各档位的实际错误率,若偏离预期超过阈值则触发重新校准。
本文评述:第 6 步最容易被忽略。模型版本更新、提示词改动、业务问题分布漂移,都会让原本的校准失效。建议把"校准漂移"作为一个常规监控项,比如每周计算一次 ECE,超过基线 1.5 倍就告警。
6.3 人工复核界面设计要点
复核效率很大程度上取决于界面。几个实践要点:把模型答案、置信度、模型自述的不确定点、以及检索到的原文并列展示;提供"正确/错误/无法判断"三键快速标注;记录复核耗时,用于评估复核成本。本文认为,复核数据本身是宝贵的校准资产——它持续产出"模型答案 + 人工判定"的配对,可以用来迭代校准模型。
七、提示词工程:可复现的置信度采集模板
下面给出两个可直接使用的模板。注意:模板是起点,不是终点,必须用自己的评估集验证效果。
7.1 两轮式口头置信度模板
【第一轮:作答】
请回答下面的问题。如果信息不足以给出确定答案,请明确说明"无法确定"。
问题:{question}
【第二轮:自评】
针对你刚才给出的答案,请完成以下自评,严格按格式输出:
1. 置信档位:高 / 中 / 低
2. 不确定点:列出答案中你不确定的具体部分(如某个日期、某个数字)
3. 依据:说明你的判断依据来自常识、推理还是记忆
4. 若置信为"低",请给出一个你认为更可能正确的替代答案
本文评述:把"不确定点"单独列出来,是这套模板里最有价值的设计。它把笼统的置信度拆成了可定位的风险点,复核员可以直接跳到可疑片段,而不是重读整段答案。实践中这一条能显著缩短复核时间。
7.2 一致性采样模板
请回答下面的问题,只输出最终答案,不要解释。
问题:{question}
(对同一问题以 temperature=0.7 采样 5 次,对答案做归一化后统计一致率)
一致率计算建议:短答案(实体、数字、日期)用归一化后精确匹配;长答案用句向量相似度聚类,取最大簇占比。本文评述:一致率与口头置信度往往互补——口头置信度捕捉"模型自我认知",一致率捕捉"模型行为稳定性",两者都低时风险最高,应优先复核。
7.3 拓展学习资源
- Hugging Face 官方博客关于 LLM 不确定性与校准的教程:https://huggingface.co/blog
- OpenAI Cookbook 中关于 logprobs 使用的示例:https://cookbook.openai.com
- DeepMind 关于语言模型不确定性的公开研究页面:https://deepmind.google/research/
- Anthropic 关于模型诚实性与校准的技术文章:https://www.anthropic.com/research
八、前沿预判:从"自报置信度"到"可验证生成"
置信度校准是"事后补救",而学术界和工业界正在往"事前预防"走。以下三个方向值得关注。
8.1 检索增强与归因:把置信度锚定在证据上
检索增强生成(RAG)让模型基于检索到的文档作答,并可以要求模型给出引用。这样置信度就不再是"模型说自己有多确定",而是"答案是否有文档支撑"。Gao 等人在 2023 年的综述《Retrieval-Augmented Generation for Large Language Models》系统梳理了 RAG 的演进。本文评述:RAG 把一部分幻觉风险转化为"检索质量"问题,但并没有消除幻觉——模型仍可能曲解检索内容。因此归因(attribution)校验应作为独立环节,检查答案中的每个事实性主张是否真能在引用文档中找到。
8.2 一致性训练与"知道自己不知道"
让模型在训练阶段就学会表达不确定性,是更根本的解法。相关工作包括用校准损失微调、用"我不知道"样本做拒答训练等。本文评述:这条路对自研模型的团队可行,对纯 API 调用者不可行。因此短期内,"提示词 + 后处理校准 + 人工复核"仍是主流工程方案,长期看训练侧的对齐会逐步降低对后处理的依赖。
8.3 智能体(Agent)场景下的置信度编排
当模型作为智能体调用工具、执行多步任务时,置信度的作用点会前移:不是等最终答案出来再评估,而是在每一步决策前评估"这一步是否该继续"。本文认为,这会把置信度从"输出过滤器"变成"控制流信号"——低置信时触发澄清提问、切换工具或转人工。这是一个值得提前布局的方向。
九、结语与操作清单
回到最初的问题:"你有多大把握"这句话到底有没有用?本文的结论是:有用,但前提是把它当成一个需要校准的传感器,而不是一个可以直接相信的答案。模型的口头置信度有系统性偏差,但经过规范采集、指标评估和校准修正后,它可以成为一个有效的风险排序信号,把有限的人工复核资源用在最需要的地方。
最后给出一份可执行清单:
- 建立带正确性标注的评估集(≥500 条),严格划分校准集与测试集。
- 同时采集口头置信度、logprob 聚合值、一致性分数三类信号。
- 用 ECE、Brier、AUROC 和风险-覆盖曲线评估信号质量。
- 在校准集上拟合温度缩放或等渗回归,在测试集上报告结果。
- 按业务可承受错误率反推阈值,落地三档复核 SOP。
- 把复核数据回流为校准资产,持续监控校准漂移。
- 对高置信样本保留抽样审计,避免"高置信但错误"的漏网。
本文评述:这套流程并不炫技,但它的每一步都有明确的输入输出和验证方式。在幻觉问题被根本解决之前,把置信度工程做扎实,是让大模型系统"可用且可控"的最务实路径之一。
主要参考文献
- Ji Z, Lee N, Frieske R, et al. Survey of Hallucination in Natural Language Generation[J]. ACM Computing Surveys, 2023, 55(12): 1-38.
- Kadavath S, Conerly T, Askell A, et al. Language Models (Mostly) Know What They Know[EB/OL]. arXiv:2207.05221, 2022.
- Guo C, Pleiss G, Sun Y, et al. On Calibration of Modern Neural Networks[C]. ICML, 2017: 1321-1330.
- Xiong M, Hu Z, Lu X, et al. Can LLMs Express Their Uncertainty? An Empirical Evaluation of Confidence Elicitation in LLMs[C]. ICLR, 2024.
- Lin S, Hilton J, Evans O. Teaching Models to Express Their Uncertainty in Words[C]. EMNLP, 2022.
- Wang X, Wei J, Schuurmans D, et al. Self-Consistency Improves Chain of Thought Reasoning in Language Models[C]. ICLR, 2023.
- Kuhn L, Gal Y, Farquhar S. Semantic Uncertainty: Linguistic Invariances for Uncertainty Estimation in Natural Language Generation[C]. ICLR, 2023.
- Gao Y, Xiong Y, Gao X, et al. Retrieval-Augmented Generation for Large Language Models: A Survey[EB/OL]. arXiv:2312.10997, 2023.
注:文中涉及的评估数据集(TriviaQA、Natural Questions、HotpotQA 等)在使用前均需做答案归一化、别名合并、拒答标注与校准/测试集划分等预处理;文中用于演示读图方式的错误率数值为模拟数据,仅用于说明方法,不代表任何真实系统的性能。
本文内容仅为作者学习、思考、经验、笔记的总结,仅供技术交流与参考。文中观点仅代表笔者个人思辨,不构成任何学术建议、商业建议或专业建议。所有数据来源已标注,引用时请以原始文献为准。
内容仅供学习参考。如需引用,请以原始文献为准。 全文约 12600 字 | 参考文献 60 篇(主要 8 篇)

