核心要点
能给出演进脉络:Naive RAG → Advanced RAG → Modular RAG,三段式回答最稳
能讲清 Advanced RAG:在固定流水线上加预检索(query 改写、扩展、路由)和后检索(rerank、上下文压缩、去冗余)优化
能讲清 Modular RAG:把检索、记忆、路由、融合、生成拆成可替换、可编排的模块,支持迭代、条件分支与 Agentic 循环
能列举复杂范式:迭代检索、递归/自反思 RAG(Self-RAG、CRAG 纠错)、GraphRAG、Agentic RAG、HyDE,并知道各自解决什么问题
标准回答
Naive RAG:起点
最朴素的 RAG 是「检索-生成」两步:用户问题做一次向量检索,把召回片段拼进 Prompt,让 LLM 生成答案。简单直接,但召回不准、片段冗余、问题表述差时无从纠正,容易答非所问。
Advanced RAG:在流水线两端做优化
Advanced RAG 仍是固定流水线,但在检索前后各加一层增强。预检索侧做 query 改写、查询扩展、子问题分解、以及把问题路由到合适的索引或数据源;后检索侧对召回结果做 rerank 精排、上下文压缩与去冗余,把最相关的内容塞进有限的上下文窗口。目标是在不改变整体结构的前提下,提升召回质量和上下文利用率。
Modular RAG:从流水线到可编排模块
Modular RAG 是范式层面的升级:它把检索、记忆、路由、融合、重排、生成等环节抽象成可替换、可编排的模块,不再是单向直线流水线。模块之间可以构成迭代循环、条件分支,甚至嵌入 Agentic 决策——由模型动态决定走哪条路径、是否再检索一次。这让 RAG 能灵活适配多源、多步、需纠错的复杂任务。
更复杂的范式有哪些
- 迭代检索:多轮「检索-生成-再检索」,用上一轮的中间结论指导下一轮查询,适合多跳问答。
- 自反思 RAG(Self-RAG / CRAG):模型对检索内容和自己的输出做评估,CRAG 在检索质量差时触发纠正(如改写后重检索或转外部搜索),降低幻觉。
- GraphRAG:基于知识图谱组织语料,靠实体与关系做结构化检索与全局摘要,擅长跨文档、需要全局视角的问题。
- Agentic RAG:由 LLM Agent 自主决策何时检索、查什么源、是否再查,是 Modular 思想的 Agent 化落地。
- HyDE(假设性文档嵌入):先让模型生成一个假设答案,再用它的 embedding 去检索,缓解短问题与长文档之间的语义鸿沟。
回答时按「Naive → Advanced → Modular」给清演进主线,再把这些复杂范式挂到 Modular 的可编排能力上,逻辑就立得住。
常见误区
⚠️ 常见踩坑
别把 Advanced RAG 和 Modular RAG 混为一谈。Advanced RAG 只是在固定流水线两端加优化模块,主干仍是单向直线;Modular RAG 的关键是模块可编排、可循环、可条件分支,结构本身被打开了。也别一上来就堆 GraphRAG、Self-RAG 等名词而讲不清演进逻辑和各自要解决的痛点。
追问
追问 1:Self-RAG 和 CRAG 有什么区别?
Self-RAG 训练模型用反思 token 自评「是否需要检索、检索内容是否相关、输出是否有支撑」,把评估内建到生成里;CRAG(Corrective RAG)侧重纠错,用一个轻量评估器判断检索质量,质量差时触发查询改写、知识精炼或转外部网页搜索。前者偏自评驱动,后者偏检索质量兜底。
追问 2:GraphRAG 相比向量 RAG 适合什么场景?
GraphRAG 把语料构建成实体-关系知识图谱,擅长需要跨多篇文档综合、关注实体间关系、或要全局摘要的问题(如「整个语料里 X 和 Y 是什么关系」)。普通向量 RAG 擅长局部、单点的事实查询。代价是建图与维护成本高,通常二者结合使用。
🔗 相似问题
同一考点的不同问法,面试官可能换着问,一起刷更稳
没找到想看的面试题?把你想看的告诉我们 →
延伸学习
按主题分类的相关资源,便于系统复习