跳到主要内容

01-outline — hands-on-rag-for-production-design 章节切分

切分依据:按新词密度切,对着原书十章结构走。原书 136 个文本文件(每节一个文件), 合并成 16 章拆解。每章一条主走查。一行一节:「进来时以为…→出去时知道…」。

01 为什么需要 RAG(原书 Ch1 前半 + 序/前言)

  • §1 现象:进来时以为「demo 很顺 = 能上线」→ 出去时知道模型对私域数据是「盲」的,fluency 掩盖 blindness
  • §2 幻觉:进来时以为幻觉是模型不够大 → 出去时知道它是「训练数据里没有」的结构性结果,扩训练集不可行
  • §3 RAG 定义:进来时以为 RAG 是个产品 → 出去时知道它是「先检索、再把结果塞进 prompt 生成」的两步动作
  • §4 双流架构:进来时以为 RAG 是一条链 → 出去时知道 ingestion flow 与 query flow 两条异步流水线各自有哪些站
  • §5 生产清单:进来时以为上线=接个 API → 出去时知道 MLOps/性能/安全/权限每张清单都在第一章就被点名

02 三条替代路线与五大收益(Ch1 后半)

  • §1 长上下文:进来时以为「窗口够大就不用检索」→ 出去时知道成本/延迟/文档选择三条都堵死
  • §2 微调:进来时以为微调能教会模型公司知识 → 出去时知道过拟合/成本/权限(Borg effect)三条堵死,且与 RAG 互补
  • §3 五大收益:进来时以为 RAG 只为「答得准」→ 出去时知道可扩展/减幻觉/可解释/可插拔/访问控制五条各自成立的理由
  • §4 用例版图:进来时以为 RAG=客服 chatbot → 出去时知道七大用例与各自的形态差异
  • §5 进阶预告:进来时以为 RAG 只有检索+生成 → 出去时知道 agentic/多模态/知识图谱三个升级方向各解决什么

03 解析与切块(Ch2 ingestion 前半)

  • §1 解析为什么难:进来时以为 PDF 就是文本 → 出去时知道 PDF=字符+2D 坐标,双栏/OCR/表格各有各的难
  • §2 元数据:进来时以为解析只要抽出正文 → 出去时知道丢 class 丢「谁说的」,元数据过滤像 SQL where
  • §3 VLM 解析:进来时以为 VLM 是万能解析器 → 出去时知道它贵慢会幻觉,只能当兜底
  • §4 为什么切块:进来时以为切块是技术洁癖 → 出去时知道上下文窗口/延迟/嵌入窗口/质量四个理由各有数字
  • §5 五种切块法:进来时以为有最优切法 → 出去时知道五法对照与「语义切块在旧基准上无差异」的惊人结论

04 嵌入(Ch2 embedding)

  • §1 字面匹配的失败:进来时以为搜索=匹配字符串 → 出去时知道 USA/United States 在字符空间距离无穷大
  • §2 嵌入是什么:进来时以为「语义」很玄 → 出去时知道嵌入=把文本映射成浮点向量、语义变距离
  • §3 从哪来:进来时以为嵌入是 transformers 时代才有的 → 出去时知道 Elman→Word2Vec→BERT 的谱系
  • §4 选型:进来时以为选嵌入模型看排行榜就行 → 出去时知道 MTEB/维度/MRL/上下文窗口四个轴
  • §5 实战坑:进来时以为嵌入是纯离线步骤 → 出去时知道静默截断/pgvector 维度上限/JSON 传向量的浪费

05 向量检索与向量库(Ch2 retrieval)

  • §1 相似度:进来时以为「相似」没法算 → 出去时知道归一化向量的点积=余弦相似度
  • §2 暴力与 ANN:进来时以为搜索就是全算一遍 → 出去时知道 O(n) 在十亿级不可行,ANN 用近似换速度
  • §3 HNSW 走查:进来时以为 ANN 是黑魔法 → 出去时知道分层图+贪心下行的洛杉矶类比
  • §4 向量库:进来时以为向量库=存向量 → 出去时知道它还管元数据过滤/持久化/扩展,pre/post filter 时机
  • §5 参数:进来时以为 k 随便取 → 出去时知道 k 与维度的取舍各有代价

