---
title: RAG 面试题总结
description: 系统整理 RAG 高频面试题，覆盖 RAG 基础、Embedding、向量数据库、Chunk 策略、文档处理、Hybrid Search、Query Rewrite、Rerank、GraphRAG、知识库更新与 RAG 评测等核心考点，并附对应参考文章。
category: AI
tag:
  - RAG面试
  - 向量数据库
  - AI面试
head:
  - - meta
    - name: keywords
      content: RAG面试题,RAG面试,检索增强生成面试题,Embedding面试题,向量数据库面试题,GraphRAG面试题,RAG优化面试题,Chunk面试题,Hybrid Search面试题,Rerank面试题
---

RAG 是 AI 应用开发里最容易被低估的模块。

很多人以为 RAG 就是“文档切块 -> 转向量 -> 存向量库 -> 检索 -> 拼 Prompt”。Demo 阶段这么理解没问题，但一到真实业务，问题马上变复杂：文档解析不干净、Chunk 切碎了语义、Embedding 模型选错、召回结果不准、权限过滤漏了、知识库更新后旧版本还在、模型拿到证据却没有正确回答。

所以，RAG 面试真正考的不是“你会不会接向量数据库”，而是：**你能不能把一个检索增强生成系统拆成可定位、可优化、可评测、可更新的工程链路。**

这份 RAG 面试题根据 AI 专栏现有文章整理。建议你用下面这条主线复习：

1. 先理解 RAG 解决什么问题，以及它和微调、长上下文、传统搜索的区别。
2. 再理解 Embedding、相似度、ANN 索引和向量数据库选型。
3. 接着理解文档处理、Chunk 策略、元数据和权限过滤。
4. 然后掌握 Hybrid Search、Query Rewrite、Rerank、上下文压缩等优化手段。
5. 最后补上 GraphRAG、知识库更新和评测闭环。

## 面试官真正想考什么

RAG 题通常会从概念开始，但很快会追到排查和优化。你可以按下面几个层次准备。

| 考察方向         | 面试官想确认什么                                  | 常见扣分点                      |
| ---------------- | ------------------------------------------------- | ------------------------------- |
| RAG 基础         | 你是否知道 RAG 解决知识更新、私有数据和可溯源问题 | 只说“降低幻觉”，讲不出链路      |
| Embedding 和索引 | 你是否理解向量检索的近似性和成本取舍              | 把向量数据库当普通数据库        |
| 文档处理         | 你是否知道召回质量从文档进入系统前就开始决定      | 只调 TopK，不看解析和 Chunk     |
| 检索优化         | 你是否能定位召回不准、排序不准、上下文噪声问题    | 遇到效果差只改 Prompt           |
| GraphRAG         | 你是否理解多跳关系和全局问题为什么难              | 认为 GraphRAG 一定比向量 RAG 好 |
| 更新与评测       | 你是否能维护长期运行的知识库                      | 没有版本、灰度、回滚和评测意识  |

回答 RAG 题时，尽量把问题拆成“数据进入索引前、检索召回时、上下文注入时、模型生成后、线上持续更新”几个阶段。这样面试官会更容易感受到你的系统化思维。

## RAG 基础

参考文章：[《万字详解 RAG 基础概念》](../rag/rag-basis.md)

这一组题是 RAG 面试的入口。重点要讲清楚 RAG 的价值和边界：它不是让模型突然变聪明，而是给模型提供外部证据，让回答更可引用、可审计、可更新。

建议掌握这些关键点：

- RAG 主要解决大模型知识过时、缺少私有数据、回答不可溯源等问题。
- 传统搜索返回文档列表，RAG 返回基于证据综合后的答案。
- RAG 和微调不是替代关系。知识频繁变化、需要引用来源时优先 RAG；要固定风格、格式或能力倾向时再考虑微调。
- 长上下文适合少量材料深度分析，但企业级知识库仍然需要检索来控制成本、权限和噪声。
- RAG 不能彻底消灭幻觉。检索错、证据不足、上下文噪声、模型不遵循证据，都会导致错误答案。

