要依据你的文档回答问题,AI 模型通常需要 RAG,它会为每个问题查找相关事实。微调更适合用来调整格式和语气。
如果你想让 AI 模型依据公司文档回答问题,通常并不需要用这些文档去训练它。检索增强生成(retrieval-augmented generation),简称 RAG,会在每个问题进来时检索你的文档,并把匹配的段落连同问题一起交给模型。微调(fine-tuning)是指用你准备的样例对现有模型做进一步训练。研究论文和厂商指南都说,微调更擅长教会模型某种格式或语气,而不是教会它新的事实。用你业务中的真实问题做一次测试,就能看出你需要哪一种,或者是否两种都需要。
简短的答案是:当模型需要它不可能知道的事实时,比如你当前的价格或某份合同的条款,就选 RAG。当模型拿到了正确的事实,格式或语气却仍然出错时,才值得考虑微调。做决定之前,先收集一批附有核对过的答案的真实问题,用它们同时测试检索和回答。
大语言模型(LLM),也就是 ChatGPT 背后的那类 AI,它所知道的东西来自训练时用过的文本。从未离开过你公司的文档不在这些文本之中,所以模型必须通过别的途径获得它们。
采用 RAG 时,你的文档留在模型之外的搜索索引里;搜索索引是根据你的文件建立的段落目录。有人提问时,系统找出相匹配的段落,把它们加入提示词,也就是模型接收到的文本。由于系统知道自己用了哪些段落,它可以在每个回答旁边显示来源文档。
微调是用样例对模型做进一步训练,每个样例都把一个问题或任务与你想要的答案配成一对。结果是模型的一个新版本。它学到的东西分散在模型内部的数值里,没有哪个文件能显示某个事实是从哪里来的。
OpenAI 的指南《Optimizing LLM Accuracy》(2026 年 10 月 23 日查阅)用考试来解释两者的区别。RAG 就像考试时“把课本带在身边”,可以随时查阅。微调则像连续几个月去上课,从“大量反复出现的例子”中学习。
指南还说,这两种方法“可以叠加,而非互斥”。它还写道:“我们在 OpenAI 的许多规模最大的客户部署,都只用了提示词工程和 RAG”。提示词工程是指为模型编写更好的指令和示例。
已发表的研究表明,用你的文档训练模型,并不能可靠地让它掌握你业务中的事实。在 2023 年 12 月首次发布的一项研究中,Oded Ovadia 和另外三位合著者比较了 RAG 与用文档纯文本微调模型这两种做法。他们的摘要说,“RAG 的表现始终优于它”,而且模型以这种方式“很难学到新的事实信息”。摘要还说,在训练中向模型展示“同一事实的多种不同表述”可能会有帮助。
Zorik Gekhman 和另外六位合著者在 2024 年发表的一篇论文,用问题与答案配对的数据测试了微调。含有新事实的样例,比与模型已有知识相符的样例“学得明显更慢”。而模型一旦真的学会了这些样例,就更容易给出与事实不符的回答。作者写道,他们的结果支持这样一种观点:模型“主要通过预训练获取事实知识”(预训练指模型开发方最初进行的训练),而微调“教会它们更高效地运用这些知识”。
对企业来说,会变化的事实,比如价格或政策措辞,应当放在系统检索的文档里。微调后的模型保留的是它在训练当天学到的内容,要改变这些内容,就得再训练一次。
OpenAI 的指南说,当模型“产出不一致、格式错误的结果”,或者它的语气或说话风格“不正确”时,要改进的是模型的行为方式,而不是提供给它的信息。首先是在提示词里写出更好的指令和示例,下一步才是微调。指南还把效率列为微调的一个理由,也就是用更小的模型或更少的 token 达到同样的准确率。token 是词的一个片段,模型提供方按 token 收费。
例如,读取发票的模型必须严格按照你的会计系统所接受的格式返回发票数据。为客户起草的回复,可能需要听起来像出自你的客服团队。一个经过微调的较小模型,如果能达到你所需的准确率,运行成本也可能低于一个大型通用模型。
训练样例必须和真实工作一模一样。指南建议先从“50 个以上的样例”开始,然后测试,只有当剩下的错误与模型的行为方式有关时,才继续增加样例。这些样例必须由每天做这项工作的人来编写或核对,所以要把他们的工时连同工程时间一起计入预算。
如果文档不多,你可能根本不需要 RAG。Claude 系列模型背后的公司 Anthropic,在一篇日期为 2024 年 9 月 19 日的文章中写道:“如果你的知识库小于 200,000 个 token(约 500 页材料),你可以直接把整个知识库放进提供给模型的提示词里,无需 RAG 或类似方法。”
每个模型一次能读取的 token 数量都有上限。提示词缓存(prompt caching)让应用可以重复利用它在先前请求中发送过的文本,比如同一组文档。这篇文章(与该指南同一天查阅)说,在 Claude 上,提示词缓存能把成本“最多降低 90%”。OpenAI 的指南提醒,模型“在非常长的提示词中可能难以保持注意力”,所以要按你计划使用的规模来测试。
每个问题都带上全部文档,成本仍然比只发送几个段落要高,而且每多加一页,成本就跟着增长。试点可以从一小组文档起步,比如某一条产品线的手册,等文档多到提示词装不下时,再转向 RAG。
RAG 系统可能在模型写出一个字之前就已经失败:检索返回了错误的段落,或者返回的段落太多。OpenAI 的指南描述了这两种情况。系统可能提供“错误的上下文,导致模型根本无从作答”。另一种风险是无关文本太多,因为它会“淹没真正的信息,并导致幻觉”,也就是听上去正确、实际却是错误的回答。
许多 RAG 系统按语义而不是按精确字词检索,这可能会漏掉精确的代码。Anthropic 的文章举了一个例子:一个关于错误代码 TS-999 的客服问题。这样的检索可能找到泛泛讲错误代码的页面,却漏掉讲 TS-999 的那一页。文章建议把它与关键词检索结合起来,关键词检索查找的是完全一致的文本。
所以要单独测试检索。对每个测试问题,先检查返回的是否是正确的段落,再评判回答。如果没有返回正确的段落,OpenAI 的指南指出,需要修复的是检索。
两者都可以运行在你自己的服务器上。采用 RAG 时,你的文档存放在你掌控的索引里,模型只能看到针对每个问题挑选出来的段落。微调则把训练样例融进模型文件,模型从中学到的内容可能会在它的回答里再次出现。
RAG 让访问权限更容易落实,因为检索可以把提问者无权查看的文档排除在外。Microsoft 在其 Azure AI Search 服务中介绍了一种做法。它关于安全筛选器模式的页面(同一天查阅)描述了一种筛选器,它“根据包含组或用户身份的字符串修剪搜索结果”。该页面把这种筛选器提供给无法使用该服务内置访问控制列表的系统。
同一页面说,这个筛选器本身“不做身份验证,也不做授权”,所以你的应用必须在每次检索时传入正确的用户或组。微调后的模型没有类似的机制。它从某个部门的样例中学到的内容,可能出现在该模型任何用户得到的回答里。
欧洲数据保护委员会(EDPB)由各国数据保护机构的代表和欧洲数据保护监督官(European Data Protection Supervisor)组成,它于 2024 年 12 月 17 日通过了第 28/2024 号意见(Opinion 28/2024)。意见指出,“用个人数据训练的 AI 模型,并非在所有情况下都能被视为匿名的”,因为个人数据“可能仍然‘被吸收’在模型的参数中”。参数是模型内部用来存储所学内容的数值。意见还说,某个模型是否匿名,必须逐案评估。
如果你用客服工单或客户档案做微调,就要假定模型本身可能含有个人数据。要问清楚:如果有人要求删除其本人的记录,你们会怎么处理。采用 RAG 时,一份文档被移除、索引更新之后,新的问题就不会再检索到它。保存在日志、缓存或已存聊天记录中的副本,则需要单独清理。各国规则不同,本文不构成法律意见,所以请与律师核实你的具体情况。
微调模型建立在基础模型之上,也就是你起步时用的那个通用模型。如果你通过云服务做微调,那么这个基础模型以及你基于它得到的版本能用多久,由服务提供方决定。OpenAI 的 API 价格页面(同一天查阅)写道:“OpenAI 正在逐步关停微调平台。”页面还说,微调模型会一直可用,直到其基础模型被弃用(deprecated)为止;deprecated 是 OpenAI 对正在停用的模型的叫法。
OpenAI 的弃用页面给出了日期。自 2026 年 5 月 7 日起,从未做过微调的组织不能再开始微调。自 2026 年 7 月 2 日起,在此前 60 天内没有使用过微调模型的组织也是如此。到了 2027 年 1 月 6 日,“现有的活跃客户将无法再创建新的微调任务。”
同一页面还规定了模型本身的终止日期。它把 2026 年 10 月 23 日列为 gpt-4.1-nano 及另外五个模型的微调版本的关停日期。GPT-4o、GPT-4o mini、GPT-4.1 和 GPT-4.1 mini 紧随其后,关停日期是 2027 年 1 月 14 日,而且“这些模型的微调版本遵循与其底层基础模型相同的关停时间表。”
开放权重模型的开发方会公开发布模型文件,任何人都可以按许可证运行它们;这类模型仍然可以在你自己的硬件上微调。OpenAI 的 gpt-oss-120b 就是其中之一,它在 Hugging Face 模型网站上的页面(同一天查阅)列出的许可证是 Apache 2.0。该页面说,这个模型“可以在单个 H100 节点上微调”,也就是一台配有 Nvidia H100 GPU 的服务器;H100 GPU 是该页面为运行这个模型点名的一种芯片。
无论模型运行在服务提供方的云上,还是在你自己的硬件上,换一个新的基础模型,就意味着要再做一轮微调和测试。当负责生成回答的模型更换时,RAG 系统也需要重新测试,但索引和你的文档保持不变。
这里不给出数字,因为它们取决于你的业务量和配置。不过,两者账单的构成是不同的。
对 RAG 来说,开发工作包括整理文档以便检索效果良好、构建索引以及测试检索。运行成本包括检索服务和更长的提示词,因为每个问题都会带上为它找到的段落。重建索引可以在新增或修改文件时自动运行。
采用微调时,很大一部分成本可能是员工时间,因为要由熟悉这项任务的人来编写和核对训练样例。其次是训练运行,以及托管新模型的服务器或服务。换一个新的基础模型或新的任务,就意味着要为这些工作再付一次钱。
有些系统两者都需要。OpenAI 的指南说,如果早期测试表明事实和格式都有问题,“你很可能最终会用上微调 + RAG”。这样一来,两者的费用你都要付。
先建立一个测试集,由你工作中的真实问题或文档组成,每一项都配有经人工核对的答案。OpenAI 的指南说,一组“20 个以上的问题和答案”,在你分析过失败的原因之后,就能为更高级的方法提供“合适的基线”。那篇关于停滞的 AI 试点的文章,介绍了如何建立这样的测试集。
然后用写得好的提示词加上 RAG 试一试,并按原因给失败分组。缺少段落,说明检索需要改进。有时正确的段落返回了,模型却仍然理解错了,或者用错误的格式作答。对这种情况,指南建议先改进指令;如果在提示词里加入几个完整的示例能改善回答,再考虑微调。
向每一家提出设计方案的公司,提出同样的问题:
amBrain 公开描述的唯一一个语言模型项目是:“我们已在一家客户的金融科技边界之内,将一项 LLM 集成投入生产:把非结构化的经纪商与交易场所通知——公司行动、金融工具与保证金变更——抽取并规范化为交易系统所消费的结构化记录。”
本文不是案例研究,也不描述任何客户项目。上面引用的这句话没有说明那套系统用的是 RAG、微调还是两者都不用,也没有说明它用的是哪个模型、那个模型在哪里运行。本文中的例子都是一般性的,并非取自那个项目或 amBrain 的任何其他工作。
本文提到的公司、公共机构、模型和研究论文,均引自它们公开发布的页面,本文并不声称 amBrain 与它们中的任何一方有任何关系。本文不给出 amBrain 的任何价格、工期或条款。
amBrain 自 2019 年起开发软件。它有三种合作方式:整体交付、专属团队,或工程师嵌入你的团队。它关于所有权的说法是:“客户拥有产品与代码的全部所有权,我们的可复用组件除外。”如果 amBrain 在你的候选名单上,就给它和其他任何公司同样的问题。