Skip to content

RAG 面试题

RAG 题目通常不是只问定义,而是看你能不能把检索、分块、向量库、上下文拼装和评估串成一条工程链路。

基础链路

什么是 RAG?RAG 的主要流程是什么?

考察角度: 是否能把 RAG 讲成完整系统,而不是“接一个向量库”。

回答时应该覆盖:

  • 离线建库:文档导入、清洗、分块、Embedding、索引入库。
  • 在线查询:问题向量化、召回、可选 Rerank、拼接上下文、生成答案。
  • 引用来源和资料不足时拒答为什么重要。

深入了解: RAG 原理

RAG 的建库链路和问答链路为什么要分开看?

考察角度: 是否能把离线数据质量和在线回答质量分开定位。

回答时应该覆盖:

  • 建库链路关注文档是否被正确解析、切分、向量化和写入索引。
  • 问答链路关注当前 query 是否召回了对的证据,以及上下文是否被正确拼给模型。
  • 如果答案错了,先判断是“库里没有 / 没召回 / 召回了但生成错”,不要直接改 prompt。

深入了解: RAG 原理

RAG 的文档处理为什么会影响召回质量?

考察角度: 是否理解文档进入向量库之前的处理,会决定后面能不能被搜到。

回答时应该覆盖:

  • 解析、清洗、去噪、结构保留和元数据提取不是预处理杂活,而是召回质量的一部分。
  • Markdown、PDF、表格、代码块不能都按普通段落切,否则标题、表头和代码上下文会丢。
  • 文档处理差时,后面换 embedding、调 top-k、改 prompt 都只能部分补救。

深入了解: RAG 原理

分块与 Embedding

什么是 RAG 中的分块?为什么需要分块?

考察角度: 是否知道 chunk 是解决上下文窗口、检索粒度和成本的关键设计。

回答时应该覆盖:

  • 不能把整份文档直接塞给模型的原因。
  • chunk 大小、overlap、语义完整性之间的权衡。
  • 分块失败会导致答案被切断或召回噪音变多。

深入了解: RAG 进阶优化

在 RAG 中,常见的分块策略有哪些?分别有什么区别?

考察角度: 是否能按文档结构选择分块方式。

回答时应该覆盖:

  • 固定大小切块、语义切块、父子块的差异。
  • 结构化文档优先保留标题层级和段落边界。
  • PDF、表格和代码文档需要特别处理。

深入了解: RAG 进阶优化

在 RAG 中的 Embedding 嵌入是什么?

考察角度: 是否理解向量表示在检索里的作用。

回答时应该覆盖:

  • Embedding 把文本转成可计算相似度的向量。
  • 文档 chunk 和用户问题都要进入同一向量空间。
  • Embedding 质量会影响召回上限。

深入了解: Embedding 与向量检索

如何选择 Embedding Model,需要考虑哪些因素?

考察角度: 是否能做工程选型,而不是只报模型名。

回答时应该覆盖:

  • 语言、领域数据、向量维度、成本、延迟和部署方式。
  • 是否支持长文本、批量处理和稳定版本。
  • 用小评测集验证召回质量,而不是只看榜单。

深入了解: Embedding 与向量检索

检索与向量数据库

什么是混合检索?主要解决什么问题?

考察角度: 是否理解向量检索和关键词检索的互补关系。

回答时应该覆盖:

  • 向量检索擅长语义相似,BM25 擅长精确词项。
  • API 名、版本号、专有名词、代码符号常需要关键词召回。
  • RRF 等融合方式为什么比直接加分更稳。

深入了解: RAG 进阶优化

什么是向量数据库?主要解决什么问题?

考察角度: 是否知道向量库不只是“存向量”,还负责近似搜索和元数据过滤。

回答时应该覆盖:

  • 存储向量、原文片段、元数据和索引。
  • 支持相似度搜索、过滤、更新和删除。
  • 在 RAG 中承担召回层基础设施角色。

深入了解: 向量数据库工程

向量数据库中的 ANN 是什么?为什么需要用它?

考察角度: 是否理解大规模向量搜索不能靠暴力全量比对。

回答时应该覆盖:

  • ANN 是近似最近邻搜索,用精度换速度。
  • 数据量大时全量计算成本过高。
  • 需要在召回率、延迟和资源之间取舍。

深入了解: 向量数据库工程

HNSW、LSH、PQ 分别是什么意思?

考察角度: 是否了解常见向量索引背后的基本思路。

回答时应该覆盖:

  • HNSW 通过图结构做高效近邻搜索。
  • LSH 用哈希把相似向量映射到相近桶。
  • PQ 通过量化压缩降低存储和计算成本。