高频面试题：

- 什么是 RAG？为什么需要 RAG？
- RAG 和传统搜索引擎有什么区别？
- RAG 和微调怎么选？什么时候用 RAG，什么时候微调，什么时候两者结合？
- RAG 系统中 Embedding 模型怎么选？为什么？
- 余弦相似度、内积和欧氏距离有什么区别？
- RAG 的幻觉问题怎么解决？RAG 一定不会产生幻觉吗？
- 什么是 Lost in the Middle 问题？怎么应对？
- 长上下文窗口是否会取代 RAG？
- RAG 系统的评估指标有哪些？
- RAG 的优势和局限性是什么？
- 什么场景适合用 RAG？什么场景不适合？

一个更完整的回答方式是：RAG 的价值在于把模型回答绑定到可检索证据上，但它的上限由检索质量决定。如果正确证据没有被召回，后面的 Prompt 写得再漂亮也救不回来。

## 向量数据库与索引

参考文章：[《万字详解 RAG 向量索引算法和向量数据库》](../rag/rag-vector-store.md)

这一组题会考到一些底层概念，但面试官通常不是让你推公式，而是看你是否理解向量检索的取舍：速度、召回率、内存、构建成本、过滤能力和运维复杂度。

建议掌握这些关键点：

- Embedding 把文本映射到语义向量空间，相似文本在空间中距离更近。
- ANN 近似检索牺牲一部分精确性，换取更高查询性能，这是大规模向量检索的常见取舍。
- Flat 适合小规模和评测基准，HNSW 查询快但内存成本高，IVFFLAT 更节省资源但依赖聚类和参数调优。
- PostgreSQL + pgvector 适合中小规模和已有 PostgreSQL 技术栈，专业向量数据库更适合大规模、高并发、复杂检索场景。
- 向量检索经常要和元数据过滤、权限过滤、关键词检索结合，不能只看相似度。

高频面试题：

- 什么是 Embedding？为什么需要把文本转成向量？
- RAG 场景为什么需要向量数据库？
- ANN 算法为什么可以接受不是 100% 精确的结果？
- 有哪些向量索引算法？各自优缺点是什么？
- Flat、HNSW、IVFFLAT、IVF-PQ 分别适合什么场景？
- HNSW 和 IVFFLAT 有什么区别？
- HNSW 的 `ef_search` 参数怎么调？调大和调小分别会怎样？
- 向量数据库和传统数据库最核心的区别是什么？
- 如果向量数据从 100 万增长到 1 亿，架构上需要做什么调整？
- 为什么选择 PostgreSQL + pgvector？什么时候应该换专业向量数据库？

如果被问“向量数据库怎么选”，不要只报产品名。更好的回答是先问规模、延迟、过滤条件、运维能力、云服务偏好、数据安全要求，再给方案。技术选型不是榜单投票，而是约束匹配。

## 文档处理与 Chunk 策略

参考文章：[《RAG 文档处理与切分策略：从解析、清洗、Chunking 到多模态内容处理》](../rag/rag-document-processing.md)

很多 RAG 问题的根源不在模型，也不在向量库，而在文档处理。垃圾内容进索引，后面检索出来的也只是高相似度垃圾。

建议掌握这些关键点：

- 文档处理管线通常包括解析、清洗、结构化、切分、元数据补全、Embedding、入库和校验。
- Chunk 切分不能只按固定长度切。标题层级、段落语义、表格、代码块、FAQ、章节边界都要考虑。
- Chunk 太大，召回不精准且上下文成本高；Chunk 太小，语义不完整，容易丢失上下文。
- Overlap 可以缓解切分边界问题，但过大容易引入重复内容和检索噪声。
- 元数据很关键，包括来源、标题、页码、更新时间、权限范围、文档版本和业务标签。

