《Ragas:检索增强生成的自动化评估》核心是为解决RAG系统评估难的问题,提出了一套名为Ragas的无参考自动化评估框架。以下是其主要研究内容的系统总结:
一、研究背景与问题
-
RAG系统的价值:通过检索外部知识库为LLM提供上下文,能有效减少幻觉、更新知识,但系统搭建涉及检索模型、语料库、LLM及提示词等多个环节的调优。
-
现有评估困境:
-
传统基于困惑度或提取式问答的评估,无法全面反映下游任务表现,且对封闭API模型(如GPT-4)不适用。
-
缺乏无需人工参考答案、能同时衡量检索质量和生成质量的自动化评估工具。
-
二、Ragas框架的核心贡献
提出三个无参考的质量评估维度,完全通过提示LLM来实现自动化打分:
| 评估维度 | 定义 | 实现方法 |
|---|---|---|
| 忠实度 | 答案中的主张能否从检索到的上下文中推断(防幻觉) | ①用LLM将答案拆解为多个陈述句;②逐句判断是否被上下文支持;③得分 = 被支持句数 / 总句数 |
| 答案相关性 | 答案是否恰当、完整地回应了问题(惩罚冗余或缺失) | ①用LLM根据答案反向生成n个问题;②计算生成问题与原始问题的嵌入余弦相似度;③取平均作为得分 |
| 上下文相关性 | 检索到的上下文是否聚焦,只包含必要信息(降低成本和干扰) | ①用LLM从上下文中提取对回答问题至关重要的句子;②得分 = 提取句数 / 上下文中总句数 |
所有提示均基于GPT-3.5-turbo-16k实现,框架已集成至LangChain和Llama-Index,便于开发者使用。
三、实验验证:WikiEval数据集
为验证Ragas指标的有效性,作者构建了WikiEval数据集:
-
数据来源:选取50个2022年后有更新的维基百科页面,用ChatGPT生成问题及标准答案。
-
人工标注:两名标注者沿三个维度对答案/上下文进行成对比较(一致性达90%~95%)。
-
评估方式:计算Ragas在成对比较中(选更优者)与人工判断的准确率。
四、主要实验结果
| 评估维度 | Ragas准确率 | 对比基线(GPT打分/排名) |
|---|---|---|
| 忠实度 | 高(接近95%) | 显著优于基线 |
| 答案相关性 | 中等偏高(低于忠实度,因差异细微) | 显著优于基线 |
| 上下文相关性 | 最低(长上下文时LLM提取关键句困难) | 优于基线,但仍具挑战 |
总体表明Ragas与人工判断高度一致,尤其在忠实度上表现突出,而上下文相关性是最难自动化的维度。
五、论文的主要结论与意义
-
实践价值:Ragas为RAG开发者提供了无需标注数据、可快速迭代的评估工具,尤其适用于封闭API场景。
-
学术贡献:
-
首次系统提出覆盖"检索-生成"全链路的无参考评估指标体系。
-
公开了WikiEval数据集,为后续研究提供基准。
-
-
局限性:依赖LLM自身能力(如GPT-3.5),在长文本上下文提取和细微差异区分上仍有改进空间。
Ragas是一套无需参考答案、通过LLM自动评估RAG系统"答案是否忠实于证据、是否切题、检索是否精准"的框架,实验证明其评估结果与人类高度一致,能有效加速RAG系统的开发与调优。这里是自己的论文阅读记录,感兴趣的话可以参考一下,如果需要阅读原文的话可以看这里,如下所示:

项目地址在这里,如下所示:

