RAG评估最佳实践:综合指南

文摘   2024-12-04 20:29   湖北  
关注不迷路

 

RAG评估最佳实践:综合指南 - Qdrant

本文是我自己在学习的过程中翻译出来的,分享给有需要的朋友

太长不看版

本文总结了 RAG 系统评估的最佳实践,并按主题分类罗列了主要要点。

一、RAG 系统评估的重要性

  • • 未经评估的 RAG 系统 可能生成错误、过时、不一致或有害的答案,影响用户体验和信任度。

  • • 全面的 RAG 系统评估 可以识别并解决检索准确性、上下文相关性和响应质量等问题,确保系统长期稳定运行。

二、RAG 系统评估框架

  • • Ragas 框架 使用问答数据集评估 RAG 系统的检索和答案质量,提供指标如忠实度、相关性和语义相似度。

  • • Quotient AI 平台 允许开发者上传自定义数据集,自动运行 RAG 流程并提供详细指标,帮助识别改进方向。

  • • Arize Phoenix 工具 可视化 RAG 系统的响应生成过程,帮助识别性能瓶颈和错误,并提供关键指标分析。

三、RAG 系统性能不佳的常见原因及解决方案

  • • 数据摄取不当: 解决方案: 调整文档块大小、确保块重叠、制定合适的文本分割策略。

  • • 数据嵌入错误: 解决方案: 选择合适的嵌入模型,参考 MTEB 排行榜并考虑检索性能和领域特异性。

  • • 检索过程未优化: 解决方案: 选择最佳检索算法、配置密集向量检索、使用稀疏向量和混合搜索、设置正确的超参数、引入重排序。

  • • LLM 生成性能欠佳: 解决方案: 测试和分析 LLM 质量,参考 Open LLM Leaderboard 选择合适的 LLM,并使用指标和框架评估 LLM 响应质量。

四、使用自定义数据集进行评估

  • • 创建评估数据集: 可以使用手工创建、LLM 生成、Ragas 框架或 FiddleCube 生成问题和答案对。

  • • 收集数据: 收集 RAG 系统针对每个问题的检索上下文和最终答案。

五、持续评估和改进

  • • 端到端评估: 评估整个 RAG 系统的整体性能,包括有效性、真实性、延迟、简洁性和一致性。

  • • 持续测试和校准: 定期评估和校准 RAG 系统的各个组件,以适应不断变化的需求并保持长期性能。

如下是完整内容


简介

本指南将教您如何评估RAG系统的准确性质量。您将学习通过测试搜索精度、召回率、上下文相关性和响应准确性来维护RAG性能。

**构建RAG应用只是开始;**测试其对终端用户的有用性并校准其组件以实现长期稳定性至关重要。

RAG系统可能在以下三个关键阶段中的任何一个遇到错误:检索相关信息、增强信息和生成最终响应。通过系统地评估和微调每个组件,您将能够维持一个可靠且上下文相关的生成式AI应用,以满足用户需求。

为什么要评估您的RAG应用?

避免幻觉和错误答案

rag-eval-0

在生成阶段,幻觉是一个显著的问题,即大语言模型(LLM)忽略上下文并虚构信息。这可能导致不符合实际的响应。

此外,生成带有偏见的答案也是一个问题,因为LLM生成的响应有时可能具有有害、不适当或不恰当的语调,从而在各种应用和交互中带来风险。

丰富LLM增强的上下文

增强过程中面临的挑战包括信息过时,即响应可能包含已不再适用的数据。另一个问题是存在上下文间隙,即检索到的文档之间缺乏关联性。

这些间隙可能导致呈现的信息不完整或片段化,从而降低增强响应的整体连贯性和相关性。

最大化搜索和检索过程

在检索方面,搜索的一个显著问题是缺乏精度,即检索到的文档并非都与查询相关。此外,还存在召回率较低的问题,这意味着并非所有相关文档都被成功检索到。

此外,"Lost in the Middle"问题表明,某些LLM可能在处理长上下文时表现不佳,特别是当关键信息位于文档中间位置时,这会导致不完整或用处较小的结果。

推荐框架

rag-eval-6

为了简化评估过程,有多种强大的框架可用。以下我们将探讨三个流行的框架:Ragas、Quotient AI 和 Arize Phoenix

Ragas:通过问题和答案测试RAG

Ragas(或RAG评估)使用问题数据集、理想答案和相关上下文来比较RAG系统生成的答案与真实情况。它提供忠实度、相关性和语义相似性等指标来评估检索和答案质量。

图1: Ragas框架的输出,展示了忠实度、答案相关性、上下文召回率、精度、相关性、实体召回率和答案相似性等指标。这些用于评估RAG系统响应的质量。

image3.png

Quotient:使用自定义数据集评估RAG管道

