RAG面试必考:Agent Offer核心问答覆盖分块、召回与生成质量三大主干问题

原创2026-10-28 23:56:29650 阅读
文章标签:文档知识库教程

RAG面试必考:Agent Offer核心问答覆盖分块、召回与生成质量三大主干问题

Agent Offer 是一份面向 Java 后端转 AI Agent 方向的公开面试复习资料库,其中 RAG 核心问答 把高频面试题重组为「分块策略、召回优化、生成质量」三大主干问题,配合口述版答案与常见追问,非常适合用来系统复习 RAG 面试。

💡 一句话记忆:RAG = 先检索、后生成。面试考的不是"跑通过没有",而是你能不能讲清每一步为什么这么做、怎么权衡。


一、为什么 RAG 是面试必考?先看它在解决什么问题

面试官问 RAG,本质上想确认你理解它和直接微调的分工。对照资料里的标准答案,RAG 主要解决三件事:

核心问题 直接微调 RAG 的做法
知识过时 需要重新训练 更新文档→更新索引即可
领域私有知识缺失 成本高、效果有限 任意私有文档接入知识库
幻觉不可控 仍是黑盒 答案可溯源到来源片段

标准工作流程三步走,面试口述时按顺序展开即可:

  1. 检索(Retrieve):把用户问题当作 Query,到向量知识库中找出最相关的 Top-K 片段;
  2. 增强(Augment):把召回片段与原始问题拼接成增强 Prompt;
  3. 生成(Generate):LLM 基于上下文作答,回答"锚定"在事实依据上。

完整链路可以拆成离线和在线两段,这也是资料里推荐的口述框架:

  • 离线(索引)阶段:数据加载 → 清洗切块 → Embedding 向量化 → 写入向量库建索引
  • 在线(推理)阶段:查询改写 → 向量检索 → 重排(Rerank)→ 上下文组装 → 生成回答

⚠️ 加分项:主动提到「检索前处理(查询改写)」和「检索后重排」这两个质量提升点,再补一句线上要有评估回流与索引更新机制,否则质量会逐步衰减。


二、主干一:分块策略——切块大小与重叠长度怎么定?

分块(Chunking)是 RAG 面试中最容易深挖的环节,核心答案一句话:没有固定最优值,是语义完整性与检索精度的平衡。

2.1 切块大小的选择依据

维度 实践建议
嵌入模型能力 多数模型在 256–512 token 区间效果最好
文档类型 结构化文档按标题/段落语义切块;代码按函数或类切;FAQ 偏短块
查询类型 问题具体→句子级小块;问题宽泛→需要更大块综合上下文

2.2 重叠长度(Overlap)

  • 作用:防止关键概念在块边界被"腰斩";
  • 经验值:块大小的 10%–20%(如 1024 token 的块配 128–256 token 重叠);
  • 重叠不是越大越好,过大只增加冗余和存储成本。

2.3 大小块的权衡(高频追问)

  • 大块:上下文更完整,但噪声多、检索精度下降、成本高,还容易触发 Lost in the Middle;
  • 小块:信息密度高、匹配更精确,但容易语义割裂、单块答不完整;
  • 进阶答案:实践里常采用多尺度切块——小块用于精确检索,同时保留对"父块"的引用(Small-to-Large Chunking),把更完整的上下文交给 LLM。

📌 口述收尾话术:基线从 chunk_size=512, overlap=64 起步,用 Recall@K + 人工抽检迭代参数,按文档类型分策略而不是一套参数打天下。

详细问答见:docs/interview_prep/01_AI/03_RAG/01_核心问答.md


三、主干二:召回优化——如何持续提升检索质量?

资料给出的优化路径是九个字:"召回更准、排序更稳、上下文更干净"。工具箱按三块整理:

3.1 嵌入模型怎么选?

  1. 看基准:参考 MTEB / C-MTEB 排行榜,优先检索(Retrieval)任务得分高的模型;
  2. 看场景:领域(医疗/金融)、语言支持、时延预算、私有部署还是 API;
  3. 看指标:Recall@K、MRR、nDCG,再叠加线上延迟与成本。

常见坑:离线分数高 ≠ 线上最优,长尾 query 和专业术语场景必须用业务数据集验证。

3.2 检索技术工具箱

