---
name: rag-retrieval
description: 检索增强深挖：文档解析与分块、Embedding 与混合检索、重排与改写、评测集、生产化。
keywords: [rag, 检索增强, embedding, 向量库, hnsw, bm25, 混合检索, rerank, 重排, 查询改写, 分块, chunking, 文档解析, graphrag, 多模态文档]
layer: detail
domains: [ai-agent, ai-algorithm]
---

## 面试官在意什么

RAG 是大模型应用里最容易做出 demo、最难做到可用的一段。面试官默认候选人的"RAG 项目"是教程改了数据源，所以从三个地方验：有没有检索评测集与召回率数字、能不能把"没检索到"和"检索到了答错"分开排查、知不知道解析与分块才是上限。2026 年长上下文便宜了很多，面试官还会追"为什么不直接把文档塞进上下文"，答不出边界的算没想过。

## 项目 / 实习怎么深挖

简历上出现下面这类经历时从哪里切、追什么。追到候选人能说出机制、数字的来源与一次真实的故障或取舍才算实；只有框架名与结论、说不出自己那一段的，记为危险信号。通用的追问方法见 project-deep-dive。

- 简历出现 RAG 项目 → 追检索评测集怎么建、召回率与上下文精确率多少、最典型的失败案例与最终归因、为什么不直接长上下文
- 简历出现向量库 → 追索引类型与参数、数据量、更新怎么做、换 embedding 模型时怎么迁移
- 简历出现"准确率提升 X%" → 追指标定义、样本数、是不是自己标的、有没有对照
- 简历出现重排 / 混合检索 / 查询改写 → 追各自解决了哪一类失败、加了多少延迟、有没有关掉过
- 简历出现 PDF / 表格 / 多模态解析 → 追解析质量怎么抽检、复杂版式怎么处理、解析错误占失败的比例
- 简历出现 GraphRAG / 知识图谱 → 追图从哪来、维护成本、和普通检索对比的实测差异

## 常见失守与危险信号

- 文档解析与分块：把所有 PDF 一律转纯文本；分块只按固定长度；没意识到解析质量是上限
- Embedding 与混合检索：认为 embedding 越大越好；不知道 BM25 与稠密的互补；没测过 top-k 召回率就说效果好
- 重排与查询改写：把"加 rerank"当万能药说不出它解决的是哪一段；改写后没评测
- 检索评测集：从来没有 query-正确文档对；评估靠"看起来不错"
- 失败归因：分不清召回失败与生成失败；排查没有顺序
- 生产化：索引更新靠全量重建且没有计划；权限过滤在生成之后做；不知道缓存能省哪一段

## 常考主题清单

只列名字、阶梯与答实的标志，作"问到哪一层算实"的参考；问哪些、问几道由这份 JD 与这份简历定，不是配额。

### RAG 链路设计与失败归因
- 阶梯：为什么不直接把文档塞进长上下文 → 分块策略、embedding 模型、向量库索引（HNSW/IVF）各自影响什么 → "检索到了但答错"与"根本没检索到"的区分方法与各自排查顺序 → 混合检索（稠密 + BM25、RRF 融合）、重排、查询改写各自的收益与延迟成本，什么规模值得上
- 答实的标志：能拆成 检索召回率 / 上下文精确率 / 忠实度 三层指标分别看；会构造检索评测集（query-正确文档对）；有具体的分块踩坑（表格、代码、跨页）；知道 embedding 模型换了要全量重建索引及其代价；能说出何时 RAG 不如微调或直接长上下文

### 多模态与文档理解
- 阶梯：图片、PDF、表格进入 LLM 链路的方式 → OCR + 文本 vs 原生多模态模型的差异 → 复杂版式（多栏、跨页表格）解析错误怎么发现 → 解析质量、成本与延迟的平衡
- 答实的标志：解析结果抽样人审；表格保留结构化表示；对扫描件与原生 PDF 分路处理

### 文档解析与分块
- 阶梯：为什么解析与分块决定 RAG 上限 → 按结构（标题、段落、表格）分块与固定长度分块的差别；父子块、滑窗、元数据补充各解决什么 → 表格、代码、跨页、多栏、扫描件的解析错误怎么发现（抽检、按来源统计失败）→ 解析成本、延迟与质量的平衡；什么文档该原生多模态解析
- 答实的标志：有分块踩坑的具体案例；表格保留结构化表示；扫描件与原生 PDF 分路；解析结果有抽检机制

### 混合检索与重排
- 阶梯：稠密检索与 BM25 各擅长什么，为什么要融合（RRF 之类）→ 重排解决召回后排序不准的问题，代价是延迟与成本；什么规模值得上 → 专有名词、编号、缩写检索不到怎么办（稀疏兜底、元数据、规则）→ 混合与重排对延迟预算的影响，怎么按查询类型路由
- 答实的标志：能说出融合的具体方法与权重来源；重排前后有召回率与延迟两个数；知道什么查询走稀疏什么走稠密

### 查询改写与路由
- 阶梯：用户问法与文档说法不一致怎么办：改写、多查询、假设文档（HyDE）各解决什么 → 什么时候该走检索、什么时候直接回答、什么时候查结构化数据（路由）→ 改写引入的漂移怎么发现；多跳问题怎么拆 → 改写与路由的延迟成本，什么规模值得
- 答实的标志：改写前后有评测对比；路由有明确规则或分类器且有错误率；多跳问题有具体案例

### 检索评测集与失败归因
- 阶梯：怎么构造 query-正确文档对（人工、从日志回流、用模型生成再人审）→ 召回率、上下文精确率、忠实度三层指标怎么分别看 → "检索到了但答错"与"根本没检索到"的排查顺序 → 评测集多大够用、怎么避免与提示示例重叠、怎么随文档更新维护
- 答实的标志：有评测集与三层指标的数字；失败案例按层归类；评测集有维护流程

### 生产化：索引更新、权限与缓存
- 阶梯：文档变了索引怎么跟：增量更新、版本、双写切换 → 权限过滤放检索前还是生成后，为什么 → 查询缓存、embedding 缓存、结果缓存各省哪一段，什么时候会错 → 多租户、成本归因与延迟预算
- 答实的标志：增量更新有方案且知道一致性窗口；权限在检索层过滤；有缓存命中率与失效策略

### 结构化数据与图检索
- 阶梯：问题落在表格、数据库、知识图谱上时纯向量检索为什么不够 → text-to-SQL、图检索（GraphRAG）各解决什么、成本在哪 → 图从哪来、怎么维护、什么问题真的需要图 → 结构化与非结构化检索怎么组合与路由
- 答实的标志：能说出何时用图何时用 SQL；有和普通检索对比的实测差异；知道图的维护成本

### Embedding 与检索模型
- 阶梯：向量相似度为什么能表示语义；对比学习的目标 → 训练对的构造、批内负例与难负例挖掘、温度系数 → 领域偏差、专有名词检索不到、稠密与 BM25 的互补怎么处理 → 自训 embedding、微调 rerank 与规则兜底的投入产出比；评测集（MTEB 类通用 vs 自建领域集）
- 答实的标志：会构造检索评测集并报召回率；知道难负例对效果的影响；提到 max length 截断风险；能说出何时该训、何时用现成模型