摘要
我们引入 Ragas(检索增强生成评估),一个用于对检索增强生成(RAG)流程进行无参考评估的框架。RAG 系统由检索模块和基于 LLM 的生成模块组成,通过向 LLM 提供来自参考文本数据库的知识,使其能够充当用户与文本数据库之间的自然语言层,从而降低幻觉风险。然而,评估 RAG 架构具有挑战性,因为需要考虑多个维度:检索系统识别相关且聚焦的上下文段落的能力、LLM 忠实利用这些段落的能力,以及生成内容本身的质量。Ragas 提出了一套指标,可用于评估这些不同维度,而无需依赖真实人工标注。我们认为,这样的框架能够显著加快 RAG 架构的评估周期,鉴于 LLM 的快速普及,这一点尤为重要。
1 引言
语言模型(LMs)捕获了关于世界的大量知识,使其能够在不访问任何外部来源的情况下回答问题。这种将 LM 视为知识库的观点在 BERT(Devlin 等,2019)引入后不久便出现,并随着更大规模 LM 的推出而更加稳固(Roberts 等,2020)。尽管最新的大型语言模型(LLMs)捕获了足够的知识,在各种问答基准测试中可与人类表现相媲美(Bubeck 等,2023),但将 LLM 用作知识库的想法仍有两个根本局限性。首先,LLM 无法回答关于其训练后发生事件的问题。其次,即使是最大的模型也难以记忆训练语料中仅被很少提及的知识(Kandpal 等,2022;Mallen 等,2023)。解决这些问题的标准方案是依赖检索增强生成(RAG)(Lee 等,2019;Lewis 等,2020;Guu 等,2020)。回答问题时,本质上涉及从语料库中检索相关段落,并将这些段落连同原始问题一起输入给 LM。虽然早期方法依赖于专门的 LM 进行检索增强语言建模(Khandelwal 等,2020;Borgeaud 等,2022),但近期工作表明,简单地将检索到的文档添加到标准 LM 的输入中也能表现良好(Khattab 等,2022;Ram 等,2023;Shi 等,2023),从而使得检索增强策略可以与仅通过 API 使用的 LLM 结合。
尽管检索增强策略的有效性显而易见,但其实现需要大量调优,因为整体性能会受到检索模型、所考虑的语料库、LM 或提示词公式化等因素的影响。因此,检索增强系统的自动化评估至关重要。在实践中,RAG 系统通常根据语言建模任务本身进行评估,即通过测量在某些参考语料库上的困惑度。然而,这种评估并不总能预测下游性能(Wang 等,2023c)。此外,这种评估策略依赖于 LM 的概率,这对于某些封闭模型(例如 ChatGPT 和 GPT-4)是不可访问的。问答是另一种常见的评估任务,但通常只考虑包含简短提取式答案的数据集,这可能无法代表系统的实际使用方式。
为解决这些问题,我们在本文中提出了 Ragas,一个用于自动化评估检索增强生成系统的框架。
2 相关工作
使用 LLM 估计忠实度
检测 LLM 生成响应中的幻觉问题已被广泛研究(Ji 等,2023)。一些作者提出了使用少样本提示策略预测事实性的想法(Zhang 等,2023)。然而,近期分析表明,现有模型在使用标准提示策略时难以检测幻觉(Li 等,2023;Azaria 和 Mitchell,2023)。其他方法依赖于将生成的响应与外部知识库中的事实相链接(Min 等,2023),但这并非总是可行。
另一种策略是检查分配给单个词元的概率,我们期望模型在幻觉答案上比在事实性答案上更不自信。例如,BARTScore(Yuan 等,2021)通过查看给定输入下生成文本的条件概率来估计事实性。Kadavath 等(2022)使用了该想法的一种变体。基于观察到 LLM 在回答多项选择题时提供校准良好的概率,他们本质上将验证模型生成答案的问题转换为一个询问答案真伪的多项选择题。Azaria 和 Mitchell(2023)没有查看输出概率,而是提出在 LLM 隐藏层的权重上训练一个监督分类器,以预测给定陈述是否真实。虽然该方法表现良好,但访问模型隐藏状态的需求使其不适用于通过 API 访问 LLM 的系统。
对于不提供词元概率访问权限的模型,如 ChatGPT 和 GPT-4,需要不同的方法。SelfCheckGPT(Manakul 等,2023)通过多次采样答案来解决此问题。其核心思想是事实性答案更稳定:当答案事实正确时,我们可以预期不同样本趋向于语义相似,而对于幻觉答案则不太可能如此。
文本生成系统的自动化评估
LLM 也被用于自动评估生成文本片段的其他方面,超越事实性。例如,GPTScore(Fu 等,2023)使用指定所考虑方面(如流畅性)的提示,然后根据给定的自回归 LM,基于生成词元的平均概率对段落进行评分。Yuan 等(2021)之前也考虑过这种使用提示的想法,尽管他们使用了较小的微调 LM(即 BART),并未观察到使用提示有明显的益处。另一种方法直接要求 ChatGPT 通过提供 0 到 100 之间的分数或 5 星评级来评估给定答案的特定方面(Wang 等,2023a)。值得注意的是,通过这种方式可以获得强大的结果,尽管其局限性在于对提示的设计敏感。一些作者没有对单个答案进行评分,而是专注于使用 LLM 从多个候选答案中选择最佳答案(Wang 等,2023b),通常用于比较不同 LLM 的性能。然而,这种方法需要谨慎,因为答案的呈现顺序会影响结果(Wang 等,2023b)。
关于真实答案或更广泛地说,生成内容在文献中的典型使用方式,大多数方法依赖于一个或多个参考答案的可用性。例如,BERTScore(Zhang 等,2020)和 MoverScore(Zhao 等,2019)使用由预训练 BERT 模型生成的上下文嵌入来比较生成答案与参考答案之间的相似性。BARTScore(Yuan 等,2021)类似地使用参考答案来计算诸如精确度(估计为给定参考答案生成生成答案的概率)和召回率(估计为给定生成答案生成参考答案的概率)等方面。
3 评估策略
我们考虑一个标准的 RAG 设置,给定问题 q,系统首先检索一些上下文 c(q),然后使用检索到的上下文生成答案 as(q)。在构建 RAG 系统时,我们通常无法访问人工标注的数据集或参考答案。因此,我们专注于完全自包含且无参考的指标。我们特别关注三个质量方面,我们认为这些方面至关重要。首先,忠实度 指的是答案应基于给定上下文。这对于避免幻觉,并确保检索到的上下文可以作为生成答案的依据至关重要。实际上,RAG 系统通常用于生成文本相对于所依据来源的事实一致性非常重要的应用中,例如在法律等知识不断演变的领域。其次,答案相关性 指的是生成的答案应针对所提出的实际问题。最后,上下文相关性指的是检索到的上下文应聚焦,包含尽可能少的不相关信息。考虑到向 LLM 馈送长上下文段落的成本,这一点很重要。此外,当上下文段落过长时,LLM 在利用该上下文方面的效果通常会降低,尤其是对于位于上下文段落中间部分的信息(Liu 等,2023)。
我们现在解释如何通过提示 LLM,以完全自动化的方式衡量这三个质量方面。在我们的实现和实验中,所有提示均使用可通过 OpenAI API 获得的 gpt-3.5-turbo-16k 模型进行评估。
忠实度

