幻觉透镜 HalluLens

6442 字
43 分钟
幻觉透镜 HalluLens
幻觉透镜 HalluLens
LLM 幻觉评测基准
Yejin Bang、Ziwei Ji 等 · FAIR at Meta、GenAI at Meta、HKUST · arXiv 2504.17550v1 · 2025 年 4 月 24 日
主线
大模型的幻觉缺一个统一的评测框架,根子在于「幻觉」和「事实性」被混着用。拆开之后才谈得上建基准:三个新任务专测训练数据外幻觉,测试集动态生成以防泄漏。
内核
给「幻觉」下一个能被检验的定义:真值可能散布在训练数据的任何地方,所以无法被轻易验证。这个「不易验证」不是缺陷描述,而是分类依据。
论证链
分类 → 任务 → 重估

作者先指出问题:评测幻觉缺一个统一框架;再给出解法:把幻觉拆成三类;然后实现解法:造三个评测任务;跑完实验之后回头检验,这个解法真的必要吗,于是重估了一批已有基准。

这四步不是并列的清单,是前后咬合的链条。没有那套分类,三个任务没法解释「为什么是这三个」,只能变成「我又造了三个基准」;没有后面那场重估,这三个任务就没有存在理由。这个顺序不能重排。重排之后,最后那场批评就没有对象了,变成对着空气挑刺。

提出问题 缺少统一框架 给出分类 内在、外延、事实性 实现任务 三个新基准 这一步追问:真的有必要吗 重估现有基准 实验 把顺序打掉 重估变成无对象的挑刺 重排之后,最后那场重估就失去了被重估的对象
论证依赖链。论文的骨架既不是并列铺开,也不是抽象层递升:四步前后咬合,重排会破坏它。
分类
把幻觉和事实性拆开

论文的整个贡献建立在一次概念切割上。

这次切割之所以必要,是因为「大模型的幻觉」这个说法在 2023 到 2024 年间被用于指称好几种不同的问题。机器翻译翻错了、摘要加上了源文没有的句子,这两种有源文本可对照,测起来不难。但今天多数生成任务不一样:用户只给一句任务指令,不给上下文材料,模型只能靠训练期间学到的内部知识来补。这时候出了问题,你去对照什么?没有源文本。而作为判定基准的「真值」可能散布在训练数据的任何地方,你没法验证。

论文把这个「没法验证」当成分类依据,而不是当成缺陷描述。这是关键的一步:不能验证的那一类,才是需要专门造基准去测的那一类。内在幻觉的评测早就有了,对比源文本即可;外延幻觉没有,因为它需要一个此前不存在的方法,不是拿现成数据集跑一遍,是要为了「不可验证」这个特性重新设计任务。

生成内容与什么不一致? 分歧点在「参照系」上 与源查询矛盾 与训练数据不一致 与训练数据无关 内在幻觉 有源文本可对照 翻译、摘要 外延幻觉 真值散布各处 难以验证 事实性 依据外部知识源 判答案对错 需要专门造基准去测的那一类 三者此前被混着叫「幻觉」,导致文献里大量基准其实是事实性基准,只是名字叫错了
三分图。分类的依据是「参照系」:与源查询比、与训练数据比、与外部知识源比。论文把「难以验证」这一属性当作外延幻觉的定义性特征,它正是需要专门造基准的理由。

作者顺手把第三个概念也切开了:事实性(factuality)问的是答案对不对,依据是外部既定知识源,完全不问训练数据。这三者此前被混着叫「幻觉」,导致文献里大量基准其实是事实性基准,只是名字叫错了。论文的原话是「这些基准被称为『幻觉』基准,但它们处理的主要是事实性」,而这个判断只在它们不涉及训练数据时成立。最后那场针对现有基准的重估,就建立在这个区分上。

前提与边界

这个划分成立的前提是「训练数据」作为一个可指认的对象存在。一旦模型用检索增强把外部文档放进上下文,「与训练数据不一致」这个判据就失效了,因为此时可比对的参照系变成了上下文文档。论文没有处理 RAG 场景。这是 2025 年 4 月的工作,而检索增强当时已经是主流部署形态。

书里怎么用的

论文对「事实性基准能否当幻觉基准用」给了一条很实用的转换条件:加了拒答率的测量,且数据集可论证地限定在训练数据范围内,这条基准就能当外延幻觉基准用。SimpleQA 和 PopQA 可以改造后使用;但那些「用超出训练数据截止日期的更新知识」来评的基准不行,它们测的是事实性,不是幻觉。

时代限定

