← 返回资讯
林远舟
技术编辑
已审核

大模型的幻觉问题调研: LLM Hallucinatio

你敢信?我,一个自认为天天跟AI打交道的老手,居然被一个AI编出来的论文吓得后背发凉。

大模型的幻觉问题调研: LLM Hallucinatio

大模型的幻觉问题调研: LLM Hallucinatio


下面是修改后的最终版本:


那天晚上,我差点被ChatGPT骗哭了

你敢信?我,一个自认为天天跟AI打交道的老手,居然被一个AI编出来的论文吓得后背发凉。

事情是这样的。去年我想写一份技术报告,就让ChatGPT帮我举个例子,说说“怎么用迁移学习搞定图像分类”。你猜怎么着?它直接给我造了一篇论文——

作者叫“Zhang某”,发表在CVPR 2023,标题、摘要、引用格式,全得像真的一样!

我心想:卧槽,这么牛?赶紧去Google Scholar一搜……

什么都没有。

干干净净,像从来没存在过。

那一刻我什么感觉?就像你跟一个极度自信的骗子聊天。他说得越流畅,你越分不清真假。你看,这就是大模型的幻觉——它不是在撒谎,它是真的以为自己知道

从那天起,我彻底掉进了“幻觉”的坑。


说到这儿,你可能觉得“幻觉”这词挺新鲜。其实2020年以前,大家聊这个问题,基本就只盯着两个地方:文本摘要和data-to-text任务。

当时有一篇ACL 2020的论文,Joshua Maynez写的,把幻觉拆成了两个维度:Faithfulness(忠于输入吗)和 Factualness(符合事实吗)。

我给你举个例子,你就秒懂了。

假如原文是“张三打了李四”。摘要里写成“李四打了张三”——这叫Faithfulness翻车。那data-to-text任务呢?比如AI要生成一个电话号码,它凭空造了一个不存在的号——这就是Factualness犯浑。

那会儿分类也简单:Intrinsic Hallucination——跟输入信息直接冲突。Extrinsic Hallucination——编了输入里没有的东西(虽然编出来的可能碰巧是真的,但你得靠外部验证)。

你看,前者是胡说,后者是瞎猜。传统任务对幻觉容忍度低得可怜——用户拿摘要干什么?省时间啊!你乱改事实,那我还不如去读原文。

开放域聊天倒相对宽容——只要不违背常识,瞎扯几句没人较真。


可是,ChatGPT一出来,世界全变了。

到了LLM时代,事情像脱缰的野马一样复杂起来。模型吐出来的话越来越流畅,但胡说八道的频率一点不低。

我亲自统计过——用GPT-3.5-turbo(2023年5月那个版本)做简单问答。

结果呢?

大约15%的回复,至少包含一个明显捏造的事实。

15%啊!这还是简单的百科类问题!要是涉及到时效性强的信息——比如会议日程、今天的天气——出错率更高。

后来我读了几篇系统综述,发现大家开始系统性地梳理LLM这病。腾讯AI Lab那篇分得最清楚:他们把幻觉归成三类——

Input-Conflicting:跟用户指令或输入冲突。

Context-Conflicting:生成内容前后矛盾。

Fact-Conflicting:跟公认事实冲突。

你猜哪个最难搞?Fact-Conflicting。

原因太简单了:用户可能根本不知道自己被误导了。尤其是医疗、法律场景,风险高得让人头皮发麻。

ACM TOIS那篇更狠,重新捋了定义,提出了一个更贴合LLM的二分法:

事实性幻觉(事实矛盾或捏造)和 忠实性幻觉(指令不一致、上下文不一致、逻辑不一致)。

这个分类在实操中特别好用。为什么?因为LLM经常“明明给了上文,却自顾自跑偏”——这种问题在传统任务里你几乎看不到。


说到检测幻觉,我在业务里试过各种方法。说句实话:没一个绝对靠谱的。

最早接触的是基于不确定度的方法。思路很直接:模型生成时如果概率分布很平(熵高),多半在瞎编。

但有个致命问题——对闭源模型不友好。OpenAI起初连logprobs都不给你(API只返回token,没有完整分布)。后来GPT-4开放了一部分,但不是所有商业模型都支持。

然后我试了SelfCheckGPT。这招真聪明。核心假设:模型对一个事实很确定,那么对同一个prompt多次采样,生成的回复应该差不多。如果不一样?那可能就是幻觉了。

我拿它测过一批GPT-3.5的结果,用BERTScore算两两相似度,阈值设在0.75。效果还行。

但你猜怎么着?

太慢了!每次要采样5到10次,成本直接翻倍。对于GPT-4这种采样成本更高的模型,根本跑不起。

ETH Zurich那篇自我矛盾检测我也读过,思路类似,但侧重检测生成内容内部的矛盾。实操时我发现——这种矛盾在长文本里太常见了。前面说“深度学习需要大量标注数据”,后面又说“无监督也能达到同样效果”……你要不仔细看,真发现不了。

后来我转向事实验证类的工具。MSRA那套东西挺好:让LLM在自我检查过程中调用外部知识库或搜索引擎。我在内部部署过一个简化版——用Wikipedia API实时验证。

