RAG 不是“高级版必选项”,而是与整文输入、关键词查找并列的第三种方案。选型先做同题对照,别听“百万窗口取代 RAG”或“必须上 RAG”两个极端。
本课回答的业务问题:知识库问答、合同审查,到底该整文塞给模型、关键词查找,还是上 RAG?“上下文窗口够大就不用检索了”对不对?
前置课程:第 3 课(上下文工程)。
读完本课你将能够:
- 说清整文输入、关键词查找、RAG 各自的适用条件、费用结构和失败形态;
- 设计并记录一次“同题对照”实验,用样本数据和成本账定选型;
- 从费用、lost in the middle、跨文档串扰三个角度,识破“窗口大所以不用检索”的话术;
- 判断自己的需求属于哪一类,既不“为 RAG 而 RAG”,也不“该检索时硬塞”。
一句话定义
RAG(检索增强生成)= 先检索、后生成:系统按问题从资料库取出相关片段,连同问题一起交给模型作答。它解决的是“模型不知道或记不准你的私有资料”的问题,代价是引入一套需要维护和评估的检索系统。
逐词拆开看:
“检索”——找资料的活不由模型干,由一套独立的程序干。系统先拿问题去资料库把相关片段找出来,这一步是“查”,不是“想”。干查的活的程序叫检索器,是个独立部件,有自己的参数和错法。意义在于:模型不必背下你的全部资料,资料留在库里,用时取、取多少算多少钱。
“增强”——增强的是“这一次作答”,不是模型本身。检索出的片段作为参考资料,垫在问题前面一起交给模型。模型并没有因此“学会”你的资料——下次换个问法、换个用户,还得重新检索。靠改资料让模型答得准(RAG),和靠改模型固定行为(微调,第 4 阶段展开),是两条路。
“生成”——答案由模型写,质量责任却是两家的。答案质量 ≈ 检索质量 × 模型发挥。检索器找错条文,模型就着错材料答;漏了条文,模型可能硬编。麻烦在于:这两种失败和“模型自己答错”从外面看长得一模一样——检索器的错误会伪装成模型的错误。这是本课和下一课的主线。
生活化类比(建筑行业版)
三种查规范的方式:
| 方案 | 类比 | 特点 |
|---|---|---|
| 整文输入 | 把整本规范搬到办公桌上逐页看 | 简单直接;规范多了搬不动,看久了会漏 |
| 关键词查找 | 查规范目录索引 | 精确命中“已知关键词”;换个说法就查不到 |
| RAG 检索 | 资料员按你的问题意图找条文,把最相关的几条递给你 | 能处理“意思相近”的问法;资料员找错,你就答错 |
RAG 的命门在“资料员”(检索器):检索没召回正确条文,模型只能就着错材料作答或硬编——这是 RAG 系统最常见的失败,且失败得很体面(引用格式都齐全)。
类比成立在哪:一是“搬不动”对应硬约束——整本规范搬上桌,占的是那一次对话的总预算,窗口和费用都按 token 记账(见第 1 阶段第 1 课);二是“目录索引”确实只认精确关键词,查“拍片子”查不到“探伤”;三是“按意图找”正是语义检索的直觉——问法变了、意思没变,也能找到。
类比失效在哪:资料员拿不准会反问“您找验收条文还是检测条文”,检索器不会——它默默返回一堆片段,错了也不吭声;资料员会提醒“您再核一眼原文”,系统里这个提醒必须靠引用机制显式做出来;办公桌上不存在“谁不许看哪本”,企业资料库的权限问题却真实存在——类比里没有对应物,恰是最容易被漏掉的环节(下一课展开)。
本质与能力边界
1. 三种方案各管一段:按资料规模和问题类型先粗筛
资料少、单份短——整文输入往往最简单可靠。一份 40 页的施工合同、一项制度文件,直接全文交给模型:上下文完整,没有“检索漏召回”这个故障点,也没有分块切坏表格的风险(下一课讲)。判断标准:单份材料的实测 token 量加指令加预期输出,离窗口上限还有余量(怎么实测,见第 1 阶段第 1 课),就优先整文。别为了“上 RAG”而 RAG——RAG 引入的是一套要维护、要评估、要排查的系统,能用简单方案解决的场景,简单方案就是好方案。
问题可枚举、关键词明确——程序关键词查找 + 模型解释。“查 QB-HT-01 第 8.2 条”这类问题,用程序精确查找:零误差、不调模型就出结果,找到后再让模型解释条文。这类活的要害是确定性,交给概率性的检索器不如交给程序(分工原则见第 2 阶段第 6 课)。
资料多、问法开放——RAG 的主场。资料从“一份”变成“一柜子”(全库规范、300 份历史合同、全部制度),整文塞不下;问法从“查某条款号”变成“跨三本规范的验收流程怎么走”,关键词也框不住——用户不会恰好用库里的原文词提问。两个条件要“同时”成立:资料多但问题固定(每月只抽那五种字段),专项程序更稳;资料少但问法开放,整文照样能答。RAG 解决的是“多且开放”。
粗筛只缩小范围,定案靠同题对照——下一节讲怎么做。
2. 选型的唯一依据是同题对照:实验怎么设计、账怎么算
口头争论“哪种方案好”没有出口,出口是把方案放在同一批题上跑。分四步:
第一步,定题库(样本怎么选)。从真实业务问题里抽 30–50 条(示例规模),覆盖四类,缺一不可:①单条款题——“预付款比例是多少”;②跨条款/跨文档题——“违约金条款和争议解决条款怎么衔接”;③换问法题——“焊缝要拍多少片子”(与“焊缝探伤比例是多少”同义);④带干扰题——库里同时放着 2015 旧版规范和现行版时问现行要求。只测单条款题会高估简单方案,只测难题会高估 RAG。每题预写标准答案和应引用条文位置——这份题库同时就是日后的回归测试底子(见第 3 阶段第 1 课)。
第二步,定指标(好坏怎么量)。至少三条:证据召回率——应引用的条文有没有被检索到并用到(考察检索器);答案正确率——对照标准答案逐题判对错(考察端到端);干扰区分率——带干扰题里有没有把旧版、别的合同串进答案,串了就算错。判卷两人独立判、不一致第三人仲裁——“部分正确”的灰区大,单人判容易失真。
第三步,算账(值不值怎么算)。单次成本 = 输入 token × 输入单价 + 输出 token × 输出单价(示例单价沿用第 1 阶段第 1 课:输入 ¥0.002/千 token、输出 ¥0.008/千 token,虚构数字)。整文组每次塞整份材料,RAG 组只有问题加几条片段。再乘日调用量折月成本——单价便宜救不住调用量大的方案。响应时间一并记录。
第四步,留痕。每题的原始回答、引用、判定、跑题日期、模型与参数版本,全部存档。条件变了(语料新增、换模型),重跑同一题库,新旧可比——这份记录就是你说“我们试过”的证据。
3. 窗口大 ≠ 检索可省:三个角度讲透
“上下文窗口到了百万 token,RAG 可以退场了”——这句话把三件事混成了一件。分开看:
角度一:费用——装得下不等于免单。输入按 token 计费,窗口越大、塞得越多,单次越贵(见第 1 阶段第 1 课)。算笔账(示例数字,虚构):规范单行本实测约 3 万 token,整文输入单次输入费 ≈ ¥0.06;RAG 组问题加 5 条片段约 6,000 token ≈ ¥0.012。单行本还能接受;语料涨到十本规范约 30 万 token(假设窗口也装得下),整文组单次 ≈ ¥0.6,RAG 组还是 ≈ ¥0.012——按每天 200 次、每月 22 个工作日,月差约 ¥2,580(示例),延迟还同步上涨。窗口越大,“省掉检索”越贵。
角度二:lost in the middle——装得下不等于用得好。第 2 阶段第 3 课讲过:模型对超长文本中部信息的利用会打折扣。关键条款恰好在第 40 页,模型可能“看过”但没“用上”——材料在场,答案里没有。且这个失败是概率性的:这个问题漏了、那个没漏,演示全对、上线偶发出错。把质量押在“窗口够大总会看到”上,等于交给运气。
角度三:跨文档串扰——多份材料混在一个上下文里会互相污染。三份合同同窗:主合同预付款 20%、补充协议 30%、另一份 25%,问“这份合同的预付款比例”,混进别份数字的概率不低——第 1 阶段第 1 课的台账事故就是这么发生的。检索天然缓解:按问题只取相关片段,不相关的合同根本不进上下文。
合起来:“百万窗口取代 RAG”不是必然错——资料少、调用量小、问法集中时,大窗口加整文确实可能更简单——但它对不对,要靠同题对照在你的题库上跑出来,不靠推理,更不靠演示。
一句话记住这一节:窗口管“装得下”,检索管“找得准”——装得下和找得准是两笔账,别拿一笔去抵另一笔。
4. RAG 管资料,不管权限和事实
检索给的是“参考资料”,不是“标准答案”。条文可能错了、旧了、被断章了,模型没有能力识别——它只负责“就着给的料做饭”。库里没有的,模型仍可能编(模型的概率本质见第 1 阶段):RAG 降低硬编概率,不消灭它。所以答案要能回查引用,关键数字要程序校验。
“断章”值得单独看一眼,因为它是 RAG 特有的错法(虚构示例):违约金条款原文是“每日按未付款项的 0.03% 计取,累计不超过合同价的 5%”,检索片段恰好只取到前半句——模型照答“每日 0.03%”,那个 5% 的上限凭空消失。片段没有一个错字,断掉的是意思。整文输入不会出这种错(全文都在),关键词查找也不会(命中的是整条),这是“检索漏召回”之外 RAG 的第二种独家故障,怎么切、怎么补,在下一课“分块”一节展开。
权限和引用核验是系统责任,不是 RAG 自带的。谁能看哪些合同,要在检索环节就拦住;引用的条文要能一键跳回原文。这两件事 RAG 框架不带,得作为需求明确提出、用程序做死——落点在下一课。
实战演练:一次“整文 vs RAG”同题对照的完整过程
场景(虚构):青柏项目要给“规范问答”定方案。语料:QB-GF-01《质量验收规范(虚构示例版)》2015 版与现行版,现行版单行本实测约 3 万 token。备选:整文输入 vs RAG。
第 1 步:建题库。向各专业工程师收真实问法,筛 30 条:单条款 10、跨条款 8、换问法 7、带干扰 5,每条写好标准答案和应引用条文。
第 2 步:跑两组。同一模型、同一提示词,只有材料供给方式不同:整文组两版规范一起塞入(约 6 万 token,装得下);RAG 组按题检索片段。逐题记录回答与引用。
第 3 步:判卷。两位合约工程师独立判,不一致第三人仲裁,只看“答案对不对、引用指没指对”,不看行文。
第 4 步:记账。统计平均输入/输出 token、单次费用(示例单价)、响应时间。月成本演算跟着做:若月调用量 2,000 次,整文组 ≈ 0.13 × 2,000 = ¥260/月,RAG 组 ≈ 0.015 × 2,000 = ¥30/月,差约 ¥230/月(示例数字)——乘以 12,就是“这次选型”的年度价格。
第 5 步:出表与写结论。结果(示例数字,虚构):
| 检查项 | 整文输入 | RAG |
|---|---|---|
| 答案正确率(30 题) | 26/30 | 23/30 |
| 其中单条款题(10) | 10/10 | 8/10(漏召回 2 题) |
| 其中带干扰题(5) | 3/5(新旧版串答 2 题) | 3/5(捞到旧版引用 2 题) |
| 单次平均费用(示例单价) | 约 ¥0.13(输入约 6.1 万 token) | 约 ¥0.015(输入约 6 千 token) |
| 平均响应时间 | 偏慢 | 较快 |
结论要写成条件句,示范:“在 30 题样本、两版同库、当前模型与参数下(跑测日期:2026-09,示例记录),整文输入正确率略高,但单次费用约为 RAG 的 9 倍、响应更慢;月调用量若到 2,000 次,费用差约 ¥230/月(示例数字)。本期调用量小、质量优先,选整文;语料扩到三本以上或调用量上来后重跑再定。”——要素三个:样本内表现、明确条件、何时重测,不下“永远不需要 RAG”的结论。RAG 组带干扰题的失败(捞到旧版)不是绝症,下一课的版本过滤就是修法——但也要靠重跑验证。
建工案例:同一问题,三种方案对照
青柏项目(虚构)问题:“钢结构焊缝探伤比例是多少?”(虚构规范示例)合约部做了三组对照:同一问题、同一模型,分别跑①整文输入(现行规范单行本约 3 万 token)②关键词检索(“焊缝”“探伤”)③RAG(语义检索取前 5 条条文)。
质量检查两问:答案是否引用了正确条文?换问法“焊缝要拍多少片子”还能找到吗?结果(虚构示例):关键词组在换问法题失手——原文没有“拍片子”,索引查不到;RAG 组换问法找得到,但漏召回过一次单条款题(正确条文排第 8,没进前 5);整文组最稳——全文都在,不存在“没捞到”。干扰检查:2015 旧版有没有被排除?RAG 组两版都被召回,模型引了旧版(下一课的版本过滤问题提前暴露);整文组只塞现行版,天然无干扰,代价是全量计费。成本检查:整文单次最贵、响应最慢,RAG 单次输入约为整文的五分之一(示例数字)。
结论可能出乎意料:单行本场景整文输入又准又省心;但问到“跨三本规范的验收流程”时,只有 RAG 能把三本的材料拼到一起——整文装不下三本,关键词对不上“流程”这种问法。没有万能方案,只有对照数据。
供应商话术拆解
话术:“一百万 token 窗口,合同全塞进去,RAG 就不需要了。”
逐问拆解:
- “全塞”的费用按什么算?——当场算:单次全量输入 token × 单价 × 日调用量。合格回答给得出公式和数字;答“打包价不按 token”的,追问边界。
- 关键条款放在材料中部还能答对吗?——测 lost in the middle。合格回答承认中部利用打折并说明应对;答“模型很聪明不会漏”的不合格。
- 多份合同混塞会不会串?——把 A、B 两份付款比例不同的合同一起塞,专问 B。合格回答拿得出串扰测试方法和结果;不合格回答:“智能区分,不会串。”
- 愿不愿意跑我们出的题库?——最硬的一条。合格回答:愿意,逐题留档给结果;只肯演示自家挑好的 case 的,到此为止。
合格回答应该长什么样:接受你的题库、给公式不给形容词、主动讲中部利用和串扰的边界及应对、同意留档复测。四个特征占全,才值得进入商务谈话——这套验证方法本身就是本课的主要内容。
常见问答
Q1:RAG 和微调该选哪个? 不是二选一:RAG 管“模型这次作答有什么资料”,资料常更新、检索即取;微调管“模型的行为习惯”(固定格式、流程),改的是模型本身。资料月月变的(规范、合同库),RAG 优先;行为问题先试提示工程和结构化输出(第 2 阶段第 1、2 课),最后才考虑微调(第 4 阶段展开)。
Q2:我们资料就几十份制度文件,要不要一步到位上 RAG? 先做减法。几十份、每份几千 token,先测整文输入和“目录 + 关键词查找”能不能覆盖八成问题,剩下的长尾再评估 RAG。“一步到位”的系统维护成本常被低估——下一课的管线六环节,每个环节都要有人管、有错法。
Q3:关键词查找这么成熟,为什么还要语义检索? 关键词查找没毛病,它是三种方案之一,不是被淘汰的技术。它失效的核心场景就一个:用户用的词和库里原文对不上(“拍片子”对“探伤”,错别字、简称也算)。用户问法越“外行”,语义检索价值越大。三种方案也可以混用(条款号先走精确匹配、未命中走语义检索),但前提是每种都单独测过。
Q4:RAG 会不会把我们的合同数据泄露出去? 这是数据治理问题,不是 RAG 特有的。要问的是:资料存在哪、向量化后的数据存在哪、用公有云 API 还是私有部署、日志谁可见——护栏在第 3 阶段第 3 课专门讲。先立一条:权限过滤必须在检索层用程序做,不能靠提示词拜托模型(下一课)。
Q5:“百万 token 窗口”到底改变了什么? 改变的是“装得下”的上限——整文输入的适用范围变大,这是实打实的进步。没改变的是:输入按 token 计费(越塞越贵)、长文本中部利用打折、多文档串扰(越塞越乱)。所以它是“整文适用范围变大”,不是“检索可以省掉”。
Q6:上 RAG 大概要多少投入? 课程不报行业数字(随行就市且方案差异大),但投入结构可以列:语料整理(格式清洗、版本梳理——通常是最贵的人力)、管线搭建调试、评估题库建设、上线后持续维护。软件费之外,先想清楚“谁长期管这个系统”,比问“软件多少钱”重要。
Q7:上了 RAG 还需要人盯着吗? 需要。资料库是活的:规范换版(QB-GF-01 从 2015 版到现行版就是例子)、合同新增、权限随组织调整。RAG 不是装完即走的家具,是资料室——没人管的资料室,索引卡会过期。定期回归测试(见第 3 阶段第 1 课)是“盯着”的具体方法。
Q8:RAG 答错了,怎么判断是检索的锅还是模型的锅? 看引用,不看答案。把那次作答实际引用的片段翻出来对一对:正确条文在片段里、模型没用对——锅在模型侧(往提示词、指令、模型选择的方向修,见第 2 阶段第 1、2 课);正确条文不在片段里——锅在检索侧(没召回或召回错,往下一课的分块、混合检索、重排方向修)。这就是本课主线“检索器的错误会伪装成模型的错误”的实用面:不先看引用就调模型参数,等于不拆机就换零件。把“先定性故障部件”写进运维流程,能省掉大量无效调试。
自测
供应商如上宣称。请设计一个对照实验验证,至少说出两个质量检查项和一个成本/时间检查项。
参考要点(先自己作答,再展开对照)
示例答案:先从真实业务问题建 30–50 条题库,覆盖单条款、跨条款、换问法、含干扰(新旧规范、多份合同)四类,每题预写标准答案和应引用条文。同模型、同提示词分两组跑:整文输入组全量塞材料,检索组按题取片段,逐题留档。质量检查至少两项:其一,证据召回——应引用的条文有没有被用到,重点测关键条款放在材料中部的题(针对 lost in the middle);其二,干扰区分——把 A、B 两份合同或新旧两版规范同时给到,看答案会不会串。成本检查:统计两组单次输入/输出 token,按官方单价算单次费用,乘日调用量折月成本,并记录响应时间。结论只写“样本内、当前条件下”的表现并注明跑测日期;条件变化时重跑同一题库再比。
概念卡片
| 名词 | 一句话定义 |
|---|---|
| RAG(检索增强生成) | 先从资料库检索相关片段,再连同问题交给模型作答 |
| 整文输入 | 资料少且短时的简单方案,别为 RAG 而 RAG |
| 同题对照 | 选型的唯一依据:同模型同问题跑不同方案比质量与成本 |
| 证据召回 | 正确资料有没有被检索到——RAG 失败的隐蔽形式是“没找到但答得很体面” |
| 检索器 | RAG 的“资料员”,它的错误会伪装成模型的错误 |
| 断章 | 片段切断条文语义(如漏掉“上限”“除外”后半句)——RAG 特有的第二种故障 |
延伸阅读
- 参考:Anthropic 上下文工程,核验于 2026-09-16。
- 下一课拆开 RAG 内部:分块、嵌入、混合检索、重排、引用与权限。