Sunday 的面试指南

RAG 练习题:向量检索、混合检索与质量评估

《Agent 大模型 0 到 1 系统课》 · 程序员 Sunday

本章共 26 道习题,包含单选题、判断题和简答题,覆盖 RAG 入库、检索、精排、答案生成与质量评估的完整链路。

1

题型: 单选题 难度: 简单

题干: RAG 主要解决大语言模型在企业应用中的什么问题?(复习题)

选项A: 让模型参数量自动增加 选项B: 在模型调用前检索外部资料,并让模型基于资料回答 选项C: 让模型永久记住所有用户 选项D: 完全消除模型调用成本

正确答案: B

解析: RAG 的核心是“先检索,再生成”。应用程序先从外部知识库找到与问题相关的资料,再把资料和问题一起交给模型,用于接入私有知识、更新知识并提供回答依据。

2

题型: 单选题 难度: 中等

题干: Embedding、向量和 Embedding 模型之间是什么关系?(复习题)

选项A: 三者是同一个概念 选项B: Embedding 是转换过程,向量是结果,Embedding 模型负责执行转换 选项C: 向量负责分块,Embedding 模型负责存储文档 选项D: Embedding 只适用于关键词完全相同的文本

正确答案: B

解析: Embedding 表示把文本映射到语义空间的过程,向量是转换后得到的一组数字,Embedding 模型则负责完成这个转换。语义接近的文本通常会被映射到更接近的位置。

3

题型: 单选题 难度: 困难

题干: 文档向量由模型 A 生成,用户问题向量由模型 B 生成,两边碰巧都是 1,024 维。能否直接比较?(理解题)

选项A: 可以,只要维度相同就能比较 选项B: 可以,只要文本语言相同就能比较 选项C: 通常不可以,不同模型学习到的语义空间可能不同 选项D: 只能比较文本长度,不能比较语义

正确答案: C

解析: 维度相同不代表语义坐标系相同。文档和问题通常必须使用同一个 Embedding 模型及兼容配置生成向量。更换模型后,知识库中的文档一般需要重新向量化并重建索引。

4

题型: 单选题 难度: 中等

题干: 关于向量距离和相似度,下面哪一项正确?(复习题)

选项A: 距离越大越相关,相似度越小越相关 选项B: 距离越小通常越接近,相似度越大通常越接近 选项C: 距离和相似度都只能比较关键词 选项D: 两者数值方向永远完全相同

正确答案: B

解析: 距离和相似度都在描述向量是否接近,但排序方向不同。距离通常越小越接近,相似度通常越大越接近。具体还要结合向量数据库返回的是距离还是相似度来处理。

5

题型: 单选题 难度: 中等

题干: TopK 和 minSimilarity 分别解决什么问题?(理解题)

选项A: TopK 控制最多返回几条,minSimilarity 过滤相关性过低的结果 选项B: TopK 负责向量化,minSimilarity 负责分块 选项C: TopK 负责权限,minSimilarity 负责版本更新 选项D: 两者都只用于减少文档存储空间

正确答案: A

解析: TopK 规定最多取排名靠前的 K 条候选资料,minSimilarity 则设置最低相关性门槛。只用 TopK 可能在没有相关资料时仍然返回若干结果,因此两者可以配合使用。

6

题型: 单选题 难度: 中等

题干: 为什么企业 RAG 通常需要把长文档分成 Chunk?(复习题)

选项A: Embedding 模型完全不能接收长文本 选项B: 为了让检索单位更精确,并减少无关内容进入上下文 选项C: 为了删除文档标题和来源 选项D: 因为向量数据库只能保存一句话

正确答案: B

解析: 整份文档可能包含多个主题。分块以后,系统可以直接召回回答当前问题所需的局部内容,减少语义信号被稀释、无关内容占用上下文以及来源定位不精确的问题。

7

题型: 单选题 难度: 中等

题干: Metadata、Chunk ID 和版本字段在知识库中分别有什么作用?(复习题)

选项A: 只用于让数据库界面更美观 选项B: Metadata 保存业务属性,Chunk ID 唯一定位内容,版本字段管理新旧资料 选项C: 三者都用于计算余弦相似度 选项D: Chunk ID 可以直接代替 Chunk 原文

