三、幻觉的检测方法
如何构建一个自动化幻觉检测流水线?¶
构建自动化幻觉检测流水线需从数据分解、证据获取、事实核查到决策输出的完整链路。一个鲁棒的流水线通常包含以下模块:
(1)输入与分解模块(Statement Decomposition)
-
原子事实提取:将待检测文本(模型生成的回答)拆分为最小独立陈述单元(原子事实),每个原子事实只包含一个主谓宾三元组或简单陈述。可使用规则(依存句法分析)、信息抽取模型或直接调用大模型(如“请把以下文本分解为独立事实列表”)。
-
上下文处理:如果涉及用户提供的源文(如摘要任务),同步将源文分解为事实片段,用于后续忠实度校验。
(2)证据检索与对齐模块
-
针对事实性检测:对每个原子事实生成搜索查询(可抽取关键实体),调用搜索引擎或维基百科 API 获取相关权威文档。必要时对检索结果进行重排序和片段提取。
-
针对忠实性检测:将原子事实与源文对齐,计算语义相似度或进行蕴含判断,找出在源文中没有充分支撑的事实。
-
跨模态检测:多模态场景还需将图像描述原子化,并与视觉模型对图像的检测结果匹配。
(3)事实核查与推理模块
-
NLI 模型:使用预训练的自然语言推理模型判断“证据文本”是否蕴含该原子事实。可设置三分类(蕴含、矛盾、中立),如果为矛盾或中立但答案需要确定性,则标记为幻觉。
-
搜索一致性评分:检查搜索引擎结果的片段是否普遍支持该事实。可以聚合多个来源的 NLI 结果或计算文本蕴含得分。
-
工具验证:对于代码、数学等可执行内容,自动运行并对比输出,或使用符号求解器验证。对于数值,可查询权威数据库(如 Wikidata)进行比对。
(4)幻觉聚合与决策模块
-
原子级判断聚合:将各个原子事实的幻觉标签(幻觉/非幻觉)聚合为段落级或全文级的幻觉评分。可采用:任意原子幻觉则全文标记为有幻觉、计算幻觉比例(如 FActScore)、或根据原子重要性加权。
-
阈值与置信度:为NLI得分、一致性值等设定阈值,结合模型自身不确定性(如生成概率)进行综合决策。可训练一个轻量分类器融合多维特征,输出最终幻觉概率。
(5)解释与输出模块
-
高亮幻觉片段:返回标注了幻觉范围的文本,指出具体哪个句子或短语是幻觉,以及原因(如“该陈述与维基百科矛盾”)。
-
生成报告:包括幻觉类型(事实性/忠实性)、严重程度、可能的原因分类,便于后续优化模型。
(6)持续学习与反馈回路
- 将检测到的高置信幻觉样本加入训练集,用于微调幻觉检测器或反馈给生成模型进行偏好对齐。流水线应支持在线和离线模式,并定期更新知识库和 NLI 模型。
关键设计原则:
-
解耦与可替换:各模块独立封装,可升级 NLI 模型、检索器或分解器而不影响整体。
-
效率权衡:对实时性要求高的场景,可采用轻量分解和缓存检索结果;对准确性要求高的场景,可使用多轮验证和集成模型。
-
领域适配:针对医疗、法律等垂直领域,可定制知识库和专用 NLI 模型。
这样的流水线能够系统化、可扩展地检测生成文本中的各类幻觉。
基于规则或关键词的检测方法有哪些?有何局限?¶
基于规则或关键词的方法是最直接的幻觉检测手段,主要依赖模式匹配和表面特征。
主要方法:
-
关键词触发:搜索生成文本中是否出现了“我不知道”、“可能”、“根据我的训练数据”等不确定性表达,或相反地,搜索过于绝对的词汇(“绝对”、“毫无疑问”、“100%”等)。缺乏限定词可标记为潜在幻觉,但只是浅层信号。
-
引用格式验证:检测引用标记(如“[1]”、“(Smith, 2020)”)是否在提供的上下文中存在。如果模型输出中出现了源文中找不到的引用编号或作者名,可直接判定为来源幻觉。这种方法在 RAG 场景下非常有效。
-
实体一致性检查:从生成文本中提取命名实体(人名、地名、日期、数字),与上下文或知识库实体列表进行比对。如果生成实体不在允许的实体集合中,则标记为幻觉。例如,在摘要任务中,生成实体必须在源文中出现或属于常识同义词。
-
数字/日期正则匹配与校验:提取生成文本中的所有数字和日期,与源文或检索结果中的数字进行比对,不一致则报警。可以结合简单的数值范围规则(如年龄不应超过150岁等)。
-
自相矛盾检测:在同一回答中寻找语义对立的陈述,例如同时包含“A大于B”和“B大于A”。可通过模板或对比学习训练的句子对矛盾检测器实现,属于规则+轻量模型组合。
-
模板匹配:针对特定领域的固定句式(如“根据XX规定,您有权……”)进行合规检查,若出现格式不符或编造的法条号,可认为是幻觉。
局限:
-
召回率低,只能发现冰山一角:规则只能捕捉预定义的错误模式,无法检测细微的、新颖的或基于上下文的复杂幻觉。绝大多数幻觉不触发关键词。
-
精确度有限,误报率高:例如,表达不确定性并不代表幻觉,模型可能正确说出了未知之事;绝对化用语也可能确实适用于事实(如“水100℃沸腾”)。规则往往过于僵化。
-
难以应对同义替换和隐含矛盾:实体可以用不同名称指代,规则无法理解同义关系,造成漏检。隐含的矛盾需要深层语义理解。
-
维护成本高:领域迁移时需要重新梳理规则,且多语言环境下规则更难通用。
-
无法检测事实性幻觉:规则方法缺乏外部知识,不能判断一个陈述是否真实,只能检测与给定上下文的表面冲突。
因此,规则和关键词方法通常作为流水线中的快速筛选层或后处理安全网,结合深层语义模型共同工作。
如何利用 NLI(自然语言推理)模型检测幻觉?¶
NLI(Natural Language Inference) 模型判断两个句子之间的逻辑关系:前提(Premise)是否蕴含(Entailment)、矛盾(Contradiction)或中立(Neutral)假设(Hypothesis)。在幻觉检测中,NLI 模型被广泛应用于评估生成文本是否能够从可靠源文或事实证据中合理推出。
应用范式:
(1)忠实性幻觉检测(基于源文)
-
前提:用户提供的上下文或摘要的原文。
-
假设:生成文本的原子陈述。
-
判断:如果假设被前提蕴含,则该陈述忠实;如果为矛盾或中立(在需要完全支撑时中立也视为不忠实),则标记为幻觉。
-
方法:将生成文本逐句拆分,每一句作为假设,用源文整体或局部相关片段作为前提进行 NLI 判断。若没有一句蕴含,则为幻觉。
(2)事实性幻觉检测(基于外部证据)
-
前提:从知识库或搜索引擎检索到的证据段落。
-
假设:生成文本的原子事实。
-
判断:如果证据段蕴含假设,则事实正确;若矛盾,则为事实性幻觉;若中立,可能需进一步检索或标记为不确定。
-
可结合多文档:对同一假设使用多个检索到的证据作为前提分别进行 NLI,再投票或加权。例如,如果多个权威源都蕴含该陈述,则真实性高。
(3)多步NLI与细粒度对齐
-
对于长文本,可进行句子级别的对齐:先计算生成句与源文各句的相似度,选出最相关的前提句,再跑 NLI。这能降低无关上下文的噪音。
-
也可使用跨度级别的 NLI,如用 QA 模型定位证据跨度,再判断该跨度是否支持假设。
常用 NLI 模型:
-
经典的 RoBERTa-large 在 MNLI 上微调,或更先进的 DeBERTa、BART 等。
-
专门的幻觉检测 NLI 模型如 SummaC、ANLI(Adversarial NLI)等,对矛盾更敏感。
优势:NLI 模型能进行深层语义逻辑判断,超越关键词匹配,对改写、含蓄表达有一定理解力。
局限:
-
NLI 模型本身可能有误差,特别是面对复杂推理、需要世界知识、或长文本时。
-
对“中立”的处理需要任务定义:在摘要任务中,中立通常视为幻觉(添加);在开放事实核查中,中立可能意味着证据不足,需要进一步确认。
-
需要较好的原子化分解;若原子事实过长或包含多个子句,NLI 可能不准。
最佳实践:在自动化流水线中将 NLI 作为核心校验器,结合检索增强和原子分解,可大幅提升幻觉检测的准确性和覆盖率。
解释“SelfCheckGPT”的基本原理,如何检测模型自身的幻觉?¶
SelfCheckGPT 是一种无需外部知识的黑盒幻觉检测方法,利用大模型自身多次采样生成的一致性来发现幻觉。其核心思想:如果模型对某个事实不确定或该事实是编造的,那么多次随机采样中该事实的出现情况会有较大波动。
基本原理与步骤:
-
多次采样:对于同一个用户查询,使用较高温度或 top-p 采样生成 N 个不同的回复(如 N=5~20)。每次采样独立,随机性来自模型内部的 dropout 和采样策略。
-
目标回复选定:通常选择其中一个回复作为“主回答”(例如贪心解码的回复,或与其他回答最相似的那个),其余回复作为“参考回答”。
-
事实原子分解:将主回答分解为多个原子事实(陈述句),每个原子事实等待验证。
-
一致性度量:对于每个原子事实,计算它在各个参考回答中的“支持度”。支持度可以通过以下方式衡量:
- 语义相似度:计算原子事实与每个参考回答的余弦相似度(基于句子嵌入),然后取平均值或最大值。如果平均相似度低,说明其他回答没有类似陈述,该事实可能是幻觉。
- 蕴含得分:使用 NLI 模型,以参考回答为前提,原子事实为假设,计算被蕴含的次数或平均蕴含概率。如果多数参考回答都不蕴含该事实,则标记为幻觉。
-
BERTScore 或 QA 式验证:用参考回答作为上下文,提问生成该事实的问题,看能否得到支持答案。
-
幻觉评分:综合所有原子事实的一致性得分,若低于阈值,判定为幻觉。也可以直接输出每个事实的幻觉概率。
SelfCheckGPT 的变种:
-
使用检索增强的对比:如果允许使用外部知识,可将参考回答换成检索到的支持文档,类似操作。
-
直接计算 N 个回答中某个关键实体、数值的一致性:如某个日期在不同回答中多次变化,则该信息不确定。
为什么有效:
-
当模型“知道”某个事实时,多次采样会稳定输出相同或等价的陈述;当模型在“编造”时,它每次可能随机填补不同的细节,导致事实内容不一致。
-
该方法利用了模型自身的集成不确定性,巧妙地将幻觉检测转化为一致性检测,无需外部知识库,非常适合隐私敏感或知识不可用的场景。
局限性:
-
计算开销大:需要多次生成,每次生成可能很长,且需要 NLI 或相似度计算。
-
对确定性幻觉效果减弱:如果模型非常确定某个错误事实(高置信幻觉),多次采样可能每次都生成相同错误,此时 SelfCheckGPT 可能失效。因此它更适合检测模型的“不确定性幻觉”。
-
依赖基础模型的生成多样性;若温度不够,采样多样性不足,则方法失敏。
应用:SelfCheckGPT 可以作为无外部知识时的幻觉风险评估工具,辅助用户判断模型回答的可靠性,或用于标记潜在幻觉用于人工复核。
基于不确定性估计的方法(如多次采样计算一致性)如何检测幻觉?¶
基于不确定性估计的幻觉检测利用了这样一个假设:当模型对生成内容不确定时,更容易产生幻觉。通过量化模型的不确定性,可以预测哪些输出可能不可靠。
主要方法:
(1)多次采样一致性(Self-Consistency)
-
与 SelfCheckGPT 相似,生成多个回答,观察它们在关键事实上的语义一致性。如果各回答在某个事实点上语义分歧大(如使用聚类分析,发现多个簇),则该事实可能为幻觉。
-
常用的操作:将 N 个回答进行语义嵌入,聚类成若干观点,计算主回答所在簇的大小或与其他簇的远近。若主回答是孤立点,则高度可疑。
(2)基于 token 概率的不确定性
-
直接在生成过程中获取每个 token 的预测概率。对于关键事实 token(如实体、数字、日期),计算其条件概率或累积概率。概率越低的 token 越可能是幻觉,因为模型对它的选择犹豫不决。
-
可以更精细地计算序列的困惑度或熵:对于生成长度,计算平均对数概率或预测熵。高困惑度区域提示模型处于不确定状态,易产生幻觉。
-
但需要注意:模型可能对错误答案也赋予高概率(过度自信),因此仅概率不够。
(3)Monte Carlo Dropout / 贝叶斯近似
-
对白盒模型,可以在推理时启用 dropout(相当于贝叶斯神经网络近似),多次前向传播同一输入,得到不同的概率分布。计算这些分布在各个 token 上的方差。方差大的 token 对应高度不确定,可能幻觉。
-
由于大模型推理成本高,这种方法应用受限,但原理可行。
(4)基于隐层状态的不确定性
- 利用模型最后隐层表示的分布特性,如计算特征范数、距离超平面的距离等,训练一个不确定性估计器。在生成过程中,如果遇到异常表示,则判断可能幻觉。
(5)口头不确定性(Verbalized Uncertainty)
- 要求模型在生成答案时同时输出自身的置信度分数(如“置信度:90%”)。这种方法依赖模型的自我认知,但若模型校准不佳,则分数不准。可通过微调让模型学会输出较准确的置信度。
实际应用:
-
在对话系统中,对低一致性的回答进行拒答或给出提示“该信息可能不准确”。
-
结合外部知识:当一致性低时,触发外部检索验证,以节省资源。
局限性:
-
不确定性高不一定代表幻觉(可能是模型正确的表达了复杂多变的事实),存在误报。
-
计算成本高,不适合低延迟场景。
-
模型的高置信幻觉会使这类方法失效。
因此,不确定性估计通常与其他方法(如 NLI)结合使用,作为幻觉风险排序或触发深度检测的初筛机制。
如何通过模型输出 token 的概率或熵来判断可能幻觉?¶
利用生成 token 的概率或熵是一种轻量级、低成本的内省式幻觉检测方法,可直接在模型生成过程中或生成后使用,无需外部知识。
具体方法:
(1)Token 条件概率

