RAG 面试题(实时更新补充)
在大模型开发或 Agent 开发的面试中,RAG(检索增强生成)是高频考点,因为它是解决大模型“知识时效性不足”“幻觉生成”等核心问题的关键技术,且在实际业务中应用广泛。以下是常见的 RAG 相关问题,可分为基础概念、核心流程、技术细节、优化策略、评估方法、场景结合等方向:
一、基础概念类
-
什么是 RAG?它的核心目标是什么?
考察对 RAG 本质的理解。需要说明 RAG 是“检索 + 生成”的结合:通过检索外部知识库获取相关信息,再让大模型基于检索到的上下文生成回答,核心目标是提升回答的准确性、时效性,减少幻觉。 -
RAG 和 Fine-tuning 有什么区别?各自的适用场景是什么?
考察对两种知识注入方式的理解。- RAG 无需修改模型参数,通过外部检索动态获取知识,适合知识高频更新(如行业动态)、数据量大(如文档库)、低成本快速迭代的场景;
- Fine-tuning 是通过训练调整模型参数,适合知识稳定、需深度内化(如特定任务范式)、数据量适中的场景。
需强调:RAG 更灵活,Fine-tuning 对模型“原生能力”提升更明显,但成本高。
-
为什么 RAG 能减少大模型的“幻觉”?它完全能避免幻觉吗?
考察对 RAG 原理的深入理解。- 原因:大模型的回答受限于训练数据,RAG 让模型基于“检索到的真实上下文”生成,减少对“模糊记忆”的依赖;
- 不能完全避免:若检索到的信息本身错误、不完整,或模型忽略上下文“自由发挥”,仍可能产生幻觉。
二、核心流程与关键环节类
-
RAG 的核心流程有哪些步骤?每个步骤的作用是什么?
考察对 RAG 全链路的掌握。标准流程包括:- 文档加载(Loading):从多源(PDF、网页、数据库等)获取原始数据;
- 文档预处理(Preprocessing):清洗(去噪、格式统一)、分割(Chunking)为合适的文本块;
- 嵌入(Embedding):将文本块转化为向量,捕捉语义信息;
- 存储(Storage):将向量存入向量数据库,建立检索索引;
- 检索(Retrieval):将用户问题转化为向量,在数据库中检索相似文本块;
- 生成(Generation):将问题和检索到的上下文传入大模型,生成回答。
-
文档分割(Chunking)在 RAG 中非常重要,你会怎么设计分割策略?需要考虑哪些因素?
考察对预处理关键环节的理解。- 核心目标:让每个文本块(Chunk)包含“完整的语义单元”,避免检索到碎片化信息。
- 常见策略:按固定长度(如 500 tokens)、按语义(如段落、章节,用 NLTK/Spacy 分句)、按格式(如 PDF 页眉页脚分割);
- 考虑因素:文档类型(长文档需更细分割)、知识密度(密集内容分小 chunk)、模型上下文窗口(chunk 长度不超过窗口限制)、重叠度(设置 50-100 tokens 重叠,避免语义割裂)。
-
Embedding 模型的选择对 RAG 效果有什么影响?如何选择合适的 Embedding 模型?
考察对嵌入环节的理解。- 影响:Embedding 模型的语义捕捉能力直接决定检索准确性(相似文本向量距离是否近);
- 选择依据:语言支持(如多语言选
text-embedding-ada-002
或m3e
)、维度(高维向量精度高但存储成本高)、性能( latency 和吞吐量)、领域适配性(垂直领域可选微调的专业模型)。
-
为什么需要向量数据库?常用的向量数据库有哪些?它们的特点是什么?
考察对存储和检索环节的理解。- 原因:传统数据库无法高效计算向量相似度,向量数据库通过索引(如 HNSW、IVF)实现快速近似最近邻搜索;
- 常见数据库:Pinecone(托管,易用)、Milvus(开源,高扩展性)、Weaviate(支持多模态,自带语义理解)、Qdrant(轻量,适合小规模场景)。
-
检索阶段常用的策略有哪些?如何提升检索的准确性?
考察对检索优化的理解。- 基础策略:相似性检索(基于向量距离)、关键词检索(结合 BM25 等传统方法);
- 进阶策略:
- 混合检索(Hybrid Search):结合向量语义检索和关键词检索,弥补纯向量对“精确词”不敏感的问题;
- 多轮检索(Multi-turn Retrieval):根据前一轮回答或用户追问动态调整检索 query;
- 过滤检索:基于元数据(如时间、类别)筛选相关文档,缩小检索范围;
- 提升准确性:优化 chunk 质量、选择更优 Embedding 模型、调整检索参数(如 top_k 不宜过大/过小)、增加检索结果重排序(如用 Cross-Encoder 对初筛结果打分)。
三、优化与挑战类
-
当 RAG 系统回答不准确时,你会从哪些环节排查问题?
考察问题定位能力,典型排查链路:- 检索环节:是否检索到了真正相关的文档?(可手动检查检索结果与问题的相关性);
- 预处理环节:chunk 是否分割合理?是否有重要信息被拆分或遗漏?
- Embedding 环节:Embedding 模型是否适配场景?(如多语言场景用错单语言模型);
- 生成环节:提示词是否清晰引导模型“基于上下文回答”?是否存在上下文过长导致模型忽略关键信息?
-
如何处理长文档的 RAG 场景?(如几百页的报告、论文)
考察对复杂场景的应对能力。- 层次化检索(Hierarchical Retrieval):先分割为“章节级 chunk”,检索到相关章节后,再在章节内检索“段落级 chunk”,减少噪声;
- 摘要增强:先对长文档生成摘要,用摘要向量检索,再结合原文细节;
- 滑动窗口分割:对长文本按固定窗口+重叠度分割,确保上下文连续性;
- 结构化提取:对文档中的表格、公式等结构化信息单独处理,避免丢失关键数据。
-
RAG 中如何处理多模态数据?(如包含图片、表格、音频的文档)
考察多模态 RAG 的理解(当前热点)。- 图片:用多模态 Embedding 模型(如 CLIP)将图片和文本转化为同一向量空间,检索时同步匹配图片和文本;
- 表格:将表格解析为结构化数据(如 CSV),用表格专用 Embedding 模型(如 Table Embedding)或转化为自然语言描述后嵌入;
- 音频:先转文字(ASR),再按文本流程处理,或用音频 Embedding 模型直接嵌入。
-
如何解决 RAG 中的“知识时效性”问题?(如实时更新的新闻、动态数据)
考察动态场景的处理能力。- 增量更新:向量数据库支持增量写入,新文档实时嵌入并加入索引;
- 定时同步:设置定时任务,定期爬取/获取最新数据,更新向量库;
- 事件触发更新:当数据源有新内容时(如 API 通知),触发自动嵌入和存储流程。
-
RAG 系统的性能瓶颈可能在哪里?如何优化?
考察系统工程能力。- 瓶颈:Embedding 计算耗时(尤其大规模文档)、向量数据库检索延迟(数据量过大时)、大模型生成 latency;
- 优化:
- 预处理阶段:批量嵌入、异步处理;
- 检索阶段:优化向量数据库索引(如 HNSW 调整参数)、增加缓存(缓存高频 query 的检索结果);
- 生成阶段:用更轻量的大模型、流式输出减少等待时间。
四、评估与指标类
-
如何评估 RAG 系统的效果?有哪些关键指标?
考察对系统评估的理解。- 检索质量指标:Recall@k(前 k 个结果中包含相关文档的比例)、Precision@k(前 k 个结果中相关文档的比例)、MRR(平均 reciprocal rank,衡量第一个相关结果的排名);
- 生成质量指标:相关性(回答与问题的匹配度)、准确性(是否基于上下文,无幻觉)、简洁性、来源忠实度(是否正确引用检索到的信息);
- 评估方法:人工评估(标注员打分)、自动化评估(用大模型作为 evaluator 打分,如 LangChain 的
QAEvaluator
)、对比测试(A/B 测试不同策略的用户反馈)。
-
什么是“检索增强的忠实度”?如何提升?
考察对生成质量的深入理解。- 定义:生成的回答是否严格基于检索到的上下文,不编造未提及的信息;
- 提升方法:提示词明确约束(如“仅基于以下上下文回答,未提及的内容请说明‘未找到’”)、检索结果加入来源标识(让模型知道需“对来源负责”)、用 RAG 专用评估工具(如 RAGAs)检测幻觉并迭代。
五、与 Agent 结合类
-
在 Agent 中集成 RAG 有什么作用?如何设计 Agent 与 RAG 的交互流程?
考察 RAG 与 Agent 的结合能力(核心考点)。- 作用:为 Agent 提供外部知识支持,让 Agent 在决策、工具调用、回答时更精准(尤其处理超出模型训练数据的任务);
- 交互流程:
- Agent 接收到任务后,判断是否需要外部知识(如“不知道答案”“知识可能过时”);
- 若需要,生成检索 query(可能基于任务拆解或历史对话),调用 RAG 工具检索;
- 获取检索结果后,Agent 结合自身逻辑(如多轮推理、工具调用)生成最终输出。
-
Agent 中的 RAG 如何处理多轮对话场景?如何保持上下文连贯性?
考察多轮场景的处理能力。- 对话历史管理:将历史对话作为检索上下文的一部分,生成更贴合当前问题的检索 query(如“基于历史对话,用户现在问的‘这个政策’指的是之前提到的 XX 政策”);
- 检索记忆:记录前几轮的检索结果,避免重复检索相同内容,或在新问题中结合历史检索信息;
- 动态调整:根据对话轮次增加检索的“聚焦度”(如从宽泛检索到精准检索)。
六、实际场景与落地类
-
你在项目中用过 RAG 解决什么问题?具体技术方案是什么?遇到了哪些挑战?
考察项目经验(行为面试题)。需结合实际场景说明,例如:- 场景:企业内部知识库问答(如 HR 政策、产品手册);
- 方案:用 LangChain 加载 PDF 文档,按段落分割,用
m3e-base
嵌入,存储到 Milvus,检索用混合检索(向量 + BM25),生成用chatglm3
结合提示词模板; - 挑战:文档格式混乱(扫描件 OCR 准确率低)、长文档检索噪声大,通过优化 OCR 工具和层次化检索解决。
-
在隐私敏感场景(如医疗、金融)中,如何设计 RAG 系统?
考察合规性意识。- 数据本地化:向量数据库部署在私有环境,避免数据泄露;
- 权限控制:基于用户角色限制检索范围(如医生只能检索自己科室的病例);
- 脱敏处理:预处理时对敏感信息(如身份证号、病历细节)脱敏,再嵌入存储;
- 加密传输:Embedding 向量和检索请求加密,确保传输安全。
总结
RAG 面试问题的核心是考察对全链路技术细节的掌握(预处理、嵌入、检索、生成)、问题定位与优化能力、场景适配能力,以及与大模型/Agent 结合的理解。回答时需结合原理、技术方案和实际场景,体现工程落地思维。