论文的判据依赖「模型有固定训练数据截止日」这个前提。当模型持续在线更新、或把检索结果混进训练时,「内容是否与训练数据一致」这个判据会失去可操作性,因为没人能指认当前的训练数据是什么。论文发布时这个问题还不突出。

任务
三个新任务,两类来源

论文把外延幻觉按来源分成两类,各配任务。

分类的依据是「幻觉从哪来」。第一种是建模错误:模型知道答案,但生成时错了,这跟它见过的训练数据本身无关,是生成环节的失误。第二种是知识缺口:训练数据里压根就没有这部分内容,模型不知道,于是要么乱编,要么应该拒答。这两种来源需要的防护动作完全不同:前者要测「能不能答对」,后者要测「知不知道自己不知道」,而后者只能通过拒答率来测。

外延幻觉从哪来? 建模错误 知道答案,生成时错了 知识缺口 训练数据里压根没有 精确问答 PreciseWikiQA 短答案 · 事实型查询 维基动态生成 5000 题 长文本一致性 LongWiki 长文本生成一致性 需至少一段才触发 不存在实体拒答 NonExistentRefusal 造不存在的实体 度量改为误接受率 测「能不能答对」:维基大概在训练数据里,理想模型不该拒答 测「知不知道自己不知道」
来源到任务的映射。右支的度量从「幻觉率」翻转成「误接受率」,这道题不再问模型会怎么答,而问它有没有上当。

三个任务的设计都围绕训练数据边界这一个点。精确问答(PreciseWikiQA)和长文本一致性(LongWiki)用维基百科构题,逻辑是「维基大概在大部分先进模型的训练数据里,所以理想模型应该能准确回答而不该拒答」。不存在实体拒答(NonExistentRefusal)反过来,故意造出训练数据里绝对没有的东西,看模型会不会识破。

任务设计是这套基准真正的重心,它要解决的核心难题是:模型什么都学过,怎么还能造出一套它真没见过的题。三个任务各给了一套管道,解法各不相同。

精确问答:控制难度分桶 + 两步生成 + 硬性过滤

步骤做法解决什么
选源取「优质维基」数据集,44,754 个被标为高质量的页面保证题源本身不烂
估难度用维基排名里的调和中心性估每个页面「在训练数据里出现的频繁程度」,分 10 档(0 最难到 9 最易)长尾知识更难得分,不控制难度就没有可比性
抽样源池每档随机取 500 个页面,共 5000 个难度分布均匀
切段页面切成小节,随机取其中一节作为出题素材短事实题不需要整页
出题 + 答题两步分开:先看着选定的那一节出一道题,再看着参考素材生成答案分开是为了保证题的质量:题必须只凭参考素材就能答,且是客观题
过滤答案超过 10 个词就丢弃;题目答不出来就重新出题把「需要上下文才能答」和「开放题」挡在门外

产出质量作者自己查过:在子集上人工分析,自动生成的「金标准」答案有 97.2% 是正确的。剩下 2.8% 的噪声会不会影响模型之间的排序,正文没交代。

评分也全靠模型做:先判断模型有没有拒答,没拒答再判答案对不对,答案分成「正确、错误、无法核实」三类,后两类都算幻觉(题本该有答案)。评委是 Llama-3.1-70B,作者测了它自己的准确率,判拒答 96.67%、判对错 95.56%。这个数字自己交代出来了,但同时意味着全部分数继承了这个评委的误差。

长文本一致性:同一套题源,换成两个新要求

跟精确问答同源,额外加两条:题目必须落在参考素材内,且必须需要至少一段话才能触发长文本生成。判断方法一样:把生成的答案拆成一条条声明,逐条对照维基页面看有没有支撑。

这里有个刻意的取舍:论文明确不做联网检索取证。理由是用搜索结果当参考更适合事实性基准,因为能对上最新知识;但它没法验证生成内容与训练数据是否一致。宁可少测一点,也不能换掉判据的参照系。

不存在实体拒答:用「查无此物」把开放题变成判别题

子任务怎么造规模
混合实体
MixedEntities
在动物、植物、细菌、药品四个领域里,把已有名称的词混合或对调,造出四不像的名字,再逐个查库确认它确实不存在每领域 2000 条,共 8000 条
模型编造实体
GeneratedEntities
直接让大模型想商业、活动、产品品牌的虚构名—

这条路走得比想象中扎实:动物植物用的是整合分类学信息系统数据库(14.5 万条分类记录),药品用的是覆盖 25 万种全球药品的清单。逐个查库确认不存在这一步不能省,否则「不存在的实体」本身可能真的存在,整个任务就塌了。而且对照数据库是固定的,不需要联网,现场就能核。

