别只会说挂知识库:RAG 面试 10 题的落地答题清单

别只会说挂知识库:RAG 面试 10 题的落地答题清单

别只会说挂知识库:RAG 面试 10 题的落地答题清单

源文微信页触发环境验证码,本文按公开 RAG 面试题库与生产实践,改写成「怎么答 + 落地参数 + 追问红线」清单;与本地叙事向 RAG 深挖文互补,侧重可复述的工程答法。

面试官真正想听的,往往不是「我们用了 LangChain + 向量库」,而是:你为什么这么切、Top-K 怎么定、混合检索怎么并、Rerank 前后差多少、坏 case 怎么闭环。下面 10 题按「一句话结论 → 工程落地表 → 追问红线」组织,方便直接背进项目叙事。

先把答法框架钉死

任何一道 RAG 题,建议统一用三层结构回答:

1. 现象:用户侧看到什么(答偏、漏召回、延迟高)。

2. 定位:离线建库问题还是在线链路问题(切分 / Embedding / 召回 / 精排 / Prompt)。

3. 证据:你用过的指标或参数区间(Recall@K、延迟、chunk size)。

RAG 答题三层框架

把这三层说清楚,比背「七步流水线」更像做过系统的人。

Q1:为什么还要 RAG?微调不就完了吗?

一句话:RAG 补「可变事实与私有语料」;微调补「风格、格式与稳定技能」——多数业务文档会变,优先 RAG。

维度 RAG 微调
知识更新 改库即可,分钟~小时级 重训/增量训,成本高
可追溯 可引用 chunk / 文档 ID 知识压进权重,难引用
幻觉 靠检索证据约束 仍可能编造未见事实
适合 制度、FAQ、产品手册 口吻、工具调用习惯、领域术语

追问红线:别说「RAG 一定比微调准」。正确答法是:私有知识与时效性 → RAG;任务格式与领域说话方式 → 微调;两者常组合。

Q2:从提问到回答,链路怎么讲才完整?

一句话:离线「解析 → 切分 → Embedding → 入库」;在线「改写 → 召回 → 融合 → Rerank → 组 Prompt → 生成 → 评测」。

面试里不要只念步骤名,每个节点带一个决策点:

节点 你该顺嘴带出的决策
解析 PDF 表格/OCR 是否进管线
Chunk size / overlap / 父子切分
Embedding 中英模型、维度、是否领域微调
召回 纯向量还是混合;Top-K
Rerank Cross-Encoder;重排后 Top-N
生成 强制「无依据则拒答」

追问红线:漏掉 Rerank 或评测闭环,会被当成只跑过 Demo。

Q3:Chunk 切多大?切错了怎么表现?

一句话:检索粒度要「够准」,生成粒度要「够全」——工程上常用小块召回、大块/父块喂模型。

策略 适用 风险
固定长度 基线最快 切断句子/表格
递归字符切分 生产默认 仍可能跨段语义漂移
语义切分 长文质量优先 成本高、边界抖动
Parent-Child 召回准 + 上下文全 要维护父子映射

落地参数经验区间(需用评测校准,不是银弹):

  • 通用中文说明文档:chunk_size 300~800 tokens,overlap 10%~15%
  • 表格/配置密集:偏小切分 + 标题元数据注入
  • Parent-Child:叶子 128~256 用于检索,父级 1k~2k 用于生成

追问红线:说不出「切大信息稀释、切小丢上下文」以及 overlap 的用途,基本判为没调过。

Q4:Embedding 怎么选?维度越大越好吗?

一句话:先看语言与领域榜单,再看延迟/显存;维度是精度与成本的折中,不是越大越强。

答法要点:

1. 中文场景优先看中文检索榜(如 C-MTEB 一类),别只盯英文 MTEB。

2. 双塔 Bi-Encoder 负责「快召回」;别指望它单独扛精排。

3. 垂直领域(法务/医疗/内部术语)考虑对比学习微调,难负例比堆正样本更重要。

4. Matryoshka 一类可截断维度:先训高维,线上按 SLA 截到 256/512。

追问红线:答「我们用了 OpenAI Embedding」却说不出评测集与失败 case,等于没选型。

Q5:向量检索原理是什么?HNSW 你调过哪些参数?

一句话:Embedding 把文本投到高维空间,用近似最近邻(ANN)换亚线性查询;HNSW 是多层可导航小世界图。

参数 含义 调参直觉
M 每点邻居数 大 → 更准更吃内存
ef_construction 建图搜索宽度 大 → 索引质量好、建得慢
ef_search 查询搜索宽度 大 → 召回升、延迟升

相似度优先余弦(看方向);欧氏易受向量模长/文档长度干扰。百万级以上不要吹「暴力扫全库」。

追问红线:只会说「向量库很快」,说不出精度/延迟/内存三角,会被立刻拆穿。

Q6:向量库怎么选:FAISS / Milvus / Qdrant?

一句话:库(嵌入进程)适合原型;数据库(独立服务)适合多副本、过滤与运维。