Quotient AI是另一个旨在简化RAG系统评估的平台。开发者可以上传评估数据集作为基准来测试不同的提示和LLM。这些测试以异步任务形式运行:Quotient AI会自动运行RAG管道,生成响应并提供关于忠实度、相关性和语义相似性的详细指标。通过Python SDK可以全面访问该平台的功能,分析和可视化Quotient评估结果,从而发现改进点。

图2: Quotient框架的输出,统计数据定义了数据是否在RAG管道的所有阶段(索引、分块、搜索和上下文相关性)中得到适当处理。

image2.png

Arize Phoenix:直观地解构响应生成

Arize Phoenix 是一款开源工具,通过逐步跟踪响应的生成过程,帮助改善RAG系统的性能。Phoenix以可视化的方式展示这些步骤,有助于识别性能瓶颈和错误。您可以定义“评估器”,利用LLM评估输出质量,检测幻觉并检查答案准确性。Phoenix还计算关键指标,如延迟、Token使用量和错误,从而了解RAG系统的工作效率。

图3: Arize Phoenix工具直观易用,展示了整个过程架构以及检索、上下文和生成中的步骤。

image1.png

为什么您的RAG系统可能表现不佳?


您可能不正确地将数据导入向量数据库

不正确的数据导入可能导致丢失重要的上下文信息,而上下文信息对生成准确且连贯的响应至关重要。此外,不一致的数据导入可能导致系统生成不可靠和不一致的响应,从而损害用户的信任和满意度。

向量数据库支持不同的索引技术。为了确保正确导入数据,您需要检查与索引技术相关的变量变化如何影响数据导入。

解决方案:关注数据分块方式

校准文档块大小: 块大小决定了数据粒度,并影响精度、召回率和相关性。它应与嵌入模型的Token限制相一致。

确保适当的块重叠: 通过跨块共享数据点,保留上下文。这需要使用重复数据删除和内容规范化等策略进行管理。

开发适当的分块/文本拆分策略: 确保您的分块/文本拆分策略针对您的数据类型(例如HTML、Markdown、代码、PDF)和用例细节量身定制。例如,法律文档可以按标题和子章节分割,医学文献可以按句子边界或关键概念分割。

图4: 您可以使用像 ChunkViz 这样的工具来可视化不同的块拆分策略、块大小和块重叠情况。

image4.png

您可能错误地嵌入了数据

确保嵌入模型能够准确理解和表示数据非常重要。如果生成的嵌入是准确的,相似的数据点将在向量空间中紧密排列。嵌入模型的质量通常通过如Massive Text Embedding Benchmark (MTEB)等基准测试来衡量,在这些基准测试中,模型的输出与真实数据集进行比较。

解决方案:选择正确的嵌入模型

嵌入模型在捕捉数据的语义关系中扮演关键角色。

有多种嵌入模型可供选择,Massive Text Embedding Benchmark (MTEB) Leaderboard 是一个很好的参考资源。轻量级库如 FastEmbed 支持使用流行的文本嵌入模型生成向量嵌入。

选择嵌入模型时,应关注检索性能领域特定性。确保模型能够捕捉语义细微差别,从而影响检索性能。对于特定领域,您可能需要选择或训练一个定制的嵌入模型。

您的检索过程未优化

rag-eval-5

语义检索评估测试数据检索的有效性。有几种可供选择的指标:

  • • Precision@k:测量前k个搜索结果中相关文档的数量。

  • • 平均倒数排名(MRR):考虑搜索结果中第一个相关文档的位置。

  • • 折扣累积增益(DCG)和归一化DCG(NDCG):基于文档的相关性评分。

通过使用这些指标评估检索质量,您可以评估检索步骤的有效性。对于评估ANN算法,Precision@k是最适合的指标,因为它直接衡量算法近似精确搜索结果的能力。

解决方案:选择最佳检索算法

每种具有更大上下文窗口的新LLM都声称可以使RAG过时。然而,像“Lost in the Middle”这样的研究表明,将整个文档输入到LLM可能会削弱其回答问题的能力。因此,检索算法对于在RAG系统中提取最相关数据至关重要。

配置密集向量检索: 您需要选择正确的相似度度量以获得最佳检索质量。密集向量检索中使用的度量包括余弦相似性、点积、欧几里得距离和曼哈顿距离。

必要时使用稀疏向量和混合搜索: 对于稀疏向量,BM-25、SPLADE或BM-42算法的选择会影响检索质量。混合搜索将密集向量检索与基于稀疏向量的搜索结合起来。

利用简单过滤: 这种方法将密集向量搜索与属性过滤结合,以缩小搜索结果范围。

设置正确的超参数: 分块策略、块大小、重叠和检索窗口大小对检索步骤有显著影响,必须针对特定要求量身定制。

引入重新排序: 此类方法可能使用交叉编码器模型对向量搜索返回的结果重新评分。重新排序可以显著提高检索效果,从而提高RAG系统性能。

LLM生成性能不佳


LLM生成性能不佳

