KNOWLEDGE / 14LAYER 1后续延伸

RAG:检索、上下文与可追溯回答

Retrieval-Augmented Generation

把 RAG 视为查询处理、检索、过滤、重排、上下文组装、生成、引用和评估的完整系统;分别衡量检索失败与生成失败。

先修知识BM25:饱和词频与长度归一化稠密神经检索与双编码器重排:用更昂贵模型审查小候选集信息检索评估:相关性、指标与误差分析
解锁能力AI Search 审计企业知识助手可追溯内容系统
默认基础无需额外背景
本页目录 · 11 个学习环节
01

学习契约与正确模型

先明确为什么学、学完能做什么,以及如何证明自己真的掌握。

为什么现在要学

B2B AI 助手回答合同、产品和合规问题时,错误可能来自没找到文档、找到旧版本、chunk 缺上下文、模型忽略证据或引用错位。只换大模型无法修复所有环节,也不能以“有引用”代替真实性。

完成本页后,你应能
  • 画出端到端 RAG 数据与证据链
  • 分别评估 context recall、context precision、faithfulness 与 answer correctness
  • 建立权限、时效、引用和拒答验收标准
建议节奏

精读 44 分钟 → 引导练习 34 分钟 → 实战任务 85 分钟。实战时间单列,不再把浏览页面和项目操作混成一个数字。

它是什么
RAG 在生成前从外部语料检索证据,将选定上下文交给生成模型;检索器与生成器可联合或模块化训练,生产系统通常还含过滤、重排和引用。
为什么重要
外部检索可提供可更新、领域化和可追溯的信息,减少仅依赖模型参数记忆的限制。
什么时候使用
用于有受控知识库、需要来源和可更新事实的问答、客服、销售支持与研究辅助。
什么时候不要套用
不能把 RAG 当作事实保证;无权访问、低质量来源、强实时交易或必须确定执行的流程需要额外系统与人工控制。
边界与不确定性
原始 RAG 论文定义了一类研究方法,生产 RAG 有许多变体;引用存在不等于回答被引用内容支持。
02

机制精讲

先读完整因果链,再看每个环节留下什么可观察信号。

RAG 不是“把文档塞进提示词”的单一步骤,而是一条可审计证据链:接收问题,解析用户与权限,检索候选,应用版本和访问过滤,重排与选择片段,组装上下文,生成回答,再把主张连接到具体来源。任一环节都可能失败。正确证据若未进入候选是召回问题;进入候选却被过滤或截断是上下文问题;证据已在上下文而回答仍相反,则是生成或引用支持问题。只有保存每一阶段输入输出,团队才能选择正确修复。

检索增强可以让模型使用可更新、领域化且可引用的外部资料,却不会自动保证真实性。引用可能指向旧版本、只支持半句话、遗漏限制条件,甚至来自用户无权查看的文档。评估因此必须拆开 context recall、context precision、回答正确性、faithfulness、引用覆盖、拒答与权限安全,并同时看延迟和成本。RAG 是通用系统模式,不是 Google 搜索或 AI 回答产品的公开固定实现;任何对外内容可见性推断都应另找可观察证据。

01

摄取与切分决定可检索证据单元

解析器、chunk 边界、标题继承、表格处理和 metadata 会决定一个事实是否完整进入索引。过短片段可能丢失否定与适用范围,过长片段可能稀释主题并增加上下文成本。

观察什么从原文反查 chunk,记录文档ID、版本、生效日、标题路径、字符/token长度及解析失败率。
02

召回、过滤与重排形成最终上下文

BM25、dense 或混合通道负责找候选;权限、租户、地区和版本是硬过滤;重排与去重在预算内挑选证据。最终上下文的质量不能由单一相似度代表。

观察什么保存各通道top-k、候选来源、过滤原因、重排名次与最终选中片段,分别算 gold evidence Recall 和 precision。
03

生成必须受证据与拒答约束

模型可能忽略、拼接或过度推断上下文。系统应要求事实性主张由片段支持;证据缺失、冲突、过期或问题越权时,要拒答、提示不确定或升级人工,而不是补全猜测。

观察什么逐主张标注支持、矛盾、无支持和引用位置,单独统计有证据仍答错及应拒未拒。
04

端到端评估连接阶段与风险

离线查询集应含正常、长尾、冲突、无答案、权限与时效案例。检索指标解释证据是否到达,回答rubric解释是否正确使用,线上反馈和人工审计再检验真实任务。

