学习契约与正确模型
先明确为什么学、学完能做什么,以及如何证明自己真的掌握。
B2B AI 助手回答合同、产品和合规问题时,错误可能来自没找到文档、找到旧版本、chunk 缺上下文、模型忽略证据或引用错位。只换大模型无法修复所有环节,也不能以“有引用”代替真实性。
- 画出端到端 RAG 数据与证据链
- 分别评估 context recall、context precision、faithfulness 与 answer correctness
- 建立权限、时效、引用和拒答验收标准
精读 44 分钟 → 引导练习 34 分钟 → 实战任务 85 分钟。实战时间单列,不再把浏览页面和项目操作混成一个数字。
- 它是什么
- RAG 在生成前从外部语料检索证据,将选定上下文交给生成模型;检索器与生成器可联合或模块化训练,生产系统通常还含过滤、重排和引用。
- 为什么重要
- 外部检索可提供可更新、领域化和可追溯的信息,减少仅依赖模型参数记忆的限制。
- 什么时候使用
- 用于有受控知识库、需要来源和可更新事实的问答、客服、销售支持与研究辅助。
- 什么时候不要套用
- 不能把 RAG 当作事实保证;无权访问、低质量来源、强实时交易或必须确定执行的流程需要额外系统与人工控制。
- 边界与不确定性
- 原始 RAG 论文定义了一类研究方法,生产 RAG 有许多变体;引用存在不等于回答被引用内容支持。
机制精讲
先读完整因果链,再看每个环节留下什么可观察信号。
RAG 不是“把文档塞进提示词”的单一步骤,而是一条可审计证据链:接收问题,解析用户与权限,检索候选,应用版本和访问过滤,重排与选择片段,组装上下文,生成回答,再把主张连接到具体来源。任一环节都可能失败。正确证据若未进入候选是召回问题;进入候选却被过滤或截断是上下文问题;证据已在上下文而回答仍相反,则是生成或引用支持问题。只有保存每一阶段输入输出,团队才能选择正确修复。
检索增强可以让模型使用可更新、领域化且可引用的外部资料,却不会自动保证真实性。引用可能指向旧版本、只支持半句话、遗漏限制条件,甚至来自用户无权查看的文档。评估因此必须拆开 context recall、context precision、回答正确性、faithfulness、引用覆盖、拒答与权限安全,并同时看延迟和成本。RAG 是通用系统模式,不是 Google 搜索或 AI 回答产品的公开固定实现;任何对外内容可见性推断都应另找可观察证据。
摄取与切分决定可检索证据单元
解析器、chunk 边界、标题继承、表格处理和 metadata 会决定一个事实是否完整进入索引。过短片段可能丢失否定与适用范围,过长片段可能稀释主题并增加上下文成本。
召回、过滤与重排形成最终上下文
BM25、dense 或混合通道负责找候选;权限、租户、地区和版本是硬过滤;重排与去重在预算内挑选证据。最终上下文的质量不能由单一相似度代表。
生成必须受证据与拒答约束
模型可能忽略、拼接或过度推断上下文。系统应要求事实性主张由片段支持;证据缺失、冲突、过期或问题越权时,要拒答、提示不确定或升级人工,而不是补全猜测。
端到端评估连接阶段与风险
离线查询集应含正常、长尾、冲突、无答案、权限与时效案例。检索指标解释证据是否到达,回答rubric解释是否正确使用,线上反馈和人工审计再检验真实任务。
关键概念
掌握术语之间的关系,才能迁移到不同网站、行业和工具。
检索质量
先问正确证据是否进入候选与最终上下文;用 Recall@k、context recall/precision 和来源版本检查。
grounded generation
回答主张应由提供的上下文支持;仍需检测遗漏、矛盾、越权推断和引用错位。
系统级失败
解析、chunk、metadata、权限、索引更新、检索、重排、提示和生成都可失败,必须保留阶段日志。
完整示范
跟随一次“输入 → 分析 → 中间产物 → 结论”,看见专家是怎样做判断的。
数据驻留问答的检索—生成分层诊断
以下均为教学用合成数据。问题是“企业版是否支持欧盟数据驻留?”人工 gold evidence 有两段:A为当前政策的支持范围,B为仅限特定套餐且需申请的限制。混合检索 top4 依次返回[A,C,D,B],其中C为营销摘要、D为已过期旧政策。
- gold evidence 已由合规owner按当前生效版本复核
- 权限过滤在候选返回前执行,示例文档均允许该用户访问
- 相关片段集合为{A,B},context precision/recall按二元相关计算
- 数值仅演示本地RAG评估,不代表 Google 或其他公开产品的实现
计算浅层候选质量
- 输入
- top2=[A,C],gold={A,B}。
- 分析
- top2找到1个gold,因此 Recall@2=1/2=0.50;选中2段中1段相关,因此 Precision@2=1/2=0.50。若只送top2,关键套餐限制B缺失。
- 输出
- 检索诊断:浅层上下文召回不足,不能期待生成器稳定补出B。
检查扩大候选的收益与噪声
- 输入
- top4=[A,C,D,B]。
- 分析
- top4找到A、B,Recall@4=2/2=1.00;相关2段/候选4段,Precision@4=0.50。扩大k恢复限制证据,也带入过期D和无关键限制的C。
- 输出
- 候选层具备完整证据,但必须用版本过滤与重排减少噪声。
应用版本与上下文选择
- 输入
- D 的 valid_to 已过期;A、B共享当前policy_id,C无具体限制。
- 分析
- 先以权威版本metadata硬过滤D,再将B因包含套餐与申请条件排入上下文;C可删除或仅作非事实性摘要,不能覆盖政策。
- 输出
- 最终上下文=[A,B],context recall=1.00、precision=1.00,并保留过滤理由。
审计回答主张与引用
- 输入
- 草稿:“企业版默认支持欧盟驻留。”引用A。
- 分析
- A支持“可提供”,B却说明“仅特定套餐且需申请”;“默认”与证据矛盾,且引用未覆盖限制。应改写为带条件回答,并让支持范围与限制分别指向A、B。
- 输出
- 答案改为“部分企业套餐可申请欧盟驻留,需确认合同与开通状态”,并附A、B版本引用。
定义无证据与冲突时的失败方式
- 输入
- 若A和B版本字段缺失,或两份当前政策互相冲突。
- 分析
- 系统不能自行选有利结论;应标明无法确认、展示冲突来源并转交合规owner。权限文档缺失也只能拒答,不能从模型记忆补齐。
- 输出
- 发布门槛加入冲突拒答、过期过滤、权限零泄露和人工升级测试。
决策规则与证据边界
把“看到什么、意味着什么、下一步做什么”连起来,同时区分公开事实、实践推断和未知项。
- 给定gold evidence与候选列表,可以计算检索Recall/precision并定位关键证据是否进入上下文。
- 文档版本、权限metadata、最终上下文和逐主张引用可被直接记录与审计。
- 改进chunk、混合召回或重排可能提高本地证据覆盖,但需固定评估集验证。
- 逐主张引用和拒答规则可降低无支持回答风险,但不能保证所有输出正确。
- 任何外部搜索或AI产品的完整检索、上下文选择、生成与引用机制若未公开,就不能由本地RAG反推。
- 离线高分无法保证未覆盖问题、未来文档漂移或对抗输入下仍然安全。
引导练习
先独立完成,再按提示修正,最后展开参考解法并用 0–4 级量规评分。
教学用合成数据:问题需证据X、Y,检索top3=[X,Z,W];Y在rank7,Z为旧版,W来自用户无权访问的租户。生成回答引用X,却同时声称Y中的限制不存在。请分层定位失败并给出发布前修复与门槛。
给定材料
- 查询—gold表、top10候选及通道、版本、租户权限、重排分数和最终上下文
- 逐主张审查表:支持片段、版本、是否矛盾、引用覆盖、应拒答与人工升级
需要提示时再展开
- 先问Y是否进入候选和上下文,再判断生成是否有条件答完整。
- W是必须为零的安全错误,不能作为相关性分数的软惩罚。
完成后核对参考解法
top3只找到X,gold有X、Y,所以Recall@3=1/2=0.50;Y在rank7说明扩大或改善候选、混合召回及重排可能修复,但先核对chunk和查询处理。Z是旧版,应依生效metadata硬过滤;W跨租户,必须在检索前或检索中强制排除并把泄露率门槛设为零。当前上下文缺Y,系统无证据否定限制,应拒答该部分或说明资料不足;即使后来Y进入上下文,也要逐主张确认答案与X、Y都一致。发布需同时要求关键问题证据Recall达标、过期和越权片段不进入上下文、主张引用完整、应拒能拒、P95与成本合格,并保留版本日志和回退。
自评分量规
真实项目实战
把理解变成一个可以检查、复核和复用的工作产物。
构建合规知识助手的发布门槛
销售需要回答“该产品是否满足某地区数据驻留要求”,答案必须引用当前政策且不能泄露客户文档。
- 定义允许语料、文档版本、权限与 freshness SLA
- 以真实问题建立 gold evidence、答案要点、必须拒答与冲突案例
- 比较 BM25、dense、hybrid 与 reranking 的证据 Recall@k
- 评估回答主张—引用逐句支持、正确性、完整性、拒答、延迟和成本
- 上线阶段保留检索候选、版本、回答和反馈审计,并设置权限与过期监控
验收条件
- 权限过滤在检索前或检索中强制执行,不依赖 prompt
- 每个事实性主张能定位到具体来源片段和版本
- 分别报告检索失败与有证据仍生成错误,关键拒答案例必须通过
诊断练习
目标不是猜中答案,而是提出竞争假设并选择能区分它们的证据。
回答引用了官方政策页,却给出与政策相反的地区结论。
竞争假设
- chunk 截断了否定或适用范围
- 检索到旧版与新版冲突但未按版本处理
- 生成模型忽略证据或把相邻段落引用错位
应该检查的证据
- 原始文档版本、chunk 边界与 metadata
- 检索候选、重排分数和最终上下文
- 逐主张 citation entailment 与生成追踪
常见陷阱:因为引用域名权威就把答案标记为正确,或只调整 prompt 不修复版本与 chunk。
完成后用本页决策规则复核
- 若观察到:gold evidence 不在候选 top-k
应优先:反查原文与chunk,比较BM25/dense/hybrid、过滤前候选和查询改写。
gold标签可能遗漏等价证据,修改系统前先由领域专家复核。 - 若观察到:证据在候选中却没进入最终上下文
应优先:检查逐候选过滤理由、重排名次和截断位置,修复规则并复跑固定集。
扩大上下文会增加噪声、延迟和成本,不是免费修复。 - 若观察到:完整证据已在上下文但回答仍矛盾
应优先:逐主张做entailment审查,加强约束、拒答和模型评估,保留安全回退。
只换更大模型不保证忠实,也可能改变成本与其他错误。 - 若观察到:来源过期、冲突、越权或没有足够证据
应优先:拒答或明确不确定,显示可访问来源并升级给责任人;权限必须硬过滤。
prompt中的“不要泄露”不能替代检索前/中的访问控制。
自测与误区
先口头回答,再展开检查。无法给出例外与证据,说明还没真正掌握。
你应该能回答
1. 正确证据是否先被检索并进入最终上下文?
参考答案:依次检查原文是否被正确解析和切分、gold证据是否进入各通道候选、权限与版本过滤后是否仍存在、重排是否将其保留,以及token预算后的最终上下文是否包含完整段落。分别保存候选ID、来源、分数、过滤理由和输入片段;只有最终上下文可见证据,生成器才具备基于它作答的条件。
为什么:“检索过”并不等于“生成时看见”;分阶段追踪能把摄取、召回、过滤、重排和截断故障分开。
2. 每条主张由哪段、哪个版本支持?
参考答案:把答案拆成可核验主张,为每条主张标注支持它的具体片段、文档ID、标题路径、生效版本和引用位置;同时检查片段是否只支持部分范围、是否存在否定或冲突。若没有来源、来源过期或只支持较弱说法,就删除/降级主张或拒答,不能用权威域名或“带引用”替代逐句支持。
为什么:引用的存在只证明系统附了一个链接;主张—证据对齐和版本有效性才决定回答是否被ground。
3. 权限、过期、冲突和无证据时系统如何失败?
参考答案:权限由可靠身份和租户metadata在检索前或检索中硬过滤,泄露测试必须为零;过期来源按生效区间排除或显式标记;当前来源冲突时展示冲突并升级owner;无证据或问题超出允许范围时明确拒答,不从参数记忆猜测。所有路径都记录原因、版本与人工升级结果,并通过故障注入验证回退。
为什么:这些是安全和治理边界,不能依赖相似度软分、提示词自律或生成模型自行选择。
需要避开的误区
- RAG 可以消除幻觉
- 只要答案带引用就已被证据支持
- 更大的上下文窗口能替代检索与重排
术语与复盘
用自己的话复述术语和结论;如果只能认出、不能解释,就还没有形成可调用的知识。
- RAG
- 在生成前检索外部证据,并把选定上下文用于回答的一类系统架构。
- Chunk
- 从源文档切分并携带metadata进入索引的可检索证据单元。
- Context Recall
- 最终上下文或候选中覆盖gold evidence的比例。
- Context Precision
- 被送入上下文的片段中真正与问题和gold相关的比例。
- Faithfulness
- 回答中的主张是否受到所给上下文支持且不与其矛盾。
- 引用对齐
- 把每条事实性主张连接到确实支持它的具体片段与版本。
- 拒答
- 在证据、权限或确定性不足时明确不作无依据结论的受控行为。
离开本页前记住
- RAG 是摄取、检索、过滤、重排、上下文、生成与引用的完整证据链。
- 正确证据未召回和已有证据仍答错是两类不同故障。
- 引用存在不等于主张受到该引用支持。
- 权限、版本与租户边界必须硬过滤,不能依赖prompt。
- 评估应同时覆盖检索、faithfulness、正确性、拒答、安全、延迟和成本。
- 证据不足、过期或冲突时,可靠系统应拒答或升级而不是猜测。
资料与证据
优先采用官方和一手资料。实践材料用于补充工作方法,不替代机制证据。