← 返回题库
第 182 题 · RAG · 简单

一个完整的 RAG 流水线包含哪些步骤?

核心必会 这代表什么?
✓ 资料核验 来源说明:Datawhale 公开真实面试题整理;答案依据原论文和官方文档原创整理
RAG检索生成
评论与补充 ↓
口述训练

先用自己的话答,再看参考说法

60 秒是练习上限,不是必须凑满。原理题讲清因果,设计题讲清约束,项目题只讲真实证据。

别照着背。参考说法只用于对照;直接回答问题,简单题说清楚就收尾。项目题只用自己的经历和数字。

面试时怎么答

别把 RAG 说成“向量库加大模型”。先分成离线建库与在线问答:前者负责解析、切块、Embedding 和索引,后者负责查询处理、召回、重排、上下文组装、生成与引用。

回答末尾给出排障分层会很加分:先判断证据有没有被召回,再看排序和上下文是否正确,最后查模型是否忠实使用证据。追问常从 Chunk、权限或评测三处展开。

可以这样答:

完整 RAG 有两条链路。离线侧把文档解析、清洗、切块、向量化,并建立带版本和权限的索引;在线侧处理用户查询,进行多路召回与重排,在 Token 预算内组装证据,再让模型生成答案和引用。它让知识可更新、可追溯,但检索正确不代表生成一定忠实,所以要分层评估 Recall、排序质量、Faithfulness、引用准确率和延迟。

核心回答

RAG 通常分为离线建库和在线问答两条链路。离线阶段完成数据采集、解析、切块、向量化并建立索引;在线阶段处理用户问题,在当前 tenant、用户和 ACL 约束下召回候选片段,再去重、融合或重排后组装上下文,让模型基于问题和证据生成回答。RAG 给模型提供了可更新、可追溯的外部信息,但不能保证模型一定忠实使用这些信息。

展开说明

一条常见链路可以拆成:

  1. 数据准备:解析网页、PDF、数据库等来源,保留标题、页码、版本和权限元数据。
  2. 索引构建:按语义边界切块,用 Embedding 模型编码,并写入向量或关键词索引。
  3. 查询处理:规范化问题,必要时补全指代、改写或拆分查询。
  4. 检索与排序:获取较大的候选集,再过滤、融合和重排,选出最终证据。
  5. 上下文组装:控制 token 预算,保留来源标识,并减少重复或冲突片段。
  6. 生成与校验:要求模型依据证据回答;对答案、引用和拒答条件做检查。

原始 RAG 将模型参数视为参数化记忆,将外部索引视为非参数化记忆。生产系统中的检索器、索引和生成器可以独立升级,因此排错时也应分层评估。

工程实践

最小可用版本先做到“可回放”:记录数据版本、原始查询、候选文档、最终上下文、模型版本和答案。回答错误时先判断证据是否被召回,再判断生成器是否正确利用证据,避免把所有问题都归因于 Prompt。

常见追问

  1. RAG 为什么能更新知识而不重新训练模型? 知识保存在外部索引中,更新文档与索引即可让下一次推理读取新证据,模型参数不必随每次知识变化而更新。
  2. 离线建库和在线查询分别有哪些性能瓶颈? 离线常卡在解析、Embedding 吞吐和索引构建;在线常卡在查询改写、向量检索、重排和 LLM Prefill,并要关注尾延迟。
  3. 已经召回正确文档,为什么仍可能回答错误? 关键片段可能在切块或打包中丢失,也可能被噪声淹没;生成器还可能忽略、误读或与参数记忆冲突。

一句话复习

RAG 是“建库、检索、组装证据、生成与校验”的完整链路,不只是向量数据库加一次模型调用。

参考资料

无需账号 · 原地交流

评论与补充

评论会直接显示在这道题下面。可以写自己的答法、继续追问或指出错误,不需要 GitHub 账号,也不会跳转到 Issue;内容会公开,请勿填写个人隐私、公司机密或受保密约束的材料。

正在加载评论…