选项 你该说的选型理由
FAISS 单机/原型快,持久化与多租户要自造
Milvus 大规模、分布式、过滤表达式成熟
Qdrant 中小规模起步轻、过滤友好、运维面相对小

答法模板:「我们 QPS/数据量是 X,需要 metadata filter 和副本,所以选 Y;若只做 PoC 会用 FAISS。」

Q7:为什么必须混合检索?RRF 怎么并?

一句话:纯向量弱在精确串(型号、RFC、工单号);BM25 弱在同义改写——两路召回再用 RRF 融合。

def rrf_merge(rank_lists, k=60):
scores = {}
for results in rank_lists:
for rank, doc_id in enumerate(results):
scores[doc_id] = scores.get(doc_id, 0.0) + 1.0 / (k + rank + 1)
return sorted(scores, key=scores.get, reverse=True)

工程落地表:

场景 更吃哪一路
「怎么优化慢查询」 向量(语义)
「RFC 7231」「SKU-8821」 BM25(精确)
口语缩写 vs 文档全称 混合 + Query 改写

追问红线:只会说「混合更好」,说不出 RRF / 加权融合差异与 k≈60 经验值,深度不够。

Q8:已经混合检索了,为什么还要 Rerank?

一句话:召回是 Bi-Encoder 粗筛;Rerank 是 Cross-Encoder 精排——先 Top-20~50,再压到 Top-3~8 进上下文。

召回粗筛与 Rerank 精排

对比 Bi-Encoder 召回 Cross-Encoder Rerank
交互 问/文各自编码 问+文拼在一起打分
速度 可预计算、可 ANN 在线逐对、只跑小集合
作用 从百万级捞候选 把真正相关的顶上去

中文开源常用 bge-reranker-v2-m3 一类;商业 API 也可。面试加分:报一组你项目里的「无 Rerank → 有 Rerank」相对提升(哪怕是小样本人工标注)。

追问红线:把 Rerank 说成「再搜一遍向量库」——概念错。

Q9:幻觉怎么压?Lost in the Middle 怎么防?

一句话:幻觉分「检索没给到」和「给了但模型不用」;前者修召回,后者修 Prompt/压缩/引用约束。

落地手段清单:

1. Prompt 强制:无依据则明确拒答;要求输出引用 chunk id。

2. 上下文压缩:长候选先摘要/抽取,避免中间段落被忽视(Lost in the Middle)。

3. 证据门槛:Rerank 分数低于阈值不入 Prompt。

4. 后校验:答案句子与证据做 NLI/字符级对齐抽检。

追问红线:只说「温度调低」——那是生成技巧,不是 RAG 幻觉治理主路径。

Q10:检索效果差,你的排查清单是什么?

一句话:先分「召不回」还是「召回了但生成差」,再按离线→在线逐项打点。

症状 优先检查 动作
关键词命中差 无 BM25 / 分词 上混合检索
同义问法全挂 Embedding / 改写 Query 改写、HyDE、多路改写
Top 里有关但排序乱 无 Rerank Cross-Encoder 精排
答案有料但偏题 Prompt / 上下文过长 压 Top-N、摘要、引用约束
整体指标虚高 评测泄漏 重建问答对、按文档时效切分

最小评测闭环(面试一定要提):

别只会说挂知识库:RAG 面试 10 题的落地答题清单

  • 离线:Recall@K / MRR / nDCG
  • 生成:忠实度(Faithfulness)、答案相关性
  • 工程:P95 延迟、单次 Rerank 候选数上限

坏 case 周会:抽 20 条失败,标注失败层(切分/召回/精排/生成),下周只改一层——这比空谈「继续优化 Prompt」更像工程负责人。

面试收尾:把项目讲成一条故事

收尾时用 30 秒串起来:

我们文档以制度与工单为主,精确串多,所以向量 + BM25 + RRF;召回 Top-40,BGE Rerank 压到 6 段;Prompt 强制引用与拒答;每周用 200 条标注集看 Recall@10 和忠实度,坏 case 按层归因。

能把「参数、指标、归因」三件事说圆,比背 10 个名词更值钱。源题单常见变体还会追问 Agentic RAG(多步检索/工具调用)——答法仍是:先证明单跳 RAG 的评测闭环,再谈何时需要 Agent 多跳,避免一上来堆概念。

小结

  • RAG 面试考的是决策与证据,不是框架名。
  • 切分、混合召回、Rerank、评测闭环是四块高频加分区。
  • 每题准备:一句话结论 + 一张参数/对比表 + 一条追问红线。
  • 讲项目时用「症状 → 定位层 → 指标变化」叙事,比背流水线更稳。

💻 配套实训环境与动手练习

本文涉及的相关技术指令、开发环境与工具链已内置在边学边练在线实验室中,无需繁琐安装配置,随时在浏览器中实践体验:

文章版权声明:除非注明,否则均为边学边练网络文章,版权归原作者所有

最新文章

热门文章

本栏目文章