从零学RAG0x07:什么是AdvancedRAG?

0 阅读4分钟

前言

我们 前面 一起 阅读了 Seven Failure Points When Engineering a Retrieval Augmented Generation System 这篇论文关于传统RAG的七大痛点。那么,RAG 技术在商业化的企业项目中还有用吗?

答案显然是肯定的!

定义

我们前面也探讨了传统RAG痛点的优化思路,究其本质还是在“向量检索”这一步。于是Advanced RAG便应运而生。

Advanced RAG是一套针对传统RAG(常被称为Naive RAG)流程中多个薄弱环节进行系统性增强的工程范式。其核心目标是通过在“检索前”和“检索后”引入智能处理层,同时对检索本身也有优化,以构建一个更稳健、准确且自适应的RAG系统。

核心流程

image.png

检索前优化

高级RAG着重优化了索引结构和查询的方式:

  • 查询优化

    • 查询重写:使用LLM将模糊、口语化的查询改写成更规范、更具检索性的形式。例如,将“怎么让手机电池更耐用?”重写为“智能手机电池保养与续航提升指南”。
    • 查询扩展:基于原查询生成相关的子问题或同义词,以扩大检索范围,提高召回率。常用技术如HyDE,先让LLM生成一个假设性答案,再用该答案的特征去检索。
    • 意图分类:判断用户查询属于何种类型(如事实问答、总结、比较),以便后续采用不同的检索或生成策略。
  • 索引优化

    • 语义分块:不再机械地按固定长度切分,而是根据句子边界、段落或主题进行切割,确保每个文本块具有完整的语义。
    • 元数据增强:为每个文本块添加丰富的元数据(如来源、章节、日期、实体),便于后续进行高效的过滤和筛选。

检索优化

  • 混合检索:并行执行向量检索(捕捉语义相似性)和关键词检索(如BM25,捕捉精确字面匹配),然后融合两者结果,兼顾召回率与精确率。

  • 多阶段检索

    1. 召回阶段:使用成本较低、速度较快的检索器(如向量检索)召回大量(如100个)相关候选文档。
    2. 重排序阶段:使用更精细但计算成本更高的模型(如Cross-Encoder)对召回的候选文档进行精确相关性打分和重新排序,只保留最相关的Top-K个。这是提升精度最有效的步骤之一。

检索后优化

传统RAG将检索到的文档块直接拼接,作为上下文输入LLM。而 Advanced RAG 做了更多地优化。

  • 上下文压缩与提炼

    • Map-Reduce:让LLM先对每个文档块进行摘要(Map),再对所有摘要进行总结(Reduce),从而提炼核心信息。
    • 选择性上下文:仅抽取与问题最相关的句子或段落,丢弃冗余信息。
    • 信息去重与冲突消解:合并重复信息,并识别不同来源间的矛盾,可选择信任度最高的来源。
  • 可控生成与自我验证

    • 提示工程增强:在提示词中明确指令格式、引用要求,并加入“如果上下文不包含相关信息,请回答不知道”等指令,以降低幻觉。
    • 后验验证:让LLM对自己生成的答案,根据检索到的上下文进行事实一致性检查,必要时进行修正。

和NaiveRAG对比

Advanced RAG的“进阶”本质是从“概率匹配”走向“确定性增强” 。它的价值不仅在于提升指标,更在于为系统引入了可控性和可解释性。

对比维度传统RAG (Naive RAG)高级RAG (Advanced RAG)核心进步与工程收益
架构线性管道:索引 -> 检索 -> 生成。 简单直接,但僵化、容错低。智能化、非线性管道:引入预处理、优化、后处理等多个可插拔智能层。从“流水线”到“决策引擎”
检索策略单次向量相似度检索混合检索(向量+关键词)+ 多阶段检索(初筛+重排序)源头治理,质量倍增
查询处理直接使用用户原始查询查询重写、扩展(HyDE)、意图提取等让检索“听懂人话”, 提高了检索的召回率。
交互模式单轮、静态支持多轮对话闭环反馈动态路由的非线性架构从“问答机”到“对话伙伴” 。更符合人类自然交互习惯,能解决更复杂、信息不完整的问题。

RAG趋势

image.png

  • ModularRAG:将检索、路由、重排、生成等组件解耦,像搭积木一样根据任务灵活组装,追求极致的定制化与效率

  • Agentic RAGL:让系统能自主判断何时检索、检索什么、如何迭代,形成规划-执行-反思的闭环

  • CRAG:纠正式RAG, 具备自我评估和纠错能力的架构,也代表了通过引入“质量控制环”来进一步提升可靠性的方向。