Appearance
RAG-整体链路
大类:AI大模型应用 · 共 18 题 · 检索页定位
选择题(10)
q072 · 简单
RAG(检索增强生成)主要用来解决大模型的哪类问题?
A. 让模型推理速度提升数倍
B. 知识截止、私有数据无法触达、容易产生幻觉
C. 让模型自动学会调用外部工具
D. 降低模型部署的显存需求
参考答案要点
- LLM 三大缺陷:知识截止(训练数据有时间边界)、私有数据无法触达、容易幻觉
- RAG 核心思路:生成前先从外部知识库检索相关信息塞进 Prompt,让 LLM 基于事实回答
- RAG 不是替代 LLM,而是给模型补充外部知识
- 能对比 RAG 与微调各自解决什么问题更佳
来源:[notes.kamacoder.com](https://notes.kamacoder.com/interview/llm/rag_interview.html)
q243 · 中等
关于 Agentic RAG(代理式 RAG)与传统 RAG 的区别,下列说法错误的是?
A. Agentic RAG 把检索器封装成工具,由 Agent 自主决定何时检索、检索什么、是否需要补充检索
B. Agentic RAG 的路由器可以把不同类型的问题分发到向量检索、SQL 查询、Web 搜索等不同工具
C. Agentic RAG 依然按固定流水线依次执行"检索→生成",中途不可改变流程
D. Agentic RAG 可以把 Self-RAG 的自反思与 CRAG 的检索纠错作为子能力组合使用
参考答案要点
- 传统 RAG 是固定 pipeline:query→检索→生成,一次性完成
- Agentic RAG 核心是"检索即工具":Agent 规划、决定检索时机与内容、评估结果质量、判断何时停止
- 支持多工具路由:向量库、SQL、Web 搜索、API 等按问题类型选择
- Self-RAG(自反思)与 CRAG(纠错)可作为 Agentic RAG 框架内的子策略
- 代价:多轮 LLM 决策带来更高延迟与 token 成本,需要护栏控制步数
来源:[developer.nvidia.cn](https://developer.nvidia.cn/blog/traditional-rag-vs-agentic-rag-why-ai-agents-need-dynamic-knowledge-to-get-smarter/)
q244 · 困难
关于 Self-RAG 与 Corrective RAG(CRAG)的比较,下列说法正确的是?
A. 两者都不需要微调模型,改改提示词就能上线
B. Self-RAG 通过训练模型输出反思标记(reflection tokens)来决定是否检索并自评答案质量;CRAG 用轻量检索评估器给文档打分,检索质量差时触发 Web 搜索等备用方案托底
C. CRAG 必须微调底座模型才能使用
D. Self-RAG 主要解决"检索结果质量差"的问题,而 CRAG 主要解决"要不要检索"的问题
参考答案要点
- Self-RAG:训练 LLM 输出 Retrieve/ISREL/ISSUP/ISUSE 等反思标记,决策点在"是否检索、文档是否相关、答案是否被支持"
- Self-RAG 需要微调训练,不是纯提示词工程
- CRAG:无需微调,加检索评估器将结果分为 Correct/Incorrect/Ambiguous,质量差时启用 Web 搜索等备用检索
- 两者决策点不同:Self-RAG 偏"要不要检索+生成后自评",CRAG 偏"检索结果纠错与托底"
- 两者都可作为 Agentic RAG 的子模块
来源:[zhuanlan.zhihu.com](https://zhuanlan.zhihu.com/p/2018847812394197913)
q393 · 简单
关于 RAG 系统中检索阶段与生成阶段的职责划分,下列说法正确的是?
A. 检索阶段负责判断答案对错,生成阶段负责把 query 改写得更好
B. 两个阶段调用的是同一个模型,因此职责没有区别,可以合并优化
C. 检索阶段负责从知识库中找出与问题相关的证据,生成阶段负责仅基于这些证据组织出答案
D. 生成阶段负责补全检索阶段漏掉的关键词匹配
参考答案要点
- 正确答案 C. 检索阶段负责从知识库中找出与问题相关的证据,生成阶段负责仅基于这些证据组织出答案
- A. 职责说反了:改写 query 属于检索前的 Query 改写,判断证据是否支撑答案属于生成后自校验,都不归这两个阶段本体的分工。
- B. 向量检索用的是 embedding 模型,生成用的是 LLM,两者完全可以是不同模型、独立选型与独立评估;可分开优化、分开归因正是 RAG 工程化的前提。
- D. 关键词匹配是 BM25/检索侧的事,生成阶段不做任何补检索的动作。
来源:[notes.kamacoder.com](https://notes.kamacoder.com/interview/llm/rag_interview.html)
q394 · 中等
企业知识库 RAG 上线后,产品文档每周都会更新。关于知识库的更新策略,下列做法正确的是?
A. 新版本文档入库的同时,删除或下线同一文档旧版本的 chunk,避免新旧版本同时被召回、答案自相矛盾
B. 只往索引里追加新版本,旧版本 chunk 保留得越全越好,让模型自己判断哪个新
C. 文档更新后不需要动索引,LLM 参数里已经学过这些内容,会自动给出最新答案
D. 任何一篇文档改了一个错别字,都必须全量重建整个向量库
参考答案要点
- 正确答案 A. 新版本文档入库的同时,删除或下线同一文档旧版本的 chunk,避免新旧版本同时被召回、答案自相矛盾
- B. 只新增不删除是典型反模式:新旧版本同时被召回,模型会同时引用两版内容,出现口径打架。
- C. LLM 权重不会因文档更新而变化,RAG 的知识全靠检索,不更新索引就永远检索旧内容。
- D. 按文档粒度增量更新(upsert)即可;只有 embedding 模型升级这类导致向量空间变化的改动才必须全量重建。
来源:[javaguide.cn](https://javaguide.cn/ai/interview-questions/rag-interview-questions.html)
q395 · 中等
团队决定把知识库的 embedding 模型从 bge-large-zh-v1.5 换成 bge-m3。关于迁移操作,下列说法正确的是?
A. 新旧模型的向量维度如果一样,老数据就不用重新计算,可以直接混用
B. 只需重启检索服务,让新模型对线上查询生效即可
C. 只对新入库的文档用新模型,历史数据保持旧模型向量,这样最省算力且没有副作用
D. 必须用新模型对全量文档重新 embedding 并重建索引,因为不同模型的向量空间完全不同,新旧向量不能直接计算相似度
参考答案要点
- 正确答案 D. 必须用新模型对全量文档重新 embedding 并重建索引,因为不同模型的向量空间完全不同,新旧向量不能直接计算相似度
- A. 维度相同也只说明向量长度一样,两个模型把语义映射到了不同的空间,坐标不可比。
- B. 重启服务改变不了库里已存的旧向量。
- C. 混用两个模型的向量会导致同一空间内语义距离失真,检索质量大幅劣化;省下的算力远抵不上效果损失。
来源:[javaguide.cn](https://javaguide.cn/ai/interview-questions/rag-interview-questions.html)
q396 · 中等
用户的问题可能落在"A 产品文档、B 产品文档、公司制度 FAQ"三个不同知识源上。在检索之前先加一个"判断 query 属于哪个领域、再路由到对应数据源"的组件,该组件是?
A. Reranker(重排器)
B. Query Router(查询路由)
C. HyDE(假设性文档嵌入)
D. Cross-Encoder(交叉编码器)
参考答案要点
- 正确答案 B. Query Router(查询路由)
- A/C/D 都作用于检索环节内部:Reranker 与 Cross-Encoder 是对已召回的候选做精细排序;HyDE 是让模型先生成一段假设性答案文档、用它去做向量检索来提升语义匹配。它们都不负责"选数据源"。
来源:synthesized
q397 · 中等
RAG 系统在检索结果相似度都低于阈值时,让模型固定回答"未在知识库中找到相关信息"。这种"兜底拒答"机制的主要作用是?
A. 降低 embedding 服务的调用量
B. 提升检索 Top-K 的召回率
C. 减少无依据的幻觉回答:检索不到可靠证据就不强行作答,同时给用户明确预期
D. 加快首 token 的响应速度
参考答案要点
- 正确答案 C. 减少无依据的幻觉回答:检索不到可靠证据就不强行作答,同时给用户明确预期
- A. 兜底只是不再走完整生成,省钱是副作用,主要目的是防幻觉。
- B. 拒答发生在检索之后,不会改变检索本身的召回率;召回问题要靠 top_k、混合检索、rerank 等解决。
- D. 与首 token 延迟无关。
来源:[notes.kamacoder.com](https://notes.kamacoder.com/interview/llm/rag_interview.html)
q398 · 中等
Naive RAG(朴素 RAG:解析入库→单次检索→拼接生成,无任何中间优化)上线后,下列哪项不属于它的典型系统性短板?
A. 检索结果与问题相关度参差不齐,噪声 chunk 混进上下文
B. "A 产品和 B 产品的退款政策有什么区别"这类多跳/对比问题,单次检索往往只覆盖其中一个对象
C. 检索效果不理想时,链路没有任何自我纠正的机会,只能一次生成定成败
D. 模型权重会随着用户查询次数的增加而自动更新,导致线上行为漂移
参考答案要点
- 正确答案 D. 模型权重会随着用户查询次数的增加而自动更新,导致线上行为漂移
- A/B/C 都是 Naive RAG 的经典短板,分别对应引入 rerank、query 拆解/多路召回、Agentic RAG(自我纠正)来改进。
- D. RAG 是推理期的外挂知识方案,完全不改动模型权重;"查询越多权重越漂移"不成立,这正是 RAG 相对微调的特点之一。
来源:synthesized
q399 · 困难
知识库 RAG 上线后业务反馈:"文档明明已经上传入库了,但问到相关内容就是搜不到"。以下哪项最不可能是原因?
A. 生成阶段的 temperature 被设成了 0.1
B. 入库与查询使用了不同的 embedding 模型,两边向量空间不一致
C. chunk 切得过大,关键语句被大量无关内容稀释,相似度分数被拉低
D. 检索时带了错误的 metadata 过滤条件(如错误的部门标签),把目标文档整个过滤掉了
参考答案要点
- 正确答案 A. 生成阶段的 temperature 被设成了 0.1 —— temperature 只影响生成阶段的采样随机性,与检索阶段能否召回完全无关,所以它最不可能是"搜不到"的原因。
- B. 两端模型不一致是"入库了却搜不到"的经典原因:坐标体系不同,算出的相似度没有意义。
- C. chunk 过大会稀释语义,目标句的向量被平均掉,分数排不进 Top-K。
- D. pre-filter 条件错误会把文档在进入相似度计算之前就排除,表现就是彻底召不回。
来源:[javaguide.cn](https://javaguide.cn/ai/interview-questions/rag-interview-questions.html)
简答题(6)
q001 · 简单
用你自己的话讲清楚 RAG 的完整链路:从用户提一个问题,到系统返回带依据的答案,中间每一环做什么、为什么需要它。另外,面试官如果追问「为什么不直接把所有知识塞进 prompt 让大模型自己答」,你怎么回答?
参考答案要点
- 链路完整且有序:query理解/改写→检索→重排过滤→拼prompt→生成→引用溯源
- 每一环的为什么(向量检索解决语义匹配、rerank解决粗排精度、控制上下文噪声)
- 不塞prompt的理由≥2条:窗口限制/知识时效/token成本/权限隔离
- 能讲trade-off而非背流程:检索质量决定上限,生成模型决定下限
- 工程细节加分:chunk/top-k/混合检索/评估闭环
- 类比后端经验(索引/精排/审计日志)是强加分
来源:seed
q002 · 中等
企业知识库有 10 万篇文档,RAG 上线后答案经常张冠李戴(引用了不相关文档)。你会怎么系统性排查和优化?说出你的排查顺序和每步的判断依据。
参考答案要点
- 先定位问题环节:检索召回问题 vs 生成幻觉问题,分开度量
- 构造评测集,分别测召回率(hit rate/MRR)和答案忠实度(faithfulness)
- 检索侧优化:query改写、混合检索、调chunk策略、rerank
- 生成侧优化:prompt约束「仅根据给定上下文回答」、引用强制、拒答机制
- 有数据驱动的迭代闭环意识,而非拍脑袋改
来源:seed
q073 · 中等
请描述生产级 RAG 系统的完整链路,并说明每个环节的关键决策点是什么?
参考答案要点
- 七步链路:Query → 文档处理 → Chunking → Embedding → 检索 → Rerank → 生成
- 文档处理:PDF/Word 解析、OCR 与表格处理;Chunking:切多大、overlap 多少、按语义还是固定长度
- Embedding:模型选择、维度、语言匹配;检索:纯向量还是混合、Top-K 设置
- Rerank:模型选择,重排后取 Top-N;生成:Prompt 设计与幻觉约束
- 面试要点是讲清每一步的关键决策与理由,而不是罗列工具名
- 加分项:主动指出脏乱文档(表格/PPT)的数据治理才是落地最大痛点
来源:[notes.kamacoder.com](https://notes.kamacoder.com/interview/llm/rag_interview.html)
q074 · 中等
RAG 和传统搜索引擎有什么区别?现在大模型上下文窗口已经很长了,长上下文会不会取代 RAG?
参考答案要点
- 搜索引擎返回文档链接,RAG 基于语义检索生成整合后的自然语言答案
- RAG 用向量/embedding 做语义匹配,传统搜索主要靠关键词匹配
- 长上下文不会完全取代 RAG:成本(Token 费用)、延迟、大海捞针精度有限、知识更新频率都是限制
- Lost in the Middle 问题:长上下文中间部分信息容易被模型忽略
- 实际系统常是长上下文与 RAG 配合,而不是二选一
来源:[javaguide.cn](https://javaguide.cn/ai/interview-questions/rag-interview-questions.html)
q245 · 困难
什么是 GraphRAG?它解决了传统向量 RAG 的什么问题?基本原理和代价是什么?与 LightRAG 有何区别?
参考答案要点
- 传统向量 RAG 擅长局部事实查询,难以回答全局性/总结性/多跳问题(如"这批文档的主要争议点是什么")
- GraphRAG 原理:用 LLM 从文档抽取实体与关系构建知识图谱,再对图做社区检测(如 Leiden 算法)分层聚类,并为每个社区生成摘要
- Local Search 在具体实体邻域内检索;Global Search 利用社区摘要回答全局性问题
- 代价:索引构建阶段 LLM 调用多、token 消耗大、成本高,图谱维护与更新复杂
- LightRAG:用实体+关系的双层检索替代昂贵的社区摘要,构建成本更低、增量更新更友好
来源:[zhuanlan.zhihu.com](https://zhuanlan.zhihu.com/p/2032430219286590896)
q246 · 中等
生产环境 RAG 的失败模式可以怎么系统分类?请给出一套用于 badcase 归因的分类框架。
参考答案要点
- 请求侧:query 本身模糊、有歧义或含错误前提,需要澄清或拒答
- 检索侧:①相关文档根本不在库中(数据覆盖问题);②召回未命中(嵌入模型/分块破坏语义);③命中但排序靠后被 Top-K 截断(缺重排);④多跳问题所需信息分散在多个文档
- 生成侧:①上下文有答案但答错(理解/推理问题);②无视上下文编造(幻觉/忠实度问题);③该拒答时不拒答(过度自信)
- 归因方法:金标准上下文替换实验——把正确资料手工塞进 prompt,若答对则是检索锅,仍答错则是生成锅
- 配合分层指标定位:Context Recall 低指向检索, Faithfulness 低指向生成
来源:[notes.kamacoder.com](https://notes.kamacoder.com/interview/llm/rag_interview.html)
场景题(2)
q075 · 困难
公司要为内部上万名员工搭建企业知识库问答系统,涵盖规章制度、产品文档、FAQ,文档由各部门分散维护、经常更新。请你从 0 到 1 设计这套 RAG 系统,说明架构分层、上线策略和效果保障手段。
参考答案要点
- 数据层:多格式解析 + 元数据(部门、权限、版本、来源),脏数据清洗与结构化保留标题层级
- 检索层:混合检索(向量+BM25)+ Rerank,典型配置检索捞 Top-20、重排取 Top-5
- 生成层:Prompt 幻觉约束、引用溯源标注来源、相似度低于阈值时拒答兜底
- 权限:按部门/角色做检索过滤,防止越权信息进入上下文
- 上线前建立评测集与失败样本集,小流量灰度,新旧版本双索引切换与回滚
- 持续运营:监控准确率/幻觉率,失败样本回流迭代;知识库更新需增量同步与旧版本下线
来源:[notes.kamacoder.com](https://notes.kamacoder.com/interview/llm/rag_interview.html)
q247 · 困难
你的知识库问答系统上线后,大量问题类似"A 产品和 B 产品的退款政策有什么区别""去年和今年 Q2 的报销标准有什么变化"。这类多跳对比问题在当前"单次检索→生成"链路下常常只召回其中一个对象的信息。请给出你的升级方案,并说明带来的代价与应对。
参考答案要点
- 查询分解:把复合问题拆成多个子查询(A 一个、B 一个)分别检索再合并证据
- 多路召回+RRF 融合,避免单路召回偏科
- Agentic RAG 方案:Agent 判断该问题需要两次以上检索,自主循环"检索A→检索B→比对→补充"直到信息齐全
- 结构化元数据过滤:入库时打产品/年度等字段标签,query 抽取实体后先过滤再检索
- 代价与应对:多次检索推高延迟与 token 成本——子查询并行化、设置最大检索步数、简单 query 走原链路(路由分流)
- 验证:专门构造多跳测试集,对比升级前后通过率
来源:[notes.kamacoder.com](https://notes.kamacoder.com/interview/llm/rag_interview.html)