观察什么按问题类型报告 Recall@k、faithfulness、answer correctness、拒答、权限错误、P95延迟和每问成本,并保留版本。
03

关键概念

掌握术语之间的关系,才能迁移到不同网站、行业和工具。

01

检索质量

先问正确证据是否进入候选与最终上下文;用 Recall@k、context recall/precision 和来源版本检查。

02

grounded generation

回答主张应由提供的上下文支持;仍需检测遗漏、矛盾、越权推断和引用错位。

03

系统级失败

解析、chunk、metadata、权限、索引更新、检索、重排、提示和生成都可失败,必须保留阶段日志。

04

完整示范

跟随一次“输入 → 分析 → 中间产物 → 结论”,看见专家是怎样做判断的。

WORKED EXAMPLE

数据驻留问答的检索—生成分层诊断

以下均为教学用合成数据。问题是“企业版是否支持欧盟数据驻留?”人工 gold evidence 有两段:A为当前政策的支持范围,B为仅限特定套餐且需申请的限制。混合检索 top4 依次返回[A,C,D,B],其中C为营销摘要、D为已过期旧政策。

前提与样例口径
  • gold evidence 已由合规owner按当前生效版本复核
  • 权限过滤在候选返回前执行,示例文档均允许该用户访问
  • 相关片段集合为{A,B},context precision/recall按二元相关计算
  • 数值仅演示本地RAG评估,不代表 Google 或其他公开产品的实现
  1. 计算浅层候选质量

    输入
    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。
  2. 检查扩大候选的收益与噪声

    输入
    top4=[A,C,D,B]。
    分析
    top4找到A、B,Recall@4=2/2=1.00;相关2段/候选4段,Precision@4=0.50。扩大k恢复限制证据,也带入过期D和无关键限制的C。
    输出
    候选层具备完整证据,但必须用版本过滤与重排减少噪声。
  3. 应用版本与上下文选择

    输入
    D 的 valid_to 已过期;A、B共享当前policy_id,C无具体限制。
    分析
    先以权威版本metadata硬过滤D,再将B因包含套餐与申请条件排入上下文;C可删除或仅作非事实性摘要,不能覆盖政策。
    输出
    最终上下文=[A,B],context recall=1.00、precision=1.00,并保留过滤理由。
  4. 审计回答主张与引用

    输入
    草稿:“企业版默认支持欧盟驻留。”引用A。
    分析
    A支持“可提供”,B却说明“仅特定套餐且需申请”;“默认”与证据矛盾,且引用未覆盖限制。应改写为带条件回答,并让支持范围与限制分别指向A、B。
    输出
    答案改为“部分企业套餐可申请欧盟驻留,需确认合同与开通状态”,并附A、B版本引用。
  5. 定义无证据与冲突时的失败方式

    输入
    若A和B版本字段缺失,或两份当前政策互相冲突。
    分析
    系统不能自行选有利结论;应标明无法确认、展示冲突来源并转交合规owner。权限文档缺失也只能拒答,不能从模型记忆补齐。
    输出
    发布门槛加入冲突拒答、过期过滤、权限零泄露和人工升级测试。

结论:top2 的问题是关键限制未召回;top4 虽达到完整召回,却引入过期与无关噪声。过滤和重排得到[A,B]后,生成器仍可能错误加入“默认”,所以检索质量与主张支持必须分别验收。有引用并不等于引用支持答案。

迁移到真实项目:真实项目应为每条问题保存gold evidence、允许答案要点和必须拒答条件,版本化文档、chunk、索引、检索器、提示与模型。故障先按摄取、召回、过滤、上下文、生成和引用定位,再决定重切分、调检索、修版本还是收紧回答。

05

决策规则与证据边界

把“看到什么、意味着什么、下一步做什么”连起来,同时区分公开事实、实践推断和未知项。

