✨ 复制成功!

以文会友,打造好学人设!

📋 已复制到剪贴板:

RAG 调优:如何提升检索增强生成的准确率?

创建时间:2026-09-24 更新时间:2026-09-24 阅读次数:1002 次 分类:Agent与RAG应用

提升 RAG 的准确率,核心思路是从“检索”和“生成”两个环节同时入手:检索端追求“找得全且准”,生成端追求“用得上且不跑偏”。以下按优化模块整理关键策略。

1、优化检索端:让正确的证据进入上下文

检索质量决定了 RAG 准确率的上限。基础 RAG 仅靠单次向量相似度搜索,容易受查询表述模糊、语义鸿沟等因素影响。

查询转换与扩展

不依赖原始查询的单一表述。并行查询检索让 LLM 生成多个语义变体并发检索,覆盖更多匹配角度。HyDE 则让 LLM 先生成一段假设性答案,再对该文本做嵌入检索,使查询向量在嵌入空间中更接近真实文档。后退提示通过提出更高层次的概念性问题,帮助检索到更完整的认知框架。

混合检索与重排

单一向量检索对精确关键词匹配不敏感。混合检索结合 BM25(稀疏检索)与稠密向量,再用 RRF(倒数排名融合) 按排名合并结果,让高质量文档不会被低质量结果淹没。检索出初始结果后,用交叉编码器重排将查询与每个文档联合阅读,能显著提升前几条结果的相关性,随后冗余消除删除余弦相似度超过 0.9 的重复内容。实验数据表明,移除噪声上下文后准确率可提升 15–30%,Token 消耗降低 20–40% 。

多跳检索与结构化组织

复杂问题往往需要多步推理。多跳检索让第一跳的结果驱动第二跳的后续查询合成。对于多跳问答,将检索证据组织成动态知识图谱或逻辑链,而非简单的文本块拼接,能有效缓解跨文档推理时证据碎片化的问题。有研究报告 BERTScore F1 提升了 13.03% 。

2、优化生成端:让模型基于证据回答

检索到的内容送入 LLM 后,仍可能因噪声干扰或模型“过度自信”而产生幻觉。

上下文压缩与任务感知过滤

把 50 个文档直接塞入上下文会引发 “lost in the middle” 效应。正确的做法是先过滤再生成:利用文档元数据(日期、地区、类型)做任务感知过滤,例如“退款政策”查询自动排除 2018 年的旧文档和内部备忘录。对长文档做面向当前查询的约束性摘要,只保留与问题直接相关的事实,可在保持准确率的同时砍掉 50–75% 的 Token。

生成前的相关性门控

不要让 LLM 基于不充分的上下文强行作答。在检索与生成之间设置一道门控,用轻量级判断校验文本块是否确实包含回答查询所需的信息。如果判定为“不足”,则触发重新检索或让模型明确说明信息缺失,而非用外推填补空白。

3、系统级调优:从静态流程到动态反馈

按需检索,而非盲目检索

并非所有查询都需要检索。动态检索判断机制先评估模型自身对查询的“信心”或响应与查询的内在相关性,只有当置信度不足时才触发外部检索。这减少了过度检索带来的噪声误导,有研究在检索判断准确率上提升了 7.5% 。

反馈闭环与可观测性

RAG 的静默故障(流畅但错误的回答)难以通过传统指标发现。需要建立评估闭环:记录用户对回答的隐式反馈(追问、重述、停止使用),结合多维度评估(context precision、recall、entity recall)定位失败环节。多 Agent 架构将查询分解、检索、批判、合成拆分到独立 Agent,使每个环节可独立审计和改进。

4、实践起步建议

如果从零开始优化,建议按以下顺序推进:

  • 1、先做上下文过滤:给文档加上 last_updated 时间戳和基础标签,按查询条件过滤。仅此一步就能消除大量噪声。
  • 2、再加重排:引入交叉编码器对初步检索结果重排序,保留前 5 条。
  • 3、然后消除冗余:对相似度超过 0.9 的文本块去重。
  • 4、最后根据失败案例决定下一步:如果问题是“查不全”,引入查询扩展;如果是“推理断链”,考虑多跳检索或结构化组织。

📌 面试天下网:一款服务于大一新生的口袋书,让大家在无聊的公共课上可以学习大模型技术!
📌 网站公告:【悬赏 200 元/篇】寻找“大模型面试战场”的一手回忆录
📌 网站公告:【大模型/Agent面试陪练1V1指导】正式启动......

评论专区

评论加载中...