高频面试题：

- RAG 文档处理管线通常包含哪些步骤？
- 文档解析、清洗、结构化分别解决什么问题？
- Chunk 切分为什么不能只按固定长度切？
- Chunk 大小、Overlap、语义边界应该怎么取舍？
- 表格、代码块、图片、多模态内容进入 RAG 前怎么处理？
- 文档处理阶段如何保留标题层级、页码、来源和权限元数据？
- Chunk 质量差会带来哪些召回和生成问题？
- 如何从零搭建一套企业级文档处理管线？

面试里如果问“Chunk 怎么切”，建议不要直接说固定 500 字或 1000 字。更稳的回答是：先根据文档类型和问答粒度确定基本范围；优先按标题、段落、语义边界切；对表格、代码、FAQ 做特殊处理；保留父级标题和元数据；最后通过检索评测验证 Chunk 策略，而不是凭感觉调参数。

## RAG 检索优化

参考文章：[《万字详解 RAG 优化：从召回、重排到上下文工程的系统调优》](../rag/rag-optimization.md)

这一组题最能体现实战经验。RAG 效果差时，不要一上来就改 Prompt。先判断问题发生在哪一段：没有召回正确证据、召回了但排得太后、放进上下文的内容太吵、模型没有正确使用证据，还是评测样本不稳定。

建议掌握这些关键点：

- Hybrid Search 结合关键词检索和向量检索，适合专业术语、编号、实体名、语义表达混杂的场景。
- Query Rewrite 解决用户问题表达不规范、口语化、多意图、缩写和上下文省略问题。
- Rerank 负责在候选结果里重新排序，解决向量相似度不等于答案相关性的问题。
- 上下文压缩可以降低噪声和成本，但压缩错误会丢失关键证据。
- RAG 优化必须基于失败样本集，不能只拿几条主观案例反复调。

高频面试题：

- RAG 召回率低应该怎么排查？
- Chunk 策略、Metadata、Hybrid Search、Query Rewrite、Rerank 分别解决什么问题？
- Hybrid Search 是什么？BM25 和向量检索怎么融合？
- Query Rewrite、HyDE、Self-Query 分别适合什么场景？
- Rerank 解决什么问题？为什么不能只依赖向量相似度排序？
- 上下文压缩有什么价值？什么时候会伤害答案质量？
- RAG 优化为什么必须先建立失败样本集？
- 线上 RAG 出现“答非所问”，应该按什么路径定位？

推荐的排查顺序是：先看正确文档是否进入候选池，再看排序位置是否靠前，再看上下文是否被截断或污染，最后看模型是否忠实使用证据。这样能避免把检索问题误判成 Prompt 问题。

## GraphRAG

参考文章：[《万字详解 GraphRAG：为什么只靠向量检索撑不起复杂知识问答》](../rag/graphrag.md)

GraphRAG 题通常出现在更深入的面试里。它不是标准 RAG 的银弹，而是用图结构补足向量检索在实体关系、多跳推理和全局性问题上的短板。

建议掌握这些关键点：

- 标准向量 RAG 擅长局部相似内容召回，但不擅长跨文档关系、多跳推理和全局总结。
- GraphRAG 会抽取实体和关系，构建知识图谱，再通过局部检索、全局检索或社区摘要回答复杂问题。
- 社区摘要可以帮助回答全局问题，但构建和更新成本很高，也可能引入摘要偏差。
- GraphRAG 的权限过滤比文档级过滤更复杂，因为节点、边、邻居和摘要都可能带来信息泄露。
- 成熟系统往往不是纯 GraphRAG，而是根据问题类型在关键词检索、向量检索、多向量、图检索之间动态路由。

高频面试题：

