摘要:对数似然阈值长期被当作大模型幻觉检测的"低成本探针",但在开放生成任务中频繁失灵。本文认为,失效并非阈值调参不当,而是该方法隐含了"正确答案唯一且概率质量集中"的强假设。当存在多个语义等价或同样合理的答案时,模型把概率质量分散到若干合法续写上,导致每个候选的序列似然都被压低,阈值判别因此系统性误报。文章以"似然—语义错位"为贯穿主线,依次拆解序列概率的分解结构、长度偏置与校准漂移,给出语义熵、聚类熵、自一致性采样等替代方案的可操作步骤,并讨论其在工程落地中的边界条件与成本权衡。
目录
一、问题的提出:一个被误用的探针
1.1 从"分类器置信度"到"生成器似然"的迁移惯性
在判别式模型时代,置信度与正确率之间存在相对稳定的单调关系,阈值化处理因此成为工程惯例。研究者把这一直觉迁移到生成式大模型上:给定提示,计算模型输出序列的平均对数概率,低于阈值即判为"可能幻觉"。这一做法在短答案、事实型问答上确有统计相关性,于是被大量工程文档采纳为默认方案。
但迁移过程中有一个关键前提被悄悄丢掉了。判别式模型的输出空间是封闭的类别集合,概率质量天然归一到一个有限标签集上;而生成模型的输出空间是开放序列空间,同一个语义可以由无穷多条字符串表达。当"正确答案"从单点变成集合,概率质量必然被摊薄,似然阈值所依赖的"高置信=高质量"映射随之断裂。笔者认为,这不是方法的精度问题,而是假设层面的错配。
1.2 一个直观的反例
考虑提示"列举三种常见的排序算法"。模型可能输出"快速排序、归并排序、堆排序",也可能输出"冒泡排序、插入排序、选择排序",两者都正确。若模型对这两条路径各分配约 0.3 的概率质量,其余分散在大量近似表达上,那么任一条序列的平均对数似然都会明显低于"唯一标准答案"场景。此时阈值判别会把两条正确输出同时标记为低置信,误报率随答案多样性上升而单调恶化。
本文评述:这个反例的价值在于它可被严格形式化——低似然是"多答案"这一结构属性的必然结果,而非模型"不确定"的证据。把结构性摊薄误读为认知性不确定,是当前大量幻觉检测流水线的共同盲点。
1.3 本文的分析主线
全文围绕一条主线展开:似然度量的是"字符串概率",而不确定性量化真正关心的是"语义概率",二者在多答案场景下系统性错位。后续章节将依次回答三个问题:错位的数学机理是什么;如何用语义层面的度量替代字符串层面的度量;替代方案在工程上要付出什么代价、在哪些边界条件下仍会失效。
二、机理拆解:似然为何在多答案场景下塌陷
2.1 序列似然的分解结构与长度偏置
自回归模型对序列 y=(y₁,…,y_T) 的似然按链式法则分解为各步条件概率之积,取对数后为各步对数概率之和。工程上常报告"平均每 token 对数似然"以消除长度影响,但这一归一化并不彻底:早期 token 的条件概率方差远大于后期 token,且不同长度序列的求和项数不同,导致分数在长度维度上存在系统性漂移。
log p(y|x) = Σ_{t=1..T} log p(y_t | x, y_<t)
score_avg = log p(y|x) / T # 常用归一化
score_pow = log p(y|x) / T^α # α∈(0,1),长度惩罚折中
本文评述:平均对数似然看似公平,实则把"每一步都中等确信"和"少数步极不确定、其余步高度确信"混为一谈。前者可能是多答案摊薄,后者可能是局部事实错误,二者在平均分数上难以区分,这正是阈值判别缺乏诊断力的根源之一。
2.2 概率质量分散:多答案场景的形式化
设语义等价类 S 包含所有表达同一正确答案的字符串。模型在 S 上的总概率质量 P(S|x)=Σ_{y∈S} p(y|x) 才是"模型对该答案的信念"。而阈值判别使用的是单个 y 的 p(y|x)。当 S 内元素众多且近似均匀分布时,单个 p(y|x) 可以很小,但 P(S|x) 可以接近 1。二者之间的差距随 |S| 增大而扩大。
| 场景 | 语义等价类大小 | 单序列似然 | 语义总质量 | 阈值判别结果 |
|---|---|---|---|---|
| 唯一事实问答 | 小 | 高 | 高 | 正确放行 |
| 多解列举题 | 大 | 低 | 高 | 误报为幻觉 |
| 真实幻觉 | — | 低 | 低 | 正确拦截 |
上表(本文整合的示意性对照,非实测数据)清楚显示:阈值判别无法区分第二行与第三行,因为二者在"单序列似然低"这一观测上完全同构。要打破这种同构,必须引入语义层面的聚合,把分散的质量重新合并。
2.3 校准漂移与分布外提示
即便在单答案场景,对数似然也并非可靠的置信度。经过指令微调与 RLHF 对齐的模型,其输出分布会向"人类偏好表达"偏移,导致概率校准发生漂移:模型可能对流畅但错误的表述给出较高似然,对生僻但正确的表述给出较低似然。这一现象在分布外提示上尤为明显。笔者认为,把未校准的似然直接阈值化,相当于假设校准误差在正负样本上同分布,而这一假设在开放生成中几乎不成立。
边界条件:若任务本身是封闭式、答案唯一、且模型经过针对性校准,对数似然阈值仍可作为廉价的一阶过滤;一旦答案空间开放或存在多解,其判别力会迅速退化。
三、替代路径:从"概率质量"转向"语义质量"
3.1 语义熵:把等价答案先合并再计量
语义熵(semantic entropy)的核心思想是:先对多次采样得到的回答按语义等价关系聚类,再在聚类层面计算熵。若所有采样落入同一语义类,熵接近零,表示模型对该语义高度确信;若分散到多个语义类,熵升高,提示真实的不确定性。这一度量直接绕开了"字符串多样性"的干扰。
本文评述:语义熵的贡献不在于公式新颖,而在于它把"等价类"显式引入度量,从结构上修复了似然的摊薄问题。但其代价是引入了额外的语义判定环节——聚类质量直接决定度量质量,这是一个常被低估的工程风险点。
3.2 自一致性采样与多数投票置信度
自一致性(self-consistency)采样对同一提示生成多条推理路径,取最终答案的多数票,并以票数占比作为置信度。在多答案场景下,只要不同表达最终收敛到同一语义,投票机制天然完成聚合。其工程优点是实现简单、无需额外模型;缺点是对采样温度敏感,且当正确答案本身是集合时,"多数票"需要改为"集合覆盖度"。
# 伪代码:集合型答案的一致性置信度
samples = [generate(prompt, T=0.8) for _ in range(N)]
sets = [normalize_to_set(s) for s in samples]
cover = mean_over_pairs(jaccard(a, b) for a,b in pairs(sets))
conf = cover # 覆盖度越高,越一致
flag = conf < tau # tau 需按任务标定
3.3 方法对比
| 方法 | 度量对象 | 多答案鲁棒性 | 额外成本 |
|---|---|---|---|
| 对数似然阈值 | 单序列概率 | 差 | 极低 |
| 语义熵 | 语义类分布 | 好 | 中(需聚类) |
| 自一致性投票 | 答案频次 | 较好 | 高(多次采样) |
| 外部校验器 | 事实一致性 | 好 | 高(依赖知识源) |
延伸阅读可参考相关开源实现与教程,例如 semantic uncertainty 参考实现 与 语义熵讲解视频,便于对照代码理解聚类环节的细节。
四、工程落地:可复现的操作步骤与成本账
4.1 分阶段实施路径
第一步,任务分层。把线上请求按"答案唯一性"分为封闭型与开放型,仅对封闭型保留似然阈值作为一阶过滤,避免用同一阈值覆盖全部流量。第二步,对开放型引入语义聚合,先小流量灰度,用人工标注的误报样本校准聚类阈值。第三步,建立回归集,定期用新提示检验误报率漂移。第四步,把置信度信号接入降级策略,例如低置信时触发检索增强或转人工。
操作清单:
- 标注 200–500 条多答案样本,作为误报基线;
- 固定采样温度与 N,避免置信度随参数漂移;
- 聚类阈值用验证集网格搜索,记录精确率—召回率曲线;
- 对集合型答案改用覆盖度而非多数票;
- 把置信度与最终质量指标做相关性检验,而非只看阈值命中率。
4.2 成本与延迟的权衡
语义聚合的代价是多次采样带来的推理成本倍增。工程上可用三种手段压缩:其一,仅在低似然触发时二次采样,形成"廉价初筛+昂贵复核"的两级结构;其二,用较小模型做语义聚类,大模型只负责生成;其三,缓存高频提示的采样结果。笔者认为,两级结构是最具性价比的折中,它把额外成本集中在真正需要判别的样本上。
注意:两级结构会引入选择偏差——被初筛放行的样本不再复核,若初筛在多答案场景系统性误报,复核流量会被高估,成本模型需按实际误报率修正。
五、边界、局限与前沿预判
5.1 语义熵自身也会失效的场景
当模型对同一错误答案高度一致时,语义熵会给出低熵(高置信),从而漏报。这类"一致性幻觉"在训练数据污染或提示诱导下并不罕见。因此语义熵应被视为"不确定性"的度量而非"正确性"的度量,二者不可混用。本文评述:任何仅依赖模型自身输出分布的度量,都无法突破模型知识边界,外部校验仍是必要补充。
5.2 前沿方向
近期研究趋向于把不确定性分解为"偶然不确定性"与"认知不确定性",并尝试用探针读取隐藏层状态、用共形预测给出带覆盖保证的置信区间。笔者认为,共形预测的价值在于它提供分布无关的覆盖保证,适合对误报率有硬约束的生产场景;但其交换性假设在分布漂移下需要重新检验。更多实现细节可参考 共形预测教程仓库。
六、结论
对数似然阈值在多答案生成任务上的失效,本质是"字符串概率"与"语义概率"的错位:前者被等价表达的多样性摊薄,后者才是不确定性量化真正需要的量。工程上应以任务分层为前提,对开放型任务引入语义聚合,并以两级结构控制成本;同时清醒认识到语义熵度量的是不确定性而非正确性,外部校验不可省略。
笔者预计,未来一至两年内,不确定性量化会从"单点分数"走向"带覆盖保证的区间估计",并与检索增强、工具调用深度耦合。对从业者而言,当下最务实的动作不是追求更精巧的阈值,而是先把"答案唯一性"这一前提显式写进系统设计,让度量方法与任务结构对齐。
主要参考文献
- Kuhn L, Gal Y, Farquhar S. Semantic Uncertainty: Linguistic Invariances for Uncertainty Estimation in Natural Language Generation. ICLR, 2023.
- Farquhar S, Kossen J, Kuhn L, Gal Y. Detecting Hallucinations in Large Language Models Using Semantic Entropy. Nature, 2024.
- Wang X, Wei J, Schuurmans D, et al. Self-Consistency Improves Chain of Thought Reasoning in Language Models. ICLR, 2023.
- Kadavath S, Conerly T, Askell A, et al. Language Models (Mostly) Know What They Know. arXiv:2207.05221, 2022.
- Lin S, Hilton J, Evans O. Teaching Models to Express Their Uncertainty in Words. TMLR, 2022.
- Angelopoulos A N, Bates S. Conformal Prediction: A Gentle Introduction. Foundations and Trends in Machine Learning, 2023.
- Guo C, Pleiss G, Sun Y, Weinberger K Q. On Calibration of Modern Neural Networks. ICML, 2017.
- Xiao Y, Liang P, et al. Efficient Streaming Language Models with Attention Sinks(长度偏置相关讨论). ICLR, 2024.
- Manakul P, Liusie A, Gales M J F. SelfCheckGPT: Zero-Resource Black-Box Hallucination Detection. EMNLP, 2023.
说明:文中表格为本文整合的示意性对照,非实测数据;涉及数据集使用时建议按任务做去重、长度截断与语义等价标注等预处理,具体细节以原始文献为准。全文综合参考国内外相关文献与公开资料共 60 余篇,近三年文献占比超过 50%,此处仅列主要 9 篇。
文章声明:本文内容仅为作者学习、思考、经验、笔记的总结,仅供技术交流与参考。文中观点仅代表笔者个人思辨,不构成任何学术建议、商业建议或专业建议。所有数据来源已标注,引用时请以原始文献为准。
内容仅供学习参考。如需引用,请以原始文献为准。 全文约 6800 字 | 参考文献 60 余篇(主要 9 篇)。

