热闻岛
返回全网热点

RAG 是什么?RAG 检索增强面试题图解

7月24日18 阅读
RAG 是什么?RAG 检索增强面试题图解配图
RAG 不是“把文档塞进向量库”这么简单 很多团队第一次做 RAG,会把流程理解为:文档切块、生成 Embedding、存入向量数据库、检索 Top-K、交给大模型回答。这个流程能跑通 Demo,却很难直接支撑企业知识库、智能客服、研发助手
RAG 是什么?RAG 检索增强面试题图解配图

RAG 不是“把文档塞进向量库”这么简单

很多团队第一次做 RAG,会把流程理解为:文档切块、生成 Embedding、存入向量数据库、检索 Top-K、交给大模型回答。这个流程能跑通 Demo,却很难直接支撑企业知识库、智能客服、研发助手和内部制度问答。

真正决定效果的,往往不是“用了哪个大模型”,而是文档有没有解析正确、切分是否保留语义、问题有没有改写完整、召回是否兼顾关键词与语义、重排有没有把关键证据推到前面,以及回答能否做到有依据、可追溯、权限不越界。

一句话理解:RAG 是在模型回答前,为它动态准备一份“与问题最相关、可验证、且用户有权查看的参考资料”。

RAG 是什么?RAG 检索增强面试题图解配图

图 1:RAG 把闭卷问答变成基于外部资料的开卷问答

一、什么是 RAG?

RAG 的全称是 Retrieval-Augmented Generation,中文通常译为“检索增强生成”。它把大模型的参数化知识,与外部知识库、搜索系统、数据库或工具返回的数据结合起来:先找证据,再组织上下文,最后让模型基于证据生成回答。

2020 年的 RAG 论文把预训练生成模型看作“参数化记忆”,把外部文档索引看作“非参数化记忆”。外部知识可以独立更新,不必每次都重新训练模型;回答也能附上来源,从而提高知识密集型任务的可更新性与可追溯性。

RAG 是什么?RAG 检索增强面试题图解配图

图 2:离线索引与在线查询组成完整 RAG 流程

RAG 能解决什么,不能解决什么

补充模型训练数据中没有的企业私有知识

使用持续更新的制度、产品、新闻与业务数据

为答案提供出处、页码、URL 或文档版本

通过证据约束降低“凭空编造”的概率

但 RAG 不能直接提升模型本身的逻辑推理上限,也不能保证百分之百正确。检索可能漏掉正确文档、召回错误版本,模型也可能误读证据。因此,RAG 更像一套“知识获取与证据治理系统”,不是万能补丁。

二、RAG、微调与长上下文怎么选?

RAG 是什么?RAG 检索增强面试题图解配图

图 3:RAG、微调与长上下文解决不同类型的问题

需要模型学习固定输出格式、语气或操作习惯时,微调更合适;需要回答频繁更新、可追溯的事实时,优先考虑 RAG;材料很少、只做一次性分析时,可以直接使用长上下文。很多生产系统会把三者组合:微调负责行为,RAG 负责知识,长上下文负责临时材料。

三、索引阶段:先把知识整理成可检索的形态

RAG 是什么?RAG 检索增强面试题图解配图

图 4:文档解析需要保留结构、来源与权限元数据

1. 文档加载与解析

PDF、Word、网页、表格和扫描件的解析质量,直接决定后续检索上限。只抽取纯文本,往往会丢失标题层级、表格行列关系、图片说明、脚注和页码。复杂文档还需要版面识别或视觉文档检索,避免“文字抽到了,但结构已经被打散”。

建议每个知识块至少保留:正文、文档 ID、版本、章节路径、页码或 URL、发布时间、所属部门、租户与访问角色。回答中的引用、增量更新、权限过滤和问题回放,都依赖这些元数据。

2. 文档切分:块不是越小越好

RAG 是什么?RAG 检索增强面试题图解配图

图 5:切分大小需要平衡检索精度与上下文完整性

切得太小,容易命中关键词,却可能把条件与结论拆开;切得太大,检索结果会混入大量无关信息,增加上下文成本,并让模型难以聚焦。固定的 500 tokens 只是起点,不是通用答案。

RAG 是什么?RAG 检索增强面试题图解配图

图 6:常见文档切分策略与适用场景

务实的路径是:先用结构化或递归切分跑通基线,再根据失败样本调整。制度、技术文档和 Markdown 优先按标题结构切分;FAQ 可以一问一答为单位;代码按类、函数和调用关系切;复杂 PDF 需要保留表格与图片块。父子块策略很实用:用小块精准检索,返回包含前后文的父块给模型。

四、检索阶段:关键词、向量与细粒度匹配

RAG 是什么?RAG 检索增强面试题图解配图

图 7:三类主流检索方法各有优势

1. BM25:不要低估关键词检索

向量检索擅长理解“意思相近”,但产品型号、合同编号、错误码、人名和专业缩写,往往需要精确匹配。BM25 基于倒排索引,速度快、可解释,在企业搜索中仍然非常重要。

