摘要
文章首先介绍了 RAG 评估的三个主要部分:输入查询、检索上下文和 LLM 生成的响应。
提到了 RAGAs 提出的 RAG 评估指标,包括 Faithfulness、Answer Relevance 和 Context Relevance,以及 RAGAs 网站提供的两个额外指标:Context Precision 和 Context Recall。详细解释了每个指标的计算方法,并提供了一些示例。
最后,它介绍了使用 RAGAs 和 LlamaIndex 进行 RAG 评估的主要过程。
文章观点
RAG 评估是一个复杂的过程,需要多种指标来评估 RAG 的有效性。RAGAs 和 LlamaIndex 提供了一种有效的方法来进行 RAG 评估,可以帮助开发人员改进 RAG 应用程序的性能。
如果为实际业务系统开发了一个检索增强生成(RAG)应用程序,有效性会很重要。换句话说,需要评估 RAG 的性能如何。
如果发现现有的 RAG 不够有效,可能需要验证 RAG 改进方法的有效性。同时也需要进行评估,看看这些改进方法是否有效。
在本文中,首先介绍 论文 RAGAs(Retrieval Augmented Generation Assessment)提出的 RAG 评估指标,这是一个用于评估 RAG 管道的框架。然后,将继续解释如何使用 RAGAs + LlamaIndex 实现整个评估流程。
RAG 评估指标
简单地说,RAG 过程包括三个主要部分:输入查询、检索上下文和 LLM 生成的内容。这三个要素构成了 RAG 过程中最重要的三要素,并且相互依存。
因此,如图 1 所示,可以通过衡量这些三元组之间的相关性来评估 RAG 的有效性。
论文 RAGAs(Retrieval Augmented Generation Assessment)总共提到了 3 个指标:这些指标无需访问人工标注的数据集或参考答案。
此外,RAGAs 网站还介绍了另外两个指标:上下文精确度和上下文召回率。
忠实性|稳定性(Faithfulness/Groundedness)
忠实性:是指确保答案以给定的上下文为基础。
这对于避免错觉和确保检索到的上下文可用作生成答案的理由非常重要。
如果得分较低,则表明LLM的回答与检索到的知识不符,提供幻觉答案的可能性就会增加。例如
为了估计忠实性,我们首先使用 LLM 提取一组语句 S(a(q))
。具体方法如下:
Given a question and answer, create one or more statements from each sentence in the given answer.
question: [question]
answer: [answer]
生成 S(a(q))
后,LLM 会判断每条语句 si
是否都能从 c(q)
中推断出来。这一验证步骤通过以下提示进行:
Consider the given context and following statements, then determine whether they are supported by the information present in the context. Provide a brief explan ation for each statement before arriving at the verdict (Yes/No). Provide a final verdict for each statement in order at the end in the given format. Do not deviate from the specified format.
statement: [statement 1]
...
statement: [statement n]
最终忠实性得分 F 的计算公式为 F = |V| / |S|
,其中 |V|
代表根据 LLM 得到支持的语句数,|S|
代表语句总数。
答案相关性(Answer Relevance)
该指标衡量生成的答案与查询之间的相关性。分数越高,相关性越好。例如
为了估计一个答案的相关性,我们促使 LLM 根据给定的答案 a(q),生成 n 个潜在问题 qi,如下所示:
Generate a question