正确答案: B

解析: Metadata 可以保存标题、来源、租户、部门等属性;Chunk ID 用于唯一定位和引用;版本字段用于控制当前生效资料并保留历史记录。这些数据还支持过滤、更新和来源追溯。

8

题型: 单选题 难度: 中等

题干: Milvus 和 Zilliz Cloud 的关系更接近下面哪一项?(复习题)

选项A: 两者是完全无关的数据库 选项B: Milvus 是开源向量数据库,Zilliz Cloud 提供托管的 Milvus 云服务 选项C: Milvus 只能保存文本,Zilliz Cloud 只能保存图片 选项D: Zilliz Cloud 是一个 Embedding 模型

正确答案: B

解析: Milvus 适合本地开发或团队自行部署维护,Zilliz Cloud 是托管服务,适合希望减少集群运维工作的团队。两者使用场景不同,但核心向量数据库能力具有对应关系。

9

题型: 单选题 难度: 中等

题干: BM25 更擅长处理下面哪类查询?(场景题)

选项A: 用户换了一种说法表达相同语义 选项B: 精确匹配订单号、错误码、合同编号或产品型号 选项C: 识别图片中的商品破损 选项D: 生成自然语言回答

正确答案: B

解析: BM25 主要利用词项匹配、词频、词的稀有程度和文档长度进行排序,适合规则编号、错误码和产品型号等精确关键词。向量检索更擅长用词不同但语义相近的情况。

10

题型: 单选题 难度: 中等

题干: 中文 BM25 检索中的 Analyzer 通常负责什么?(复习题)

选项A: 把原始文本经过 Tokenizer 分词,再通过 Filter 清理结果 选项B: 调用大语言模型生成答案 选项C: 把稠密向量转换成图片 选项D: 管理文档权限和版本

正确答案: A

解析: Analyzer 是一条文本处理流程。Tokenizer 负责分词,例如使用 jieba 处理中文;Filter 负责清理分词结果,例如 removepunct 可以移除标点 Token。最终 Token 用于构建稀疏表示和关键词检索。

11

题型: 单选题 难度: 困难

题干: 为什么混合检索常使用 RRF,而不直接比较 BM25 分数和余弦相似度?(理解题)

选项A: RRF 能把文本自动转换成向量 选项B: 两种分数的范围和含义不同,RRF 可以根据各自排名进行融合 选项C: RRF 只保留 BM25 结果 选项D: 余弦相似度不能排序

正确答案: B

解析: BM25 分数和向量相似度并非同一量纲,直接比较容易让某一路线天然占优。RRF 根据文档在不同结果列表中的排名进行融合,降低原始分值尺度差异带来的影响。

12

题型: 单选题 难度: 中等

题干: Query Rewrite 和 Multi-Query 的主要区别是什么?(复习题)

选项A: Query Rewrite 优化一条查询,Multi-Query 从多个角度生成多条查询 选项B: Query Rewrite 用于删除文档,Multi-Query 用于向量入库 选项C: 两者都只负责答案生成 选项D: Multi-Query 只能生成关键词完全相同的问题

正确答案: A

解析: Query Rewrite 把含糊、口语化的问题改写成更适合检索的一条查询。Multi-Query 会从多个表达或子问题角度生成多条查询,以扩大候选资料的召回范围。

13

题型: 单选题 难度: 中等

题干: Rerank 在 RAG 链路中的主要作用是什么?(复习题)

选项A: 在全部知识库数据上代替向量数据库进行暴力搜索 选项B: 对已经召回的候选资料进行更精细的相关性排序 选项C: 把 Markdown 解析成 AST 选项D: 保存用户历史会话

正确答案: B

解析: 召回阶段优先快速找出一批可能相关的候选资料,Rerank 再逐条判断问题与候选资料的相关性,把更能回答问题的 Chunk 排到前面。它属于候选资料的精排阶段。

14

题型: 单选题 难度: 困难

题干: 为了保证 RAG 的来源引用可信,服务端应该怎样处理模型返回的 sourceChunkIds?(实践题)