技术 解决的问题
混合检索(BM25 + 向量) 关键词/ID 精确匹配 + 语义模糊匹配兼得
重排 Rerank(Cross-Encoder) 先粗召 Top-50,再精排 Top-5,上下文质量大幅提升
多查询改写 / 子问题拆分 复杂问题拆成多个简单查询,合并去重
HyDE 先让 LLM 生成"假设答案",再拿答案向量去检索
元数据过滤 权限、时间等过滤条件不重建向量索引
知识图谱增强 多跳推理(如"作者公司的 CEO")与可解释证据链

3.3 Lost in the Middle 现象

模型在长上下文中更关注开头和结尾,中间证据容易被忽略——片段明明召回了却没被用上。缓解四招:

  1. 重排时把最相关文档放首尾;
  2. 严格控制 Top-K(如 Top-3/5)降噪;
  3. Prompt 中明确要求"基于全部证据回答";
  4. 必要时做长上下文微调(成本最高)。

3.4 向量库选型(追问高频)

方案 定位
pgvector 向量与关系数据强耦合,SQL 联查方便,接入成本最低
Milvus 大规模在线检索、高并发服务化,扩展性最好但运维最重
FAISS 库级方案,单机高性能、适合快速实验

资料里的参考策略:先用 pgvector 快速落地,规模和 QPS 上来后再迁 Milvus,FAISS 留给算法实验。


四、主干三:生成质量——RAG 系统怎么评估?

评估是区分"背过流程"和"做过工程"的分水岭。资料把它拆成检索、生成两阶段:

4.1 检索阶段:找得对、找得全

  • 上下文精确率:召回片段里有多少真相关(信噪比);
  • 上下文召回率:相关文档有多少被找回(全面性);
  • 排名类指标:Hit Rate、MRR、nDCG@k(最常用,同时考虑相关性与排序)。

4.2 生成阶段:忠实、准确、有用

  1. 忠实性(Faithfulness):答案是否完全基于上下文、有无捏造;
  2. 答案相关性:是否直接回答了原始问题;
  3. 答案正确性:事实层面是否准确(比忠实性更严格)。

工程上常用 RAGAS、ARES、TruLens 这类开源框架,用 LLM-as-a-Judge 把上述指标自动化,大幅降低评估成本。

4.3 Top-K 怎么设?

不是拍脑袋定死的:事实问答 K 取小、复杂推理 K 取大;观察正确率-时延-成本三条曲线的拐点,通过离线评测 + 线上 AB 找最优点。原则是先保召回,再通过重排提信息密度,最后才调 K。


五、进阶追问:RAG 上线后怎么治理?

这部分是高级工程师必问区,三大生产挑战与对策:

挑战 典型表现 治理策略
数据新鲜度 文档更新了却"答旧不答新" 增量索引(chunk_id + content_hash)、索引版本化
稳定性 链路抖动导致时延高、空召回 灰度发布、回滚开关、双索引蓝绿切换、热冷分层
可解释性 回答不可追溯,业务不信任 输出引用片段与来源、可观测看板

📌 一句话口述:"先保障召回,再优化生成",并用线上 bad case 持续回流,形成检索与提示词的双闭环。


六、怎么用这份资料复习?

仓库目录已按面试主题重组,推荐复习路径:

  1. 入口导航:docs/interview_prep/README.md
  2. AI 板块总览(Agent 基础 / RAG / 上下文工程 / 评测监控等 9 个主题):docs/interview_prep/01_AI/README.md
  3. RAG 核心问答(本文全部素材来源):docs/interview_prep/01_AI/03_RAG/01_核心问答.md
  4. 配合项目表达练口述:docs/interview_prep/05_项目表达/01_AI应用平台/01_核心问答.md

仓库同时覆盖后端(MySQL/Redis/Kafka 等)、系统设计、算法四大板块,完整目录见 README.md。每个问题末尾都标有来源,方便回查;资料以主题问答而非题海方式组织,更适合系统复习 + 口述演练 + 追问深挖的使用方式。

🎯 复习建议:先按本文三大主干各写一版 300 字口述稿(资料里已提供现成范本),再针对每个"常见追问"清单自问自答,一轮下来 RAG 面试主干问题基本全覆盖。

登录后查看全文
agent_java_offer