2个简单技巧把 RAG 检索准确率从 50% 提高到 95 %

在讨论了 RAG 的 chunking、embedding、评估指标、评估流程等技术后,我们进一步探讨 RAG 系统的实际应用。在实际项目中,RAG(Retrieval-Augmented Generation)系统的检索阶段往往是影响生成效果的核心环节。RAG 系统的工作流程包括数据摄取(Data Ingestion)和数据查询(Data Querying),其中检索是至关重要的一步。本文介绍了在一个案例中,团队如何通过2个关键技巧把 RAG 检索准确率从 50% 提高到 95 %

1. 什么是 RAG 检索准确率?为什么它很重要?

RAG 检索准确率(Recall)是衡量检索系统能否找到与用户查询相关的所有文档的指标。它在 RAG 系统中尤为重要,因为如果检索阶段无法提供足够的上下文,即使生成模型再强大,也难以输出高质量结果。高检索准确率是确保生成内容相关性的基础。

检索准确率(Recall)公式如下:

示例:

  • 用户查询 “Swedish massage in Helsinki”。

  • 数据库中有 10 条相关文档,检索系统返回 9 条相关文档和 1 条不相关文档。

  • 检索准确率计算:

2. 案例背景

在这个案例中,我们通过两个关键改进,使系统的检索准确率从 50-60% 提升至 95% 以上。此项目的背景是为客户服务团队构建一个内部聊天机器人,以帮助客服人员更快地访问信息。

项目初始阶段包括:

  • 从各种系统中获取数据。

  • 预处理、chunking 和 embedding 数据。

  • 在 Azure AI Search 中构建搜索索引。

  • 将聊天机器人连接到搜索索引。

数据包括有关地点(如水疗中心和健身房)和专家(如按摩治疗师和私人教练)的信息。数据通过将文本字段(描述、城市、地区)合并为一个内容字段,并为向量搜索创建 embeddings 来准备。

最初的搜索查询要么作为向量搜索,要么作为全文 BM25 搜索对内容字段运行。然而,系统仅在 50-60% 的时间内检索到正确的文档。

向量搜索不适合这个应用,因为它优先考虑模糊匹配和语义相似性,而我们的应用需要精确匹配。BM25 搜索也不够,因为它基于术语频率,导致包含更多匹配查询术语的文档优先显示,而不是匹配相关术语的文档。BM25 还存在芬兰语词形变化的问题,稍微的词形变化会阻止文档检索。

3. 初始方案的问题

系统采用了向量搜索BM25 全文搜索 的组合,然而:

  1. 向量搜索:基于语义相似性,但无法精确匹配具体的服务或位置。

  2. BM25 搜索:依赖关键字频率,但会优先返回包含高频关键词但相关性低的文档。对于芬兰语等具有词形变化的语言,BM25 的效果进一步降低。

这些问题导致检索结果相关性不足,严重影响了用户体验。

4. 检索准确率从 50-60% 提升至 95% 的两个技巧

通过以下两项关键改进,系统的检索准确率得以显著提升:

1.利用 LLM 改写用户查询

  • 解决方案:在查询阶段,借助 LLM 将用户输入改写为结构化查询。例如,将 “Swedish massage in Helsinki” 改写为服务字段包含 “Swedish massage” 且城市字段为 “Helsinki” 的查询。

  • 实际效果:精准的查询改写显著提高了检索相关性,减少了 BM25 依赖于关键词频率的问题。

  • 成本与问题

  • 性能开销:查询改写需要实时处理,在高并发场景中可能增加响应时间。

  • 维护复杂度:需持续优化查询改写逻辑,以适应不断变化的用户需求。

2.利用 LLM 改进索引

  • 解决方案:在索引阶段,使用大语言模型(LLM)从自由文本中提取服务信息,生成结构化服务列表作为索引字段。例如,从描述 “This spa offers Swedish massage and aromatherapy” 中提取 “Swedish massage” 和 “aromatherapy”。

  • 处理非标准化输入:预处理步骤清洗拼写错误、语言变体等噪声,提升模型一致性。

  • 实际效果:索引信息更加精确,解决了向量搜索中模糊匹配导致的相关性不足问题。

  • 成本与问题

  • 计算成本:索引构建需要显著的计算资源,特别是在大规模数据场景中。

  • 维护复杂度:动态服务信息需要持续更新,确保索引的准确性和实用性。

2个技巧把 RAG 检索准确率从 50% 提高到 95 %

6. 总结

本案例的关键收获如下:

  1. 核心在于检索阶段的优化:生成效果的提升离不开高质量的检索结果。

  2. 简单且有效的改进:通过 LLM 改进索引和查询改写,显著提升了系统性能。

  3. 成本与收益的权衡:虽然增加了部分计算和维护成本,但带来的用户体验提升是值得的。

高效的检索不仅为生成阶段提供了坚实基础,也证明了技术优化应聚焦于用户需求,避免盲目追求复杂性。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