(2)序列平均对数概率(Length-Normalized Log Prob)
- 计算整个生成答案的归一化对数概率(平均每个 token 的 log prob)。如果答案的整体概率远低于该模型对其他类似请求的典型输出概率,则提示可能包含幻觉。但跨句比较需谨慎,因为概率与文本长度、词汇选择相关。
(3)预测熵(Predictive Entropy)

(4)基于概率的校准得分
- 使用概率校准理论,将 token 概率转化为置信度。例如,预测该 token 的概率是否与其经验正确率匹配。训练一个分类器,输入特征包括:token 概率、所在句子位置、该 token 是否为实体、前后的熵等,输出该 token 是否属于幻觉。
(5)最小 token 概率
- 研究发现,幻觉句子的最小 token 概率往往低于非幻觉句子的最小 token 概率,因为幻觉文本可能会有一个或几个“勉为其难”的词。
优势:
-
即时可用,几乎无额外成本,与生成过程无缝结合。
-
可以提供细粒度的不确定性提示。
劣势与挑战:
-
模型可能过度自信:许多幻觉以高置信度生成,概率很高,熵很低,方法会漏检。
-
长生成中的概率衰减:序列越长,个别低概率 token 难免,造成误报。
-
难以设置通用阈值:不同模型、不同任务、不同解码策略下的概率分布差异很大,需要特定校准。
-
无法区分编造的事实与真正未知但模型诚实输出低概率词汇的情况。
最佳实践:将 token 概率与熵作为输入特征之一,与 NLI 或一致性特征结合,由综合分类器判断,以获得更准确的检测。
使用外部知识库(如 Wikipedia)做事实核查,怎样设计流程?¶
利用维基百科等权威知识库进行事实核查是验证模型生成内容真实性的标准方法。设计如下流程:
(1)原子事实提取与查询生成
- 同上,将待测文本拆分为原子事实。对每个原子事实,抽取核心实体和关系,生成一个或多个搜索查询。查询策略包括:直接使用陈述句作为查询、使用“实体1 关系 实体2”形式、或者仅用实体名检索。
(2)知识库检索
-
使用 Wikipedia API 或离线索引,检索相关页面摘要或全文。对于每个原子事实,获取 Top-K 篇最相关的文章或段落。可以使用稀疏检索(BM25)或稠密检索(DPR),并利用标题匹配提升精度。
-
可选:使用 Wikidata 查询结构化数据,对于数字、日期、关系等可直接进行 SPARQL 查询获取真值。例如,“爱因斯坦的出生日期”可直接返回维基数据中的精确日期。
(3)证据片段精炼与对齐
-
对检索到的长文档,进行段落重排序,选取与原子事实最相关的若干证据片段。可使用交叉编码器(cross-encoder)或基于 NLI 的评分。片段长度以包含足够上下文为准。
-
确保证据的权威性:优先使用百科类文章正文,排除讨论页或低质量段落。
(4)事实校验
-
方法一:NLI 研判。将证据片段作为前提,原子事实作为假设,运行 NLI 模型。若证据蕴含假设,则事实通过;若矛盾,则标记为事实错误(幻觉);若中立(证据未涉及),则标记为“无法验证”,可能需要进一步检索或判定为可能幻觉(如果要求必须知道)。
-
方法二:基于问答的验证。生成一个关于该原子事实的问题,用阅读理解模型在证据片段上寻找答案。如果抽取的答案与原子事实中的信息匹配,则通过;如果不匹配或找不到答案,则可能为幻觉。该方法能处理更复杂的表述。
-
方法三:信息检索指标。计算原子事实与检索片段之间的 BERTScore 或 TF-IDF 相似度,如果相似度极低,表明无相关证据,直接标记为幻觉。这种方法快但粗。
(5)多源证据融合与决策
-
对同一事实使用多个独立来源(不同页面或不同搜索引擎结果)的证据。如果多数来源支持,则通过;若相互矛盾,则标记为有争议,需提示用户。
-
引入证据质量权重:Wikipedia 条目可信度通常高,社交媒体等不可用。
(6)结果聚合与输出
-
输出每个原子事实的核查结果:Supported(支持)、Refuted(否定)、Not Enough Evidence(证据不足)。对于 Refuted 和部分 Not Enough Evidence 可标记为幻觉。
-
同时高亮原文中的相应片段,并提供证据来源链接。
挑战与优化:
-
时效性:知识库可能不是最新的,对于时事,需要结合新闻搜索。
-
效率:批量原子事实检索和NLI较慢,可并行处理,并缓存频繁查询。
-
对模糊陈述的处理:如“研究表明……”需拆解为具体声明才能核查。
此流程是自动化事实核查系统(如FActScore的变体)的核心,能有效检测大多数事实性幻觉。
什么是“FactualNLI”?它如何用于事实一致性评估?¶
FactualNLI 是一个专门用于评估事实一致性的数据集和基准,基于自然语言推理框架,旨在检测生成文本是否忠实于给定源文(如摘要是否与原文事实一致)。
核心构成:
-
数据来源:基于 XSum 和 CNN/DM 等摘要数据集,收集生成的摘要,由人工标注者对每个摘要句子进行“是否与源文一致”的二元判断(忠实/不忠实)。
-
为了方便 NLI 模型训练,将源文和摘要句子对构造成 NLI 格式的样本。具体做法:对于每一个摘要句,标注者将源文中能够支撑该句的证据片段高亮出来,形成前提。对于忠实的句子,前提-假设关系为“蕴含”;对于不忠实的句子(如编造细节),由于无法找到充分证据,标注者可能会标记为“矛盾”或“中立”(但矛盾通常需要相反证据)。
-
因此,FactualNLI 将事实一致性问题转化为 NLI 任务:给定源文片段(前提)和摘要句(假设),判断是蕴含(忠实)还是非蕴含(非忠实,常归类为矛盾或中立)。
用于事实一致性评估:
-
模型微调:在一个标准的 NLI 模型(如 RoBERTa、DeBERTa)上用 FactualNLI 进行微调,使其特别擅长检测总结中的事实冲突和无据添加。
-
流水线应用:在自动评估摘要质量时,将生成的摘要逐句与原文进行 FactualNLI 判断。如果一个句子被预测为“非蕴含”,则视为事实不一致(幻觉),并给出分数。
-
评估指标:可以计算幻觉句子的比例,或整体事实一致性得分(如正确蕴含的句子占比)。
FactualNLI 的优势:
-
将开放式事实核查转化为成熟的 NLI 格式,可以利用 NLI 强大的语义理解能力。
-
标注了明确的证据跨度,使得模型可以学会精准定位源文信息。
-
相比于简单的 n-gram 重叠,能发现更隐蔽的不忠实(如过度泛化、错误推理)。
与其他基准的关系:
-
它类似于 SummaC 和 ANLI 的部分思想,但专注于摘要忠实度。与 FactCC 等数据集一起,构成了摘要幻觉检测的核心评估套件。
-
实际应用中,FactualNLI 模型可以与其他忠实度指标(如依赖解析匹配)融合,形成更鲁棒的评估器。
局限性:
-
仍然受限于 NLI 模型自身能力,对需要复杂推理或深层世界知识的矛盾可能漏判。
-
前提片段选取的质量会影响评估;在长源文中,错过某句证据可能导致误判为非忠实。
尽管如此,FactualNLI 是当前自动化事实一致性评估的重要基石。
如何检测模型在摘要生成中的幻觉?常用的摘要幻觉检测基准。¶
摘要生成中的幻觉主要指忠实性幻觉,即摘要包含原文没有的信息(外部幻觉)或曲解原文信息(内部幻觉)。检测方法围绕比较摘要与原文的事实一致性。
检测方法体系:
(1)基于 NLI 的忠实度评估
-
使用 NLI 模型(如 FactualNLI 微调的模型)将原文作为前提,摘要句子作为假设,判断是否蕴含。常配合句子对齐,先找原文中最相关的支持句。
-
指标:蕴含句数占比、矛盾句数占比。
(2)基于信息抽取与比对
-
同时从原文和摘要中抽取实体、关系、事件。计算摘要中的元素有多少百分比出现在原文中(精度),原文中的关键信息有多少被摘要覆盖(召回)。任何不在原文中的抽取元素即为潜在幻觉。
-
典型工具:OpenIE 抽取三元组,然后对齐。
(3)基于问答(QA)的方法
-
根据原文自动生成一系列问题(使用问题生成模型),然后用原文回答(得到标准答案),再用摘要回答。比较两个答案的语义等价性。如果摘要答案错误或无法回答,则摘要可能包含幻觉。常用指标如 QAGS (Question Answering for Grounding Summaries)。
-
QA 方法对细节增减敏感,是目前较强的自动评估方式。
(4)文本覆盖与引用分析
-
对于生成摘要中出现的具体数字、日期、专有名词,检查它们是否完全在原文中出现。任何未在原文中出现的数值或专有名词都是高可能性幻觉。
-
使用 Copilot 式的逐句引用检查,看摘要是否能被原文片段精准支撑。
(5)大模型直接评判
- 使用 GPT-4 等强模型作为评判器,给定原文和摘要,要求其标注摘要中不忠实于原文的部分,并解释。这在零样本下很有效,但成本高。
常用的摘要幻觉检测基准:
-
XSum-Factuality / FactCC:基于 XSum 单句摘要数据集,人工标注了摘要是否忠实原文。FactCC 是一种基于 BERT 的评估器,判断摘要句相对于原文是否一致。
-
CNN/DM 幻觉子集:研究人员从 CNN/Daily Mail 数据集生成大量摘要并标注忠实性,常用于训练检测器(如 FactualNLI)。
-
SummaC:一个综合性基准和工具包,包含多个自动评估指标,并提供带有细粒度忠实度标注的数据集(如 SummaC Benchmark),用于评估摘要幻觉。
-
FRANK:一个较为全面的摘要幻觉数据集,覆盖多种模型生成的摘要,标注了幻觉类型(如句法推导、上下文幻觉等),并提供了类别标签。
-
QAGS:上述QA方法提出的数据集,包含 CNN/DM 和 XSum 上的摘要及其忠实度标注。
-
HalluEval 等中文基准:针对中文摘要的幻觉检测数据集。
检测流程整合:
-
使用 QAGS 进行快速预筛;
-
对可疑句子运行 FactualNLI 或 SummaC 进行细粒度判断;
-
输出幻觉片段位置和类型,评估整体可信度。
挑战:
-
跨领域的泛化:不同领域、不同长度的摘要需要专门校准。
-
固有幻觉(信息重组正确但表达不同)可能被误判。
-
缺乏完美的自动化指标,常需结合人工评估进行校准。
总结:摘要幻觉检测已形成从 NLI、QA 到专有基准的多维体系,实际应用通常多方法融合以提高鲁棒性。
对于对话模型,如何检测多轮交互中的事实漂移?¶
多轮对话中的事实漂移(Fact Drift)指模型在长对话中逐渐遗忘、混淆或修改先前建立的事实,导致输出与对话历史矛盾。检测此类幻觉需要专门针对跨轮次的状态一致性进行建模。
检测方法:
(1)对话状态追踪与校验
-
建立显式的对话状态(槽位-值对),如“用户姓名:小明”、“目的地:巴黎”。每一轮生成回复后,自动抽取其中涉及的状态声明,与历史状态进行对比。如果新声明与旧状态冲突(例如后轮中说“好的,为您预订去伦敦的机票”),则触发事实漂移警报。
-
可以使用信息抽取模型或大模型自动将对话历史转为结构化状态,再通过规则或语义匹配进行一致性检查。
(2)跨轮次语义蕴含
-
将整个对话历史切分为事实片段,对于模型的最新回复,逐句提取声明,并在对话历史的所有语句中寻找支撑证据。使用 NLI 模型判断:如果最新声明与历史中某个部分矛盾,或无法被历史任何部分蕴含,则可能为幻觉漂移。
-
需要重点关注否定、更替和遗忘的模式:用户纠正过的事实是否被模型后续采纳,还是又漂移回旧信息?
(3)自我一致性采样
-
对同一个多轮对话历史,多次采样生成不同的未来回复。比较这些回复在关键事实点上是否一致(如使用类似SelfCheckGPT的跨生成一致性)。如果模型在某个事实上回答差异大,说明它对该事实的记忆不确定,可能已发生漂移。
-
可用于在线检测:在生成回复前,先在后台进行若干次“预生成”,检查关键事实的一致性,低一致性则标记风险。
(4)对话记忆增强的幻觉检测器
-
微调一个专门的多轮幻觉检测模型,输入为完整对话历史和当前回复,输出逐句的忠实度标签。训练数据可以通过扰动真实对话来构造:在正确对话中故意插入前后矛盾的语句,作为正例(幻觉)。
-
该模型能够隐式学习长期依赖的矛盾模式。
(5)关键信息摘要与回视
- 在每一轮生成前,要求模型先生成一个隐式的“对话摘要”(仅系统内部使用),总结当前已确认的关键事实。然后将生成回复与该摘要比对,快速排除不一致。这个方法可以与生成过程结合,实时防止漂移。
挑战:
-
对话越长,检测越困难;矛盾可能间隔多轮出现,需要长距离依赖。
-
隐式状态的变更:用户没有明说,但通过语境含义改变了事实,这种微妙漂移难以捕捉。
实际应用中,通常结合对话状态追踪和NLI作为主体,辅以定期摘要校验,构建针对多轮对话事实漂移的实时监控。
什么是“检索增强评估”?用检索到的证据判断生成真实性。¶
检索增强评估(Retrieval-Augmented Evaluation, RAE) 是一种自动化事实性评估范式,核心思想是对于待评估的生成文本,实时检索外部知识源(如维基百科、新闻库、搜索引擎),将检索到的权威文档作为证据,来验证生成文本中的声明是否真实。它是将RAG的思想逆向用于评估。
工作流程:
-
声明分解:将生成文本拆分为原子事实(如“巴黎是法国首都”)。
-
查询生成与检索:对每个原子事实生成搜索查询(抽取实体和核心谓词),调用搜索引擎API或知识库,获取Top-K相关文档或片段。
-
证据精炼:对检索到的文档进行重排序和片段选择,找出与声明最相关、最权威的段落。
-
事实校验:使用NLI模型或问答模型,判断证据是否蕴含该声明。若证据蕴含,则声明为真;若矛盾,则为假(幻觉);若证据不足,则标记为“无法验证”或视为可能幻觉。
-
聚合评分:根据每个声明的验证结果,计算整体的真实性得分(如FActScore)。
与传统评估的区别:
-
传统自动评估指标(如BLEU、ROUGE)只比较与参考文本的表面相似性,无法判断事实真假;而RAE直接与外部世界知识对接,能评价开放域生成的事实性。
-
相比固定数据集评估,RAE可以适应任意新生成的文本,具有良好的泛化性。
优势:
-
动态与时效:只要搜索引擎能获取最新信息,即可核查时效性事实,不受模型知识截止的限制。
-
可解释:每个验证结果都附有证据来源,便于回溯和分析。
-
可扩展:理论上可以核查任意领域的声明,只需相应知识库可检索。
挑战与局限:
-
检索质量依赖:若检索返回不相关或错误文档,评估结果被污染。
-
证据理解难度:有些声明需要多跳推理或隐含知识,简单NLI可能无法准确判断。
-
计算开销:大量原子事实的检索和NLI耗时较长。
-
“无法验证”的处理:许多真实陈述因网络覆盖不足而找不到证据,可能被误判为幻觉。
尽管有局限,检索增强评估是目前最接近人类事实核查的自动化方法之一,在FActScore、TruthfulQA等基准中被广泛采用。
用 GPT-4 等强模型作为裁判检测幻觉,prompt 应如何设计?¶
使用强大的大模型(如GPT-4)作为评判器来检测幻觉,关键在于设计能够引导模型进行细粒度、有依据、结构化判断的提示词(prompt)。设计原则和模板如下:
(1)明确角色与任务定义
-
开篇设定模型为“事实一致性校验专家”,并给出清晰的定义,防止混淆。
-
示例:“你是一位严格的事实核查专家。你的任务是逐句检查【模型回答】是否与【参考源文】(或【已知事实】)一致,并指出任何不一致或编造的内容。”
(2)提供详细判断准则
-
定义何为幻觉(“包含源文中没有的细节、与源文矛盾、或无法从源文推断出的内容”)。
-
要求区分“忠实性幻觉”(与源文不符)和“事实性幻觉”(与常识或外部知识不符),按需选择。
-
示例:“请注意,回答中的任何额外信息,即使合理,若未在源文中明确提及或可直接推断,均应视为幻觉。对于无法确定的情况,请标注为‘可疑’并说明理由。”
(3)结构化输出要求
-
要求模型输出JSON或Markdown表格,便于自动解析。字段应包括:句子编号、原始文本、判断(忠实/不忠实/可疑)、证据来源(引用源文对应句子)、解释。
-
示例:“请按以下JSON格式输出:[{‘sentence’: ‘...’, ‘label’: ‘faithful’/‘hallucination’/‘uncertain’, ‘evidence’: ‘...’, ‘reason’: ‘...’}]”
(4)要求逐句分解与证据对齐
-
提示模型先将回答拆成独立声明,再逐条与源文比对。
-
示例:“首先,将【模型回答】拆分成单一声明(每句一个),然后对于每个声明,在【源文】中找到精确匹配或直接支持的句子。如果没有找到,则标记为幻觉。”
(5)引入思维链(Chain-of-Thought)
-
让裁判模型在做出最终判断前,先写出推理过程,这能提高准确度。
-
示例:“请一步一步思考:1) 分析该句子的核心事实;2) 在源文中搜索相关部分;3) 比较两者是否一致;4) 得出结论。”
(6)处理多源冲突与不确定性
-
若同时提供多篇参考文档,要求模型综合判断,并指出文档间的矛盾。
-
示例:“如果不同文档提供的信息相互矛盾,请指出矛盾点,并在判断时优先考虑权威性更高的来源。”
(7)校验引用与来源
-
对于RAG应用,尤其强调检查回答中的引用是否真实源于所提供的文档,以及引用内容是否与文档一致。
-
示例:“如果回答中包含引用标记(如[1]),请检查该引用对应的文档内容是否确实支持该声明。若不支持或引用不存在,请标记为‘来源幻觉’。”
(8)示例(Few-shot)
- 在prompt中给出1-2个标注范例,展示期望的输出格式和严格的判断标准,能显著稳定模型表现。
(9)安全性后处理
- 要求模型对严重虚假或有害幻觉进行额外的高亮警告。
完整Prompt模板示例(简化版):
你是一个严格的事实核查员。你的任务是严格检查【回答】是否忠实于【上下文】。
规则:
1. 将回答拆分成独立的声明(按句子或分句)。
2. 对每个声明,在上下文中寻找确凿证据。如果上下文无法直接证明或与上下文矛盾,即视为幻觉。
3. 如果声明是常识且上下文未涉及,标记为“可疑”而非幻觉。
4. 输出JSON列表,每个元素包含 "statement", "label" (faithful/hallucination/uncertain), "evidence" (引用上下文原句,若无则填无), "reason"。
【上下文】: {context}
【回答】: {response}
JSON输出:
通过上述设计,可以最大限度地发挥强模型作为幻觉裁判的潜力,获得高质量、可解释的评估结果。
自动检测与人工评估在幻觉检测上各自优缺点是什么?¶
协作模式:
-
自动初筛 + 人工精标:用自动检测工具标记出高风险的片段,人工重点复核,兼顾效率和准确。
-
自动评估作为训练信号:使用自动指标对模型进行大规模监督训练(如RLHF中的奖励),定期用人工评估校正自动指标。
-
迭代对齐:用人工标注数据不断微调自动检测模型,使其更贴近人类标准。
如何设计人工标注指南,标注生成文本中的幻觉片段?¶
设计高质量的人工标注指南是保证评估质量的核心,需要涵盖定义、流程、示例和边界案例。
(1)明确任务目标与幻觉定义
-
简明定义幻觉:本次标注针对忠实性幻觉还是事实性幻觉,或两者。给出清晰区分。
-
举例:“忠实性幻觉:回答添加了源文中不存在的信息,或曲解源文事实。事实性幻觉:回答中包含与外部世界真实事实相悖的陈述,不论源文如何。”
(2)标注粒度
-
指定标注层级:声明级(原子事实)、句子级、短语/实体级、或全文存在性标注。
-
如为声明级,需要规定如何拆分声明;如为跨度级,需要标注文本中确切的错误子串。
(3)定义标签体系
- 基本标签:
- Support(支撑):在源文/知识中可找到直接证据。
- Contradict(矛盾):与源文/事实明确相反。
- Unsupported(无依据,Neutral):陈述的信息未在源文中出现,也未与事实矛盾。
-
Can't Judge(无法判断):信息不足以判断(慎用)。
-
若仅关注幻觉,可将 Unsupported + Contradict 合并为 Hallucination,同时记录子类型。
(4)标注流程
-
步骤1:阅读源文/上下文和生成文本。
-
步骤2:将生成文本分解为可独立验证的片段(可预分解好,让标注者确认或修改)。
-
步骤3:对每个片段,在源文(或外部知识)中寻找最相关的支撑证据。使用高亮方式记录证据位置。
-
步骤4:根据比对结果,赋予标签和理由简述。
-
步骤5:如果存在复杂情况(如两可),在备注中说明。
(5)详细的判断规则与示例
-
数字和专名精准匹配:任何数字、日期、名称必须完全一致,近似也视为幻觉(除非源文允许换算)。
-
因果/推断的限制:不能把源文的暗示当作直接事实。只可标注源文明确陈述的信息为支撑。例如,源文说“地湿了”,不能支撑“下过雨”。
-
常识运用:允许常识性改写,但不可添加具体事实。例如,“Apple Inc.”可写成“苹果公司”,但不能加上“总部位于加利福尼亚”如果源文没提。
-
多重否定与模糊语:仔细处理,若曲解了本意,记为幻觉。
-
不确定性表达:若回答本身使用了“可能”、“据报道”等词,标注时应考察其核心主张是否忠实,而不仅因有缓和词就放过错误信息。
(6)典型案例与边角案例库
-
提供10-20个覆盖不同类型(无依据添加、矛盾、正确、难以判断)的样例,并给出详细标注理由。
-
定期更新疑难案例,组织标注者校准会议。
(7)标注者训练与质量监控
-
进行初次培训+试标注,计算一致率(如Cohen's Kappa),达标后再正式标注。
-
嵌入金标准题目(已知答案的样本)以实时监控标注质量。
-
定期进行双人标注和分歧解决。
(8)工具支持
-
使用标注平台(如LabelStudio、BRAT)支持文本高亮、标签选择和多轮对话渲染。
-
预载入源文和可能的外挂知识,辅助标注者快速定位。
一个详尽且迭代更新的指南,可以显著提升幻觉标注的一致性和可靠性,为模型评估和改进奠定坚实基础。
幻觉检测的粒度:句子级、声明级、实体级的区别。¶
幻觉检测的粒度决定了系统定位错误的精细程度,不同粒度适用于不同目标和成本。
(1)句子级(Sentence-level)
-
定义:以完整句子为单位,判断该句是否包含任何幻觉。
-
标签:通常为二分类(含幻觉/不含幻觉),或三分类(完全忠实/部分幻觉/全是幻觉)。
-
优点:标注简单快速,适合粗粒度评估,可快速了解整体可信度。
-
缺点:无法定位具体错误词;一个句子可能大部分正确但仅有一个实体错误,句子级标签无法精确指导修正。
-
应用:用于初步筛选、整体质量报告。
(2)声明级(Claim-level / Atomic Fact)
-
定义:将文本拆解为最小的独立事实主张(原子事实),每个主张可被单独验证。例如,“巴黎是法国的首都,拥有埃菲尔铁塔”拆为两条声明。
-
标签:每条声明分别判断是否被支撑/矛盾/无依据。
-
优点:粒度精细,可精确计算幻觉比例(如FActScore),错误定位准确,便于分析与修复。
-
缺点:拆分需额外步骤(自动或人工),标注和验证成本高;拆分质量影响后续检测。
-
应用:深度评估、模型诊断、可信度打分的主流方式。
(3)实体级(Entity-level / Span-level)
-
定义:识别文本中具体的错误实体、数字、短语(连续token),指出幻觉的具体span。
-
标签:幻觉片段的高亮及其正确版本(如适用)。
-
优点:最细粒度,直接指向需修正的文本部分,适合用于自动纠错和人机交互修正。
-
缺点:标注极其耗时,需要高度训练;自动检测难度大;难以覆盖结构性或无实体的幻觉(如整体逻辑错误)。
-
应用:辅助写作、新闻事实核查的修正建议。
(4)其他粒度
-
文档级:判断整篇文章是否包含幻觉,仅提供有/无判断,信息量最小。
-
子句级:介于句子和声明之间,有时作为一个折中。
实际应用中的组合:
- 自动化系统常采用声明级作为核心,辅以实体级高亮;人工评估也可先用句子级筛出问题段落,再深入声明级和实体级分析。多粒度协同可兼顾效率与精度。
如何从生成文本中抽取原子事实(atomic facts)以进行逐条验证?¶
原子事实抽取是将一段生成文本拆解为最小、独立、可单独验证的陈述句的过程,是声明级幻觉检测的前提。方法如下:
(1)基于大模型的指令式抽取(最常用)
-
使用强大的语言模型(如GPT-4),通过精心设计的提示词,要求其把给定文本分解为一系列原子事实。
-
Prompt设计要点:
- 让模型输出JSON列表,每个元素是一个独立的简单陈述句。
- 强调每条事实只包含一个主谓宾结构,剥离多余从句;避免复合句。
- 要求事实必须从原文直接提炼,不能添加推理或外部知识。
-
提供几个示范示例(Few-shot)。
-
示例Prompt:
请将以下文本分解为一系列最小的独立事实陈述(原子事实)。每条事实应只包含一个单一信息点。使用JSON列表输出。
示例:
文本:玛丽,一位30岁的医生,在纽约工作。
原子事实:["玛丽是一名医生。", "玛丽30岁。", "玛丽在纽约工作。"]
文本:{generated_text}
原子事实:
(2)基于信息抽取系统(规则+模型)
-
使用依存句法分析,提取主语-谓语-宾语三元组,再将每个三元组转化为自然语言陈述。
-
结合共指消解,将代词替换为具体实体。
-
优点:速度较快、完全可控;缺点:对复杂句和长距离依赖效果差,召回较低。
(3)基于语义角色标注(SRL)
-
执行SRL,识别核心谓词及其相关论元(施事、受事、地点等),然后为每个谓词-论元结构生成一个原子陈述。
-
同样需要结合共指消解和实体链接。
(4)混合方法
-
先使用句法/语义分析工具进行初步拆分,然后用一个小型生成模型将拆分片段改写成自然、流畅的独立句子。
-
或先使用大模型拆分,再用规则检查拆出的每条事实是否包含单个实体关系,若不纯则进一步分裂。
(5)特定领域模板
- 对于结构化数据(如体育比赛、财务报告),可定制基于模板的抽取器,从生成文本中抽取关键的槽位值,每条槽位值即一个原子事实。
质量控制:
-
最小性检验:每条原子事实不能再被拆分,否则标记。
-
完整性检验:原文本的所有信息应被完全覆盖,不多不少。可反向组装原子事实看是否还原原意。
-
忠实于原句:原子事实不能改变原句语气、限定词(如“可能”、“据报道”),否则验证会失真。
应用:抽取的原子事实随后送入事实核查流水线,每个原子事实针对检索证据(或源文)进行NLI,得到“支撑”、“矛盾”、“证据不足”的标签,最终聚合成整体幻觉评分。
“FActScore” 指标是如何计算的?它如何评估人物传记生成的幻觉?¶
FActScore 是一种针对人物传记生成的事实性评估指标,通过将生成文本分解为原子事实,并利用维基百科等外部知识库来验证每个原子事实的准确性,最终计算“事实密度”分数。
计算步骤:
-
生成人物传记:让待评估模型根据给定的实体名称(如“爱因斯坦”)生成一段传记描述。
-
原子事实分解:使用指令微调后的语言模型将生成的传记文本拆解为原子事实列表。
-
知识源验证:对于每个原子事实,使用预定义的可靠知识库(如英文维基百科)进行验证。具体验证方式:
- 使用检索模型(如DPR)在维基百科中检索与传记实体和原子事实相关的页面和段落。
-
结合NLI模型或QA模型判断检索到的知识是否支撑该原子事实。在FActScore原始实现中,使用基于维基百科的自动化验证器(如基于FEVER训练的NLI模型),输出支撑/矛盾/证据不足。
-
计算FActScore:
- FActScore = (被知识源支撑的原子事实数量) / (总原子事实数量)
- 取值范围0到1,越接近1表示传记事实性越好。
- 实际计算时,可能剔除“证据不足”的原子事实,或者将其视为非支撑(严格版本)。原始工作同时报告两个版本。
对于人物传记的特别设计:
-
实体特定性:检索时重点围绕该人物实体,从该人物的维基百科页面提取事实作为证据池。
-
细粒度验证:由于传记包含大量具体信息(出生日期、成就、关系),原子事实的精确验证至关重要。FActScore特别适用于评估模型对长尾实体知识的掌握,因为幻觉在此类任务中高发。
-
偏重事实性,不评估文笔或结构,专门量化模型在生成可靠事实方面的表现。
意义:FActScore提供了一个客观、可复现的自动化指标,用于追踪和改进模型在开放域事实生成中的幻觉问题。后续版本已扩展到其他领域,但核心方法(分解-检索-验证-比例)不变。
“AlignScore” 这类无监督幻觉评分模型是如何训练的?¶
AlignScore 是一种无监督或弱监督的幻觉/事实一致性评分模型,旨在不依赖昂贵的人工标注的情况下,为任意文本对(源文,生成文)输出忠实度分数。其核心训练思想是利用数据增强构建大规模的合成训练数据,将事实一致性问题转化为一个可自监督学习的任务。
训练过程详解:
(1)数据构造:生成不一致文本对
-
从大规模文本语料(如新闻、维基百科)中提取真实的、自洽的句子对或文档-摘要对作为正例(一致,分数=1)。
-
通过各种破坏策略生成负例(不一致,分数=0):
- 实体替换:随机将源文中的实体替换为同类别的其他实体(如将“巴黎”换成“伦敦”),使目标句与源文事实矛盾。
- 反义与否定:自动插入或修改否定词(“不”、“没有”),翻转语义。
- 句子融合/拼接:将两个不相关句子的前半句和后半句拼接,形成逻辑不通的文本,作为某源文的“生成文本”。
- 数字修改:随机增加或减少文中的数值,制造细微矛盾。
- 句子乱序干扰:打乱时间或因果顺序,制造逻辑不一致。
- 使用弱模型生成:让一个小型或未充分训练的生成模型基于源文生成摘要,这些摘要很可能会包含忠实性错误,作为天然负例。
(2)模型架构与训练任务
-
采用一个预训练编码器(如RoBERTa、DeBERTa),输入为源文和待评分文本的拼接([CLS] source [SEP] target [SEP]),将[CLS]向量接一个回归头或二分类头。
-
训练目标:
- 对于正例(一致)和二值负例(不一致),使用二元交叉熵损失,要求模型输出接近1或0。
- 也可以使用对比损失:使得正例对的相似度远高于对应负例对的相似度。这使得模型学习的不仅是表面分类,更是细粒度的语义对齐程度。
- 赋予连续分数:AlignScore期望输出0到1之间的分数,因此采用Sigmoid激活并回归到0/1标签,或者使用排序损失。
(3)无监督/弱监督的关键
-
所有训练标签均由自动规则或弱模型生成,无需任何人工标注。这使该方法可以扩展到任意领域和多语言(只要有语料和破坏工具)。
-
通过设计多样化的破坏策略,迫使模型学习深层的语义一致性特征,而不是表面文本重叠。
(4)推理与应用
-
训练完成后,对于任意新的(源文,生成文)对,AlignScore可以直接给出一个介于0到1的一致性得分。
-
这个分数可解释为“生成文本忠实于源文的概率”,从而用于检测幻觉(低分即为幻觉)。
优势与局限:
-
优势:完全不需要人工标注,成本低;泛化能力较好,可以快速适应新领域;输出连续分数,更细致。
-
局限:训练的负例类型可能无法覆盖所有现实幻觉,尤其复杂的隐含矛盾和需要外部知识的幻觉;分数容易受领域偏移影响;可能存在表面统计线索被利用(如实体不重叠直接判负)。
AlignScore代表了一类通过数据合成实现的无监督幻觉评估方法,在实际应用中,常与基于NLI的方法互为补充,用于构建鲁棒的事实一致性检测系统。
在 RAG 场景下,如何检测模型是否使用了检索内容?如何判断“忠实度”?¶
在 RAG(检索增强生成)系统中,确保模型生成的回答充分利用检索到的文档且忠实于这些文档是核心要求。检测分为两部分:使用检测和忠实度评估。
一、检测模型是否使用了检索内容
(1)引用匹配与覆盖率
-
如果模型被训练输出引用标记(如“[1]”、“[2]”),直接检查生成的引用编号是否在给定的检索文档索引范围内。引用文档编号不存在或引用内容与文档不符,则为未使用或错误使用。
-
计算回答中能够与检索文档中句子匹配的比例。可以使用文本跨度检索或语义相似度,如果回答的大部分内容在检索文档中找不到相似源头,说明模型在依赖自身参数知识,而非检索内容。
(2)动态裁剪实验(Ablation)
-
将检索文档替换为无关文档或随机文档,观察模型生成是否显著变化。如果即使给了无关文档,模型依然生成相似的正确答案,则说明它主要依赖内部知识,忽略检索。
-
或者,从原始检索文档中删除关键事实句,若模型仍能说出该事实,说明该知识来自参数记忆而非检索。
(3)基于注意力的可解释性分析
-
在生成过程中,分析交叉注意力权重,看模型在每个解码步骤对检索文档 token 的关注程度。如果对检索文档的平均注意力极低,表明模型在生成时未真正阅读。
-
查看注意力分布是否聚焦于文档的相关部分,并跟踪信息流。
(4)生成前置验证提示
- 在生成最终答案前,先要求模型显式地“从文档中提取相关信息”,再基于提取内容回答。如果模型无法正确提取,或提取内容与最终回答不一致,则可能未合理使用检索。
(5)后验 NLI 检测
- 对于回答中的每个声明,用 NLI 模型检查是否能被检索文档集蕴含。如果某个声明在文档集中完全得不到支撑(中立或矛盾),则说明该部分内容要么是幻觉,要么模型未使用检索(因为使用了但不应违背)。
二、判断忠实度(Faithfulness)
RAG 场景中的忠实度特指回答是否严格基于检索文档,不添加、不歪曲文档信息。
(1)声明级 NLI 忠实度评估
-
将回答分解为原子事实,对每个事实,用检索文档作为前提进行 NLI。若前提蕴含假设,则该事实忠实;若矛盾或中立,则判定为不忠实(幻觉)。
-
可计算忠实比例:得到蕴含标签的原子事实数 / 总原子事实数,作为 RAG 忠实度分数。
(2)引用准确性校验(Citation Recall and Precision)
-
检查回答中的每个带有引用的陈述,其引用文档内容是否确实支持该陈述(精度);同时检查所有应该被支撑的陈述是否都有恰当的引用(召回)。
-
若有引用但内容不支持,属于“虚假引用”,是典型的不忠实。
(3)基于 QA 的忠实度
- 根据检索文档生成一组问题,分别用文档(标准答案)和生成的回答来回答。比较两组答案的一致性。如果回答对于某个问题的答案与文档不同,说明回答偏离了文档,存在忠实性问题。
(4)Copy-Through 检测
- 检查回答中的关键数字、专有名词、日期是否与检索文档完全相同。如果不一致,几乎必然是不忠实(除非有合理的改写)。
综合应用:
在 RAG 检测流水线中,通常会同时计算检索利用率(回答内容在文档中的覆盖率)和忠实度(基于 NLI 的支撑率)。如果利用率低且忠实度也低,说明模型严重依赖自身知识产生幻觉;如果利用率高但忠实度低,可能模型在“强行概括”导致信息扭曲;如果两者都高,则是理想的 RAG 行为。
这些检测和评估为改进检索器、重写查询或微调模型提供了直接的数据支撑。