RAG是近两年大模型面试的必考方向,下面这14道真题在字节、阿里、腾讯等多家公司面试中高频出现,涵盖数据清洗、向量检索、Query改写、效果评估等核心考点。


向量数据库构建真题

【真题1】RAG向量数据库怎么构建?

面试官问:你在RAG当中向量数据库是怎么样去构建的?

考查点:向量数据库构建的完整流程和关键细节

参考解析

向量数据库构建质量直接决定RAG系统的检索效果,整个流程分为五个阶段:

第一步:数据准备
收集原始文档来源,可能是PDF、Word、网页、数据库文本。PDF如果是扫描件需要先走OCR识别。之前处理过一批扫描版技术文档,识别质量很差,专门调了OCR参数并加入人工校验才保证数据质量。

第二步:文档切分
大模型上下文窗口有限,需要把长文档切成一个个chunk。最简单的是按固定token数切(比如500个token一段),但容易切断完整语义。更好的方式是按语义切分,按标题层级、HTML标签结构来切。还要加100-200个token的重叠窗口,保证上下文连贯,避免关键信息被切分线隔开。

第三步:向量化
用embedding模型(如OpenAI text-embedding或开源模型)把每个chunk转换成向量,一般是512维或1536维。语义相似的文本在向量空间距离更近。处理大量文档时要做批处理和多线程优化,之前处理10万条文档,速度提升了好几倍。

第四步:入库存储
选择向量数据库(Milvus、Pinecone、Weaviate等),存储时不光存向量,还要存原始文本、文档来源、元数据。建索引用HNSW或IVF算法,大幅提高检索速度。

第五步:持续优化
向量库不是一次性的,要支持动态更新。过时文档要标记或删除,搭建自动化同步流程,每天执行增量更新。监控召回率、检索准确率,效果下降就调整切分策略或更换embedding模型。

面试加分项:对比不同向量数据库的特点和适用场景,说明混合检索(向量+关键词)的优势


【真题2】向量检索失效怎么办?

面试官问:哪些情况会导致向量检索失效?

考查点:向量检索的常见坑点和排查思路

参考解析

向量检索失效主要有这几类情况:

1. 向量维度和检索引擎配置不匹配
主流向量检索引擎对输入维度有严格要求。如果生成向量维度和引擎预设维度不一致,引擎会拒绝处理或默默丢弃多余维度,导致无法匹配正确结果。

2. 绕过代理直接调用底层方法
开发时封装的检索工具有带权限校验、结果过滤的代理方法,也有直接操作引擎的原始方法。如果业务代码直接调用原始方法,绕过了代理里的向量预处理,即使能访问引擎,也会因为向量格式不规范导致匹配精度下降。

3. 模型版本和编码参数不一致
训练时用某个模型版本生成向量,部署时换了另一个版本;或者生成时max_length设为512,检索时设为256。同一文本生成的向量完全不同,向量空间分布变了,检索时就找不到对应的结果。

4. 异常处理不当
调用检索引擎时出现网络超时、索引服务宕机等异常,代码里catch了异常但只打日志没重新抛出。业务层误以为检索成功,实际返回的是无效数据,相当于功能失效。

面试加分项:补充相似度计算算法与业务场景匹配的问题,以及索引类型选择对检索效果的影响


【真题3】RAG数据清洗的核心要点有哪些?

面试官问:落地RAG过程中,做好数据切分和数据清洗的核心要点有哪些?

考查点:数据质量对RAG效果的影响和处理方法

参考解析

数据清洗是RAG效果的地基,核心抓三个关键点:

第一:科学做文本切分
别拍脑袋定chunk_size,常规建议500-1000个字符。切太小会把完整语义拆碎,比如主语在这个chunk、谓语在另一个,检索时拿不到完整信息;切太大则海底捞针,无关废话稀释关键信息的向量特征。

一定要设10%-20%的重叠窗口,保护边缘信息。比如WiFi密码这种信息,万一刚好被切分线隔开,没重叠的话永远检索不到。

第二:PDF解析要做结构感知
这是做RAG最容易踩的坑。直接用PyPDF2这类基础库解析PDF,机器根本看不懂排版。遇到双栏论文、带表格文档,左右栏内容拼在一起,读出来的全是乱码。

