现在,我们很容易构建一个基于检索增强生成(RAG)的应用,但将其投入生产却非常困难,因为RAG的性能很难达到令人满意的状态。
我们知道RAG中两个重要的组件:
检索器:从外部数据库中检索额外的上下文,以供LLM回答查询。
生成器:基于使用检索到的信息增强的提示生成答案。
在评估RAG时,我们需要分别评估两个组件以及它们的整体性能,以了解RAG是否仍然需要改进,以及需要在哪里改进。此外,为了评估RAG应用程序的性能是否正在改善,我们需要进行定量评估。为此,我们需要两个评估要素:评估指标和评估数据集。
当前,确定正确的评估指标并收集良好的验证数据是一个活跃的研究领域。涌现出各种用于RAG评估框架的方法,例如RAG Triad of metrics,ROUGE,ARES,BLEU和RAGAs。本文将重点介绍如何使用RAGAs评估RAG系统。
什么是RAGAs
RAGAs(检索增强生成评估)是一个框架,提供了必要的组成部分,以帮助我们在组件粒度评估RAG。
评估数据
关于RAGAs的有趣之处在于,它最初是一个“无参考”评估框架。这意味着,不必依赖于人工注释的真实标签评估数据,RAGAs在幕后利用LLM进行评估。
为评估RAG,RAGAs需要以下信息:
question:作为RAG输入的用户查询。
answer:来自RAG输出的生成答案。
contexts:从用于回答问题的外部知识源中检索到的上下文。
ground_truths:问题的真实答案。这是唯一的人工标注信息。
利用LLM进行无参考评估是一个活跃的研究课题。虽然尽可能少地使用人工注释的数据使其成为一种更便宜和更快速的评估方法,但关于其缺点,如偏见等,仍有一些讨论。一些论文中也展示了一些令人激动的结果。
评估指标
RAGAs提供了一些指标,方便以端到端方式对于RAG进行评估。
在组件级别上,RAGAs提供了评估检索器(context_relevancy和context_recall)和生成器(faithfulness和answer_relevancy)的指标:
Context precision:衡量检索到的上下文的信噪比。此指标使用问题和上下文来计算。
Context