2. Dense Embedding:把语义相似映射到向量空间

Dense Retrieval 通常使用双编码器分别编码问题和文档,再按余弦相似度或内积搜索近邻。文档向量可以提前计算,因此在线速度快,适合大规模召回。DPR 证明了稠密检索在开放域问答中的实用性,但它把整段文本压缩成一个向量,也会损失细节。

3. Late Interaction:在质量与速度之间找新平衡

ColBERT 一类 Late Interaction 方法,会分别编码查询和文档,但保留 token 级向量,在最后阶段做细粒度交互。它比单向量更能识别局部匹配,又比对每个候选执行完整 Cross-Encoder 更容易扩展。

向量数据库怎么选

RAG 是什么?RAG 检索增强面试题图解配图

图 8:向量数据库选型应围绕业务约束

选型不要只比较单机 QPS。企业场景更需要关注:元数据过滤是否稳定、能否在检索前执行租户与角色权限、更新与删除是否及时、是否支持稠密与稀疏混合检索、索引重建与备份是否容易,以及团队是否具备相应运维能力。

五、在线查询:先把用户问题变成“好检索的问题”

RAG 是什么?RAG 检索增强面试题图解配图

图 9:查询改写与检索计划决定召回方向

多轮对话中,用户经常说“它呢”“上一款的条件是什么”。如果直接检索,系统并不知道代词指向谁。查询改写要结合对话历史补全实体,同时删除无关寒暄,形成可独立理解的问题。

Multi-Query:生成多种表达并行检索,提高召回率

Query Decomposition:把比较、因果、多跳问题拆成多个子问题

HyDE:先生成一个假设答案,再用答案向量寻找相关文档

Metadata Filter:按时间、产品、地区、部门和权限缩小范围

Retrieval Routing:根据问题类型选择文档库、SQL、搜索引擎或不检索

一个简化的查询编排逻辑

def answer(question, history, user):
query = rewrite_query(question, history)
plan = route_query(query)
candidates = hybrid_retrieve(query, plan.sources, acl=user.acl)
ranked = rerank(query, candidates)[:8]
context = build_context(ranked, token_budget=6000)
return generate_grounded_answer(query, context)

六、混合检索:向量 + BM25 已成为常见基线

RAG 是什么?RAG 检索增强面试题图解配图

图 10:两路检索并行执行,再通过 RRF 融合

关键词检索与向量检索的原始分数含义不同,直接加权往往需要反复调参。RRF(Reciprocal Rank Fusion)只利用结果的排名位置,将多路结果合并,不要求不同检索器共享同一种分数尺度。Elasticsearch 与 Azure AI Search 的官方文档都把 RRF 用作混合检索的重要融合方式。

混合检索的价值不是“把两个结果相加”,而是降低单一路径的盲区:关键词防止漏掉精确实体,向量检索补足同义表达与语义近似。

七、Re-rank:初召回负责不漏,精排负责排对

RAG 是什么?RAG 检索增强面试题图解配图

图 11:高召回初筛与高精度重排形成漏斗

双编码器检索速度快,但问题和文档分别编码,无法针对当前问题做深度交互。Cross-Encoder 会把“问题 + 候选文档”一起送入模型,能更精确判断是否真正回答了问题,但计算成本更高。因此生产系统通常先召回 50–200 个候选,再重排到 5–20 个。

重排不是所有查询都必须开启。简单事实问答可以根据初排分数和延迟预算动态决定;复杂比较、多跳问题、表述模糊的问题,更值得使用重排。

八、上下文构造:检索结果还要再加工

RAG 是什么?RAG 检索增强面试题图解配图

图 12:从原始候选到高质量上下文的加工流程

检索结果常包含重复块、同一文档的相邻片段、旧版本和无关内容。上下文构造器需要去重、扩展邻居、控制来源多样性、压缩冗余、按逻辑顺序排列,并确保每个片段仍保留唯一的 chunk_id 与来源定位。

上下文不是越多越好。材料过多会增加成本和延迟,也会产生“上下文稀释”:真正的关键句被埋在大量相似内容中。应通过离线评测确定 Top-K、重排数量和 token 预算,而不是沿用默认值。

九、生成与引用:让每个事实都有证据

RAG 是什么?RAG 检索增强面试题图解配图

图 13:回答、引用与拒答组成生成阶段的三角约束

一个可靠的 RAG Prompt 应明确要求:只基于给定上下文回答;事实性陈述附来源;证据不足时说明无法确认;资料相互冲突时列出不同版本和时间,而不是自行选择一个看起来合理的答案。

你是企业知识助手。请严格遵守:
1. 只使用“参考资料”中的信息回答。
2. 每个关键结论后标注来源编号。
3. 资料不足、冲突或超出权限时,明确说明无法确认。
4. 不得补写资料中不存在的人名、数字、日期和条款。
5. 先给直接答案,再补充条件、例外和操作步骤。

