在当今的 “检索-增强生成 ”应用中,未检测到的幻觉仍然是一个大问题。本研究通过 4 个公共 RAG 数据集对流行的幻觉检测器进行了评估。通过使用 AUROC 和精确度/召回率,我们报告了 G-eval、Ragas 和可信语言模型等方法自动标记不正确 LLM 响应的能力。
我目前在 Cleanlab 担任机器学习工程师,参与了本文讨论的可信语言模型的开发。我很高兴能介绍这种方法,并在以下基准测试中与其他方法一起对其进行评估。
问题:RAG 系统中的幻觉和错误
众所周知,大型语言模型(LLM)在遇到训练数据不充分的问题时会产生幻觉,从而得出错误的答案。检索增强生成(RAG)系统通过增强 LLM 从特定知识数据库中检索上下文和信息的能力来缓解这一问题。虽然企业正在迅速采用 RAG,将 LLM 的强大功能与自己的专有数据相结合,但幻觉和逻辑错误仍然是一个大问题。在一个广为人知的案例中,一家大型航空公司(加拿大航空公司)因其 RAG 聊天机器人出现了退款政策的重要细节幻觉而败诉。
要理解这个问题,让我们先重温一下 RAG 系统的工作原理。当用户提问时(“这符合退款条件吗?”),检索组件会在知识数据库中搜索准确回复所需的相关信息。最相关的搜索结果被格式化为上下文,与用户的问题一起输入到 LLM 中,从而生成提交给用户的回复。由于企业 RAG 系统通常比较复杂,最终的回复可能会由于多种原因而不正确,其中包括:
有些人使用 “幻觉 ”一词仅指特定类型的 LLM 错误,而在这里,我们将其与 “不正确的回答 ”同义。对于 RAG 系统的用户而言,最重要的是系统答案的准确性以及是否能够信任这些答案。与评估许多系统属性的 RAG 基准不同,我们只研究:当答案不正确时,不同的检测器能如何有效地提醒你的 RAG 用户。
由于检索或生成过程中的问题,RAG 答案可能是不正确的。我们的研究重点是后一个问题,它源于 LLM 的基本不可靠性。
解决方案: 幻觉检测方法
假设现有的检索系统已经获取了与用户问题最相关的上下文,我们考虑采用算法来检测基于该上下文生成的 LLM 响应何时不可信。这种幻觉检测算法对于跨越医学、法律或金融领域的高风险应用至关重要。除了将不可信的响应标记出来供人工进行更仔细的审查外,这类方法还可用于确定何时值得执行更昂贵的检索步骤(如搜索其他数据源、重写查询等)。
以下是我们研究中考虑的幻觉检测方法,它们都是基于使用 LLM 来评估生成的响应:
自我评价(“Self-eval”)是一种简单的技术,要求 LLM 对生成的答案进行评价,并按 1-5 级(李克特量表)评定其可信度。我们利用思维链(CoT)提示来改进这一技术,要求 LLM 在输出最终分数之前解释其信心。以下是使用的具体提示模板:
问题:{question}
回答:{response}
评价你对所给答案是对问题的良好和准确回答的信心程度。
请按以下 5 级评分标准给分:
1: 你对答案是否能回答问题没有信心,答案可能完全偏离主题或与问题无关。
2: 你对答案是否能解决问题信心不足,对答案的准确性存在疑问和不确定性。
3: 你有中等信心认为答案能回答问题,答案似乎相当准确且符合主题,但仍有改进余地。
4: 你有很大把握认为答案能回答问题,答案提供了准确的信息,回答了问题的大部分内容。
5:你对答案能解决问题非常有信心,答案非常准确、贴切,并能有效地回答问题的全部内容。
输出应严格使用以下模板: 解释: 说明:[提供你用来得出评级分数的简要推理],然后在最后一行写上 "分数: <评分>"。
G-Eval(来自 DeepEval 软件包)是一种使用 CoT 自动开发多步骤标准来评估给定响应质量的方法。在 G-Eval 论文(Liu 等人)中,发现该技术与多个基准数据集上的人工判断相关。质量可以通过不同的方式来衡量,如 LLM 提示,在这里我们规定质量应根据回答的事实正确性来评估。以下是用于 G-Eval 评估的标准:
根据上下文确定输出是否符合事实。
幻觉度量标准(来自 DeepEval 软件包)将幻觉的可能性估计为 LLM 响应与上下文相矛盾/不一致的程度,由另一个 LLM 评估。
RAGAS 是针对 RAG 的、由 LLM 驱动的评估套件,可提供各种分数,用于检测幻觉。我们考虑了以下 RAGAS 分数,这些分数都是通过使用 LLM 估算必要数量得出的:
可信语言模型(TLM)是一种模型不确定性估计技术,用于评估 LLM 回答的可信度。它将自我反省、多个抽样回答的一致性和概率测量相结合,以识别错误、矛盾和幻觉。以下是用于提示 TLM 的提示模板:
仅使用以下信息回答问题
语境:{context}
问题:{ question}
评估方法
我们将在横跨不同 RAG 应用程序的 4 个公共 “上下文-问题-答案 ”数据集上比较上述幻觉检测方法。
对于我们基准中的每个用户问题,现有检索系统都会返回一些相关上下文。然后,将用户查询和上下文输入生成器 LLM(通常与特定于应用的系统提示一起),以便为用户生成回复。每种检测方法都会接收{用户查询、检索到的上下文、LLM 响应},并返回一个介于 0-1 之间的分数,表示出现幻觉的可能性。
为了评估这些幻觉检测器,我们考虑了当 LLM 响应不正确与正确时,这些分数取较低值的可靠性。在我们的每个基准中,都有关于每个 LLM 响应正确性的地面实况注释,我们仅保留这些注释用于评估目的。我们根据 AUROC 对幻觉检测器进行评估,AUROC 的定义是:从 LLM 回答错误的子集中抽取的示例,其得分低于从 LLM 回答正确的子集中抽取的示例的概率。具有更大 AUROC 值的检测器可用于在生产系统中以更高的精确度/召回率捕捉 RAG 错误。
所有考虑过的幻觉检测方法本身都由 LLM 驱动。为了进行公平比较,我们将所有方法的 LLM 模型固定为 gpt-4o-mini。
基准结果
下面我们将介绍每个基准数据集和相应的结果。这些数据集来自广受欢迎的 HaluBench 基准套件(我们不包括该套件中的其他两个数据集,因为我们发现它们的地面实况注释存在重大错误)。
PubMedQA
PubMedQA 是一个基于 PubMed 摘要的生物医学问答数据集。数据集中的每个实例都包含 PubMed(医学出版物)摘要中的一段话,以及从这段话中引申出的问题,例如 对结核性小肠结肠炎进行 9 个月的治疗是否足够?
在这一基准中,TLM 是辨别幻觉最有效的方法,其次是幻觉度量法、自我评价法和 RAGAS 忠实法。在后三种方法中,RAGAS Faithfulness 和幻觉度量法在高精度捕捉错误答案方面更为有效(RAGAS Faithfulness 的平均精度为 0.762,幻觉度量法的平均精度为 0.761,自我评价法的平均精度为 0.702)。
DROP
DROP,即 “段落离散推理”,是一个基于维基百科文章的高级问答数据集。DROP 的难点在于问题需要对文章中的上下文进行推理,而不是简单地提取事实。例如,维基百科上有一段文字描述了海鹰队对阵 49 人队的橄榄球比赛中的触地得分,其中一个示例问题是:有多少次触地得分的总码数为 5 码或更少?
由于所需推理的复杂性,大多数方法在检测此 DROP 数据集中的幻觉时都面临挑战。TLM 成为此基准测试中最有效的方法,其次是自我评估和 RAGAS 忠诚度。
COVID-QA
COVID-QA是一个基于与 COVID-19 相关的科学文章的问答数据集。数据集中的每个实例都包含与 COVID-19 相关的科学段落和从该段落中衍生的问题,例如:How much similarity the SARS-COV-2 genome sequence has with SARS-COV?
与 DROP 相比,这是一个更简单的数据集,因为它只需要对文章中的信息进行基本综合即可回答更直接的问题。
在 COVID-QA 数据集中,TLM 和 RAGAS Faithfulness 在检测幻觉方面均表现出色。自我评估也表现良好,但其他方法(包括 RAGAS Answer Relevancy、G-Eval 和 Hallucination Metric)的结果好坏参半。
FinanceBench
FinanceBench是一个数据集,其中包含有关公共财务报表和上市公司的信息。数据集中的每个实例都包含大量检索到的纯文本财务信息上下文、与该信息相关的问题(例如:)What is FY2015 net working capital for Kraft Heinz?以及数字答案(例如:)$2850.00。
对于这个基准,TLM 在识别幻觉方面最有效,其次是自我评估。大多数其他方法都难以比随机猜测提供显著的改进,这凸显了包含大量上下文和数字数据的这个数据集的挑战。
总体而言,TLM、RAGAS 忠诚度和自我评估是 RAG 应用中检测幻觉的更可靠方法。对于高风险应用,结合这些方法可以提供最佳结果。未来的工作可以探索混合方法和有针对性的改进,以便更好地针对特定用例进行幻觉检测。通过集成这些方法,RAG 系统可以实现更高的可靠性并确保更准确和值得信赖的响应。