大模型“撒谎”时,我们如何抓住它?——语义熵与AI不确定性的统计量化
当AI用流畅的语句说出错误的事实,我们该如何分辨它是“知道但不自信”还是“根本不知道在说什么”?
2024年6月19日,牛津大学研究团队在 《自然》(Nature) 杂志上发表了一项里程碑式的研究——《使用语义熵检测大语言模型中的幻觉》。论文的共同第一作者包括Sebastian Farquhar、Jannik Kossen和Lorenz Kuhn,资深作者是Yarin Gal教授。
一、什么是语义熵?
语义熵的核心思想很巧妙:与其看模型“说了什么”,不如看它“怎么说” 。
传统方法检测幻觉靠的是“熵”——如果一个模型对同一个问题生成多个答案时词句变化很大(高熵),说明它不确定。但这种方法有个致命缺陷:如果模型用不同的话说同一个意思(比如“巴黎是法国首都”、“法国的首都是巴黎”和“Paris is the capital of France”),传统熵会错误地判定为“不确定”。
语义熵解决了这个问题。它不是比较词句,而是比较语义——把意思相同的回答归为同一“语义簇”,再计算模型生成不同语义簇的概率分布。
具体来说,研究团队开发了一种基于统计学的方法:将LLM产生的词元级概率转化为“语义概率” ——即在意义空间中的概率。这种方法利用LLM自身来完成从词元到意义的转换。
原理:如果模型对同一个问题反复生成语义不同的答案(高语义熵),说明它“心里没底”,大概率在胡编;如果多次生成的答案语义高度一致(低语义熵),说明模型对这个知识“有把握”。
研究团队将这类幻觉称为 “confabulations” ——即模型每次被问同一问题时给出不同答案的任意且错误的生成。
二、语义熵能做什么?
牛津团队的研究表明,语义熵可以用于预测模型的大量错误答案,并通过拒绝回答那些模型不确定的问题来提高问答准确率。
该方法的优势极为突出:
-
无需任务特定数据:不像传统方法需要为每个新任务重新训练或调整
-
鲁棒地泛化到未见过的任务:在从未见过的任务上同样有效
-
适用于多种数据类型:包括Google搜索问答、技术生物医学问题、数学文字题等
研究团队在六个开源LLM(包括GPT-4和LLaMA 2) 上进行了测试。语义熵在所有测试中都显著优于所有先前的方法。
研究团队甚至展示了语义熵如何识别ChatGPT生成的短篇传记中可能不正确的具体陈述——将长答案分解为若干小事实单元,逐一评估其语义不确定性。
在医疗领域,语义熵的应用价值已开始被探索。2025年的一项研究使用英国皇家妇产科学院(RCOG)MRCOG考试的临床验证数据集,评估了语义熵在妇产科AI生成内容中检测幻觉的能力。另一项研究则提出了Vision-Amplified Semantic Entropy(VASE) ,通过引入弱图像变换来增强视觉输入的影响,以改善医学视觉问答中的幻觉检测。
Yarin Gal教授对此评价道:“从LLM获得答案很便宜,但可靠性是最大的瓶颈。在可靠性至关重要的场景中,计算语义不确定性是值得付出的代价”。
三、后续发展与局限
自2024年发表以来,语义熵研究持续演进:
2025年,研究者提出了将语义熵与成对语义相似性相结合的方法,增强了传统熵估计。另一项研究则提出了基于热力学的语义熵产生(SEP) 指标,显示高忠实度通常意味着低熵产生。
2026年,研究进一步推进。有团队提出了自适应贝叶斯估计框架,通过引导语义探索来高效估计语义熵,解决了固定采样预算无法适应查询复杂度的问题。还有研究提出了BEACON(Behavioral Entropy Aggregation for Cross-model hallucination detectiON) ,一个完全黑盒的幻觉检测框架,仅基于模型输出操作,无需访问内部表示或外部知识库。
不过,语义熵也有其局限性。在医学视觉语言模型中,语义熵因模型对强语言先验的过度自信而变得不太可靠。此外,语义熵的计算需要多次采样,计算成本可能是直接使用生成模型的数倍——但在准确性至关重要的场景中,这是合理的代价。
四、结语
语义熵的实用价值在于:它让AI的“不确定性”变得可测量、可计算、可操作。
在医疗问答、法律咨询、金融分析等高风险场景中,知道AI“不知道什么”,可能比知道AI“知道什么”更重要。正如Farquhar博士所说:“我们的方法基本上是在意义空间中估计概率,即‘语义概率’。这种方法的吸引力在于它利用LLM自身来完成这种转换”。
*参考文献:Farquhar, S., Kossen, J., Kuhn, L. & Gal, Y. (2024). Detecting hallucinations in large language models using semantic entropy. Nature, 630(8017), 625-630。*
更多推荐



所有评论(0)