答案相关性

上下文相关性
如果上下文 c(q) 仅包含回答问题所需的信息,则认为该上下文是相关的。特别是,该指标旨在惩罚包含冗余信息。

4 WikiEval 数据集
为了评估所提出的框架,我们理想上需要带有手动标注的问题-上下文-答案三元组示例。然后,我们可以验证我们的指标在多大程度上与人类对忠实度、答案相关性和上下文相关性的评估一致。由于我们不知道有任何公开可用的数据集可用于此目的,我们创建了一个新数据集,我们称之为 WikiEval<sup>4</sup>。为了构建数据集,我们首先选择了 50 个涵盖 2022 年初以来发生事件的维基百科页面<sup>5</sup>。在选择这些页面时,我们优先考虑了近期有编辑的页面。对于这 50 个页面中的每一个,我们要求 ChatGPT 根据页面的引言部分提出一个可以回答的问题,使用以下提示:
你的任务是根据给定上下文提出一个问题,并满足以下规则:
-
问题应能从给定上下文中完全回答。
-
问题应从包含非平凡信息的部分构思。
-
答案不应包含任何链接。
-
问题难度应适中。
-
问题必须合理,并能被人类理解和回应。
-
问题中不要使用"提供的上下文"等短语。
上下文:context
我们还使用 ChatGPT 在给定相应引言部分作为上下文的情况下,回答生成的问题,使用以下提示:
使用给定上下文中的信息回答问题。
问题:question
上下文:context
所有问题都由两名标注者沿三个所考虑的质量维度进行标注。两名标注者均能流利使用英语,并获得了关于三个质量维度含义的清晰指示。对于忠实度和上下文相关性,两名标注者在约 95%95% 的情况下达成一致。对于答案相关性,他们在约 90%90% 的情况下达成一致。分歧在标注者讨论后解决。
忠实度
为了获得关于忠实度的人工判断,我们首先使用 ChatGPT 在不访问任何额外上下文的情况下回答问题。然后,我们要求标注者判断在给定问题和相应维基百科页面的情况下,两个答案(即标准答案和没有上下文生成的答案)中哪个更忠实。
答案相关性
我们首先使用 ChatGPT 获得答案相关性较低的候选答案,使用以下提示:
以不完整的方式回答给定的问题。
问题:question
然后,我们要求人工标注者比较这个答案,并指出哪个答案具有最高的答案相关性。
上下文相关性
为了衡量这一方面,我们首先通过抓取相应维基百科页面的反向链接,向上下文添加额外的句子。通过这种方式,我们能够向上下文添加相关但对回答问题不太重要的信息。
对于少数没有任何反向链接的页面,我们改用 ChatGPT 来补全给定的上下文。
5 实验
表 1 分析了第 3 节提出的指标与我们提出的 WikiEval 数据集中人工评估之间的一致性。每个 WikiEval 实例要求模型比较两个答案或两个上下文片段。我们统计模型偏好的答案/上下文(即估计忠实度、答案相关性或上下文相关性最高的)与人工标注者偏好的答案/上下文一致的频率。我们以准确率(即模型与标注者一致的实例比例)报告结果。
为了提供参考背景,我们将我们提出的指标(表 1 中显示为 Ragas)与两种基线方法进行比较。对于第一种方法,显示为 GPT Score,我们要求 ChatGPT 为三个质量维度分配 0 到 10 之间的分数。为此,我们使用一个提示来描述质量指标的含义,然后要求根据该定义对给定的答案/上下文进行评分。例如,对于评估忠实度,我们使用了以下提示:
忠实度衡量答案相对于给定上下文的信息一致性。答案中任何无法从上下文中推导出的主张都应受到惩罚。给定一个答案和上下文,分配一个 0-10 范围内的忠实度分数。
上下文:context
答案:answer
如果 LLM 对两个候选答案分配了相同的分数,则随机打破平局。第二种基线方法,显示为 GPT Ranking,要求 ChatGPT 选择偏好的答案/上下文。在这种情况下,提示同样包含所考虑质量指标的定义。例如,对于评估答案相关性,我们使用了以下提示:
答案相关性衡量响应直接针对给定问题并与之相适应的程度。它惩罚给定问题下答案中存在冗余信息或不完整答案的情况。给定一个问题和答案,根据答案相关性对每个答案进行排名。
问题:question
答案 1:answer 1
答案 2:answer 2
表 1 中的结果表明,我们提出的指标与人工判断的一致性远高于两种基线的预测。对于忠实度,Ragas 的预测通常高度准确。对于答案相关性,一致性较低,但这主要是由于两个候选答案之间的差异通常非常细微。我们发现上下文相关性是最难评估的质量维度。特别是,我们观察到 ChatGPT 在从上下文中选择关键句子的任务上经常遇到困难,尤其是对于较长的上下文。
6 结论
我们强调了 RAG 系统自动化无参考评估的需求。特别是,我们认为需要一个能够评估忠实度(即答案是否基于检索到的上下文)、答案相关性(即答案是否针对问题)和上下文相关性(即检索到的上下文是否足够聚焦)的评估框架。为支持这样一个框架的开发,我们引入了 WikiEval,一个包含这三个不同方面人工判断的数据集。最后,我们还描述了 Ragas,即我们实现的三个所考虑的质量方面。该框架易于使用,即使没有任何真实数据,也能为 RAG 系统的开发者提供有价值的见解。我们在 WikiEval 上的评估表明,Ragas 的预测与人类预测高度一致,尤其是在忠实度和答案相关性方面。