引用不是装饰。系统需要保存“答案句子—证据块—原始文档位置”的映射,支持用户点击回到原文,也方便审计和失败回放。

十、从 Naive RAG 到 Agentic RAG、GraphRAG 与多模态 RAG

RAG 是什么?RAG 检索增强面试题图解配图

图 14:复杂问题需要不同的检索与上下文组织方式

Agentic RAG

基础 RAG 每次都执行固定检索流程。Agentic RAG 则让模型根据问题决定是否检索、查哪个知识源、是否拆分问题、是否验证结果,以及何时停止。它更灵活,但也引入循环次数、工具错误、权限和成本控制等新问题。

GraphRAG

普通向量 RAG 擅长定位局部片段,遇到“整个组织有哪些主题”“多个实体之间是什么关系”这类全局问题时容易碎片化。Microsoft GraphRAG 会从原始文本抽取实体与关系、构建社区层级并生成社区摘要,为全局搜索与关系分析提供不同于向量 Top-K 的上下文。

多模态与视觉文档检索

财报、技术手册、合同和研报往往包含表格、图表和复杂版面。仅抽取文本可能丢失行列关系。视觉文档检索会直接比较问题与页面图像或页面级表示,适合文本、表格与图片共同承载信息的文档。

十一、怎么量化 RAG 效果?

RAG 是什么?RAG 检索增强面试题图解配图

图 15:RAG 评测需要拆成检索、生成和系统三层

检索指标

Recall@K:正确证据是否出现在前 K 个候选中

Precision@K:前 K 个结果里有多少真正相关

MRR:第一个正确结果排得是否足够靠前

nDCG:考虑多条相关结果与排序位置的综合质量

生成指标

Faithfulness:回答中的声明是否能被上下文支持

Answer Relevance:回答是否真正解决用户问题

Citation Precision / Recall:引用是否正确、是否覆盖关键结论

拒答质量:没有证据时能否不猜测,并给出合理的下一步

RAGAS 的核心价值,是把检索上下文、回答忠实度和答案相关性拆开评估,帮助团队判断问题究竟出在召回还是生成。实际生产还应加入人工黄金集、规则校验和线上反馈,不能只依赖 LLM 裁判。

十二、常见失败与排查方法

RAG 是什么?RAG 检索增强面试题图解配图

图 16:RAG 常见故障现象、根因与优先处理方式

排查时要保存完整 Trace:原始问题、改写结果、过滤条件、每路召回列表、融合分数、重排结果、最终上下文、模型输入输出和引用映射。只看最终答案,无法判断故障发生在哪一层。

十三、企业级 RAG 的生产架构

RAG 是什么?RAG 检索增强面试题图解配图

图 17:企业级 RAG 平台需要权限、观测和评测贯穿全链路

生产环境通常需要把知识处理与在线问答拆开。离线侧负责解析、切分、向量化、索引版本与增量更新;在线侧负责查询理解、检索、重排、生成与引用。AI 网关负责鉴权、限流、模型路由和缓存,Tracing 系统记录每一步耗时和结果。

权限必须在召回阶段生效,而不是检索完再从 Prompt 中删除。否则文档内容可能进入日志、缓存或模型上下文,形成数据泄漏。多租户系统应把 tenant_id、角色和数据范围作为索引字段或独立命名空间。

十四、项目落地路径:从简单基线逐步升级

第一阶段:可运行基线:结构化切分 + Dense Retrieval + Top-K + 引用;先建立 100–300 条真实问题黄金集。

第二阶段:提高召回:加入 BM25、RRF、查询改写、元数据过滤,重点提升 Recall@K。

第三阶段:提高精度:加入 Cross-Encoder / Late Interaction 重排、父子块、上下文去重压缩。

第四阶段:提高可靠性:Claim 校验、引用映射、冲突处理、拒答阈值、权限审计和失败回放。

第五阶段:复杂任务:按需引入 Agentic RAG、GraphRAG、视觉文档检索和结构化数据工具。

RAG 是什么?RAG 检索增强面试题图解配图

图 18:RAG 上线前检查清单

面试中怎么回答“你做过 RAG 吗?”

不要只说“文档 Embedding 后存进向量库”。更完整的表达是:我把系统拆为离线索引和在线查询两条链路;离线侧按文档类型解析并结构化切分,保存版本、页码和权限元数据;在线侧先做多轮问题改写与意图路由,再并行执行 BM25 和向量召回,用 RRF 融合并通过重排模型筛选;最后做去重、父块补全和 token 预算控制,模型只能基于证据回答并附引用。效果通过 Recall@K、MRR、Faithfulness、引用准确率、P95 延迟和成本进行回归评测。

要点速读

RAG 不是“把文档塞进向量库”这么简单 很多团队第一次做 RAG,会把流程理解为:文档切块、生成 Embedding、

  • RAG 不是“把文档塞进向量库”这么简单 很多团队第一次做 RAG,会把流程理解为:文档切块、生成 Embedding、
  • 更多细节仍在持续更新中
  • 更多细节仍在持续更新中