- GraphRAG 解决什么问题？和标准向量 RAG 有什么区别？
- 为什么说 Chunk 是信息孤岛？
- 向量相似度为什么不擅长多跳推理？
- GraphRAG 中实体、关系、社区发现分别是什么？
- 全局检索和局部检索有什么区别？
- GraphRAG 的社区摘要有什么价值？它的成本在哪里？
- GraphRAG 如何做权限过滤？
- 什么场景适合 GraphRAG？什么场景不适合？
- 成熟系统为什么通常不是纯 GraphRAG，而是混合路由架构？

如果被问“要不要上 GraphRAG”，不要默认回答要。更稳的判断是：如果业务问题大量涉及跨文档关系、组织网络、实体关联、多跳推理和全局总结，可以评估 GraphRAG；如果只是 FAQ、产品文档、政策查询，标准 RAG 加检索优化通常更划算。

## 知识库更新与评测

参考文章：[《RAG 知识库文档如何更新：增量更新、版本控制、去重与全量重建》](../rag/rag-knowledge-update.md)、[《AI 应用评测体系：从 Golden Set 构建到线上灰度闭环》](../llm-basis/llm-evaluation.md)

RAG 上生产后，最容易被忽视的是“长期维护”。文档会更新，Embedding 模型会升级，Chunk 策略会调整，权限会变化，业务问题分布也会变。没有更新和评测机制，RAG 很快就会从“知识库问答”变成“旧知识随机复读”。

建议掌握这些关键点：

- 知识库更新要处理新增、修改、删除、版本、去重、权限、灰度和回滚。
- Embedding 模型升级通常意味着向量空间变化，旧向量和新向量混用会带来检索质量问题。
- Chunk 策略变更可能影响所有历史切片，通常需要全量重建。
- RAG 评测要分检索指标和生成指标。检索差和生成差，优化方向完全不同。
- 线上失败样本要回流到评测集，形成持续改进闭环。

高频面试题：

- RAG 知识库为什么不能只新增不删除？
- 增量更新和全量重建怎么选？
- Embedding 模型升级后，为什么通常需要重建索引？
- Chunk 策略变更会影响哪些历史数据？
- 如何避免同一文档多个版本同时被召回？
- 知识库更新如何做灰度、回滚和审计？
- RAG 评测为什么要分检索质量和生成质量？
- MRR、NDCG、Recall@K、Context Precision、Faithfulness 分别衡量什么？

回答更新题时，可以用“数据版本 + 索引版本 + 灰度发布 + 指标监控 + 快速回滚”这条线。这样比只说“定时同步文档”更像生产系统。

## 排查框架

RAG 效果差，可以按下面路径排查：

1. 问题理解：用户问题是否口语化、缩写、多意图、需要多跳推理。
2. 文档处理：原始文档是否解析正确，Chunk 是否保留语义和元数据。
3. 召回阶段：正确证据是否进入候选池，召回池是否足够大。
4. 排序阶段：正确证据是否排在前面，是否需要 Rerank。
5. 上下文阶段：证据是否被截断、重复、污染，是否存在 Lost in the Middle。
6. 生成阶段：模型是否忠实基于证据回答，是否需要引用和拒答策略。
7. 评测阶段：是否有稳定样本集，是否能复现问题。

这个框架非常适合面试，因为它能把 RAG 从“一个链路”拆成“多个可诊断模块”。

## 常见扣分点

- 把 RAG 简化成向量数据库接入。
- 只关注 TopK，不关注文档解析、Chunk、元数据和权限。
- 效果差时只改 Prompt，不看检索和排序。
- 认为向量相似度高就等于答案相关。
- 认为 GraphRAG 一定优于标准 RAG，不考虑成本和适用场景。
- 没有知识库版本管理、灰度、回滚和评测闭环。

## 复习建议

建议按“基础概念 -> 向量索引 -> 文档处理 -> 检索优化 -> GraphRAG -> 更新与评测”的顺序复习。

复习时要始终记住一句话：**RAG 的核心能力不是生成，而是把正确证据稳定、低成本、可治理地送到模型面前。** 如果你能围绕这句话展开，RAG 面试基本不会跑偏。