LLM负责根据检索到的上下文生成响应。选择的LLM范围从OpenAI的GPT模型到开放权重模型。您选择的LLM会显著影响RAG系统的性能。以下是一些需要关注的领域:

  • • 响应质量:LLM的选择会影响生成响应的流畅性、连贯性和事实准确性。

  • • 系统性能:不同LLM的推理速度各不相同。较慢的推理速度会影响响应时间。

  • • 领域知识:对于领域特定的RAG应用,可能需要训练在该领域表现更好的LLM。一些LLM比其他LLM更容易微调。

解决方案:测试并批判性地分析LLM质量

Open LLM Leaderboard可以为您的LLM选择提供指导。在该排行榜上,LLM基于其在各种基准测试(如IFEval、GPQA、MMLU-PRO等)上的得分进行排名。

评估LLM涉及几个关键指标和方法。您可以使用这些指标或框架来评估LLM是否提供高质量、相关且可靠的响应。

表1:评估LLM响应质量的方法

指标描述
Perplexity衡量模型预测文本的能力。
人工评估根据相关性、连贯性和质量对响应进行评分。
BLEU用于翻译任务,将生成的输出与参考翻译进行比较。得分越高(0-1),性能越好。
ROUGE通过比较生成的摘要与参考摘要来评估摘要质量,计算精度、召回率和F1分数。
EleutherAI一个框架,用于测试LLM在不同评估任务上的表现。
HELM一个框架,重点评估模型在实际部署中重要的12个方面。
多样性评估响应的多样性和独特性,得分越高表示输出越多样化。

许多LLM评估框架提供了灵活性,可以适应领域特定或自定义评估,满足您的用例的关键RAG指标需求。这些框架使用LLM作为评审者或OpenAI Moderation API来确保AI应用生成的响应符合规范。


使用自定义数据集

rag-eval-3

首先,从源文档中创建问题和真实答案对,用于评估数据集。真实答案是您期望RAG系统提供的准确响应。可以通过以下几种方式创建这些答案:

  • • 手动创建数据集: 手动设计问题和答案。

  • • 使用LLM生成合成数据: 利用LLM(如T5或OpenAI API)。

  • • 使用Ragas框架: 这种方法 使用LLM生成各种问题类型,用于评估RAG系统。

  • • 使用FiddleCube: FiddleCube 是一种可以帮助生成多种问题类型的系统,针对不同评估过程的方面。

在创建数据集后,收集每个问题的检索上下文和RAG管道生成的最终答案。

图5: 以下是四个评估指标的示例:

  • • question: 基于源文档设计的一组问题。

  • • ground_truth: 对这些问题的预期准确答案。

  • • context: RAG管道为每个查询检索的上下文。

  • • answer: RAG管道为每个查询生成的答案。

image5.png

结论:运行测试时需要关注什么

为了判断一个RAG系统是否正常工作,您需要确保以下方面:

  • • 检索有效性: 检索的信息具有语义相关性。

  • • 响应的相关性: 生成的响应有意义。

  • • 生成响应的连贯性: 响应逻辑连贯。

  • • 最新数据: 响应基于当前数据。

从端到端(E2E)评估RAG应用

端到端(E2E)评估考察整个RAG系统的整体性能。以下是一些关键的测量指标:

  • • 帮助性: 衡量系统响应对用户实现目标的帮助程度。

  • • 有据可查性: 确保响应基于可验证的检索上下文信息。

  • • 延迟: 监控系统的响应时间,确保达到所需的速度和效率标准。

  • • 简洁性: 评估响应是否简明而全面。

  • • 一致性: 确保系统在不同查询和上下文中始终提供高质量响应。

例如,您可以使用答案语义相似性正确性等指标来衡量生成响应的质量。

  • • 语义相似性: 测量生成的答案与真实答案之间的差异,范围为0到1,利用余弦相似性评估向量空间中的对齐程度。

  • • 答案正确性: 评估生成答案与真实答案之间的整体一致性,包括事实正确性(通过F1分数测量)和答案相似性得分。

RAG评估只是开始

rag-eval-4

RAG评估只是开始。它为系统的持续改进和长期成功奠定了基础。起初,它可以帮助您识别和解决与检索准确性、上下文相关性和响应质量相关的直接问题。然而,随着您的RAG系统演变并面对新的数据、用例和用户交互,您需要不断测试和校准。

通过持续评估您的应用,您可以确保系统适应变化的需求并保持其性能。您应定期校准所有组件,例如嵌入模型、检索算法以及LLM本身。这个迭代过程将帮助您识别并修复新出现的问题,优化系统参数并整合用户反馈。

目前,RAG评估仍处于发展的早期阶段。建议您保留本指南,并随时关注更多技术、模型和评估框架的发展,及时将其纳入您的评估流程。


原文链接:

https://qdrant.tech/blog/rag-evaluation-guide/

草台AI
世界潮流 浩浩荡荡 顺之则昌 逆之则亡。AI来了!AIGC,LLM,大模型,规模效应,软件开发
 最新文章