1. RAG 基础架构设计
问题:对比单阶段检索(Single-stage Retrieval)与两阶段检索(Two-stage Retrieval)在 RAG 系统中的架构差异,说明在企业知识库场景下为何优先选择两阶段检索?
答案:
单阶段检索直接通过向量数据库对用户 query 进行一次相似度匹配返回结果,架构简单但精度有限;两阶段检索则先通过召回阶段(如向量检索 + 关键词检索)获取候选文档,再通过重排序阶段(如 Cross-Encoder 模型)对候选结果精细化排序,输出最终答案。
企业知识库场景优先选择两阶段检索的原因:
-
提升召回全面性:企业数据常包含专业术语、 acronyms 等,单向量检索可能遗漏关键词匹配的关键文档,结合关键词检索(如 Elasticsearch BM25)可覆盖更多相关内容。
-
优化排序精度:重排序阶段通过 Cross-Encoder 计算 query 与文档的深层语义关联,能有效过滤表面相似但实际无关的文档(如同名不同义的技术术语)。
-
适配复杂场景:企业知识库存在多源异构数据(如文档、表格、PPT),两阶段架构可在召回阶段分别处理不同类型数据,重排序阶段统一打分,实验显示该策略可使答案准确率提升 25%-30%。
2. 检索优化技术
问题:解释向量数据库中的 IVF(Inverted File Index)与 HNSW(Hierarchical Navigable Small World)索引的原理,说明在高维向量(如 768 维)检索场景下如何选择?
答案:
IVF 索引通过聚类将向量划分为多个单元格(Voronoi cells),检索时先定位目标向量所属单元格,再仅在该单元格内计算相似度,适用于高维向量的快速召回,查询复杂度为 O (log n + k)(k 为单元格内向量数)。
HNSW 索引构建多层导航图,底层包含所有向量,上层为稀疏连接的导航节点,检索时从顶层开始通过贪心算法快速定位近似最近邻,复杂度接近 O (log n),精度更高但构建成本高。
在 768 维高维向量检索场景下的选择依据:
-
若追求高吞吐量(如每秒千级查询)且可接受 2%-5% 的精度损失,选择 IVF 索引,配合 PQ(Product Quantization)压缩向量至 64 字节,进一步提升速度。
-
若要求高精度检索(如法律、医疗知识库)且查询量适中,选择 HNSW 索引,设置 M=16(每层连接数)、ef_construction=200,平衡构建时间与检索质量。
实际应用中,企业级向量数据库(如 Milvus)通常支持动态切换索引,可根据业务峰谷调整策略。
3. 文档分块策略
问题:RAG 系统中,滑动窗口分块(Sliding Window Chunking)与语义分块(Semantic Chunking)各有何优劣?如何为技术手册类长文档设计分块方案?
答案:
滑动窗口分块按固定长度(如 512 tokens)切分文档,相邻块保留重叠区域(如 20% 重叠),实现简单但可能割裂语义单元(如跨块的代码逻辑)。语义分块通过大模型识别句子间语义关联,按完整语义单元(如段落、章节、逻辑单元)切分,保留语义完整性但依赖模型分块能力,计算成本高。
技术手册类长文档的分块方案设计:
-
基础分块:采用 “语义优先 + 滑动窗口兜底” 策略,先用语义分块识别技术章节(如 “安装步骤”“API 参数说明”),确保每个分块包含完整功能描述。
-
粒度适配:对代码片段、公式等密集信息采用小粒度分块(256 tokens),对概述性文字采用大粒度分块(1024 tokens),通过规则标记分块类型(如
<code>
<text>
)。 -
元数据增强:为每个分块添加层级元数据(如 “手册名称→章节→小节”),在检索时通过元数据过滤无关章节,实验显示该方案可使技术问题的答案相关性提升 18%。
4. 多模态 RAG 实现
问题:如何构建支持图文混合文档的多模态 RAG 系统?说明图像检索与文本检索的融合策略。
答案:
多模态 RAG 系统需同时处理文本与图像内容,核心架构包括多模态预处理、跨模态检索、融合生成三个模块:
-
多模态预处理:文本部分按常规分块嵌入;图像通过 CLIP 等模型提取视觉特征,同时生成图像描述文本(Alt-text),构建 “图像特征 + 描述文本” 双索引。
-
跨模态检索策略:
-
文本主导查询:先检索相关文本块,再通过文本中的图像引用(如 “如图 1 所示”)关联图像特征,返回图文组合结果。
-
图像相关查询:将文本 query 转换为视觉特征(如用 CLIP 的文本编码器),与图像特征库检索匹配,同时返回图像周边相关文本。
- 融合生成:大模型输入同时包含文本块内容、图像描述及原始 query,通过提示词引导模型综合图文信息生成答案,例如 “结合图 1 的架构图和文本步骤,说明系统部署流程”。
关键优化点:为图像特征添加场景标签(如 “架构图”“流程图”),检索时通过标签过滤无关图像类型,提升匹配精度。
5. RAG 评估指标
问题:除了传统的检索准确率(Retrieval Accuracy),还需哪些指标评估 RAG 系统的质量?如何量化生成答案与检索文档的 “事实一致性”?
答案:
全面评估 RAG 系统需覆盖检索质量、生成质量、用户体验三类指标:
-
检索质量:除准确率(P@k)外,需评估召回率(R@k)、MRR(平均倒数排名)、NDCG(归一化折损累积增益),衡量检索的全面性与排序合理性。
-
生成质量:包括 BLEU/ROUGE(文本相似度)、困惑度(Perplexity)、答案相关性(Relevance Score),以及事实一致性(Factual Consistency)。
量化事实一致性的方法:
-
模型判别法:训练专门的事实核查模型(如基于 BART 的 FactChecker),输入生成答案与源文档,输出一致性分数(0-1),判断是否存在编造信息。
-
对比验证法:提取答案中的关键事实点(如日期、数值、实体关系),与检索文档中的对应内容逐一比对,计算匹配率(如 10 个事实点匹配 8 个则得 80%)。
-
对抗测试法:构造包含误导性文档的测试集,评估模型是否会错误引用无关文档的信息,通过错误率反向衡量一致性。
企业级 RAG 系统通常要求事实一致性得分≥90%,否则需优化检索相关性或添加事实校验模块。
6. 实时性优化
问题:RAG 系统如何处理动态更新的知识库(如每日新增 hundreds 篇文档)?说明增量索引与缓存策略的设计要点。
答案:
处理动态知识库需平衡实时性与检索性能,核心方案包括增量索引与多级缓存:
- 增量索引策略:
-
采用 “批量 + 实时” 混合更新:非高峰时段对大批量文档(如≥100 篇)进行全量重建索引,确保向量分布一致性;高峰时段对单篇 / 小批量文档(如 < 10 篇)进行增量插入,通过向量数据库的动态索引功能(如 Milvus 的 Dynamic Field)避免全量重建。
-
版本控制:为文档添加时间戳版本,检索时可按时间范围过滤(如 “仅检索近 30 天文档”),支持数据回溯与错误修正。
- 缓存策略设计:
-
query 缓存:对高频重复 query(如产品 FAQ)缓存检索结果与生成答案,设置 TTL(如 24 小时),命中时直接返回,减少计算开销。
-
文档缓存:对热门文档(如被频繁检索的前 20% 文档)的向量与元数据缓存在内存中,加速相似性计算。
-
分层缓存:用 Redis 缓存热点数据,磁盘缓存全量索引,通过 LRU(最近最少使用)策略淘汰冷数据,实验显示该方案可使检索延迟降低 40%-60%。
关键指标:动态更新的索引可见延迟需控制在分钟级(如 < 5 分钟),避免用户查询时获取过期信息。
7. 多源数据融合
问题:如何将结构化数据(如数据库表)与非结构化数据(如文档)融合到 RAG 系统中?说明实体链接与知识图谱的作用。
答案:
多源数据融合需打破结构化与非结构化数据壁垒,核心通过实体链接与知识图谱实现语义关联:
- 融合架构:
-
结构化数据处理:将数据库表转换为 “实体 - 属性 - 值” 三元组(如 “产品 A - 价格 - 999 元”),生成向量嵌入并存储至向量库,同时保留 SQL 查询能力。
-
非结构化数据处理:常规分块嵌入,提取文档中的实体与关系(如通过 spaCy 或 LLM 提取 “产品 A 支持功能 B”)。
-
知识图谱构建:统一实体 ID,建立跨数据源的实体关联(如文档中的 “产品 A” 与数据库中的 “产品 A” 绑定同一 ID),形成知识网络。
-
实体链接与知识图谱的作用:
-
实现跨源检索:用户查询 “产品 A 的价格和使用场景” 时,系统同时检索数据库(价格)和文档(使用场景),通过实体 ID 关联结果。
-
增强推理能力:知识图谱提供实体间的隐含关系(如 “产品 A 属于系列 B,系列 B 兼容系统 C”),辅助模型生成更全面的答案。
-
解决歧义问题:通过实体消歧(如 “苹果” 是水果还是公司),确保检索到正确数据源的信息。
-
该方案可使多源查询的答案丰富度提升 40%,尤其适合企业综合知识库场景。
8. 大模型与 RAG 协同
问题:对比 “大模型微调 + RAG” 与 “纯 RAG” 方案的适用场景,说明如何通过 prompt 工程增强 RAG 的生成质量?
答案:
两种方案的适用场景差异显著:
-
纯 RAG 方案:适用于知识库频繁更新(如每日更新)、领域边界清晰(如产品手册)、对事实准确性要求极高的场景(如客服问答),优势是无需模型训练,维护成本低。
-
微调 + RAG 方案:适用于专业领域深度问答(如医疗诊断、法律分析)、知识库相对稳定、需要模型理解领域术语体系的场景,通过领域数据微调大模型后,再结合 RAG 补充实时信息,可提升推理深度。
通过 prompt 工程增强 RAG 生成质量的策略:
-
检索引导:在 prompt 中明确要求模型优先引用检索文档,如 “仅基于提供的参考文档回答,未提及的内容请说明‘无相关信息’”。
-
结构约束:指定输出格式(如分点论述、结论 + 依据),例如 “1. 结论:…;2. 依据:文档 [3] 第 2 段提到‘…’”,强制模型关联源文档。
-
质疑机制:引导模型检查检索文档的完整性,如 “若参考文档未完全覆盖问题,请指出缺失信息并基于现有内容合理推测”,减少编造风险。
-
领域提示:注入领域知识模板,如技术文档问答时添加 “请使用专业术语,解释清楚技术原理与操作步骤”,提升答案专业性。
实验显示,优化后的 prompt 可使 RAG 生成的答案相关性提升 15%,事实一致性提升 10%。
更多大模型面试题
搜索 【码上有模力】