06 查询流与生成(Ch2 query flow + LLM + prompt)

  • §1 查询改写:进来时以为用户问什么就检什么 → 出去时知道指令与检索查询要拆开
  • §2 生成 LLM 选型:进来时以为越大越好 → 出去时知道速度/质量/隐私三轴与「够好的 70B」
  • §3 RAG prompt 工程:进来时以为模板无所谓 → 出去时知道 query 在前、CoT、防幻觉指令、XML 划界各自的作用
  • §4 选 LLM 与模板怎么评:进来时以为凭感觉 → 出去时知道评测集+LLM-as-a-judge+加权计分三步
  • §5 端到端走查:进来时只有零件图 → 出去时知道 LangChain 爱丽丝例子从 PDF 到答案的每一步

07 规模化(上):成本、体量与数据质量(Ch3 前半)

  • §1 成本算例:进来时以为 RAG 成本=token 费 → 出去时知道 200 万文档案例初始 $4160、月 $4916 的完整账
  • §2 百万文档:进来时以为 ingestion 是跑个脚本 → 出去时知道脆弱性与时间两大问题、idempotency 与可观测
  • §3 脏数据:进来时以为数据进来就能用 → 出去时知道 OCR 错/样板文字/编码错三类与分诊式预处理
  • §4 大文件:进来时以为大 PDF 只是「大一点」→ 出去时知道 17000 页手册要流式+并行
  • §5 索引新鲜度:进来时以为索引建一次就行 → 出去时知道 CDC、实时索引与向量库适配度表

08 规模化(下):检索质量、护栏与幻觉(Ch3 后半)

  • §1 两段检索:进来时以为检索一步到位 → 出去时知道 candidate generation 求 recall、rerank 求 precision
  • §2 混合搜索:进来时以为向量搜索够用 → 出去时知道倒排索引/BM25 补什么、RRF 与加权融合
  • §3 重排走查:进来时以为 top-k 直接喂 LLM → 出去时知道绩效评审走查里 #7 怎么被救回来、MMR 与链式重排
  • §4 护栏与注入:进来时以为安全是外围问题 → 出去时知道检索期/生成期护栏与 direct/indirect 注入的多层防御
  • §5 幻觉检测与纠正:进来时以为幻觉只能忍着 → 出去时知道 RAG 幻觉三成因、judge 与 HHEM 检测、纠正模型
  • §6 UX:进来时以为 RAG 到 API 为止 → 出去时知道输入捕获/结果呈现/反馈三件套

09 上生产(Ch4)

  • §1 响应质量四病因:进来时以为质量差=模型差 → 出去时知道缺数据/检索弱/幻觉/prompt 四条各有各的修法
  • §2 延迟:进来时以为延迟是「模型慢」→ 出去时知道检索 ≤300ms 预算、并行 fan-out、四层缓存与失效
  • §3 安全隐私:进来时以为加密就够 → 出去时知道 PII 三档脱敏、RBAC 过滤、外部 LLM 泄漏面
  • §4 厂商与团队:进来时以为买组件拼起来就行 → 出去时知道集成复杂度清单、四技能桶、3-5× 预算超支
  • §5 目标与参考架构:进来时以为「上线」是个动作 → 出去时知道 KPI 表(99.99%/延迟/幻觉率)与持续运营循环

10 RAG 平台(Ch5)

  • §1 DIY vs 平台:进来时以为自建=自由 → 出去时知道自由=责任,平台卖的是运维与治理
  • §2 连接器:进来时以为接数据源是小事 → 出去时知道六问与连接器数量的真相
  • §3 RAG sprawl:进来时以为每个团队自建是敏捷 → 出去时知道 policy drift、重复成本与 shadow AI
  • §4 部署选项:进来时以为平台=SaaS → 出去时知道 SaaS/VPC/on-prem 的责任梯度
  • §5 Vectara 走查:进来时只见概念 → 出去时知道 corpus/API key/上传/查询/幻觉纠正一条 API 链

11 评测(Ch6)

  • §1 失败分类:进来时以为「答错了」是一件事 → 出去时知道检索/生成/摄取三层失败各自的形态
  • §2 检索指标:进来时以为准确率一个词够用 → 出去时知道 precision/recall/F1/MRR/MAP/nDCG/UMBRELA 各量什么
  • §3 生成指标:进来时以为「答案对不对」一眼能看 → 出去时知道 faithfulness/context utilization/citation/consistency
  • §4 LLM-as-a-judge:进来时以为拿大模型当裁判就行 → 出去时知道三类偏差与随机不稳定
  • §5 框架与运营:进来时以为评测是跑一次 → 出去时知道 Open RAG Eval/Ragas/DeepEval/Bedrock、离线门、在线抽样、反馈飞轮

