AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


以度量为驱动的代理开发RAGAS:提升RAG性能的关键
发布日期:2024-08-26 16:42:16 浏览次数: 1593



今天我们要讨论的是以度量为驱动的代理开发,特别是如何通过度量来评估代理在检索信息和生成答案方面的表现。这个度量驱动的方法的核心理念是,通过在我们的pipline中添加评估,我们可以更快速地迭代代理和检索生成(RAG)性能。这正是我们将在这里重点讨论的内容:如何通过Langchain将RAG应用于对话代理。

引入我们的代理

首先,我们将介绍我们的代理。我们的代理将使用Claude 3 LLM(大型语言模型),这是由Anthropic开发的模型。这个代理将是一个XML代理,并且我们将使用Langchain进行实现。代理的一个关键工具是RAG工具,它将连接到一个存档数据集,我们称之为搜索工具。这个搜索工具将连接到我们的RAG管道。

高层次架构

在高层次来看,RAG管道将从搜索工具接收查询,将其转换为嵌入(embedding),使用Cohere V3模型生成查询向量(xq)。然后,这个向量将被发送到我们的向量数据库Pine Cone,它包含了所有预先嵌入的存档论文。数据库将返回一组相似或相关的上下文,这些上下文将被传回搜索工具,然后传给代理。代理将基于这些上下文和初始查询生成一个响应。

在这个过程中,RAGAS(用于评估RAG组件的工具)评估检索和生成组件的表现。我们将关注两种评估检索的度量和两种评估生成的度量。

设置和集成RAGAS

这里我们使用RAGAS 0.1版库,并集成RAGAS以评估检索和生成组件的表现。这意味着我们需要提取检索组件的输出(即上下文)以进行评估。

为了获取这些中间步骤,我们需要在初始化代理执行器时设置return_intermediate_steps参数为true。这样我们就可以提取这些中间步骤,并且可以评估检索部分和生成部分的输出。

评估数据集格式

为了进行评估,我们需要一个特定格式的数据集。这个数据集包含原始问题、最相关的上下文、标准答案等。这些数据由RAGAS自动生成,但我们建议手动检查和调整数据,以确保准确性。

迭代和生成答案

我们将遍历数据集中的所有问题,并将这些问题提交给代理。代理返回的上下文、生成的答案和实际的标准答案将被记录在一个数据框中。

评估度量

我们将使用RAGAS提供的评估功能来评估生成的答案和上下文。评估度量包括:

检索度量

  1. 上下文召回率(Context Recall):计算检索到的相关结果占总相关结果的比例。

  2. 上下文精确度(Context Precision):计算检索到的相关结果占总检索结果的比例。

生成度量

  1. 忠实度(Faithfulness):评估生成答案与检索上下文的一致性。

  2. 答案相关性(Answer Relevancy):评估生成答案与原始问题的相关性。

检索度量详细讲解

检索度量主要关注上下文召回率和上下文精确度。

  • 上下文召回率(Context Recall):衡量管道返回的所有相关记录占数据集中所有相关记录的比例。公式为:真阳性 / (真阳性 + 假阴性)

  • 上下文精确度(Context Precision):衡量返回的相关结果占总返回结果的比例。公式为:真阳性 / (真阳性 + 假阳性)

生成度量详细讲解

生成度量主要关注忠实度和答案相关性。

  • 忠实度(Faithfulness):衡量生成答案中的所有声明是否都能在检索上下文中找到。分数为1表示所有声明都能找到,分数为0表示没有声明能找到。

  • 答案相关性(Answer Relevancy):通过生成多个基于生成答案的问题,并使用余弦相似度比较这些生成问题与原始问题的相似性来衡量。

通过这些度量,我们能够更全面地评估RAG管道的表现,并根据这些评估结果进行优化和迭代。

结论

通过将评估集成到我们的开发过程中,我们可以更快速、可靠地迭代检索和生成组件的性能。这使得我们的对话代理能够提供更高质量的答案,并显著提升用户体验。


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询