度量指标也因此翻转:既然实体不存在,模型给的任何信息都是幻觉,所以测的不是幻觉率而是误接受率(模型有没有上当)。这把一道「模型会怎么答」的开放题,变成了一道「模型有没有识破」的判别题。开放题没法判分,判别题可以。

前提与边界

三个任务全部压在同一句假设上:维基百科已被纳入大多数先进模型的训练数据。论文把它明写出来了,但没给验证机制。精确问答和长文本一致性一旦离开这条假设就全部失效:如果某个模型的训练数据里没有维基百科,或者只收录了某个时间点之前的快照,题目就不是「模型该知道但答错了」,而是「模型压根不知道」。两个任务用了同一个源池做对照,这个假设一旦不准,无法从结果里分辨。

另外,三个任务的指标全部由模型评委给出。评委准确率作者报了(拒答判定 96.67%、正确性判定 95.56%),但这三项分数本身的不确定区间没有讨论:13 个模型之间的差距里,有多少是真实能力差、有多少是评委的判定抖动,论文没有回答。

时代限定

「按主题热度控制题目难度」只是缓解,没有解决不同模型的维基快照不同这个问题。2025 年之后模型持续更新,同一个页面在不同模型那里可能已经不是同一份内容。

防泄漏
动态生成对抗数据泄漏

现有基准失效的主因是数据泄漏:题目已经进了训练数据,模型「见过」。作者的判断是,静态测试集必然会饱和。

作者点名了 MMLU、TruthfulQA 这类广泛使用的基准已被报告存在污染。解法是评测时即时出新题,不留固定题库。

设计做法效果
动态生成测试集评测时即时生成新题,不留固定题库题目不可预测,不可能出现在任何已有数据集里
与可复现性的张力题目每次都不一样,怎么保证不同次之间的分数可比。作者的判断是「这并非一个轻松的挑战,因为这种动态性带来了与可复现性之间的张力」要求动态集在多次运行间保持低方差
验证方式三次运行平均标准差低于 1.01%,且保持模型相对排名

作者把「稳定」拆成了两个指标,这个拆分值得注意:一是低组内方差(同一个模型重复测,结果要接近);二是高组间敏感性(模型之间的差距要明显大于同一个模型内部的抖动)。只有第一条没有第二条,基准就废了:所有模型分数都稳,但稳得像一条线,谁都分不出来。

动态生成这套办法只适用于外延幻觉,内在幻觉做不到。理由很硬:外延幻觉可以自动生成金标准答案,因为参照系是训练数据;内在幻觉的判据是与源文本对照,而用大模型当评委本身就可能产生内在幻觉,裁判会自己犯它要判的错。论文明确写了「为内在幻觉做动态测试集是一个有前景的研究方向」,也就是承认现在没解决,只能先沿用三个已有的内在幻觉基准。

前提与边界

动态生成把成本从「一次标注」转移成「每次评测调一次大模型」。论文只报告了那个标准差数字,没有报告生成耗时,也没有报告与静态题库的成本对比。另外那个低方差结论只在精确问答上验证过,另外两个任务没有各自的方差数据。

时代限定

对于评测集需要长期稳定版本号的场景,动态生成反而不可用。这个工程约束论文没提。

重估
给现有基准开药方

这里给的是判断标准,不是新数据集。

转换条件只有一条,但很硬:必须加拒答率测量,且数据集可论证地限定在训练数据范围内。理由在指标定义里写得很清楚:幻觉率的计算是「未拒答时的错误答案比例」。如果没有拒答率这一项,一个模型对所有问题一律回答「我不知道」,幻觉率就是零。没有拒答率的幻觉基准,天然奖励逃避作答。

五个基准的逐项裁定
基准能否当幻觉基准理由
TruthfulQA存疑,可能需要修订它测的东西不完全是事实性,还涉及「是否本就该拒答」这类判断;论文指出这些问题让它无法区分「模型不知道」与「模型答错」
SimpleQA 与 PopQA可以改造改写评测指标即可
HaluEval 2.0缺一项只测幻觉率(MiHR 与 MaHR),没有拒答率测量。而缺了拒答率,模型可以通过「一律拒答」来刷分
ERBench接近与精确问答相似,但用实体关系模型自动构造,扩展性更好
超纲更新的基准不行测的是事实性,不是幻觉
时代限定

论文测的是 2025 年当时的模型(Claude-3 系列、GPT-4o、Llama-3、Gemma-2、Qwen2、Mistral 等)。具体分数的绝对值现在几乎已经失效,模型迭代比论文发表快得多。可迁移的是分类框架和「必须测拒答率」这条方法论,不是它的排名。

指标
三个数字必须一起看

论文用三个指标而非单一幻觉率,因为单一指标可以被博弈。