深入了解: 向量数据库工程

余弦相似度、欧几里得距离和曼哈顿距离有什么区别?

考察角度: 是否理解相似度度量会影响召回结果。

回答时应该覆盖:

  • 余弦更关注方向,常用于文本语义相似。
  • 欧几里得关注空间距离,受向量长度影响更明显。
  • 选哪个要看模型训练方式和向量库默认配置。

深入了解: 向量数据库工程

Rerank 与查询改写

什么是 RAG 中的 Rerank?具体需要怎么做?

考察角度: 是否知道 Rerank 是召回后的精排,不是召回替代品。

回答时应该覆盖:

  • 先用向量或混合检索召回候选集。
  • 再用 Cross-Encoder 或 Rerank API 重新判断 query-doc 相关性。
  • 适合“召回到了但排序不准”的场景。

深入了解: RAG 进阶优化

什么是查询扩展?为什么在 RAG 中需要查询扩展?

考察角度: 是否理解用户问法和文档写法不一致的问题。

回答时应该覆盖:

  • 用多种改写问法扩大召回覆盖面。
  • 合并、去重、重新排序多个查询结果。
  • 额外模型调用会增加延迟和成本。

深入了解: RAG 进阶优化

什么是自查询?为什么在 RAG 中需要自查询?

考察角度: 是否知道检索不只有语义匹配,也可以生成结构化过滤条件。

回答时应该覆盖:

  • 从自然语言里提取时间、作者、类型等过滤条件。
  • 结合元数据过滤提高检索准确性。
  • 风险是条件解析错误导致漏召回。

深入了解: RAG 进阶优化

什么是提示压缩?为什么在 RAG 中需要提示压缩?

考察角度: 是否知道召回内容太多时的上下文压缩问题。

回答时应该覆盖:

  • 在检索后、生成前压缩无关或冗余内容。
  • 降低 token 成本,减少模型注意力被噪音稀释。
  • 压缩可能丢失细节,不能替代精准召回。

深入了解: RAG 进阶优化

调优与评估

如何优化 RAG 的检索效果?

考察角度: 是否能按层排查,而不是一上来改 prompt。

回答时应该覆盖:

  • 先打印召回 chunk,看正确答案是否在 top-k。
  • 再调整清洗、分块、Embedding、混合检索和 Rerank。
  • 最后才优化生成层 prompt 和引用约束。

深入了解: RAG 进阶优化

如何进行 RAG 调优后的效果评估?

考察角度: 是否知道 RAG 评估要拆成检索层和生成层。

回答时应该覆盖:

  • 检索层看 Recall@k、命中率、召回片段质量。
  • 生成层看答案正确性、忠实性、引用是否对应。
  • 用固定测试集对比每次优化前后的变化。

深入了解: AI 应用评测

RAGAS 这类自动化评测框架主要评什么?

考察角度: 是否知道自动评测框架不是只给一个总分,而是把 RAG 失败拆成可定位的维度。

回答时应该覆盖:

  • 常见维度包括 context precision、context recall、faithfulness 和 answer relevancy。
  • 检索相关指标看上下文是否找对,生成相关指标看答案是否忠实于上下文。
  • 自动评测适合回归对比,但关键样本仍要人工抽查,避免评测模型本身误判。

深入了解: AI 应用评测

当召回结果与用户 query 意图不匹配时,有哪些改进方向?

考察角度: 是否能定位召回偏差来源。

回答时应该覆盖:

  • query 改写、查询扩展、元数据过滤和混合检索。
  • 检查 chunk 是否过碎、过大或缺少标题上下文。
  • 构建查询日志和失败样本集持续评估。

深入了解: RAG 进阶优化

多个知识库做 RAG 时,怎么兼顾效率、准确性并减少幻觉?

考察角度: 是否能设计多知识库路由和结果融合。

回答时应该覆盖:

  • 先做知识库路由或意图识别,减少无关库检索。
  • 每个库内召回后统一 Rerank 和去重。
  • 生成时保留来源边界,避免跨库混编没有依据的答案。

深入了解: RAG 原理

使用 LangChain 实现 RAG 时,如何处理 PDF 表格数据召回问题?

考察角度: 是否知道真实文档解析比示例文本复杂。

回答时应该覆盖:

  • 表格不要简单按行切碎,尽量保留表头和单元格关系。
  • 可以把表格转 Markdown、HTML 或结构化 JSON 再入库。
  • 对表格类问题单独评估召回,不要只看普通段落效果。

深入了解: RAG 进阶优化

面向开发者系统学习 AI 应用开发、RAG、Agent 与 Vibe Coding。