两种靠谱解法:用LayoutLM这类视觉模型先给文档画框识别表格、图片、分栏结构再提取文字;或用GPT-4V、Mathpix这类多模态大模型把PDF转成图片再提取。

第三:清洗后存Markdown格式
别存txt或简单编码。主流大模型训练时看了大量GitHub上的Markdown格式代码和文档,天生对这种格式敏感。井号让模型识别标题,竖线识别表格,保留格式就是保留文档结构,检索和生成准确性大幅提升。

面试加分项:说明不同业务场景下切分粒度的选择策略


Query优化真题

【真题4】RAG为什么需要做Query改写?

面试官问:说一下RAG为什么需要做Query改写?

考查点:理解Query改写的必要性和价值

参考解析

Query改写的核心目的是解决用户提问和知识库存储内容的匹配问题。

用户的提问方式往往和知识库里存的内容不匹配:问题很口语化、很模糊、问题里夹杂冗余信息、带情绪、指代不清、上下文缺失。直接拿原始问题去检索,召回结果质量往往很差,生成的答案自然不会准。

比如用户问"某个产品的新版本怎么样",这个问题太口语化,直接检索可能匹配不到相关文档。改成"请介绍某产品最新版本的功能特点和性能提升",关键词更明确,更容易匹配到技术文档或发布材料。

Query改写就是把用户的问题转化成更适合检索的形式,让语义更清晰、关键词更明确,从而提升召回相关性。

面试加分项:结合实际案例说明改写前后的检索效果对比


【真题5】Query改写有哪些具体方法?

面试官问:你在项目当中用过哪些Query改写方法?

考查点:Query改写的技术方案和适用场景

参考解析

常用的Query改写方法有五种:

1. 查询重写
用大模型把口语化问题改得更规范。比如"某个产品的新版本怎么样"改成"请介绍某产品最新版本的功能特点和性能提升",改写后问题更规范,提示词更明确,检索更容易匹配相关文档。

2. 多查询生成
把一个问题展开成多个角度的子问题,并行检索后合并结果。比如"如何提高RAG系统性能"展开成"RAG的性能优化方法"、“提高RAG检索精准率的技巧”、“RAG系统的性能瓶颈和解决方案”,覆盖面更广,不容易漏掉关键信息。适用于用户问题比较笼统的场景。

3. 子查询分解
针对复杂问题拆解。比如"对比GPT和Claude在代码生成和长文本理解上的表现差异",这个问题包含两个维度还要做对比,拆成不同子问题分别检索再整合答案,逻辑更清晰。

4. 假设性文档嵌入(HyDE)
不改问题,让大模型先生成一段假设的理想文档,用这段文档去检索。因为问题和答案的语义表达方式差别很大,用假设答案检索,语义和真实文档更接近,匹配度更高。

5. 后退提示
问题太具体但知识库没有直接答案时,先退一步问更宏观的问题。比如用户问"某产品价格",知识库没有,但可以问"该公司的定价策略"或"同系列产品的价格体系",先拿到背景信息再推理回答。

实际项目中会组合使用:先用大模型做Query改写规范化问题,再生成多个变体做多路检索,召回的文档用重排序模型打分。整个过程通过AB测试持续验证,找成本、效果、延迟的平衡点。

面试加分项:说明改写后用向量算相似度做质量控制(低于阈值舍弃)


【真题6】复杂问题怎么处理?

面试官问:如果问题很宽泛或很复杂怎么办?

考查点:处理复杂查询的策略

参考解析

问题太宽泛:用多查询生成
单次检索容易漏重点。让模型生成3-5个不同角度的子问题,每个子查询并行检索,最后合并结果,覆盖更全面。

问题很复杂:用子查询分解
有些问题包含多个维度和任务。比如"对比GPT和Claude在代码生成和长文本理解上的表现差异",包含两个能力维度和一个对比任务,拆成四个子问题分别检索,查完再整合,答案更结构化。

知识库没有直接答案:用后退提示
先退一步问更高层的问题,拿到上下文后再基于上下文推理或估算,提升准确性。

面试加分项:说明在FAQ、用户手册、技术文档多个地方同时查避免信息不全


错误排查真题

【真题7】RAG答非所问怎么归因?