单看幻觉率 = 全部拒答 模型对所有问题答「我不知道」 幻觉率 = 0 · 得分最高 误拒率 越低越好:理想模型不该拒答 正确率 越高越好 幻觉率(未拒答时) 越低越好:衡量编造倾向
三角约束。三者必须同时读,单独任何一个都可以被博弈:单看幻觉率,一个全部拒答的模型得分最高。论文所有的设计(动态生成、拒答率测量、造不存在的实体)都是为了堵住红框那一种作弊。

长文本一致性那一套指标是另一个博弈面:它的精确率是「每条声明是否有维基页面支撑」,如果只看精确率,模型生成得越短越占便宜。只写最有把握的那几句,精确率就很好看。论文因此加了一个召回率指标,保证生成不能太短太不完整。但这个指标的参数是个固定值(取 32 条),短到 32 条以下就满分的生成,仍然优于该生成 200 条却只对 30 条的模型。这个偏置论文没有讨论。

前提与边界(补充)

三项指标全部由模型评委给出。评委一致率作者报了(拒答判定 96.67%、正确性判定 95.56%、不存在实体判定与人类判断一致 94.77%),三个数字都在 95%上下,意味着一套本来想测「模型有没有乱说」的基准,误差的一部分来自评委自己乱说。论文没有给出这三项分数的置信区间。

前提与边界

这套指标成立的前提是「知识范围可判定」。不存在实体拒答靠人造实体保证可判定;精确问答靠「维基在训练数据里」这个假设间接保证。如果哪个任务的答案边界本身模糊,这三个指标会同时失真。

缺口
这篇论文没回答什么
1. 动态生成测试集的评测成本,没有量化的交代

动态生成把成本从「一次标注」转移到「每次评测调一次 LLM」,而动态生成导致的方差上升会进一步增加重复评测的次数。论文只报告了「三次运行标准差 < 1.01%」这一个数字,没有报告生成耗时、没有报告与静态集的对比成本。对一个要在 CI 里跑的评测基准,这是能不能落地的关键。

2. RAG 场景下这套分类不成立,论文没有处理

外延幻觉的判据是「与训练数据不一致」,前提是训练数据是一个可指认的对象。当模型把检索文档放进上下文,比对的参照系就变成了那份文档,而不是训练数据,判据本身失效。论文发布于 2025 年 4 月,那时检索增强已是主流部署形态。论文没有讨论「检索到的内容与训练数据不一致」这种情况该归到哪一类。

3.「训练数据范围」不可判定,所以分类在原理上不可验证

论文自己写明所有前提都依赖「维基百科在大部分先进模型的训练数据里」。但没有任何一个公开模型会披露完整训练数据清单。所以「问题的知识范围是否落在训练数据内」这个核心判断,在实践中只能靠假设,不能靠核验。这意味着「外延幻觉率」这个数字的精度,取决于一个外界无法检查的假设有多可靠。

4. 三个新任务的实验完备度不均衡,稳定性结论只在一处被验证

PreciseWikiQA 和 NonExistentRefusal 各有完整结果表与指标定义。长文本一致性的结果只在附录的表格里给出,正文没有展开分析,而它用的是另一套指标(精确率、召回率、合一分数,取 K 为 32,方法采自 SAFE),与另两个任务的三个指标不同构。

更要紧的是:动态生成测试集的稳定性结论:标准差那个数字只在精确问答这个任务上给出。另外两个任务没有各自的方差数据。用一套任务的方差结论支撑整个基准的可靠性,这个外推没有交代。

而且长文本一致性的指标设计暴露了一个新的博弈面:论文自己承认,只算精确率的话模型可以靠生成短段落来获利,所以加了召回率指标。但 K 为 32 是固定值,短到 32 条以下就满分的生成,仍优于该生成 200 条却只对 30 条的模型。这个偏置论文没有讨论。

5. 前提散落在各处,没有收拢成边界声明

提出了一套新分类体系,却没有一处集中说明这套分类在哪些条件下失效。相关前提分散在各章,没有汇总。读者需要自己把分散的限定条件拼起来,才能判断这套分类对自己的场景适不适用。

6. 分类体系的第三条腿没有展开

论文在讲分类那一段引了 Ji et al. (2023) 的内在与外延二分,并在后续讨论中提到「factuality hallucination」这个第三类,说它处于事实性挑战与外延幻觉的重叠区。但这个第三类只被用于解释现有文献的混乱,没有被纳入 HalluLens 的分类树,也没有对应任务。一个用来诊断领域混乱的分类法,自己留了一个未处理的对象在体系之外。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

当前页面没有目录

文章目录

当前页面没有目录