选项A: 直接展示模型生成的标题和链接 选项B: 校验 ID 是否属于本次候选 Chunk,再从服务端数据重新绑定来源信息 选项C: 允许模型引用知识库中任意 ID 选项D: 把 ID 删除,只保留模型的自然语言说明

正确答案: B

解析: 模型只能从系统提供的候选 Chunk 中选择引用对象。服务端需要校验 ID,再使用真实 Chunk 重新绑定标题、版本、路径和原文,防止模型编造不存在的来源。

15

题型: 单选题 难度: 困难

题干: 某次评估中,正确资料没有出现在 Top5;另一次出现在第 5 名;还有一次资料正确但答案添加了资料中不存在的结论。三类问题应分别重点查看什么指标?(综合题)

选项A: Faithfulness、Recall@K、MRR 选项B: Recall@K、MRR、Faithfulness 选项C: MRR、Faithfulness、Recall@K 选项D: 三种情况都只看 Token 数量

正确答案: B

解析: Recall@K 检查该找的资料是否进入 TopK;MRR 关注第一条正确资料的排名;Faithfulness 检查最终答案是否忠实于检索证据。三者分别定位召回、排序和答案生成问题。

16

题型: 单选题 难度: 困难

题干: 企业知识库的租户和部门权限过滤,最可靠的实现位置是什么?(实践题)

选项A: 只写进 Prompt,提醒模型不要越权 选项B: 由服务端根据可信身份构造 Metadata Filter,并加入数据库查询 选项C: 让用户在问题中填写 tenantId 选项D: 检索结束后让模型自行删除越权资料

正确答案: B

解析: 权限过滤必须由服务端可信身份和确定性代码控制。查询向量数据库时就应加入租户、部门和文档状态等过滤条件,避免越权 Chunk 进入候选结果和模型上下文。

17

题型: 判断题 难度: 中等

题干: 一份售后手册可以直接整体生成一个向量,因此企业 RAG 通常不需要分块。(复习题)

选项A: 正确 选项B: 错误

正确答案: B

解析: 整篇生成向量在技术上可能可行,但检索单位过粗。多个主题会被压缩到一个表示中,返回时还会携带大量无关内容。企业 RAG 通常需要按标题、段落和语义边界分块。

18

题型: 判断题 难度: 中等

题干: 两个 Embedding 模型输出的向量维度相同,就一定可以直接进行相似度比较。(理解题)

选项A: 正确 选项B: 错误

正确答案: B

解析: 不同模型可能学习了不同的语义空间。即使维度相同,两组数字也不一定处于同一坐标系。文档和查询应使用同一个 Embedding 模型及兼容配置。

19

题型: 判断题 难度: 简单

题干: 向量数据库只能保存向量,不能保存 Chunk 原文和 Metadata。(复习题)

选项A: 正确 选项B: 错误

正确答案: B

解析: 向量数据库通常会同时保存向量、Chunk 原文和 Metadata。检索得到向量结果以后,系统还需要读取原文用于生成答案,并使用 Metadata 完成过滤、来源引用和版本管理。

20

题型: 判断题 难度: 中等

题干: 混合检索时,把向量检索结果放前面、BM25 结果放后面,就完成了可靠的融合排序。(理解题)

选项A: 正确 选项B: 错误

正确答案: B

解析: 简单拼接会产生重复结果和固定路线偏差,也无法形成可信的统一排名。通常需要使用 WeightedRanker、RRF 等融合方法,并对重复 Chunk 去重。

21

题型: 判断题 难度: 困难

题干: 模型返回了一个格式正确的 Chunk ID,就可以直接认为该来源真实可信。(实践题)

选项A: 正确 选项B: 错误

正确答案: B

解析: 格式正确不代表 ID 真实存在,也不代表它属于本次候选资料。服务端仍需根据允许引用的 Chunk 集合校验 ID,并从数据库重新绑定来源信息。

22

题型: 简答题 难度: 困难

题干: 请按顺序说明一份 Markdown 企业资料从上传到最终回答用户问题,需要经过哪些主要步骤。(流程题)

