两个简单技巧把 RAG 检索正确率从 50% 提高到 95 % 原创

发布于 2025-1-26 13:49
浏览
0收藏

在实际项目实施过程中,RAG(检索增强生成)系统的关键在于其检索阶段,这一环节直接关系到生成效果的质量。RAG 系统的运作流程主要涉及数据摄取和数据查询两个步骤,而检索环节的重要性不言而喻。本文分享了一个案例,讲述了团队如何运用两大关键策略,将 RAG 系统的检索准确率从50%显著提升至95%。

1、RAG 检索召回率

RAG 系统的检索召回率(Recall)是评估检索系统在用户查询时能否有效检索出所有相关文档的标准。在 RAG 系统中,这一指标至关重要,因为如果检索阶段不能提供充分的上下文信息,那么即便生成模型再先进,也难以产生高质量的输出。因此,高的检索召回率是保障生成内容相关性的关键。

召回率的计算公式如下:


两个简单技巧把 RAG 检索正确率从 50% 提高到 95 %-AI.x社区

召回率(Recall)=(检索到的相关文档数 / 数据库中的总相关文档数)* 100%

以下是一个示例:

假设用户搜索的是“赫尔辛基的瑞典按摩”。

数据库中共有10篇与查询相关的文档,检索系统找回了9篇相关文档以及1篇不相关文档。

召回率的计算方式为:


两个简单技巧把 RAG 检索正确率从 50% 提高到 95 %-AI.x社区图片

召回率 =(9 / 10)* 100% = 90%

这意味着检索系统成功找回了90%的相关文档。

2、案例剖析

第一、案例背景

在这个实例中,我们通过两项关键的优化措施,将系统的检索准确率从原本的50-60%大幅提升至95%以上。项目的初衷是打造一款内部聊天机器人,旨在协助客户服务团队更迅速地获取所需信息。

项目启动阶段涉及以下步骤:

  1. 从多个系统中提取数据。
  2. 对数据进行预处理、分块(chunking)以及嵌入(embedding)处理。
  3. 在 Azure AI Search 上构建搜索索引。
  4. 将聊天机器人与搜索索引相连接。

数据集包含了关于地点(例如水疗中心和健身房)和专家(例如按摩师和私人教练)的信息。为了准备这些数据,我们通过合并文本字段(如描述、城市、地区)成一个统一的内容字段,并为向量搜索创建了嵌入。

最初,搜索查询是通过向量搜索或全文 BM25 搜索对内容字段进行的。但是,系统只在50-60%的情况下能够正确检索到文档。

我们发现,向量搜索并不适合此应用场景,因为它更倾向于模糊匹配和语义相似性,而我们的需求是精确匹配。同样,BM25 搜索也表现不佳,因为它基于词频统计,导致那些包含更多查询词的文档被优先展示,而不是真正相关的文档。此外,BM25 搜索在处理芬兰语词汇形态变化时也存在问题,微小的形态变化就会阻碍文档的检索。

第二、初始方案的问题

系统结合使用了向量搜索和 BM25 全文搜索,但存在以下两个问题:

  • 向量搜索:虽然基于语义相似性,却不能精确对应特定的服务或地点。
  • BM25 搜索:依赖于关键词的出现频率,往往导致含有高频关键词但实际相关性较低的文档被优先展示。特别是在处理像芬兰语这样具有丰富词形变化的语言时,BM25 搜索的效果更是大打折扣。

这些问题导致了检索结果的相关性不足,从而极大地影响了用户的体验。

第三、检索准确率从 50-60% 提升至 95% 的两个技巧

通过实施以下两项重要改进措施,系统的检索准确率得到了显著提高:

1.应用 LLM 优化用户查询

改进方案:在查询阶段,利用 LLM 将用户的原始输入转换成结构化查询。例如,将“赫尔辛基的瑞典按摩”重写为服务字段包含“瑞典按摩”且城市字段为“赫尔辛基”的查询格式。

实际成效:这种精确的查询重写显著增强了检索的相关性,减轻了 BM25 对关键词频率的依赖。

成本与挑战:

性能负担:查询重写需要实时进行,可能会在高流量情况下导致响应时间延长。

维护难度:需要不断优化查询重写逻辑,以跟上用户需求的变化。

2.应用LLM优化索引构建

改进方案:在索引阶段,利用大语言模型(LLM)从非结构化文本中提取服务信息,创建结构化的服务列表作为索引字段。例如,从句子“这家水疗中心提供瑞典按摩和芳香疗法”中提取出“瑞典按摩”和“芳香疗法”。

处理非标准化数据:通过预处理步骤清理拼写错误、语言差异等干扰因素,提高模型的一致性。

实际成效:索引信息的精确度提升,解决了向量搜索中由于模糊匹配导致的相关性问题。

成本与挑战

计算资源:构建索引需要大量的计算资源,尤其是在处理大规模数据时。

维护难度:需要不断更新动态服务信息,以保持索引的准确性和有效性。

两个简单技巧把 RAG 检索正确率从 50% 提高到 95 %-AI.x社区

通过这两项技巧,成功地将 RAG 检索准确率从50%提升至95%。

3、案例总结

本案例的核心启示如下

关键在于检索阶段的提升:生成质量的提高依赖于精准的检索输出。

简洁而有效的优化:利用 LLM 对索引和查询进行改进,大幅增强了系统表现。

成本与回报的平衡:尽管计算和维护成本有所上升,但由此带来的用户体验增进是划算的。

高效的检索不仅为生成阶段打下了坚实的基础,同时也说明了技术改进应当围绕用户需求进行,避免无谓的复杂化。


本文转载自公众号玄姐聊AGI  作者:玄姐

原文链接:​​https://mp.weixin.qq.com/s/eQcQV_jR9rW07fRwtvJx6Q​

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
标签
已于2025-1-26 16:35:46修改
收藏
回复
举报
回复
相关推荐