信号解释行动限制
gold evidence 不在候选 top-k主要瓶颈在摄取、索引、查询处理或召回,生成模型没有可用证据。反查原文与chunk,比较BM25/dense/hybrid、过滤前候选和查询改写。gold标签可能遗漏等价证据,修改系统前先由领域专家复核。
证据在候选中却没进入最终上下文过滤、重排、去重、token预算或版本规则移除了关键片段。检查逐候选过滤理由、重排名次和截断位置,修复规则并复跑固定集。扩大上下文会增加噪声、延迟和成本,不是免费修复。
完整证据已在上下文但回答仍矛盾生成、提示、主张抽取或引用对齐失败,而非单纯召回问题。逐主张做entailment审查,加强约束、拒答和模型评估,保留安全回退。只换更大模型不保证忠实,也可能改变成本与其他错误。
来源过期、冲突、越权或没有足够证据系统不能可靠形成确定结论。拒答或明确不确定,显示可访问来源并升级给责任人;权限必须硬过滤。prompt中的“不要泄露”不能替代检索前/中的访问控制。
可确认
  • 给定gold evidence与候选列表,可以计算检索Recall/precision并定位关键证据是否进入上下文。
  • 文档版本、权限metadata、最终上下文和逐主张引用可被直接记录与审计。
工作推断
  • 改进chunk、混合召回或重排可能提高本地证据覆盖,但需固定评估集验证。
  • 逐主张引用和拒答规则可降低无支持回答风险,但不能保证所有输出正确。
不要声称已知
  • 任何外部搜索或AI产品的完整检索、上下文选择、生成与引用机制若未公开,就不能由本地RAG反推。
  • 离线高分无法保证未覆盖问题、未来文档漂移或对抗输入下仍然安全。
06

引导练习

先独立完成,再按提示修正,最后展开参考解法并用 0–4 级量规评分。

YOUR TURN

教学用合成数据:问题需证据X、Y,检索top3=[X,Z,W];Y在rank7,Z为旧版,W来自用户无权访问的租户。生成回答引用X,却同时声称Y中的限制不存在。请分层定位失败并给出发布前修复与门槛。

给定材料

  • 查询—gold表、top10候选及通道、版本、租户权限、重排分数和最终上下文
  • 逐主张审查表:支持片段、版本、是否矛盾、引用覆盖、应拒答与人工升级
需要提示时再展开
  1. 先问Y是否进入候选和上下文,再判断生成是否有条件答完整。
  2. W是必须为零的安全错误,不能作为相关性分数的软惩罚。
完成后核对参考解法

top3只找到X,gold有X、Y,所以Recall@3=1/2=0.50;Y在rank7说明扩大或改善候选、混合召回及重排可能修复,但先核对chunk和查询处理。Z是旧版,应依生效metadata硬过滤;W跨租户,必须在检索前或检索中强制排除并把泄露率门槛设为零。当前上下文缺Y,系统无证据否定限制,应拒答该部分或说明资料不足;即使后来Y进入上下文,也要逐主张确认答案与X、Y都一致。发布需同时要求关键问题证据Recall达标、过期和越权片段不进入上下文、主张引用完整、应拒能拒、P95与成本合格,并保留版本日志和回退。

自评分量规

0 级只建议换更大模型,忽略缺失证据、旧版和越权内容。
1 级发现Y缺失,但未区分候选、上下文、生成与安全层。
2 级正确算出Recall@3为0.50,并提出版本和权限过滤。
3 级完成分层诊断,加入逐主张引用、拒答与联合发布门槛。
4 级进一步覆盖固定gold集、冲突升级、版本化审计、延迟成本和回滚。
07

真实项目实战

把理解变成一个可以检查、复核和复用的工作产物。

FIELD LAB

构建合规知识助手的发布门槛

销售需要回答“该产品是否满足某地区数据驻留要求”,答案必须引用当前政策且不能泄露客户文档。

  1. 定义允许语料、文档版本、权限与 freshness SLA
  2. 以真实问题建立 gold evidence、答案要点、必须拒答与冲突案例
  3. 比较 BM25、dense、hybrid 与 reranking 的证据 Recall@k
  4. 评估回答主张—引用逐句支持、正确性、完整性、拒答、延迟和成本
  5. 上线阶段保留检索候选、版本、回答和反馈审计,并设置权限与过期监控
需要交付RAG 系统卡:数据谱系、检索评估、回答 rubric、安全边界、上线阈值、监控与回滚。

验收条件

  • 权限过滤在检索前或检索中强制执行,不依赖 prompt
  • 每个事实性主张能定位到具体来源片段和版本
  • 分别报告检索失败与有证据仍生成错误,关键拒答案例必须通过
08

诊断练习

目标不是猜中答案,而是提出竞争假设并选择能区分它们的证据。

SCENARIO

回答引用了官方政策页,却给出与政策相反的地区结论。

竞争假设

  1. chunk 截断了否定或适用范围
  2. 检索到旧版与新版冲突但未按版本处理
  3. 生成模型忽略证据或把相邻段落引用错位

