前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >评估与优化RAG指南:提高准确性与质量的最佳实践

评估与优化RAG指南:提高准确性与质量的最佳实践

作者头像
AgenticAI
发布于 2025-03-18 07:52:43
发布于 2025-03-18 07:52:43
2460
举报
文章被收录于专栏:AgenticAIAgenticAI

本文翻译自 Qdrant 官方博客,原文链接已附。本文首先介绍评估的必要性,然后介绍评估的框架,最后阐述表现不佳的解决方法,值得一读。

1. 介绍

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

构建一个 RAG 应用程序仅仅是开始; 测试其对终端用户的实用性,并对其组件进行长期稳定性校准至关重要。

RAG 系统在三个关键阶段可能会遇到错误:检索相关信息、增强该信息以及生成最终响应。通过系统地评估和微调每个组件,你将能够保持一个可靠且具有上下文相关性的生成 AI 应用程序,满足用户需求。

2. 为什么要评估你的 RAG 应用程序?

避免幻觉和错误答案

在生成阶段,幻觉是一个显著的问题,LLM(大语言模型)可能忽视上下文并编造信息,这会导致不基于现实的响应。

此外,生成有偏见的答案也是一个关注点,因为 LLM 生成的答案有时可能是有害、不恰当的,或者带有不合适的语气,因此在各种应用和交互中可能存在风险。

丰富增强的上下文

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

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

最大化搜索和检索过程

在检索过程中,一个显著的问题是缺乏精确性,检索的并非所有文档都与查询相关。这个问题由于召回率差而加剧,意味着并非所有相关的文档都被成功检索。

此外,存在迷失在中间[1] 问题,表明一些 LLM 可能在处理长上下文时存在困难,特别是当关键信息位于文档中部时,这可能导致不完整或不太有用的结果。

3. 推荐框架

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

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

Ragas[2](即 RAG 评估)使用包含问题、理想答案和相关上下文的数据集,将 RAG 系统生成的答案与真实答案进行比较。它提供诸如忠实度、相关性和语义相似度等指标,以评估检索和答案的质量。

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

Quotient:使用自定义数据集评估 RAG 流程

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

图 2:Quotient 框架的输出,展示了定义数据集是否在 RAG 流程的所有阶段(索引、分块、检索和上下文相关性)中正确处理的统计数据。

Arize Phoenix:视觉化地拆解响应生成

Arize Phoenix[3] 是一个开源工具,通过追踪响应的逐步构建过程,帮助改进 RAG 系统的性能。你可以在 Phoenix 中直观地查看这些步骤,帮助识别性能瓶颈和错误。你可以定义 “评估器[4]” 来使用 LLM 评估输出的质量、检测幻觉和检查答案的准确性。Phoenix 还会计算诸如延迟、令牌使用和错误等关键指标,帮助你了解 RAG 系统的效率。

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

3. 为什么你的 RAG 系统可能表现不佳

你在向向量数据库中导入数据时不当

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

向量数据库支持不同的索引[5] 技术。为了确认你是否正确地导入数据,你应该始终检查与索引技术相关的变量变化如何影响数据导入。

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

调整文档分块大小: 分块大小决定了数据的粒度,影响精度、召回率和相关性。它应该与嵌入模型的令牌限制对齐。

确保适当的分块重叠: 这有助于通过在不同分块之间共享数据点来保持上下文。可以采用去重和内容规范化等策略来管理这一点。

制定适当的分块/文本拆分策略: 确保你的分块/文本拆分策略适应你的数据类型(例如 HTML、Markdown、代码、PDF)和使用场景。例如,法律文档可能按标题和小节分块,医学文献可能按句子边界或关键概念拆分。

图 4:你可以使用诸如ChunkViz[6] 之类的工具来可视化不同的分块拆分策略、分块大小和分块重叠情况。

你可能没有正确地进行数据嵌入