参考答案:

○ 解析 Markdown 结构,清洗无关内容,并按标题、段落或语义边界切分成 Chunk。

○ 为 Chunk 生成稳定 ID,补充标题、来源、租户、部门、版本和生效状态等 Metadata。

○ 使用同一个 Embedding 模型把 Chunk 转成向量,并将向量、原文和 Metadata 写入向量数据库。

○ 用户提问后进行 Query Rewrite 或 Multi-Query,再执行向量检索、BM25 或混合检索。

○ 对候选结果去重、融合和 Rerank,筛选真正能支持答案的资料。

○ 将问题和入选 Chunk 交给模型生成答案,校验来源 Chunk ID;资料不足时拒绝回答。

○ 使用 Recall@K、MRR 和 Faithfulness 分别评估召回、排序和答案忠实度。

23

题型: 简答题 难度: 困难

题干: 为什么 Chunk 不能越小越好?设计分块策略时需要考虑哪些因素?(思维题)

参考答案:

○ Chunk 太大会混入多个主题,使语义表示不够集中,并浪费模型上下文。

○ Chunk 太小可能把适用条件和结论拆开,使单个结果无法独立表达完整含义。

○ 应优先利用标题层级、段落和语义边界切分,并把必要的标题路径带入 Chunk。

○ 对超长段落可以设置最大长度和适量 overlap,降低关键句刚好被切断的风险。

○ 最终参数要通过真实查询集和 Recall@K、MRR 等指标验证,不能只凭固定字数决定。

24

题型: 简答题 难度: 困难

题干: 请说明向量检索、BM25、混合检索和 Rerank 在同一条 RAG 链路中的分工。(复习题)

参考答案:

○ 向量检索负责寻找语义接近的 Chunk,适合用户表达与文档原文不同的情况。

○ BM25 负责关键词相关性,适合编号、型号、错误码和专有名词等精确匹配。

○ 混合检索同时召回两条路线的候选结果,再通过加权融合或 RRF 形成统一排名。

○ Rerank 对融合后的较小候选集合做更精细的相关性判断,选出最终交给模型的 TopN。

○ 整体思路是先扩大召回范围,再逐步提高候选资料的精度。

25

题型: 简答题 难度: 困难

题干: 企业制度文档更新后,怎样避免新旧内容同时参与正常检索?怎样避免其他部门看到无权访问的资料?(实践题)

参考答案:

○ 上传时先通过 checksum 判断内容是否发生变化,未变化时跳过重复解析和向量化。

○ 内容变化后生成新版本 Chunk,并使用 version、is_active 等字段控制当前生效版本。

○ 旧版本可以保留用于追溯,但正常检索只查询当前生效版本。

○ 文档 Metadata 中保存 tenantId、department 或可见范围。

○ 服务端根据当前登录身份构造数据库 Filter,在检索阶段同时限制租户、部门和生效状态。

26

题型: 简答题 难度: 困难

题干: 某 RAG 系统经常出现三类问题:正确资料没有召回、正确资料排在很后面、资料正确但模型回答加入了不存在的规则。请分别给出定位指标和优化方向。(综合题)

参考答案:

○ 正确资料没有召回:重点查看 Recall@K,检查分块、Embedding、Query Rewrite、Multi-Query、BM25 和 TopK 设置。

○ 正确资料排在后面:重点查看 RR 或 MRR,检查融合方式、去重逻辑、RRF 参数和 Rerank 效果。

○ 资料正确但答案加入不存在的规则:重点查看 Faithfulness,约束回答只能基于候选 Chunk,并加入来源校验和资料不足拒答。

○ 评估应使用固定测试集重复运行,避免只凭几次人工提问判断系统质量。

添加作者微信 · 购买完整课程

解锁完整课程 ¥499

《Agent 大模型 0 到 1 系统课》
扫码添加微信,备注「Agent 课程」,购买后由 Sunday 提供完整内容的学习方式。

扫码添加作者微信 LGD_Sunday,购买 499 元 Agent 课程

微信昵称:LGD_Sunday
手机上可长按保存二维码,再用微信扫一扫识别。

保存微信二维码