rag-retrieval · git:20260920.a4843f5 · 2026-09-20 · sha256 2ef0400a0a589dfe
rag-retrieval git:20260920.a4843f5A
Immutable. This exact content is served forever at /api/v1/blob/2ef0400a0a589dfe.
--- 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 截断风险;能说出何时该训、何时用现成模型