你需要确保嵌入模型能够准确理解和表示数据。如果生成的嵌入是准确的,相似的数据点将在向量空间中紧密排列。嵌入模型的质量通常通过像 [Massive Text Embedding Benchmark (MTEB)](https://huggingface.co/spaces/mteb/leaderboard "Massive Text Embedding Benchmark (MTEB "Massive Text Embedding Benchmark (MTEB)")") 这样的基准进行衡量,其中模型的输出与真实数据集进行比较。

解决方案:选择合适的嵌入模型

嵌入模型在捕捉数据的语义关系中起着关键作用。

你可以选择多种嵌入模型, [Massive Text Embedding Benchmark (MTEB) Leaderboard](https://huggingface.co/spaces/mteb/leaderboard "Massive Text Embedding Benchmark (MTEB "Massive Text Embedding Benchmark (MTEB) Leaderboard") Leaderboard") 是一个很好的参考资源。轻量级库如FastEmbed[7] 支持使用流行的文本嵌入模型[8] 生成向量嵌入。

在选择嵌入模型时,检索性能领域特定性 非常重要。你需要确保模型能够捕捉语义差异,这会影响检索性能。对于专业领域,你可能需要选择或训练一个自定义的嵌入模型。

你的检索过程没有优化

语义检索评估测试了你的数据检索效果。有几个指标可以选择:

  • Precision@k: 测量前 k 个搜索结果中相关文档的数量。
  • Mean Reciprocal Rank (MRR): 考虑搜索结果中第一个相关文档的位置。
  • Discounted Cumulative Gain (DCG) 和 Normalized DCG (NDCG): 基于文档的相关性得分。

通过使用这些指标评估检索质量,你可以判断检索步骤的效果。对于 ANN 算法的评估,Precision@k 是最合适的指标,因为它直接衡量了算法如何逼近精确的搜索结果。

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

每一个新的具有更大上下文窗口的 LLM 都声称使 RAG 过时。然而,像迷失在中间[9] 这样的难题表明,依赖于大模型的默认检索方式可能无法提供最优化的解决方案。可以通过进一步优化检索算法(例如进行多轮检索或组合多种搜索技术)来改善性能。

4. 结论

评估和优化 RAG 系统是一个持续的过程。通过使用适当的框架和方法评估检索、增强和生成过程,你可以确保你的系统保持准确和可靠。微调每个阶段并不断验证和优化系统的组件,最终将有助于构建一个具有高质量生成响应的 RAG 应用程序。

为帮助开发者深入学习企业级 RAG 应用,推荐这本专注于RAG 开发与优化的书籍——《基于大模型的 RAG 应用开发与优化 — 构建企业级 LLM 应用》,无论是初学者还是进阶开发者,都能从中获益。

参考资料

[1]

迷失在中间:https://arxiv.org/abs/2307.03172

[2]

Ragas:https://docs.ragas.io/en/v0.0.17/index.html

[3]

Arize Phoenix:https://docs.arize.com/phoenix

[4]

评估器:https://docs.arize.com/phoenix/evaluation/concepts-evals/evaluation

[5]

索引:https://qdrant.tech/documentation/concepts/indexing/

[6]

ChunkViz:https://chunkviz.up.railway.app/

[7]

FastEmbed:https://github.com/qdrant/fastembed

[8]

流行的文本嵌入模型:https://qdrant.github.io/fastembed/examples/Supported_Models/#supported-text-embedding-models

[9]

迷失在中间:https://arxiv.org/abs/2307.03172

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-11-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AgenticAI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
RAG 修炼手册|如何评估 RAG 应用?
如果你是一名用户,拥有两个不同的 RAG 应用,如何评判哪个更好?对于开发者而言,如何定量迭代提升你的 RAG 应用的性能?
Zilliz RDS
2024/04/25
8860
RAG 修炼手册|如何评估 RAG 应用?
RAG流程优化(微调)的4个基本策略
在本文中,我们将介绍使用私有数据优化检索增强生成(RAG)的四种策略,可以提升生成任务的质量和准确性。通过使用一些优化策略,可以有效提升检索增强生成系统的性能和输出质量,使其在实际应用中能够更好地满足需求。
deephub
2024/07/01
1.4K0
RAG流程优化(微调)的4个基本策略
使用RAGAs评估基于Milvus的RAG应用
现在,我们很容易构建一个基于检索增强生成(RAG)的应用,但将其投入生产却非常困难,因为RAG的性能很难达到令人满意的状态。
Zilliz RDS
2024/07/10
5950
使用RAGAs评估基于Milvus的RAG应用
深度测评 RAG 应用评估框架:指标最全面的 RAGas
大家常说 RAG 应用是:一周出 demo,半年用不好。那么怎么评估 RAG 应用是否能够上生产了呢?如果公司人手足够,当然可以人工测试评估准确性,但指标未免单一。本文介绍一个全自动化的 rag 应用评估框架 ragas。
AgenticAI
2025/03/18
1.1K0
深度测评 RAG 应用评估框架:指标最全面的 RAGas
从零开始优化 RAG 流程的终极指南,解决检索增强生成的核心挑战
首先,我们将 RAG 工作流程分为三个部分,以增强我们对 RAG 的理解,并优化每个部分以提高整体性能:
致Great
2025/02/22
1.2K0
从零开始优化 RAG 流程的终极指南,解决检索增强生成的核心挑战
使用自定义LLM:RAGAs评估
RAGAs (Retrieval-Augmented Generation Assessment) 它是一个框架 GitHub文档,它可以快速评估 RAG系统 两个方面的性能: <生成> 和 <检索>
比克AI
2024/11/20
5190
使用自定义LLM:RAGAs评估
如何评估 RAG 应用的质量?最典型的方法论和评估工具都在这里了
随着 LLM(Large Language Model)的应用逐渐普及,人们对 RAG(Retrieval Augmented Generation)场景的关注也越来越多。然而,如何定量评估 RAG 应用的质量一直以来都是一个前沿课题。
Zilliz RDS
2024/01/04
6.5K0
如何评估 RAG 应用的质量?最典型的方法论和评估工具都在这里了
RAG智能问答评测工具调研
大语言模型在企业内部知识问答中可能会出现幻觉等问题, 检索增强生成(RAG)是减轻大语言模型幻觉的一种有效手段,那如何评估检索增强生成的结果是否准确? 如何确定RAG产品是否可用,是否有标准可以判断?
产品言语
2024/03/06
7230
RAG智能问答评测工具调研
RAG科普文!检索增强生成的技术全景解析
增强生成 (RAG) 是塑造应用生成式 AI 格局的关键技术。Lewis 等人在其开创性论文中提出了一个新概念面向知识密集型 NLP 任务的检索增强生成之后,RAG 迅速成为基石,提高了大型语言模型 (LLM) 输出的可靠性和可信度。
致Great
2025/02/15
9750
RAG科普文!检索增强生成的技术全景解析
大模型系列——解读RAG
RAG 是2023年最流行的基于 LLM 的应用系统架构。有许多产品几乎完全建立在 RAG 之上,覆盖了结合网络搜索引擎和 LLM 的问答服务,到成千上万个数据聊天的应用程序。很多人将RAG和Agent 作为大模型应用的两种主流架构,但什么是RAG呢?RAG又涉及了哪些具体的技术呢?
半吊子全栈工匠
2024/02/06
21.4K1
大模型系列——解读RAG
生产级RAG系统一些经验总结
本文将探讨如何使用最新技术构建生产级检索增强生成(RAG)系统,包括健壮的架构、向量数据库(Faiss、Pinecone、Weaviate)、框架(LangChain、LlamaIndex)、混合搜索、重排序器、流式数据接入、评估策略以及实际部署技巧。
致Great
2025/05/02
2950
你的RAG系统真的达标了吗?生产环境RAG成功的7大关键指标
在企业或者单位内部,我们搞了个RAG应用,塞进去一堆文档,想着能给团队提供又快又准的信息。刚开始,那感觉简直像变魔术一样神奇!但大家都知道,大模型总有穿帮的时候,现实总会给你当头一棒。
致Great
2025/01/13
3700
你的RAG系统真的达标了吗?生产环境RAG成功的7大关键指标
RAG 范式、技术和趋势
这里分享同济大学 Haofen Wang的关于检索增强生成的报告:《Retrieval-Augmented Generation (RAG): Paradigms, Technologies, and Trends》 ,RAG 范式、技术和趋势。
JadePeng
2024/03/16
1.5K0
RAG 范式、技术和趋势
RAG应用程序的12种调优策略:使用“超参数”和策略优化来提高检索性能
本文从数据科学家的角度来研究检索增强生成(retrieve - augmented Generation, RAG)管道。讨论潜在的“超参数”,这些参数都可以通过实验来提高RAG管道的性能。与本文还将介绍可以应用的不同策略,这些策略虽然不是超参数,但对性能也会产生很大的影响。
deephub
2023/12/13
2.4K0
RAG应用程序的12种调优策略:使用“超参数”和策略优化来提高检索性能
告别碎片化!两大先进分块技术如何提升RAG的语义连贯性?
可以看出, 当前RAG分块策略的研究聚焦于平衡上下文保留与计算效率。传统方法(固定分块、语义分块)在简单场景中仍具优势,而延迟分块和上下文检索在复杂语义任务中表现更优但代价高昂。未来需探索轻量化上下文增强、长文档优化技术,并建立统一评估标准以推动实际应用。
致Great
2025/04/30
2410
告别碎片化!两大先进分块技术如何提升RAG的语义连贯性?
精彩手绘全解:RAG技术,从入门到精通
本文整理自IVAN ILIN发布于Towards AI的博客[1]。感谢作者的精彩讲解。
zenRRan
2024/01/12
2.6K0
精彩手绘全解:RAG技术,从入门到精通
玩转RAG应用:如何选对Embedding模型?
在打造检索增强生成(RAG)应用时,选择合适的Embedding模型就像挑选合适的工具,直接影响到应用的表现和效果。​那么,面对众多的模型,我们该如何轻松找到最适合的那一款呢?​
致Great
2025/03/19
1.7K0
玩转RAG应用:如何选对Embedding模型?
关于RAG你不得不了解的17个技巧
这篇文章适合那些在过去一个月里刚刚构建了第一个LLM(大语言模型)应用程序,并开始考虑如何将其产品化的朋友们。我们将介绍17种技术,帮助你们避免在RAG开发过程中重复踩坑——毕竟,在同一个坑里跌倒两次,岂不是太浪费时间了?通过这些技巧,你们可以逐步优化大模型的技术方案,提升RAG在实际应用中的效果和稳定性。
致Great
2025/01/09
3370
关于RAG你不得不了解的17个技巧
深入RAG工作流:检索生成的最佳实践
今天分享的是复旦大学和智能信息处理上海市重点实验室联合发表的一篇文章:实现检索增强生成(RAG)的最佳实践
AI研思录
2025/02/20
4970
深入RAG工作流:检索生成的最佳实践
LLM RAG系列
本文介绍了RAG以及RAG pipeline的整个流程,包括请求转换、路由和请求构造、索引和检索、生成和评估等,其中引用了大量有价值的论文。
charlieroro
2024/04/02
8710
LLM RAG系列
推荐阅读
相关推荐
RAG 修炼手册|如何评估 RAG 应用?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档