<think>嗯,用户想提升RAG模型的准确率,特别是在检索和生成这两个方面。那我得先回顾一下RAG的基本结构,然后看看有哪些方法可以优化。根据引用[1]提到,RAG包括Embedding模型、向量数据库、提示词工程和大语言模型。所以,提高准确率可能需要从这些部分入手。 首先,检索阶段的优化是关键。用户提到的引用[1]和[3]都强调了检索准确率的重要性。比如,使用更高质量的Embedding模型,像OpenAI的text-embedding-3-large或者BGE模型,可能提升向量表示的效果。另外,分块策略也很重要,如果分块太小可能会丢失上下文,太大又可能引入噪音,所以需要根据具体数据调整块的大小和重叠部分。 然后,引用[1]提到的Reranker,也就是重排器,可以在初步检索后进一步优化结果。比如Cohere Rerank或者BGE Re-Ranker,虽然会增加延迟,但能有效提升相关性。可能用户需要权衡计算成本和准确率,选择适合的重排器。 还有,预处理数据方面,引用[3]提到数据清洗和结构化处理,比如去除噪音、提取关键词,这样可以提升检索质量。元数据过滤也是个好方法,比如按文档类型或时间筛选,减少不相关的结果。 在生成阶段,提示词工程的作用不可忽视。引用[1]和[4]都提到,设计好的提示词,比如明确要求模型基于上下文回答,可以避免幻觉。此外,多步生成策略,如先总结检索内容再生成答案,可能提高准确性。 评估和迭代也很重要。引用[3]讲到了评估指标,比如检索召回率和生成答案的相关性,通过A/B测试不同配置的效果,持续优化模型参数和策略。 用户可能的应用场景可能是问答系统或事实核查,需要最新信息支持,所以结合实时数据更新和混合检索(关键词+向量)可能会有帮助。另外,混合生成模型,比如多个LLM投票,可能提升生成结果的可靠性。 不过,用户可能没有提到的潜在需求是平衡延迟和成本,比如Reranker虽然有效,但需要考虑实际应用中的响应时间。还有数据隐私问题,如果处理的是敏感信息,需要确保Embedding和检索过程的安全。 总之,需要综合多个方面的优化,从数据预处理、检索策略、重排、提示词设计到生成模型的选择,逐步提升RAG的整体性能。同时,持续监控和评估效果,根据反馈调整策略,才能有效提高准确率。</think>为提高RAG模型的检索和生成准确率,可从以下六个维度进行优化,结合最新技术实践与理论依据: ### 一、检索阶段优化 1. **Embedding模型增强** - 使用混合检索策略:结合$dense\ vectors$和$sparse\ vectors$(如BM25),提升召回率[^1] - 升级Embedding模型:采用SOTA模型如BGE-v1.5($\text{score}=58.37$ on MTEB)或OpenAI text-embedding-3-large($\text{dim}=3072$)[^3] 2. **分块策略优化** - 动态分块算法:基于语义边界自适应调整块大小,公式表达为: $$C_i = \arg\max_{c \in D}(sim(q,c) \cdot \frac{1}{|c|^{0.5}})$$ - 重叠窗口设计:设置10-30%的重叠比例保持上下文连贯性[^3] 3. **重排技术(Reranker)** - 两阶段检索架构: ```mermaid graph LR A[Query] --> B{向量检索} B --> C[Top100候选] C --> D{Reranker} D --> E[Top3结果] ``` - 推荐使用BGE Re-Ranker v2.0($\text{NDCG@10}=86.2$)或Cohere Rerank v3[^1] ### 二、生成阶段优化 1. **提示词工程** - 结构化模板设计: ```text 你是一个专业助手,请严格基于以下上下文回答问题: [上下文开始] {{context}} [上下文结束] 问题:{{question}} 若上下文不包含答案,请回答"未知" ``` - 思维链(Chain-of-Thought)增强: $$P_{\text{answer}} = \prod_{t=1}^T P(w_t|w_{<t},c,q)$$ 2. **生成控制技术** - 温度参数调节:设置$\tau=0.3$降低随机性 - 约束解码:通过正则表达式限制输出格式 ### 三、数据层面优化 1. **知识库构建** - 数据清洗流程: ```python def clean_text(text): text = remove_html_tags(text) text = correct_spelling(text) return normalize_whitespace(text) ``` - 元数据增强:添加时间戳、来源等结构化信息 2. **评估体系构建** | 指标 | 计算公式 | 目标值 | |-------------|--------------------------|-------| | 检索召回率 | $\frac{|R \cap G|}{|G|}$ | >85% | | 生成准确率 | $\frac{\text{正确回答}}{\text{总提问}}$ | >90% | ### 四、系统级优化 1. **混合架构设计** - 实时更新机制:每小时同步增量数据到向量库 - 缓存策略:对高频查询建立LRU缓存($\text{size}=1,000$) 2. **监控报警系统** - 异常检测模型: $$anomaly\_score = \alpha \cdot \text{空答率} + \beta \cdot \text{时延} + \gamma \cdot \text{置信度}$$ ### 五、前沿技术整合 1. **多模态增强** - 融合文本、表格、图像的多模态检索 - 使用CLIP模型进行跨模态对齐 2. **主动学习机制** - 不确定度采样策略: $$x^* = \arg\max_x(1 - P_{\theta}(y|x))$$ ### 六、持续优化闭环 建立"评估-分析-优化"迭代循环,建议每两周进行效果复盘。通过A/B测试验证优化措施,确保准确率提升符合预期[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值