让AI学会说“不确定”:对话系统置信度校准与自然表达

发布时间:2026/10/20 15:41:02
让AI学会说“不确定”:对话系统置信度校准与自然表达 我一直很关注 AI 对话系统的一个核心毛病它根本不知道自己不知道什么。你问它一个问题它要么一本正经地胡说八道要么把概率极低的猜测说得像既定事实一样。这背后是个老问题——大语言模型在输出时只有“词语选择”没有“确定程度”的概念。最近我仔细跟进了国外某顶尖高校发布的一项关于“让 AI 学会在对话中做出真正的自信判断”的研究这里面的思路和做法相当值得拆开聊聊。这项研究解决的不是怎么让 AI 更聪明、回答更准确而是怎么让 AI 诚实地告诉你它有多把握、它凭什么这么答以及什么时候它其实是在蒙你。对于做对话产品、做客服机器人、做 AI 内容审核的人包括正在为模型标注安全边界的团队这套思路都能直接拿来参考。先说清楚这个项目到底是什么它不是甩出一个新模型而是一整套“置信度感知对话”的解决方案核心是让模型在生成回答的同时生成一个对自己回答的“置信度信号”并且学会用自然语言把它表达出来——比如“我不太确定我猜测是 X”“根据现有信息看最可能是 A 和 B 之一”这类表达。整篇论文的思路特别朴实不做复杂的额外模型只在现有对话模型的训练和推理流程里加了几层“校准判断”的逻辑效果却非常直接。1. 先把问题拆清楚AI 的“自信”为什么不可信1.1 语言模型的三种“虚假自信”来源大模型对话时表现出的那种笃定感本质上是一个统计采样过程的副作用。模型生成每一个词都是按照一个概率分布去取样本最高概率的词会被选出来但这个概率本身没有经过校准。我用一个生活类比一个学生考试时如果老师只教过他“看到题型就选 A”却没教过他“A 的把握有多大”那这个学生做 100 道题可能全选 A但他根本不知道其中 80 道纯属蒙的。现在的对话模型就是这样——训练目标只要求它生成“看起来合理的下一个词”从没有要求它为这个词的“正确概率”负责。具体拆下来虚假自信有三个来源。数据覆盖不足属于最常见的情况模型训练语料里没有覆盖某些冷门领域或新知识但它在生成时还是会按最相邻的模式硬凑一个答案。知识过时会造成“时间性幻觉”模型把训练截止时的信息当作当下的现实回答的语气和细节都很笃定其实已经失效。推理歧义也很关键同一个问题可能存在多种合理解答模型没有能力在生成时把这些歧义量化于是它随便选了最顺的一条路然后把话说死。1.2 传统做法为什么治标不治本过去几年大家不是没想过办法但绕来绕去都没绕到核心。最常见的做法是在 prompt 里加提示词比如“如果你不知道答案请直接说不知道”这在少数场景下有用但模型的遵从本质上是模仿。你让它“直接说不知道”它可能在所有稍微不确定的题上都说不知道从一个极端跑到另一个极端。另一种做法是设置系统预设要求模型在回答时加上“以上仅为个人观点”之类的免责声明结果是它每条回答都挂免责声明用户很快就免疫了甚至觉得这是推卸责任的废话。还有个做法比较技术化就是对模型输出的概率分布做个 softmax 温度调整比如把温度调高一点让输出更随机然后把置信度当成一个简单的确定性指标。但这里有个致命问题模型生成时每个 token 的概率分布和单个 token 的高概率在一起并不等于整个回答的逻辑连贯性更不等于事实正确性。就好比一个学生每道选择题都选“C”的概率高达 0.9但他的整份答卷成绩可能依然不及格——因为概率高只代表“自洽”不代表“正确”。1.3 目标不是“更大的自信”而是“校准过的自信”我这里必须说清楚一个关键概念也是整个研究最耐人寻味的地方我们要的是“校准”calibration不是“自信度提升”。一个模型如果决策正确率为 70%那么在这 70% 的回答中它应该表达出大约 70% 的确定程度剩下 30% 的回答中它应该表达出明显较低的确信度。真正糟糕的不是模型说“我不太确定”但答对了而是模型说“我非常有把握”却答错了——这种表达与实际正确率之间的偏差才是在实际产品里最危险的问题。这项研究的核心思路就是把“置信度判断”当成一个独立的学习目标。它不逼模型更有自信也不逼模型谦虚而是通过一套特殊的训练目标和数据构造让模型学会根据内部信号来匹配自信表达与实际正确概率。用大白话说模型要学的不是“该怎么说”而是“什么时候该怎么说”。2. 整体设计思路把“我知道的”和“我有把握的”分开处理2.1 从模型内部抽取“确定性信号”研究的第一步是从模型内部找出一组能反映“它对自己当前答案的确定性”的信号。我跟踪这份研究时印象最深的就是他们对隐藏层状态的利用方式。他们发现语言模型在生成不同 token 时其实在 Transformer 的高层隐状态里已经隐含着某种“认知冲突信息”。当模型内部两个相互矛盾的语义表征同时被激活或者某个 token 对应的高层注意力分布异常分散往往就意味着模型在下一次词选择上“吃不准”。用工艺类比老木匠判断一块木头能不能承重不只看表面纹理还要敲一敲听声音。模型内部那些 logits 概率分布就是表面纹理而隐藏层的激活模式就是敲木头时发出的“笃笃声”。单听表面你听到的全是“确信”仔细敲一遍内里有没有空洞立刻暴露。这项研究提出的方案就是设计一组轻量探测头probe把这些内部信号抽出来作为后续置信度校准的输入。2.2 不重新训练整个模型而是加独立校准层这里有个很有价值的工程取舍研究团队没有选择拿海量人工标注数据去微调整个大模型而是把置信度问题解耦成独立的校准层。校准层只接收探测头抽取的特征输出一个“置信度得分”——简单理解就是一个 0 到 1 之间的概率值代表模型认为当前回答正确的可能性。这个设计我非常认可原因有三。其一它大幅降低了训练数据的需求不必让人类为每一条回答标注“这句话是 85% 正确还是 60% 正确”这种细粒度标注本身就不现实。其二它不影响模型原有生成能力你做校准层的训练或替换不需要重新把所有权重梯度传一遍部署成本低得多。其三它天然支持不同的置信度定义你想要“事实正确性”或者“答案与用户意图的匹配度”只需要更换校准层的训练标签即可生成模型本身不用动。2.3 把“置信度得分”转化为“自然语言表达”拿到置信度得分之后最难也最关键的一步来了把它翻译成人类能听懂的话。置信度得分是 0.87但你不能让模型直接说“我的置信度是 0.87”这在大多数对话场景里很怪异。研究里专门设计了一个“表达策略映射”模块它把校准后的置信度分值映射到一组预设的、经过人类偏好排序的语言表达模板上。这套表达模板按置信度档次分级。高分档次通常说“我可以确定”“这个答案是明确的”中分档次说“根据现有信息来看比较可能是”“我倾向于认为”低分档次则用“我不太确定但可能是”“这只是我的推测建议你再核实”。这里最具巧思的地方在于映射是动态的不是一刀切同一句话的分值落在边界附近时表达策略会主动追加一句“相关信息可能需要补充”来提醒用户。2.4 整个训练流程拆成两阶段研究把训练过程明确切成两个阶段这一点我在实操推广时觉得非常有必要强调。第一阶段是“校准学习”用大量带有不确定性标签的数据训练校准层让它输出的分值尽量贴合真实正确率。第二阶段是“表达策略学习”固定住校准层参数单独训练把分值映射到自然语言表达的模块目标函数是用户对“表达得体程度”的反馈。这个两阶段设计的最大好处是各阶段目标单纯。如果你把两个目标混在一个模型里同时优化模型很容易钻空子——为了跑高用户反馈它可能故意把所有答案都说成“我不确定”让用户觉得它谦虚、安全但实际正确率低到没法用或者反过来它为了显得专业把所有置信度都拉到很高的水平又回到了虚假自信的老路。两阶段分开后第一阶段保证“判断准”第二阶段保证“说得像人话”整体效果立刻变得可控了。3. 核心细节与实操要点模型如何“学会”自信判断3.1 数据构造带“不确定标签”的对话数据怎么造数据是所有工作的源头也是最容易被人低估的一环。研究里用的训练数据并不是雇佣标注员一条一条手工打分那样成本太高且主观性太强。他们走的是一套半自动流水线先从海量问答数据集里抽出一批问题让多个不同规模的模型分别作答然后把不同模型的答案放在一起对比一致性。如果多个独立模型给出的答案高度一致就把这个样本标为“高置信度正样本”如果相互矛盾就标为“低置信度负样本”。这个思路的本质是利用“模型间分歧程度”代理“答案不确定性”。我试过类似的方案有一个必须注意的点不能只看答案文本是否一致还要看语义是否一致。比如两个模型一个答“苹果”一个答“苹果公司”字面上都是 Apple 但指向不同对象需要先做语义归一化再判分歧度否则会产生大量脏标签。建议在流水线里加一层语义相似度过滤用一个轻量级文本向量模型把答案编码后计算相似度低于阈值就直接判为分歧。3.2 训练方法过程奖励与对比排序真正训练时校准层使用的损失函数值得展开聊聊。研究并没有用最朴素的回归损失去拟合 0-1 标签因为置信度的真实分布远非线性回归模型容易在置信度得分中段产生模糊输出。他们采用了一种对比排序的训练方式对同一条问题采样出多个候选回答由探测信号给出各自的置信度预测然后使用 Pairwise Ranking Loss确保正确回答的预测置信度显著高于错误回答。这个设计的价值在于它训练的不是“绝对的 0.9 要不要映射到 90%”而是“不同候选之间谁更应该被置信”。前者是在拟合一堆可能不一致的样本标签后者是在对齐相对序这在数据噪声较大时更加鲁棒。研究实验数据也验证了这一点用对比排序训练的校准层在几个公开问答集上的期望校准误差ECE比回归损失训练出来的模型低了接近 12%。3.3 评测指标你到底有没有“真自信”判断这套方案是不是真的有效不能靠肉眼感觉得看几个硬指标。我做这类评测时会同时盯三个数期望校准误差ECE负责衡量预测置信度和实际准确率之间的平均偏差这个值越低越好Brier Score则是一个综合评分同时考量了预测的准确性和校准度二分类问题里越低说明系统越“靠谱”AUROCROC 曲线下面积在衡量校准层排序能力上很有用它不关心绝对值准不准只关心模型给正确答案打的置信度分是否一致高于错误答案。我还想额外提一个研究中用了但我自己实践后很受用的指标信噪比。他们把答案按模型预测置信度分桶比如 0.9-1.0 一桶、0.8-0.9 一桶然后统计每个桶里的真实准确率。一个优秀校准系统的桶内准确率应当和桶的中心值高度吻合。比如 0.8-0.9 号桶准确率应该落在 82%-87% 之间如果只有 60%就说明系统在“虚报自信”。3.4 推理阶段的工程技巧温度和采样策略怎么配合训练结束后推理阶段的工程参数同样决定成败。研究里给出的一套推荐配置很实用在生成回答时把采样温度从默认的 0.7 适当提高到 0.9同时将 top-p 采样阈值从 0.95 下调到 0.85。这样做的目的在于保持输出文风自然的同时放大了模型内部在不同候选答案之间的竞争信号让探测头更“看得出来”模型到底在犹豫什么。如果温度太低模型的输出过于单一确定内部的认知冲突被压制置信度信号就失真了。这里有个经验基准我屡试不爽如果某条回答的置信度预测分数只有 0.5 上下但在最终答案里却用“必然”“毫无疑问”这类绝对化措辞那么模板映射模块大概率没被训练好或者推理时的采样参数把生成结果推离了训练分布。这时你可以回退参数尝试把温度再拉高 0.1看看置信度分差是否显著变化。如果变化超过 0.15说明当前样本本身就属于边缘地带模型并没有彻底吃透需要加强相关语料覆盖。4. 在实际对话系统中实现“诚实表达”的落地路径4.1 不同落地场景的三种路线对比对话系统落地的形态千差万别研究给出的方案不是“一套配置走天下”而是按资源条件分了三条路线。第一条是针对纯 API 调用场景不修改底层模型只在前置加一个置信度探测模块拦截低置信度的回答并改写措辞第二条是针对自己持有开源模型权重的情况直接在模型之上加探测头和校准层做全链路训练第三条是对算力极有限的团队更轻量一些只用语言表达模板加规则映射在 prompt 层面做后处理。三条路线的取舍很清晰API 路线最省力但探测信号源受限因为你只能拿到 logprobs拿不到中间隐层状态开源模型路线效果彻底但因为要调参数周期最长规则映射路线见效快但泛化最弱遇到意料之外的低置信度表达时容易失灵。我的建议是如果产品处于验证阶段先从第三条走起用规则兜底一旦数据证明了收益立刻切换到第二条做系统性优化。4.2 具体实现流程一个可操作的示例方案这里我给出一个可以直接参考的落地实现流程。先定义好置信度分档与语言表达的映射逻辑我实践中会采用五档制而不是三档因为五档能覆盖更多边缘情况。设定好之后核心实现可以简化成一条判断链抽取 logits 信号、计算内部置信度分、依据阈值查表改写措辞。以下是去掉细节后的核心思路def get_confidence_signal(response_obj): # 聚合所有 token 的 logprob做长度惩罚后取平均 logprobs response_obj[choices][0][logprobs][token_logprobs] margin 0.0 count 0 for lp in logprobs: if lp is not None: margin lp # log 域累加后续做温度补偿 count 1 raw_score margin / max(count, 1) # 用温度补偿系数把 log 域信号拉回概率语义 calibrated 1.0 / (1.0 math.exp(-(raw_score 0.7))) return calibrated def rewrite_by_confidence(question, answer, conf): if conf 0.82: return answer if conf 0.62: return f根据现有信息看{ answer }但我建议你也关注一下同领域的新资料。 if conf 0.45: return f我不太确定可能是 { answer }。你最好再核实一下。 return 这个问题我目前了解得不够深入暂时给不出可靠的结论。可能可以从这些方向去查……注意这套实现只是研究思想的简化投影最终落地时需要和校准层一起联动。那个 0.7 的偏置补偿值是我按常规模型的经验估算的不同模型差异很大务必用验证集重标定。4.3 实测效果三个应用场景的案例记录我在模拟项目中把简化版方案接到一个开源问答模型上顺带在三个真实场景里做了效果验证。第一个场景是在线客服的知识库问答。以前遇到用户问“这个功能什么时候上线”模型经常张口就说“预计下个月上线”其实它的训练数据里根本没有相关版本信息。接入置信度改写后低置信度回答自动变成“该问题涉及发布计划建议关注官方公告页”用户咨询后误信的比例下降了近一半。第二个场景是课程助教系统。学生问“这道题用哪个公式”高置信度时模型给出步骤讲解完全没有问题但遇到它没见过变式题它原来会用“显然”“可知”这类词推演接入系统后它会先接一句“这题的思路跟标准形式有些区别我的推导不一定准确”明确把推导过程降级为参考。课堂回访中学生的困惑反馈反而减少了因为不会被带偏到一个听起来严密但实际错误的解法里。第三个场景比较冷门是面向内容生产平台的事实草稿校验。编辑输入一段描述让模型整理成规范信息过去模型会自行脑补细节现在它会在“人名”“日期”“事件后果”这类事实要素处单独标注置信度符号。编辑看到低置信度标记会主动去溯源核实而不是把模型的输出直接当定稿。4.4 这套方案的局限边界你也得知道研究里没藏着掖着我复现时也切身体会到了几个绕不过去局限。第一置信度校准只对“模型知识范围内”的问题有效如果问题本身完全超出模型任何相关训练语料模型往往在“胡编”和“承认不知”之间摇摆探测信号几乎失效因为根本没有可依据的内部表征供校准层参考。第二对话轮次越深校准效果越容易衰减多轮上下文干扰导致模型在局部生成时被带偏注意力分散后内部信号的信噪比变差。第三用户不接受“不确定”的产品调性时这个方案会被强行压制商业产品为了保持用户对 AI 能力的高预期常常把低置信度表达全部隐藏结果又退回虚假自信的老路。针对这些局限研究给出的一个取巧思路是在训练阶段刻意构造“越界样本”。把一批完全超出模型知识范围的题目混进微调数据里要求模型学会对这类问题给出“知识边界外”的回应。这么做的效果有限但不失为一种让模型对“范围外问题”有基本警觉的方式。5. 我实操中踩过的坑与排查技巧5.1 四个最典型的翻车现场与修复路径做这个方案的测试时我记下过几类反复出现的经典问题整理出来供你对照排查。过度保守综合症模型在接入校准层后对所有回答都开始加“可能”“也许”哪怕是最基本的定义问题也显得犹豫不决。我排查后发现根因在于校准层的训练标签里负样本占比太高模型学到了“压低所有分”的偏置。修复方法是在校准层的损失函数里给高置信度正样本额外加权同时将验证集里的明确事实题拿出来单独检查分桶准确率。校准漂移同一套模型在校验集上表现完美拿到新领域的问题上立刻退化。这类问题通常是探测头过拟合了训练数据里的领域模式。建议在探测头的输入特征里加入对 token 层语义类别的 embedding 汇总比如词性、实体标签让模型跨领域时仍然能借用语义先验。低置信度表达被系统吞掉明明校准层正确识别了一条低置信度回答系统最后输出的却是原答案。检查后发现问题出在“改写模板”这一环节做了文本替换时没有继承原回答里的核心实体词导致改写后的句子信息量骤降产品侧就觉得“还是原答案靠谱”。修复方法是让转化模块对齐关键实体只改修饰成分不动内容主干。置信度分与用户期望错位在客服场景里用户问“今天能发货吗”模型给出高置信度“可以”但用户在意的其实是“我这次下单的包裹能否今天发出”。技术上的置信度判断正确业务上的断言仍然错。这类问题校准层救不了必须单独接业务系统的订单状态信号。5.2 一条很有效的自查手段如果你只记一个排查技巧我建议你不用先看模型权重、探测头对不对先跑一遍“分桶一致性检测”。把验证集所有预测按置信度分从 0 到 1 切成 10 个桶打印每个桶的样本量、平均置信度、实际准确率。三列数据打出来放在一起整个系统的问题基本一目了然。高置信度桶出现大量实际错误说明校准层把“模型自认为正确”和“事实正确”混为一谈需要检查训练标签的构造逻辑。中置信度桶的准确率反而高于高置信度桶说明探测头特征里混入了噪声信号某个无关特征在高分时被错误强化。低置信度桶里偶尔出现极准确的回答说明校准层对边缘情况过于敏感可以尝试放宽阈值并增加边缘样本的重标注比例。5.3 一点关于“自信”的反思我个人在实操这套方案时的体会是AI 的自信判断问题表面是技术问题内核其实是价值取舍和产品定位问题。一个系统愿不愿意承认自己不知道取决于它被允许呈现多大的脆弱性。研究里最触动我的不是那些精巧的校准层和训练技巧也不是那几个漂亮的评测数字而是他们的态度把“我知道”和“我有把握”当成两个独立维度分开对待。这个思路往深了说就是在教模型区分知识本身和经验可靠度这对整个行业的设计理念都有启发。最后再分享一个小技巧你在给对话系统集成置信度模块时别只拿“正确率”来定义训练标签尽量往标签里混入“任务成功度”——用户按照这条回答去执行操作后是否解决了问题。一个回答即使字面上正确如果它让用户产生了错误后续行动那也等于高风险输出。校准层真正要学的不只是“答案对不对”而是“这个回答是否值得用户托付行动”。这样的 AI 才能真正在对话中成长为一个有分寸、可信赖的伙伴。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询