评估RAG中的幻觉检测技术(RAG,检索和生成模型)
2024/10/8 21:03:05
本文主要是介绍评估RAG中的幻觉检测技术(RAG,检索和生成模型),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
未受控制的幻觉仍然是当今检索增强生成应用中的一个重大问题。本研究评估了流行的幻觉检测器在四个公共RAG数据集上的表现如何。通过AUROC和精确率和召回率,我们报告了G-eval、Ragas和可信的语言模型等方法自动标记出不正确的LLM(大型语言模型)响应的能力。
通过多种幻觉检测方法来识别RAG系统中的大语言模型错误。
我现在是Cleanlab的一名机器学习工程师,为本文中提到的可信语言模型做出了贡献。我很兴奋能在这里展示这种方法,并在接下来的基准测试中对其它方法进行对比评估。
大型语言模型(LLM)在回答训练数据支持不足的问题时,会产生幻觉,即生成错误的答案。检索增强生成(RAG)系统通过增强LLM从特定知识数据库中检索上下文和信息的能力来缓解这一问题。尽管组织迅速采用RAG将LLM的力量与其专有数据相结合,但幻觉和逻辑上的错误问题仍然是一个大问题。在一个备受瞩目的案例中,加拿大航空公司在一场诉讼中败诉,原因是他们的RAG聊天机器人错误地提供了其退款政策的重要细节。
要理解这个问题,让我们先回顾一下RAG系统是如何工作的。当用户提出一个问题("这个是否可以退款?"
),检索组件会在知识库中搜索相关的信息,以便准确回答问题。最相关的搜索结果会被格式化成一个“上下文”,与用户的提问一起输入到一个大语言模型中,生成一个用户将看到的回答。由于企业RAG系统通常比较复杂,最终的回答可能会出错,原因有很多,例如:
- 大型语言模型(LLM)既脆弱又容易出错。即使答案就在检索到的上下文中,LLM也可能无法准确回答,尤其是在需要从不同事实中推理出答案时。
- 检索到的上下文可能不包含准确回答所需的信息,这可能是由于搜索不当、文档分割或格式不佳,或知识库中缺少相关信息。在这种情况下,LLM仍可能尝试回答问题,但会因缺乏信息而胡乱作答。
有些人仅用术语_幻觉_来指特定类型的LLM错误,而在这里,我们将该术语与_不正确的响应_同义使用。对于您RAG系统用户而言,最重要的是答案的准确性和用户对其的信任。不同于评估系统多个属性的RAG基准测试,我们专门研究:不同检测器在答案出错时能多有效地提醒您的RAG用户。
RAG的答案可能因为检索【检索】或生成【生成】的问题而错误。我们的研究侧重于第二个问题,这是由于LLM的固有不可靠性。
假设一个现有的检索系统已经获取了与用户问题最相关的 context(上下文),我们考虑算法来检测何时基于此上下文生成的大型语言模型(LLM)响应不应被信任。此类错误检测算法在医疗、法律或金融等高风险领域中至关重要。除了将不可信的响应标记为需要更仔细的人工审查之外,这些方法还可以帮助确定何时值得执行更昂贵的检索步骤(例如,搜索其他数据源、重写查询等)。
以下是我们研究中考虑的幻觉识别方法,所有方法都基于使用大模型来完成评估生成的回答。
自我评估(“Self-eval”) 是一种简单的技术方法,让 LLM 评估生成的答案,并在 1 到 5 的 Likert 量表上对其信心进行评分。我们利用 chain-of-thought (CoT) 提示来改进这种方法,要求 LLM 在输出最终评分前解释其信心。这里是一个具体的提示模板:
问题:{question}
答案:{response}评估您对给定答案准确回答问题的信心程度。请使用以下五分评分标准:
1:您对答案完全没有信心,答案可能完全偏离主题或与问题无关。
2:您对答案的信心较低,答案可能不够准确,存在疑虑和不确定性。
3:您对答案有信心,答案基本准确且相关,但仍有一定改进空间。
4:您对答案有很大信心,答案准确且回答了问题的主要部分。
5:您对答案非常有信心,答案非常准确、全面且有效地回答了问题的每一个方面。输出应严格使用以下模板:解释:[提供您得出评分的理由] 然后在最后一行写上‘评分:<分数>’。
G-Eval(来自DeepEval包)是一种使用CoT自动开发多步骤标准来评估给定响应质量的方法。在G-Eval论文(Liu等人)中,该技术在多个基准数据集上与人类判断相一致。质量可以通过指定为LLM提示的不同方式进行测量,在这里我们指定应根据响应的事实准确性进行评估。这是G-Eval评估所用的标准:
判断输出在给定的上下文中是否事实正确。
幻觉指标(来自DeepEval包)衡量幻觉的程度,即另一个大型语言模型评估该响应与上下文相矛盾的程度。
RAGAS 是一个专用于 RAG 的、由大型语言模型驱动的评估工具包,提供多种分数,可用于检测错觉。我们关注以下通过大型语言模型估算所需数值后生成的 RAGAS 分数:
- 忠实度 — 答案中由提供的上下文支持的陈述的比例。
- 答案的相关性 是答案中生成的三个大语言模型问题的向量表示与原始问题的向量表示之间的平均余弦相似度。这里的向量表示使用了
BAAI/bge-base-en encoder
的嵌入。 - 上下文利用度 衡量大语言模型响应中使用上下文的程度。
可信语言模型 (TLM) 是一种评估模型不确定性的技术,用于评估大型语言模型响应的可信度。它结合了自我反思、多个采样响应之间的一致性以及概率度量,来识别错误、矛盾和幻觉。这里有一个用于触发TLM的提示模板:
仅根据背景:{context},回答问题:{question}
背景:{context},
问题:{question}
我们将比较上述提到的幻觉检测方法,在4个公开的上下文-问题-答案数据集中,这些数据集涵盖了不同RAG应用的场景。
对于我们基准中的每个用户提问,现有的检索系统会返回一些相关的上下文。然后,用户查询和上下文会被输入到一个生成式LLM(通常还包括特定应用的系统提示)中以生成用户响应。每种检测方法接收用户查询、检索到的上下文、大语言模型响应作为输入,并返回一个介于0和1之间的分数,指示是否存在幻觉的可能。
为了评估这些幻觉检测器,我们评估它们在LLM响应错误时评分较低的可靠性高于正确时。在每个基准测试中,都有关于每个LLM响应正确性的实际标注,我们仅将其保留用于评估目的。我们使用 AUROC 来评估幻觉检测器,定义为从错误响应子集中抽取的示例评分低于正确响应子集中示例评分的概率。具有更高AUROC值的检测器能够更好地在生产系统中捕捉到RAG错误,以更高的精确度和召回率。
所有考虑的幻觉检测方法本身都是由大型语言模型(LLM)驱动的。为了确保公平比较,我们把 LLM 模型统一使用 gpt-4o-mini
,在所有方法中。
我们将依次描述每个基准数据集及其对应的结果。这些数据集均来自流行的HaluBench基准测试套件(我们没有包含该套件中的其他两个数据集,因为我们发现它们的标注存在重大错误)。
PubMedQA 是一个基于 PubMed 摘要的生物医学问答数据集,其中每个实例包括一个来自医学出版物的 PubMed 摘要段落。数据集中的每个实例包含根据段落提出的问题,例如:治疗结核性肠结肠炎需要9个月够不够?
,以及答案。
PubMedQA数据集的ROC曲线
在本次基准测试中,TLM 是检测幻觉最有效的方法,其次是幻觉指标、自我评估和RAGAS忠实度。在这三种方法中,RAGAS忠实度和幻觉指标在捕捉错误答案方面表现更佳,具有较高的精确度(RAGAS忠实度的平均准确率为0.762,幻觉指标的平均准确率为0.761,自我评估的平均准确率为0.702)。
DROP,或称为“段落中的离散推理”(Discrete Reasoning Over Paragraphs),是一个基于维基百科文章的高级问答数据集。DROP 的难度在于问题需要对文章中的上下文进行推理,而不仅仅是提取事实。例如,给定一个维基百科条目中描述的一场 Seahawks vs. 49ers 美式足球比赛中的达阵段落,一个示例问题是:“有多少次达阵运行的总码数为5码或更少?”这要求大语言模型(LLM)逐个分析每个达阵运行,并判断其总码数是否符合5码或更少的标准。
DROP 数据集的 ROC 曲线
大多数方法在这个DROP数据集中检测幻觉时遇到了挑战,主要是因为推理的复杂性。TLM在这一基准测试中最为有效,其次是自我评估和RAGAS忠实度。
COVID-QA 是一个基于关于COVID-19的科学文章的问答数据集(Q&A)。数据集中的每个实例包含一段关于COVID-19的科学文本和从该文本中衍生出的问题,例如:SARS-COV-2的基因序列与SARS-COV的相似度是多少?
与DROP相比,这个数据集简单得多,只需要从文章中提取基本信息来回答更直接、简单的问题。
ROC(受试者工作特征曲线)COVID-QA数据集的ROC曲线
在COVID-QA数据集中,TLM和RAGAS Faithfulness在检测虚构信息方面表现强劲。自我评价也表现良好,然而其他方法,包括RAGAS答案的相关性、G-Eval和幻象指标,则结果参差不齐。
FinanceBench 是一个包含公共财务报表和公开交易公司信息的数据集。数据集中的每个实例包含大量的纯文本财务信息,一个关于这些信息的问题,例如:Kraft Heinz 在 2015 财年的净营运资本是多少?
,以及一个数字答案,例如:$2850.00
。
ROC曲线图,(FinanceBench数据集)
对于此项基准测试,TLM 在识别假信息方面最有效,其次是自评估。紧随其后,大多数其他方法很难比随机猜测做得更好,这突显了该数据集包含大量上下文信息和数值数据,这给识别带来了挑战。
我们在不同的RAG基准测试中评估了幻觉检测技术,发现了一些关键见解。
- 可信语言模型(TLM) 表现一贯优异,通过结合自我反思、一致性和概率度量,展现出强大的识别虚构内容的能力。
- 自我评估 在检测虚构内容方面表现出一贯的有效性,特别是在较简单的上下文中,LLM的自我评估可以得到准确的衡量。尽管可能不如TLM表现的一致,但它仍然是评估响应质量的一种简单而有用的技术。
- RAGAS 信度 在准确性与检索到的上下文密切相关的数据集(例如PubMedQA和COVID-QA)中展示了稳健的表现。它特别擅长识别答案中的主张是否有提供的上下文支持。然而,其有效性取决于问题的复杂性。默认情况下,RAGAS 使用
gpt-3.5-turbo-16k
生成,使用gpt-4
作为评判 LLM,这导致的效果不如我们报告的使用gpt-4o-mini
的RAGAS 的效果。由于其句子解析逻辑,RAGAS 在我们基准测试中的某些例子上未能运行,我们通过在未以标点符号结尾的答案末尾添加句点 (.) 的方式解决了这个问题。 - 其他方法 如G-Eval和幻觉度量在不同的基准测试中的表现各异,其表现不一致,表明可能需要进一步的改进和适应。
总体而言,TLM、RAGAS的忠实度和自我评估是检测RAG应用程序中幻觉的更可靠方法。对于高风险应用,结合这些方法可以取得最佳效果。未来的研究可以探索混合方法和针对特定用例的针对性改进,以更好地进行幻觉检测。通过整合这些方法,RAG系统可以实现更高的可靠性,并确保其响应更加准确和可信。
除非特别注明,所有图片均为作者所拍_
这篇关于评估RAG中的幻觉检测技术(RAG,检索和生成模型)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-20自建AI入门:生成模型介绍——GAN和VAE浅析
- 2024-12-20游戏引擎的进化史——从手工编码到超真实画面和人工智能
- 2024-12-20利用大型语言模型构建文本中的知识图谱:从文本到结构化数据的转换指南
- 2024-12-20揭秘百年人工智能:从深度学习到可解释AI
- 2024-12-20复杂RAG(检索增强生成)的入门介绍
- 2024-12-20基于大型语言模型的积木堆叠任务研究
- 2024-12-20从原型到生产:提升大型语言模型准确性的实战经验
- 2024-12-20啥是大模型1
- 2024-12-20英特尔的 Lunar Lake 计划:一场未竟的承诺
- 2024-12-20如何在本地使用Phi-4 GGUF模型:快速入门指南