12 从 RAG 到 agent(Ch7 前半)

  • §1 agent 简史:进来时以为 agent 是 LLM 时代的发明 → 出去时知道 1973 Actor Model 到 ReAct 的谱系
  • §2 三层栈:进来时以为 agent=LLM+工具 → 出去时知道 reasoning/orchestration/tools 三层各管什么
  • §3 单 vs 多:进来时以为多 agent 更高级 → 出去时知道 30-50% 延迟差、complexity tax 与三个值得多 agent 的条件
  • §4 agentic loop:进来时以为 agent 是一次调用 → 出去时知道 observation→reasoning→action 循环与 RAG-as-tool 两种切法
  • §5 工具调用与 MCP/A2A:进来时以为 function calling 是终点 → 出去时知道工具定义质量、MCP 三原语与架构、A2A 管水平

13 agent 的记忆、失败与可观测(Ch7 后半)

  • §1 记忆:进来时以为 agent 有记忆是天经地义 → 出去时知道短期/长期记忆、session consolidation 与 GDPR 删除
  • §2 七类失败:进来时以为 agent 失败=bug → 出去时知道工具幻觉/目标误读/规划失败等行为性失效
  • §3 memory poisoning:进来时以为记忆只有好处 → 出去时知道注入恶意记忆与 validation gate
  • §4 可观测:进来时以为 metrics/logs/traces 够用 → 出去时知道「健康也能失败」与 trace/span 回答的四问
  • §5 指标与工具:进来时以为 token 用量是成本细节 → 出去时知道它是运营指标、OTel GenAI 约定与 Langfuse/Phoenix/LangSmith

14 多模态 RAG(Ch8)

  • §1 两条路:进来时以为多模态=换个大模型 → 出去时知道 conversion vs native 的分工
  • §2 表格:进来时以为表格切块和文本一样 → 出去时知道 headless chunk 问题与「摘要指向全表」模式、跨页拼接
  • §3 图像:进来时以为图转文字就够 → 出去时知道 summarization vs shared embedding 的取舍与 NLM 走查
  • §4 音视频:进来时以为转写就是全部 → 出去时知道 speaker diarization、Red Button 问题与三种抽帧策略
  • §5 新账与新风险:进来时以为多模态只是多几种格式 → 出去时知道对齐丢失/orphan chunk、视觉注入、visual sycophancy 与 blind verification

15 知识图谱与 GraphRAG(Ch9)

  • §1 向量搜索的三类死穴:进来时以为向量搜索万能 → 出去时知道时限事实/多约束交集/多跳链各怎么死
  • §2 图怎么查:进来时以为图数据库很神秘 → 出去时知道节点/边、Cypher 与 SPARQL、ontology vs schema
  • §3 建图走查:进来时以为建图是纯工程 → 出去时知道 IMDb+MovieSum 走查与 NER 启发式的脏
  • §4 查询期两用:进来时以为 KG 是替代向量 → 出去时知道 chunk enrichment 与 hybrid-graph 的分工
  • §5 自动建图与 GraphRAG:进来时以为 Microsoft GraphRAG=任何图辅助 RAG → 出去时知道它是 QFS 方案、community detection、$560 成本与适用边界

16 RAG 的未来(Ch10 + 全书收尾)

  • §1 检索演化:进来时以为向量搜索已定型 → 出去时知道 ColBERT/ColPali/指令重排/图检索自动化四个方向
  • §2 agentic 转移:进来时以为 RAG 是检索系统 → 出去时知道 System 1→System 2、LLM 变 controller 的工程税
  • §3 数据重力:进来时以为「全索引进向量库」是目标 → 出去时知道联邦检索与遗留系统现代化
  • §4 长上下文与边缘:进来时以为 1M 窗口杀死 RAG → 出去时知道 context-aware RAG、proactive RAG 与 SLM 三优势
  • §5 治理与收尾:进来时以为合规是上线后的事 → 出去时知道数据主权/被遗忘权/可审计三条与「企业的大脑」的落点

自查

  • 没有两节「出去时知道」重复(逐行比对过:01§2 讲幻觉成因,08§5 讲幻觉检测,不同)。
  • 每章新词密度:01-06 是概念引进区(幻觉/嵌入/向量/ANN/重排/judge 各自给足节),07 后复用为主。