Naive RAG vs Advanced RAG 区别?
RAG 模型分类方式及各自特点详解
原题:请介绍RAG(Retrieval-Augmented Generation)模型的主要分类方式,例如Naive RAG与Advanced RAG的区别,及其各自的特点。
重排与优化 · 淘天真题
回答与解析
常见 RAG 形态
Naive RAG
查询直接编码,向量检索 Top-K,将候选拼接给模型。优点是链路短、易建立基线;缺点是对短 query、精确实体、文档冲突和复杂问题处理有限。
Advanced RAG
在检索前加入查询改写、扩展、分解或路由;检索中使用稀疏与稠密混合、元数据过滤和重排;生成前进行去重、压缩、冲突处理和引用组织。它通常能针对具体失败改进,但增加延迟、成本和维护面。
Modular / Agentic RAG
将检索、工具、验证、重试和路由做成可组合模块,模型可在受控条件下决定是否再次检索。适合多步或多源任务,但必须限制步骤、权限和预算,避免循环与错误累积。
教学假设
假设电商政策问答既包含自然语言问题,也包含订单号和时间条件。可以从 Naive 基线开始,再分别加入实体抽取、BM25、向量召回、RRF、重排和权限过滤。每次只增加一个主要模块,不能直接宣称准确率会达到某个数字。
评测与选型
分别测知识覆盖、Recall@K、MRR/NDCG、答案正确性、引用支持率、拒答、P95/P99 和成本。简单文档问答若基线已满足要求,不必升级;只有明确 bad case 和消融证据支持时才增加 Advanced 或 Agentic 组件。
口语版讲法(约4分钟)
- 点题:RAG分类本质是工程取舍
- Naive RAG:简单但脆弱,适合文档问答
- Advanced RAG三大环节优化,举例客服场景
- 落地选型:重排序性价比最高,注意风险
- 收尾:我倾向渐进式演进,给出可延伸点Agentic RAG
RAG 的分类更适合作为复杂度坐标,而不是三套互斥产品。Naive RAG 的链路很短:把 query 编码,向量检索 Top-K,再把候选拼给模型。它便于建立基线,也容易排查,但遇到精确实体、短 query、冲突文档、权限过滤或多步问题时,单路向量召回往往不够。
Advanced RAG 是在明确 bad case 上增加处理。检索前可以做改写、扩展、分解或路由;检索中加入 BM25 与向量混合、元数据过滤和重排;生成前再做去重、压缩、冲突处理和引用组织。这里没有哪个模块默认该上。比如正确文档没进候选,先修覆盖和召回;候选已有答案但位置低,再考虑融合或重排;上下文正确而回答仍错,才检查 Prompt、生成模型或验证器。
Modular 或 Agentic RAG 把检索、工具、验证、重试与路由组成受控工作流,适合多步、多源和需要动态补证据的任务。代价是路径更难复现,也容易循环、越权和成本失控,所以要限制最大步骤、工具权限、总预算,并保留人工节点。选型时我会从 Naive 基线出发,在同一评测集上逐步加模块,分别看 Recall@K、MRR 或 NDCG、答案正确性、引用支持率、拒答、P95/P99 和成本。若新增复杂度没有改善目标切片,就删除它。所谓 Advanced,不是组件更多,而是每个组件都有清楚的错误对象、消融证据和停止条件。
我先从工程设计角度回答,再用一个假设场景说明。假设一个政策问答既有自然语言问题,也有订单号和生效时间。Naive 基线可以暴露单路向量召回对精确实体的不足;如果 bad case 集中在订单号,就加入 BM25 或字段检索,而不是直接上 Agent;如果正确政策已经召回但版本排错,再引入时间过滤或重排;只有问题需要跨多个系统补信息时,才考虑受控工具链。每次只增加一个主要模块,才能看清收益来自哪里。
生产中还要保存 query 变换、过滤条件、各路候选、融合名次、重排结果、最终上下文和引用。语料、embedding、索引、reranker、Prompt 与模型分别版本化,灰度时同时看质量、拒答、延迟、成本和越权风险。查询改写可能造成意图漂移,上下文压缩可能丢掉限定条件,多轮检索会积累错误;这些都应有专门切片和停止条件。分类的价值就在这里:它帮助团队描述链路复杂度和风险,但最终采用哪一层,仍要由目标数据和可复现实验决定。
关键一句:Agentic RAG让模型自主决定检索策略,与Naive/Advanced RAG的边界和落地方式不同。
面试官还可能这样问
- 问法 1 · 场景切入
假设你在做一个电商智能客服,用户问‘我的订单什么时候到’,你检索了相关文档回答。但如果用户接着问‘那我能改地址吗’,这时候你是直接检索新问题,还是把上一轮的信息也带进去?这种RAG你们一般怎么设计?
- 问法 2 · 层层追问
RAG的基本流程你肯定知道,先检索再生成……但实际中检索质量不好怎么办?……比如用户问的问题和文档表述差距很大,或者需要多步推理,你有哪些手段优化?
- 问法 3 · 直球架构
请你对比Naive RAG和Advanced RAG,重点说清楚它们在架构上的主要区别,以及各自适合什么场景?