原文地址:Using RAGAs + LlamaIndex for RAG evaluation
2024 年 2 月 5 日
如果您已经为实际的业务系统开发了检索增强生成(Retrieval Augmented Generation, RAG)应用程序,那么您可能会关心它的有效性。换句话说,您想要评估RAG的性能。
此外,如果您发现您现有的RAG不够有效,您可能需要验证先进的RAG改进方法的有效性。换句话说,您需要进行评估,看看这些改进方法是否有效。
在本文中,我们首先介绍了由RAGAs(检索增强生成评估)提出的RAG的评估指标,这是一个用于评估RAG管道的框架。然后,我们解释了如何使用RAGAs + LlamaIndex实现整个评估过程。
RAG评价指标
简单地说,RAG的过程包括三个主要部分:输入查询、检索上下文和LLM生成的响应。这三个要素构成了RAG过程中最重要的三位一体,并且是相互依存的。
因此,可以通过测量这些三元组之间的相关性来评估RAG的有效性,如图1所示。
图1:RAG的有效性可以通过测量这些三元组之间的相关性来评估。
论文总共提到了3个指标:忠实度、答案相关性和上下文相关性,这些指标不需要访问人工注释的数据集或参考答案。
此外,RAGAs网站引入了另外两个指标:上下文精度和上下文召回。
Faithfulness/Groundedness
Faithfulness指的是确保答案是基于给定的上下文。这对于避免错觉和确保检索到的上下文可以用作生成答案的理由非常重要。
如果分数低,则表明LLM的回答不符合检索到的知识,提供幻觉答案的可能性增加。例如:
图2:高Faithfulness答案和低Faithfulness答案。来源:https://docs.ragas.io/en/latest/concepts/metrics/faithfulness.html。
为了估计信度,我们首先使用LLM提取一组语句,**S(a(q))
**。方法是使用以下prompt:
1 2 3 |
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确定是否可以从c(q)
**中推断出每个语句si。此验证步骤使用以下prompt执行:
1 2 3 4 5 |
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|
** &