RAG · 面试核心

RAG 检索增强生成

RAG(Retrieval-Augmented Generation)是大模型落地最主流的范式:先「检索」再「生成」。它让模型回答时带上外部知识,从而缓解幻觉、突破训练数据截止、接入私有数据。本节图文讲清原理、模块、进阶与常见坑。

01为什么需要 RAG

纯 LLM 有三大硬伤,RAG 正是为它们而生:

① 知识截止

训练数据有截止日期,无法回答最新事件、内部文档、实时信息。

② 幻觉

模型对不知道的内容会「自信编造」,尤其涉及专有名词与事实。

③ 私有数据

企业知识库、个人笔记不在公开训练集里,必须外挂检索。

一句话:RAG 用「检索到的真实片段」替代「模型凭记忆猜」,把可溯源的知识喂给 LLM。

02RAG 是什么

RAG = 检索(Retrieval) + 增强(Augmented) + 生成(Generation)。核心思想:在回答用户问题前,先用检索器从知识库找到最相关的若干片段,把这些片段拼进提示词,让 LLM 基于「检索到的证据」生成答案。模型本身不存储这些知识,而是「现用现查」。

用户问题 检索器查知识库 拼接上下文 LLM 生成 ↑ 带引用的可信答案 ↑ 外部知识库(向量库)

03基础 RAG 流程

RAG 分两条时间线:离线条(建库)与在线条(问答)。

离线条 · 知识入库

① 文档加载 → ② 切分(chunking)→ ③ 每段 Embedding 成向量 → ④ 写入向量库。

在线条 · 问答

① 问题 Embedding → ② 向量库召回 Top-K 片段 → ③ 重排(可选)→ ④ 拼进 Prompt → ⑤ LLM 生成。

关键直觉:离线条是「把知识变成可检索的向量」;在线条是「用问题去匹配最相关的知识」。两线都依赖同一套 Embedding。

04关键模块拆解

① 文档切分(Chunking)

切分粒度直接影响召回质量:太大检索不精准,太小丢失上下文。

固定长度切分

按 token/字符数硬切,简单但易切断语义。

递归/语义切分

按段落→句子→词递归,或按语义边界切,保留结构。

父子分块(Parent-Child)

检索用小块(精准),生成用其父块(完整上下文)。

重叠切分

相邻块留重叠区,避免边界信息丢失。

② Embedding 与向量检索

用嵌入模型把文本映射到向量空间,再用近似最近邻(ANN)检索相似片段。详见《Embedding 完全图解》与《向量数据库详解》。

③ 重排(Rerank)

向量召回的 Top-K 往往含噪声,再用一个交叉编码器重排模型对「问题-片段」对重新打分,挑出真正相关的片段,显著提召回精度。

④ 上下文拼接与引用

把重排后的片段拼成带编号的上下文,要求模型「只基于给定资料回答」并标注引用来源,提升可溯源与可控性。

05进阶 RAG

混合检索(Hybrid)

向量检索(语义)+ BM25/关键词(精确)融合,弥补纯向量对专有名词、ID 不敏感的问题。

查询改写 / 扩展

用 LLM 把口语问题改写成更利于检索的查询(如 HyDE:先生成假设答案再检索)。

元数据过滤

先按时间/来源/权限过滤,再向量检索,缩小范围、提升相关性与安全。

多路召回 / 融合

不同索引、不同切分策略并行召回后融合,覆盖更全面。

Self-RAG

让模型自己决定「是否需要检索、检索什么、是否采纳」,反思式增强。

Agentic RAG

用 Agent 多步检索、工具调用、迭代澄清,应对复杂多跳问题。

06RAG vs 微调 vs 长上下文

📚 RAG

外挂知识,不改模型权重。适合频繁变化、需溯源、私有数据场景。成本低、易更新。

🎯 微调(SFT/LoRA)

把能力/风格固化进权重。适合稳定任务、特定语气、结构化输出,但知识更新慢。

📏 长上下文

直接把长文档塞进窗口。省去检索但贵且易中间遗忘,常与 RAG 混合用。

选型口诀:要「知道最新/私有事实」用 RAG;要「学会某种能力/风格」用微调;要「整本读进来推理」用长上下文;多数生产系统 = 长上下文 + RAG 混合。

07常见坑与评估

召回质量差

切分不当、Embedding 不匹配、纯向量漏掉关键词 → 用混合检索+重排缓解。

中间迷失(Lost in the Middle)

相关信息放上下文中部时模型易忽略 → 重排把关键片段放头尾、控制数量。

知识冲突

检索片段与模型先验矛盾 → 显式要求「仅依据资料、冲突时说明」。

延迟与成本

多路召回+重排增加耗时 → 按场景裁剪链路、用更小重排模型。

评估别只看最终答案:要分层看——检索层(召回率/精度)、生成层(忠实度/相关性)。可参考《RAG 质量评估完全指南》与 RAGAS 指标。

08面试速记卡

本质

现用现查:检索真实片段 → 拼进 Prompt → 基于证据生成。

两条线

离线入库(切分+Embedding+写库);在线问答(召回+重排+生成)。

三把钥匙

切分粒度、Embedding 质量、重排——决定召回上限。

进阶

混合检索、查询改写、元数据过滤、Self-RAG / Agentic RAG。

关联:向量检索底座见《向量数据库详解》;文本向量化见《Embedding 完全图解》;评估见《RAG 质量评估完全指南》;与长上下文对比见《长上下文 Long Context》。