RAG 进阶指南:15 种高级技术优化检索与生成
检索增强生成(Retrieval-Augmented Generation, RAG)是一种强大的技术架构,它将外部信息检索与生成式 AI 模型相结合,旨在产生更准确、上下文更丰富且事实依据更充分的响应。尽管基础 RAG 系统已能解决部分知识时效性问题,但在实际生产环境中,传统 RAG 常面临信息密度低、检索准确性不足以及生成质量不稳定等挑战。
本文将深入探讨 15 种高级 RAG 技术,涵盖从预检索到生成的全链路优化策略。这些技术旨在提高生成式 AI 系统的输出质量、鲁棒性及整体性能。优化的核心流程通常涉及四个阶段:预检索优化、检索/召回策略优化、检索后优化以及生成优化。
一、预检索优化
预检索优化的核心在于提高数据索引或知识库中信息的质量和可检索性。由于不同业务场景对数据的依赖性质各异,预检索策略往往需要定制化设计。
1. 使用 LLM 提高信息密度
在将数据存储至向量数据库前,利用大语言模型(LLM)对原始数据进行清洗、处理和打标至关重要。非结构化数据源(如 PDF、网页抓取内容、音频转录稿)往往包含大量噪声,导致信息密度低下。
问题影响:
- Token 浪费:低密度迫使系统在 LLM 的上下文窗口中插入更多块以覆盖有效信息,增加成本。
- 相关性稀释:过多无关信息可能干扰 LLM 的判断,导致幻觉或错误回答。
解决方案: 使用 GPT-4 等强模型作为事实提取器,从文档中提取关键信息。例如,针对网页数据,原始 HTML 包含大量 CSS 类、导航栏和标签。通过 Prompt 指令让 LLM 仅保留客户查询可能涉及的核心内容,可大幅降低 Token 消耗并提升信噪比。
示例 Prompt 思路:
You are a data processing assistant. Extract meaningful information from the provided text... Output should be text-only separated by paragraphs.
风险提示: 过度压缩可能导致关键细微信息的丢失,需权衡压缩率与信息完整性。
2. 使用分层索引检索
为了解决大规模数据库下的检索效率问题,可采用分层索引策略。这类似于无损压缩与有损压缩的结合。
实施方法: 创建两个索引:
- 摘要索引:由 LLM 生成的文档摘要组成,用于快速过滤。
- 块索引:由原始文档块组成,用于精确匹配。
流程: 首先通过摘要索引筛选出相关文档组,缩小搜索范围;随后在该组内使用块索引进行精细检索。这种方法在大型知识库中能显著提升检索速度。
3. 创建假设性问答对 (Hypothetical Questions)
传统 RAG 中,Embedding 对象存在不对称性:存储时是文档(Answer),查询时是用户 Query。这导致语义匹配偏差。
优化策略: 在数据准备阶段,使用 LLM 为每个文档片段生成一系列假设性问题及对应答案。检索时,系统将嵌入生成的'问题'而非原始文本。这样,用户 Query 的 Embedding 与生成的'问题'Embedding 之间的余弦相似度会更高,从而提升召回准确率。
案例: 若文档介绍了某技术特点但未显式提及优缺点,用户问'优缺点'时难以匹配。若预先生成了'该技术优缺点是什么?'的假设问题,则能精准命中。
4. 使用 LLM 对信息进行去重
数据索引中的重复信息既可能有益也可能有害。适量的重复有助于强化记忆,但过度重复会挤占上下文窗口。
实施步骤:
- 在 Embedding 空间中对块进行 K-Means 聚类。
- 确保每个聚类的总 Token 数在 LLM 有效上下文窗口内。
- 任务 LLM 从原始聚类中提炼新块,去除冗余信息。


