万众期待的面试题库系列,今天正式上线啦!即日起,持续更新 AI 面试题库系列内容。拒绝碎片化拼凑,只输出体系化万字长文干货。建议先收藏,高效备战面试。
RAG(检索增强生成)是目前大模型落地应用的主流技术方案,也是AI面试中的高频考点。本文整理了22道RAG核心面试题,涵盖基础概念、Embedding选型、向量数据库、检索优化、Agentic RAG、幻觉处理等核心知识点,每道题都配有详细参考答案和延伸追问提示,帮助你系统掌握RAG技术栈。
参考答案:
RAG是Retrieval-Augmented Generation的缩写,中文叫检索增强生成。它解决的是大模型知识局限和幻觉问题。
大模型的知识来自训练数据,有截止日期,无法获取最新信息。同时模型会一本正经地胡说八道,生成看似合理但实际错误的内容。
RAG的思路是在生成答案之前,先从外部知识库中检索相关信息,把检索到的内容作为上下文传给模型,让模型基于这些事实来生成答案。这样既扩展了模型的知识边界,又提高了答案的准确性和可溯源性。
RAG是目前大模型落地应用的主流方案,特别适合企业知识库问答、客服、文档分析等场景。
延伸追问:
面试官可能会问RAG和微调的区别。回答要点是RAG不需要训练模型,成本低、更新快,适合知识频繁变动的场景。微调需要重新训练,成本高但模型本身能力会提升,适合固定领域的深度优化。
参考答案:
RAG流程分为索引阶段和查询阶段。
索引阶段:
查询阶段:
整个流程的关键在于检索的准确率和召回率,如果检索不到相关内容或者检索到不相关的内容,都会影响最终答案质量。
延伸追问:
可能会问索引阶段文档切分的策略。回答要提到按固定长度切分、按语义切分、按段落切分等方式,以及切分大小对检索效果的影响,通常几百个Token比较合适。
参考答案:
Embedding模型选型要考虑四个因素:
1. 语言支持 - 中文场景要用中文模型比如BGE、M3E、Text2Vec,英文场景选择更多比如OpenAI的text-embedding-ada-002、sentence-transformers系列。
2. 向量维度 - 维度越高表达能力越强但存储和计算成本也越高,常见有384维、768维、1024维、1536维等。
3. 上下文长度 - 模型能处理的最大文本长度,要覆盖文档片段的大小,常见有512、1024、2048、8192等。
4. 性能指标 - 关注在标准评测集上的MRR、NDCG、Recall@K等指标。
实际选型要在效果和成本之间权衡,一般先用开源模型验证效果,效果不达标再考虑商用API。
延伸追问:
可能会问如何评估Embedding模型的效果。回答要提到可以用公开评测集比如C-MTEB、MTEB,也可以用自己的业务数据构建测试集,计算检索的准确率和召回率。
参考答案:
向量数据库选型要考虑规模、性能、成本等因素:
Faiss - Facebook开源的向量检索库,适合小规模本地部署,支持多种索引算法,但不支持分布式和持久化。
Milvus - 专门的向量数据库,支持分布式部署、多种索引类型、混合查询,适合大规模生产环境。
Pinecone - 托管服务,开箱即用但成本较高,适合快速验证。
Weaviate - 支持向量搜索和语义搜索,有GraphQL接口,功能丰富但学习成本较高。
pgvector - PostgreSQL的向量扩展,适合已有PG基础设施的场景,可以复用现有的运维能力。
Elasticsearch - 也支持向量搜索,适合需要同时做关键词搜索和向量搜索的场景。
选型要根据数据规模、查询QPS、团队技术栈综合考虑。
延伸追问:
可能会问HNSW和IVF索引的区别。回答要点是HNSW基于图结构,构建慢查询快,适合静态数据集。IVF基于倒排文件,构建快查询慢一些,适合动态更新的场景。
参考答案:
提高检索准确率可以从查询优化、索引优化、重排序三个层面入手:
查询优化:
索引优化:
重排序: 用更精确的模型对召回结果二次排序,比如用Cross-Encoder计算问题和文档的相关性分数,或者用LLM判断文档是否包含答案。
多种技术组合使用可以显著提升检索效果。
延伸追问:
可能会问HyDE的原理。回答要点是用LLM先根据问题生成一个假设的答案,然后用这个答案去检索相关文档,解决用户问题和文档表述不一致的问题。
参考答案:
多轮对话中用户的问题往往依赖上下文,单独检索当前问题可能找不到相关信息。解决方案有几种:
历史拼接 - 把多轮对话历史拼在一起作为查询,但会引入噪声且可能超出长度限制。
查询重写 - 用LLM把当前问题结合历史改写成独立完整的问题,然后再检索。
历史摘要 - 维护一个对话摘要作为上下文,既保留关键信息又控制长度。
独立检索 - 分别检索历史问题和当前问题的相关文档,合并去重后传给模型。
实际应用中查询重写效果较好,可以用专门的模型或者Prompt工程实现。要注意的是改写本身也有成本,需要在效果和开销之间权衡。
延伸追问:
可能会问对话历史太长怎么处理。回答可以提到滑动窗口保留最近N轮,或者定期用LLM生成摘要压缩历史。
参考答案:
上下文压缩是解决检索结果过长导致超出模型上下文限制或者干扰模型注意力的问题。直接把所有检索到的文档片段拼进Prompt可能太长,而且包含很多无关信息。
压缩方法:
Map-Reduce - 把长文档分段处理,每段分别与问题做相关性判断,只保留相关部分。
Refine - 迭代精炼,先用部分文档生成初步答案,再逐步引入其他文档完善答案。
相关性过滤 - 用轻量级模型计算每个片段与问题的相关性分数,只保留高分片段。
LLM压缩 - 用模型提取关键信息生成摘要。
实际应用中通常组合使用,先用轻量级方法粗筛,再用LLM精筛,既保证效果又控制成本。
延伸追问:
可能会问Map-Reduce和Refine的区别。回答要点是Map-Reduce并行处理各段然后汇总,速度快但可能丢失跨段信息。Refine串行处理逐步完善,能利用上下文但速度较慢。
参考答案:
RAG系统评估要分别评估检索和生成两个阶段。
检索阶段评估指标:
生成阶段评估指标:
评估方法:
实际落地要建立持续评估机制,定期抽样检查效果,收集用户反馈,形成数据闭环不断优化。
延伸追问:
可能会问如何构建评估数据集。回答要点是收集真实用户问题,人工标注正确答案和相关文档,确保覆盖各种类型的问题和难度。
参考答案:
RAG和知识图谱结合可以互补优势。RAG擅长处理非结构化文本,知识图谱擅长处理结构化关系。
结合方式:
图谱增强检索 - 先用知识图谱做实体链接和关系推理,扩展查询语义,再用RAG检索相关文档。
结构化RAG - 把知识图谱作为检索源之一,直接检索图谱中的三元组作为上下文。
混合推理 - 让模型同时参考文本片段和知识图谱,结合两者生成答案。
比如回答公司相关问题,可以从图谱获取股权关系、高管信息,从文本获取新闻报道、财报分析。
实现上可以用GraphRAG等框架,或者自己构建Pipeline。结合的关键在于实体识别和链接的准确性,以及图谱的覆盖度和质量。
延伸追问:
可能会问GraphRAG的原理。回答要点是先用LLM从文档中提取实体和关系构建图谱,查询时先在图谱上做社区发现找到相关子图,再结合子图和原始文本生成答案。
参考答案:
知识冲突是指检索到的多个文档片段包含相互矛盾的信息。处理冲突有几种策略:
置信度排序 - 根据文档来源的权威性、时效性、相关性给不同片段赋权重,优先采信高权重来源。
时效性优先 - 对于时效敏感的问题,优先使用最新文档。
多源验证 - 要求多个独立来源都支持才采信。
不确定性表达 - 让模型在答案中说明存在不同说法,而不是强行给出唯一答案。
冲突检测 - 用LLM判断检索结果是否存在矛盾,如果存在矛盾可以进一步追问用户澄清,或者把矛盾点都列出来让用户判断。
实际应用中冲突处理要结合业务场景,有些场景要求给出确定答案,有些场景可以保留不确定性。
延伸追问:
可能会问如何评估文档的可信度。回答可以提到来源权威性官方文档大于论坛帖子,时效性新文档优于旧文档,相关性匹配度高的更可信。
参考答案:
RAG性能优化可以从索引、检索、生成三个环节入手:
索引优化:
检索优化:
生成优化:
实际优化要用profiling工具定位瓶颈,避免盲目优化。通常检索是瓶颈,优先优化向量索引和检索策略。
延伸追问:
可能会问流式输出的实现方式。回答要点是模型生成过程中逐步返回结果,前端边收边展示,提升用户感知的响应速度。
参考答案:
企业落地RAG面临数据、技术、运营三方面挑战:
数据挑战:
技术挑战:
运营挑战:
解决这些挑战需要产品、技术、运营的紧密配合,不能单纯追求技术指标,要关注实际业务价值。
延伸追问:
可能会问权限控制怎么实现。回答可以提到文档级别打标签,检索时根据用户权限过滤,或者在检索后做二次过滤。
参考答案:
RAG是Retrieval-Augmented Generation的缩写,中文叫检索增强生成。它是一种把信息检索和文本生成结合起来的技术框架。
核心思想: 在让大模型生成答案之前,先从外部知识库中检索相关信息,把检索到的内容作为上下文提供给模型,让模型基于这些事实来生成答案。
这样做有两个好处:
基本流程:
RAG是目前大模型落地应用的主流方案,特别适合企业知识库问答、智能客服、文档分析等场景。
延伸追问:
可能会问RAG和Fine-tuning的区别。回答要点是RAG不需要训练模型,成本低、更新快,适合知识频繁变动的场景。Fine-tuning需要重新训练模型,成本高但模型本身能力会提升,适合固定领域的深度优化。
参考答案:
文档分块大小和topK参数的选择要通过实验确定,没有固定标准。
分块大小的考虑因素:
topK参数的选择:
延伸追问:
可能会问有没有自动确定分块大小的方法。回答可以提到可以用语义切分,根据句子或段落的语义完整性自动确定切分点,而不是固定长度切分。
参考答案:
Agentic RAG是把AI Agent和RAG结合起来的进阶方案。
与传统RAG的区别: 传统RAG是一次性检索然后生成答案,Agentic RAG则是让Agent自主决定检索策略,可以多次检索、动态调整查询、甚至主动验证信息。
具体实现方式:
优势与代价: 优势是能够处理更复杂的查询,比如需要多跳推理的问题,或者需要综合多个来源信息的问题。代价是延迟增加、成本上升,适合对答案质量要求高、可以承受一定延迟的场景。
延伸追问:
可能会问Agentic RAG和普通RAG的性能对比。回答要点是Agentic RAG效果更好但成本更高、延迟更长,适合复杂问题,普通RAG适合简单直接的问答。
参考答案:
混合RAG是指同时结合多种检索方式的RAG方案。
常见组合:
好处: 互补各种检索方式的优势,提高召回率和准确率。比如用户搜索产品型号,向量检索可能找不到精确匹配,关键词检索可以精确命中。
实现方式: 可以用RRF倒数排名融合等方法合并不同检索方式的结果。
延伸追问:
可能会问RRF融合的具体算法。回答要点是RRF计算每个文档在不同检索结果中的排名倒数,然后求和作为最终分数,排名越靠前得分越高。
参考答案:
文档更新处理是RAG系统的运维重点。
全量重建 - 最简单的方式,文档更新后重新切分、向量化、构建索引,适合更新频率低的场景。
增量更新 - 更高效的方式,只处理变更的文档:
更新策略:
还要考虑更新期间的查询服务不中断,通常采用双索引切换或者索引版本管理来实现平滑过渡。
延伸追问:
可能会问如果文档量很大,全量重建耗时很长怎么办。回答要点是采用增量更新策略,或者使用支持增量更新的向量数据库,或者设计索引分区策略减少每次重建的范围。
参考答案:
选择Milvus作为向量数据库主要基于以下考虑:
1. 专为向量设计 - Milvus是专门为向量检索打造的数据库,支持多种向量索引类型如HNSW、IVF_FLAT、IVF_SQ8等,能根据数据规模和查询特点灵活选择。
2. 分布式架构 - 支持水平扩展,可以处理十亿级别的向量数据,适合企业级生产环境的高并发查询需求。
3. 混合查询能力 - 除了向量相似度搜索,还支持标量过滤,可以结合元数据条件进行精确过滤,比如按时间范围、文档类型等筛选后再做向量检索。
4. 生态完善 - 提供Python、Java、Go等多种语言的SDK,与LangChain、LlamaIndex等主流框架有良好集成,开发成本低。
5. 云原生支持 - 支持Kubernetes部署,有完善的监控和运维工具,符合现代云原生架构要求。
相比Faiss这种单机库,Milvus更适合生产环境;相比Pinecone这种托管服务,Milvus可以私有化部署,数据安全可控。
延伸追问:
可能会问Milvus和Elasticsearch的向量功能有什么区别。回答要点是ES的向量搜索是附加功能,适合混合场景;Milvus是专业向量库,性能更好、功能更完善,适合大规模纯向量检索场景。
参考答案:
召回和重排是RAG检索流程中两个不同的阶段,各自承担不同职责:
召回阶段(Retrieval):
重排阶段(Reranking):
为什么分两阶段: 如果直接用Cross-Encoder对所有文档打分,计算量太大无法接受。先用向量检索快速召回候选,再用重排模型精确排序,是效率和效果的平衡。
延伸追问:
可能会问重排模型有哪些选择。回答可以提到Cross-Encoder、bge-reranker、Cohere Rerank等,以及它们各自的优缺点和适用场景。
参考答案:
Embedding中文叫嵌入或向量表示,是将高维离散数据映射到低维连续向量空间的技术。
核心概念:
在RAG中的作用:
常用模型:
相似度度量: 通常使用余弦相似度或欧氏距离,余弦相似度关注向量方向,对长度不敏感,更适合文本语义匹配。
延伸追问:
可能会问Embedding和One-Hot编码的区别。回答要点是One-Hot维度高且稀疏,无法表达语义相似性;Embedding维度低且稠密,语义相似的内容向量距离近。
参考答案:
RAG召回阶段常用的相似度算法主要有以下几种:
1. 余弦相似度(Cosine Similarity)
2. 欧氏距离(Euclidean Distance)
3. 点积(Dot Product)
实际应用: 向量数据库通常使用余弦相似度作为默认度量,因为它对文本语义匹配效果最好。在使用前需要确保Embedding向量已经归一化,这样点积就等价于余弦相似度,可以加速计算。
延伸追问:
可能会问为什么向量检索比关键词检索快。回答要点是向量检索使用近似最近邻算法如HNSW,时间复杂度O(logN),而暴力搜索是O(N),向量索引大幅降低了计算量。
参考答案:
避免幻觉是RAG系统的核心挑战,需要多管齐下:
1. RAG增强
2. Prompt约束
3. 事实校验
4. 引用溯源
5. 置信度评估
6. 多模型验证
幻觉无法完全避免,但可以通过技术手段大幅降低,关键是让模型有自知之明,不确定时不强行回答。
延伸追问:
可能会问怎么检测幻觉。回答要点是事实核查、一致性检查、人工抽样、用户反馈等方式结合,可以建立自动化检测流水线。
以上就是万字详解面试题库RAG篇的全部内容,共22道核心面试题,涵盖RAG基础概念、Embedding选型、向量数据库、检索优化、Agentic RAG、混合RAG、增量索引、幻觉处理等核心知识点。建议结合自己的项目经验,针对每道题准备具体的案例和数据支撑,在面试中展现出对技术的深入理解和实际应用能力。
👉 关注我回复“面试题库”|领取高清完整 PDF 版