M5-084M5: NLP & Large Language ModelsRAG End-to-End ArchitectureHard
Mastery:
RAG End-to-End Architecture: 解释 RAG 的失败模式与调试。
📐 Mathematical Definition
⚡ Executive Summary
Core Concept: 检索失败(未召回/召回无关)、生成失败(忽略证据/幻觉)、以及系统性问题(切分/嵌入/组装)。
📌 Key Takeaways
- •检索失败:相关文档未召回(切分/嵌入/查询问题)
- •生成失败:召回了但忽略证据、或编造
- •系统性:上下文组装、位置、预算、版本不一致
📐 Mathematical Derivations
数学机理:<strong>失败模式的分类</strong>。<strong>(1) 检索层失败</strong>——(a) <strong>未召回(retrieval miss)</strong>——相关文档不在 top-k 中;原因:切分不当(关键信息被切碎)、嵌入模型不适合领域、查询表达差异(未改写)、ANN 召回损失。(b) <strong>召回无关(irrelevant)</strong>——top-k 含大量无关文档;原因:嵌入模型区分度不足、查询过于宽泛、缺少重排。<strong>(2) 生成层失败</strong>——(a) <strong>忽略证据(ignored evidence)</strong>——召回了正确文档但模型没用(可能因为上下文太长、位置不利、或 prompt 未强调'必须依据上下文');(b) <strong>幻觉(hallucination)</strong>——回答超出上下文(模型用自己的知识'补全');(c) <strong>上下文冲突</strong>——多个文档给出矛盾信息,模型无法正确权衡(或随机选一个);(d) <strong>过度依赖(over-reliance)</strong>——无条件相信检索内容(即使内容是错的/过时的)。<strong>(3) 系统性失败</strong>——(a) <strong>上下文组装问题</strong>——重要信息放在中间(lost in the middle);未去重导致重复;(b) <strong>预算超限</strong>——上下文被截断(丢失关键信息);(c) <strong>版本不一致</strong>——索引与模型版本不匹配(如嵌入模型换了但索引未重建);(d) <strong>元数据错误</strong>——过滤条件错误导致漏检。<strong>调试方法(分层定位)</strong>——(1) <strong>先测检索</strong>——用'标准答案 + 相关文档'的测试集计算 Recall@k;若召回不足 → 改切分/嵌入/查询改写/混合检索;(2) <strong>若召回正常但答案错</strong> → 检查生成——(a) 人工看上下文是否包含答案(若包含但答错 → 生成问题);(b) 检查 prompt 是否强调'依据上下文';(c) 检查上下文位置与长度;(3) <strong>建立回归测试集</strong>——每次改动都跑(防止退化);(4) <strong>记录中间产物</strong>——把'检索结果、重排分数、最终 prompt'都记日志(便于事后分析)。<strong>典型修复手段</strong>——(a) 召回不足 → 混合检索 + 重排 + 查询改写 + 微调嵌入;(b) 忽略证据 → 明确 prompt('只依据以下资料回答')+ 把关键片段放首尾 + 减少噪声;(c) 幻觉 → 要求引用 + 允许'不知道' + 忠实度检测;(d) 冲突 → 让模型显式列出冲突并说明取舍。
🏭 Production Trade-offs
深度剖析与工程权衡:① <strong>'分层定位'是调试的核心纪律</strong>——先确认'检索是否召回',再判断'生成是否利用';否则会在错误的环节优化(如检索没召回到却去改 prompt)。② <strong>'允许说不知道'是防幻觉的关键</strong>——若 prompt 隐含'必须回答',模型会编造;故应明确'若资料中没有,请回答不知道'(并配合测试集评估这一行为)。③ <strong>'上下文冲突'是真实且难处理的失败</strong>——多文档常含矛盾(不同时间的政策、不同来源的说法);应 (a) 让模型显式指出冲突、(b) 提供时间/来源元数据让模型判断权威性、(c) 用重排优先选择权威来源。④ <strong>'版本不一致'是隐蔽的坑</strong>——更换嵌入模型后必须<strong>重建索引</strong>(否则查询用新模型、文档用旧向量,相似度无意义);这是常见事故。⑤ <strong>'位置'的实际影响</strong>——把最相关的片段放在<strong>首尾</strong>(对抗 lost-in-the-middle)是零成本的改进;且应在 prompt 中明确指出'资料如下'。⑥ <strong>面试要点</strong>——被问'RAG 效果不好怎么查',应给出'<strong>分层定位(先测检索 Recall@k,再看生成)+ 四类失败模式(未召回/无关/忽略证据/幻觉)+ 各自修复手段</strong>',并强调'<strong>允许说不知道</strong>'与'<strong>换嵌入模型需重建索引</strong>';这是'有 RAG 实战经验'的高分回答。
⚠️ Common Interview Pitfalls
- ✕检索没召回到却去改 prompt
- ✕更换嵌入模型后不重建索引
🎯 Interviewer Follow-ups
- ?如何定位失败在检索还是生成?
- ?什么是'上下文冲突'失败?
📚
Associated Knowledge Base Guides & Mindmaps
Explore the comprehensive technical article, exam cards, and global architecture tree.