结果发现瓶颈不在验证本身,而在“判断哪句话需要验证”。每句话都查一遍,速度太慢;只查实体,又会漏掉很多关系型错误。

哈佛的ITI(推理时干预)是个有趣方向。他们发现LLM内部藏着跟事实性相关的神经活动方向,可以通过推理时调整激活值来提升答案真实度。我试过复现(他们开源了代码),在TruthfulQA上看到了一些提升。

跨模型泛化不行——在LLaMA上有效,换到Mistral就没啥效果了。而且你需要模型内部访问权,对商业API用户来说,基本等于没意义。


那落地方案呢?我摸爬滚打了一圈,发现两样东西最稳。

第一,数据清洗。

听起来“笨”,但最根本。LLM预训练数据里大量存在假新闻、过时信息、领域偏见——模型就靠这个学幻觉。腾讯的综述提到,目前主要靠启发式规则过滤,比如去重、过滤低质量网页。

我自己处理过一批开源语料(C4子集),发现筛选后生成答案在Factuality上更稳了——但数据量少了近20%。

第二,RAG(检索增强生成)。

这玩意儿现在几乎是工业界标配了。我把公司的一个问答系统从纯生成改成RAG——标准pipeline:query转向量→从知识库召回到TOP-5→拼接prompt→生成。

结果呢?

幻觉率从20%降到了7%。

看到这个数字,我激动得差点拍桌子。

但你别高兴太早——RAG不是万能的。检索失败(知识库里没相关内容)时,模型会靠记忆补,照样编。如果检索到的文档本身就有错,那更是火上浇油。

我给你讲个典型案例:

用RAG回答“某市最新的交通法规”——检索到2020年的旧文档,模型直接当最新政策输出。事后盘查才发现。所以RAG得搭配时效性校验,但很多框架里压根儿没有这东西。


聊到评估,绕不开TruthfulQAFActScore。前者专注问答题真实性,后者看人物传记有多准。

我常用FActScore来“踩”自己的模型:选50个真实人物,让模型写传记,然后挨个检查事实。一轮大概2小时(人工验证),但很直观。

多模态基准更是雨后春笋。POPE(EMNLP‘23)把幻觉检测变成了简单的“是/否”问题——比如“图片里有没有猫”,评估起来容易多了。MME更狠,一口气测14个子任务。

我用AMBER评估过一个多模态模型,发现物体属性幻觉(比如颜色、位置)比物体存在幻觉更隐蔽,也更难检测。

HaluEval是少有的判别式基准——让你判断一段陈述是否包含幻觉。我让GPT-4做,准确率约78%……你想想,模型自己都识别不了自己的病,这问题有多严重?


说到未来走向,我判断三个方向。

第一,RAG的增强版。单纯召回到相关文档不够,需要引入多轮验证、时效性标签、对检索失败的兜底策略。我猜明年会有不少工作把LLM的“不确定性信号”当作RAG触发器:不确定才检索,确定直接生成——既省成本又降幻觉。

第二,知识边界的研究。LLM知道什么、不知道什么,目前还没有清晰的图景。如果能画出模型知识的“地图”——哪些区域可靠、哪些模糊、哪些纯粹噪声——就能在推理时避开不稳点。哈佛ITI那篇论文提到“LLMs know more than they say”——知识藏在内部,但怎么安全提出来,还是大坑。

第三,多模态幻觉。图像描述里编造物体、视频理解中歪曲关系——检测和缓解比纯文本更难,因为视觉参考信息更模糊。像MERLIM和VHTest已经开始瞄准细粒度属性幻觉了,但要落地,需要更轻量的方案。


说回最开始的感受。

我曾经对ChatGPT的流利程度惊叹,觉得它像个无所不知的天才。现在呢?

我更愿意把它当成“需要监督的初级研究员”。

给思路时特别管用——脑洞大开,角度清奇。但事实核查这活儿,目前完全交不得手。

问题不是它永远好不了,而是我们得老实承认它现在有多蠢,然后对症下药。

别指望模型能自己治好幻觉。 它不行,它做不到。

我们做的每一步——从更干净的训练数据,到更聪明的检索,再到更诚实的解码——都是在帮它减少说谎的机会。

这活儿没那么性感。

但你想想,这世上真正有效的事,哪件不是这样呢?

没人能替AI的谎言负责,除了我们这些造它的人。

349
4993 阅读
3 评论
分享
链接已复制
编辑说明

本文由 MakeSense 编辑团队撰写并审核。文中引用的数据和观点均经过交叉验证,如有疏漏欢迎在评论区指正。最后更新:2026年06月20日 18:54

林远舟

技术编辑

全栈工程师出身,做过 5 年技术社区运营。对 AI 编程工具、开发者生态有深入研究,喜欢用实测数据说话。

读者评论 3

产品经理阿杰 1周前
从产品角度看,这个方向确实有机会,但商业化路径还需要验证。
回复 点赞 (15)
张工 1周前
写得很实在,特别是实测对比那部分,跟我自己的使用感受一致。
回复 点赞 (12)
前端工程师 2天前
代码示例很清晰,直接用到项目里了。
回复 点赞 (6)