面试官问:如果RAG答非所问,你怎么判断是检索错了还是生成错了?

考查点:RAG错误排查的归因方法论

参考解析

归因流程就两步,但要用实验验证而不是靠猜测:

第一步:看正确答案有没有出现在检索结果里

拉日志查看召回的文档列表。如果正确答案已经在返回的文档列表里,但大模型还是答错了,那问题在生成环节——东西都给了还理解反,是生成逻辑和理解能力的问题。

如果正确答案根本没被召回,大模型只能基于错误或不全的信息回答,那问题在检索环节——再怎么优化Prompt也没用。

第二步:控制变量隔离问题

两种问题可能同时出现:知识库信息不全,模型还特别自信硬编答案。之前就遇到过,一方面检索没把完整信息找全,另一方面模型信息不足时不说"不确定"而是硬编。这种情况必须两边一起改:补充知识源,让模型学会"不知道就说不知道"。

关键是控制变量做验证,避免在错误方向上浪费资源。

面试加分项:建立bad case库,每周复盘快速迭代


【真题8】向量检索召回了但效果不好怎么办?

面试官问:检索召回了文档但生成效果不好怎么排查?

考查点:检索质量优化思路

参考解析

召回了但效果不好,可能的原因:

召回质量问题:召回了太多无关内容,大模型被噪声干扰。加重排序模型对召回结果打分,只取top 3给大模型。

内容质量问题:召回的内容本身不完整或过时。检查知识库更新机制,对过时内容做标记和过滤。

上下文丢失:切分时把关键信息切断了。检查重叠窗口设置,确保边缘信息不丢失。

格式问题:返回的内容格式大模型不好理解。存Markdown格式,保留文档结构。

之前做政务问答,用户满意度从60%提到85%,核心就是:语义切分加重叠窗口、混合检索、重排序筛选、Query扩写多路查。

面试加分项:说明AB测试验证每个优化的实际效果


系统设计真题

【真题9】如何设计一个智能客服的RAG系统?

面试官问:让你设计一个智能客服的RAG系统,你会怎么做?

考查点:以业务需求为锚点的系统设计能力

参考解析

设计RAG系统要以业务需求为锚点,不是一上来就堆技术。

第一步:拆解三方核心需求

  • 用户:希望得到快速准确的答复,别绕弯子
  • 客服团队:减少重复问题负担,但不牺牲服务质量
  • 业务侧:关注成本、可控性、知识更新效率

第二步:四层架构设计
核心逻辑是"先找答案再生成",不让大模型凭空乱编:

  1. Query理解与改写层:用户问得模糊,系统转成精准检索语句
  2. 高质量知识库层:内容结构清晰、更新及时,FAQ、产品文档、政策文件按类型组织好
  3. 精准检索加重排序层:确保top结果正相关
  4. 可控生成层:基于检索结果生成,加入幻觉控制和兜底策略

第三步:核心功能设计

  • 多轮对话:让用户自然追问
  • 意图识别和路由:查订单、退换货、投诉走不同处理链路
  • 兜底策略:检索不到或置信度低时主动说"不确定",引导转人工
  • 人工协同:把对话上下文和检索结果推给人工客服

第四步:效果验证
核心指标:首次解决率、人工转接率、平均响应时间、用户满意度。建bad case库每周复盘。

面试加分项:说明幻觉控制的具体策略和兜底话术设计


【真题10】RAG的核心价值是什么?

面试官问:RAG在大模型应用开发中的核心价值是什么?

考查点:理解RAG解决的本质问题

参考解析

RAG的核心价值是补大模型的短板,解决两个关键问题:

1. 解决知识时效性
大模型训练数据有时间限制,比如GPT可能停在某个时间点,新政策新信息不知道。RAG把外部知识和大模型结合,回答更有依据,能使用最新的专业数据,减少胡说八道。金融、医疗这类严谨领域特别关键。

实际做法:对接政务官网等数据源,新闻政策发布就自动抓取解析;每天凌晨全量比对索引,把过期政策标为失效,检索时直接过滤;增量更新让业务专家人工确认,避免机器误判。

2. 解决知识容量限制
大模型上下文窗口再大也容不下一个公司几GB的知识库。向量数据库能把知识库拆成小块转成向量存储,用户提问时先找最相关的答案再喂给模型生成回答。既不用让模型记海量内容,又能实时更新数据。