应该检查的证据

  1. 原始文档版本、chunk 边界与 metadata
  2. 检索候选、重排分数和最终上下文
  3. 逐主张 citation entailment 与生成追踪

常见陷阱:因为引用域名权威就把答案标记为正确,或只调整 prompt 不修复版本与 chunk。

完成后用本页决策规则复核
  1. 若观察到:gold evidence 不在候选 top-k
    应优先:反查原文与chunk,比较BM25/dense/hybrid、过滤前候选和查询改写。
    gold标签可能遗漏等价证据,修改系统前先由领域专家复核。
  2. 若观察到:证据在候选中却没进入最终上下文
    应优先:检查逐候选过滤理由、重排名次和截断位置,修复规则并复跑固定集。
    扩大上下文会增加噪声、延迟和成本,不是免费修复。
  3. 若观察到:完整证据已在上下文但回答仍矛盾
    应优先:逐主张做entailment审查,加强约束、拒答和模型评估,保留安全回退。
    只换更大模型不保证忠实,也可能改变成本与其他错误。
  4. 若观察到:来源过期、冲突、越权或没有足够证据
    应优先:拒答或明确不确定,显示可访问来源并升级给责任人;权限必须硬过滤。
    prompt中的“不要泄露”不能替代检索前/中的访问控制。
09

自测与误区

先口头回答,再展开检查。无法给出例外与证据,说明还没真正掌握。

你应该能回答

1. 正确证据是否先被检索并进入最终上下文?

参考答案:依次检查原文是否被正确解析和切分、gold证据是否进入各通道候选、权限与版本过滤后是否仍存在、重排是否将其保留,以及token预算后的最终上下文是否包含完整段落。分别保存候选ID、来源、分数、过滤理由和输入片段;只有最终上下文可见证据,生成器才具备基于它作答的条件。

为什么:“检索过”并不等于“生成时看见”;分阶段追踪能把摄取、召回、过滤、重排和截断故障分开。

2. 每条主张由哪段、哪个版本支持?

参考答案:把答案拆成可核验主张,为每条主张标注支持它的具体片段、文档ID、标题路径、生效版本和引用位置;同时检查片段是否只支持部分范围、是否存在否定或冲突。若没有来源、来源过期或只支持较弱说法,就删除/降级主张或拒答,不能用权威域名或“带引用”替代逐句支持。

为什么:引用的存在只证明系统附了一个链接;主张—证据对齐和版本有效性才决定回答是否被ground。

3. 权限、过期、冲突和无证据时系统如何失败?

参考答案:权限由可靠身份和租户metadata在检索前或检索中硬过滤,泄露测试必须为零;过期来源按生效区间排除或显式标记;当前来源冲突时展示冲突并升级owner;无证据或问题超出允许范围时明确拒答,不从参数记忆猜测。所有路径都记录原因、版本与人工升级结果,并通过故障注入验证回退。

为什么:这些是安全和治理边界,不能依赖相似度软分、提示词自律或生成模型自行选择。

需要避开的误区

  • RAG 可以消除幻觉
  • 只要答案带引用就已被证据支持
  • 更大的上下文窗口能替代检索与重排
10

术语与复盘

用自己的话复述术语和结论;如果只能认出、不能解释,就还没有形成可调用的知识。

RAG
在生成前检索外部证据,并把选定上下文用于回答的一类系统架构。
Chunk
从源文档切分并携带metadata进入索引的可检索证据单元。
Context Recall
最终上下文或候选中覆盖gold evidence的比例。
Context Precision
被送入上下文的片段中真正与问题和gold相关的比例。
Faithfulness
回答中的主张是否受到所给上下文支持且不与其矛盾。
引用对齐
把每条事实性主张连接到确实支持它的具体片段与版本。
拒答
在证据、权限或确定性不足时明确不作无依据结论的受控行为。

离开本页前记住

  1. RAG 是摄取、检索、过滤、重排、上下文、生成与引用的完整证据链。
  2. 正确证据未召回和已有证据仍答错是两类不同故障。
  3. 引用存在不等于主张受到该引用支持。
  4. 权限、版本与租户边界必须硬过滤,不能依赖prompt。
  5. 评估应同时覆盖检索、faithfulness、正确性、拒答、安全、延迟和成本。
  6. 证据不足、过期或冲突时,可靠系统应拒答或升级而不是猜测。
11

资料与证据

优先采用官方和一手资料。实践材料用于补充工作方法,不替代机制证据。