面试加分项:对比RAG和微调各自的适用场景


效果评估真题

【真题11】如何评估RAG系统的效果?

面试官问:你是怎么样评估RAG系统效果的?

考查点:评估指标体系的建立

参考解析

RAG评估针对检索和生成两个环节:

检索环节指标

  • MRR(平均倒数排名):判断召回内容准不准
  • Hit Rate@K:前K个结果命中率
  • NDCG:排序指标,判断排序合不合理

生成环节评估
三类方法:

  1. 量化指标:ROUGE文本相似度、关键词重合度,看生成内容和正确答案的匹配度
  2. 多样性评估:检查模型能否生成多种合理相关答案,避免只说一种话
  3. 人类评估:让产品经理、测试人员、内测用户给回答质量、准确度、连贯性打分

实际项目中要看关键指标:用户满意度、首次解决率、有没有幻觉、是否第一轮就答对。

面试加分项:说明AB测试持续验证各环节优化效果


【真题12】RAG为什么会出现幻觉?怎么解决?

面试官问:RAG为什么会出现幻觉?有什么解决思路?

考查点:幻觉问题的原因分析和解决方案

参考解析

幻觉原因分两类

1. 生成结果和数据源对不上

  • 训练数据和源数据没有对齐有偏差
  • 编码器没理解好内容
  • 解码器在生成策略时出错

2. 用户问题超出大模型认知
模型本来就不懂这个问题,自然容易瞎答。

解决思路

数据层面:找到更精准的知识或删掉虚假数据,减少偏差;增加纠偏规则,用ReAct思想让模型输出后反思是否和上下文一致。

架构层面:集成知识图谱,不只靠向量数据库匹配。召回时既看文档也看知识图谱三元组,用图谱的结构化数据帮RAG系统提高推理能力,减少幻觉。

兜底层面:模型不确定时输出"根据当前信息不足,无法回答该问题",别乱猜。

面试加分项:说明各类bad case的分情况处理策略


【真题13】RAG系统有哪些常见的bad case?怎么处理?

面试官问:实际项目中遇到过哪些能力边界的case?怎么解决?

考查点:处理边界情况的经验

参考解析

按bad case类型分情况处理:

1. 无效问题
数据库没有相关答案。做法是加准入判别:用分类模型或大模型加Prompt判断要不要回答,无效问题让模型输出预设兜底话术。

2. 随时间变化的问题
这类问题容易过期,不好保证准确。在推理模块加规则和提示工程,模型不确定时说"根据当前信息不足,无法回答该问题",别乱猜。

3. 格式错误
模型没按预定格式生成答案,导致无法解析。准备一份备用的大模型,解析失败就调用备用模型生成简洁准确的回答。

面试加分项:说明建立bad case库持续迭代的机制


【真题14】RAG优化有哪些实战技巧?

面试官问:你在RAG项目中做过哪些优化?

考查点:实际项目中的优化经验

参考解析

文档切分优化
一开始按500个token硬切,经常把一段话腰斩,检索出来前言不搭后语。改成按段落或标题切,加100-200个token重叠,准确率提升15%。

混合检索
不只向量检索,加关键词检索做混合召回。人名、专业术语光靠语义容易漏,关键词一抓一个准。但要注意向量分和关键词分不能简单相加,数值范围不一样会偏。用轻量排序模型(如BGE-Reranker)统一打分。

重排序筛选
召回太多片段给大模型又贵又慢。加重排序模型对前二三十个结果打分,只取top 3给大模型,省钱又减少噪声。

Query扩写
用户问题太短(比如只问"怎么用"),用小模型把问题扩写生成几个变体再查,覆盖更全。

多源检索
复杂问题从FAQ、用户手册、技术文档多个地方同时查,结果汇总避免信息不全。

成本控制
重排序模型一次200毫秒,用户并发100请求延迟就炸。策略是简单问题直接用向量top 5,复杂问题才开重排序。

面试加分项:每个改动都做AB测试验证效果,最终用户满意度从60%提到85%


以上14道真题覆盖了RAG系统从构建、优化到排查的完整链路,掌握这些考点,RAG面试基本稳了。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