三者解决不同类别问题:模型不知道用检索;知道但格式不对先优化 prompt 再考虑微调;微调教行为不教事实,注入知识会得到自信地错。
"我们需要用自己的数据微调一个模型"——这句话是企业 AI 领域最贵的句子之一,而且大多数时候是错的。不总是错的,但大多数时候。这条需求几乎总是表达两件事之一:模型不了解我们的业务,或者模型的回答方式不符合预期。用微调解决第一类问题是下策,用微调解决第二类问题又太贵。
在微调、RAG 和提示词之间做选择并不是技术偏好问题。三者各自解决不同类别的问题,选错了就会忙活几个月却解决不了用户真正抱怨的事。
最能省钱的原则:如果问题是模型不知道某些事,用检索;如果问题是模型知道但回答的风格、格式或长度不对,先优化提示词,优化完还不行再考虑微调。微调教的是行为,不是知识——那些想靠微调注入知识的团队,最终得到的是一个以全新风格自信地回答错误信息的模型。
两者的区别比社区讨论中暗示的要简单得多。
提示词(Prompting)改变的是每次请求时附带发送的指令。它塑造语气、格式、结构和推理方式,也可以在请求中直接提供少量上下文。它立即生效,成本只有 token 费用,在生产环境中几秒就能改。
检索(Retrieval)在请求时从你自己的内容中获取相关材料,放在上下文里再让模型回答。它让模型能够访问从未在训练中见过的信息,包括今天早上刚更新的东西。模型本身没有变化,你改变的是喂给它的内容。我们的《检索增强生成详解》对具体机制有说明。
微调(Fine-tuning)用你期望行为的示例来调整模型权重。它在教模型掌握一致的格式、语气和难以用文字描述但容易演示的任务模式方面非常有效。它在教知识方面表现很差,因为这样学到的知识无法更新、无法审计、无法引用,而且模型没有办法告诉你它什么时候在错误地使用这些知识。
之所以容易混淆,是因为三种方式都会改变输出。只有检索改变了模型知道什么。
以下数据反映英国中型企业应用的典型交付成本。
提示词:通常几天而非几周,包括你应当同步构建的评估集,费用在 £1,000 到 £5,000 之间。运行成本就是 token 费用,更长的 system prompt 会略微增加成本,prompt caching 在很大程度上可以抵消这一增加。
检索:四到十二周,根据源内容的整洁程度,费用通常在 £15,000 到 £60,000 之间。构建成本主要花在数据摄入上:从存储文档的系统中导出文档、合理地分块、处理权限(确保用户只能检索到他们有权查看的内容)、以及保持索引最新。每次请求的运行成本会加上向量存储和稍大的上下文。
微调:工程两到八周加数据集,通常 £20,000 到 £80,000。训练算力通常是最小的一项;成本主要在生产几百到几千个高质量示例上,而这需要懂业务的人力。运行成本也可能更高,因为微调后的模型通常有溢价或需要专用托管。
这种不对称才是关键。提示词足够便宜,值得先试,即使你相当确定它不够用——因为你无论如何都需要评估框架,而且你会在这个过程中了解到真正的失败模式是什么。
按顺序依次尝试比直接跳到终点的成本更低,即使你最终还是要走到那一步。
先建评估集。三十到一百个有已知正确答案的真实输入。没有这个,你就无法判断任何改动是否有帮助,之后的每个决定都是盲猜。这与我们的 OpenAI API 集成指南中描述的框架是同一个。
然后优化提示词。对格式给出具体说明,在提示中举几个好输出的例子,说明答案未知时该如何处理。大量"模型不够好"的抱怨在这里就能解决,特别是围绕冗长和结构方面的问题。
然后尝试更大或不同的模型。这通常比任何定制工作都便宜,评估一下午就能完成。我们的《脱离 OpenAI 指南》讲述了如何正确运行这种对比。
如果失败是知识问题,就加检索。如果模型在回答关于你的产品、政策或文档的问题时出错或拒绝回答,这一步才能解决。
如果失败是行为问题,才考虑微调。到这时你已经有了评估集、调好的提示词,以及(如有需要)检索管道。如果输出在风格或结构上仍然不符合需求,而且你能用几百个示例轻松演示期望行为而无法用语言描述,那微调才是合适的工具。
大多数项目在第三步或第四步就停了。这才是省钱的地方。
确实存在合理的微调用例,完全否定它们和一开始就选择它一样是错的。
大规模一致性结构化输出。当每个回复都必须遵循一种在提示词中描述起来很繁琐的严格格式时,微调后的模型能更可靠地生成它,而且输入 token 少得多,在大容量场景下可以回本。
专业语气或领域用语。法律起草、临床笔记、受监管的金融沟通:这类风格有很强的惯例,从业者一眼就能辨认,但很难用指令捕捉。
边界微妙、难以言表的分类。当你的团队能一致地为示例打标签却无法解释规则时,基于示例训练恰恰是为此设计的。
高容量下的成本削减。一个在小模型上微调后能在某个窄任务上匹配大通用模型的产品,可以大幅降低单次请求成本。只有在节省金额超过构建和维护成本时才划算。
共同的主题是行为,不是知识。如果你能用一段话说明你想要什么,就用提示词。如果只能演示,就训练它。
三个持续性负担在微调的商业案例中经常被遗漏。
数据集会过期。你的微调模型反映的是它见过的示例。当产品、政策或内部风格变化时,示例就过时了,但模型会继续自信地生成旧行为。要把周期性重训练作为固定成本列入预算,而不是一次性成本。
你被绑定在基础模型上。微调依附于特定版本。当那个基础版本被弃用或有更好的模型出现时,你得重训练才能迁移——这是提示词所没有的真正切换成本。
评估从可选项变成必选项。用提示词时,你还能肉眼看出回归问题。用微调模型时,你无法检查行为为什么会变,所以评估框架成为你唯一的 instrument。
检索也有一个规模小得多的对等负担:索引必须保持最新,权限必须随着人员角色变化而保持正确,而且当摄入悄无声息地停止时必须有人注意到。这比特训练便宜,但也不是免费的。
Mecanik 在我们的 AI 集成服务中构建检索系统、评估框架和微调管道,我们首先会确定你实际上面临的是三类问题中的哪一类。
这个诊断通常是短期项目,而且往往最终给你的建议远比你原本计划的项目要省钱。如果微调确实是正确答案,我们会如实说明并对数据集工作进行诚实评估,因为那才是决定成败的部分。关于更广泛的预算情况,我们的《AI 集成成本指南》分别列出了构建成本和运行成本。
告诉我们模型什么地方出错了,用用户自己的话说,我们会告诉你这是三类问题中的哪一类。
我应该用公司数据微调模型吗? 通常不应该。微调教的是行为而不是知识,这样学到的知识无法更新、无法引用、无法审计。如果问题是模型不了解你的产品、政策或文档,检索才是正确的方法,而且构建和维护成本更低。
微调和 RAG 的区别是什么? 检索在请求时从你的内容中获取相关材料并放在上下文中,让模型能够根据训练中从未见过的信息回答。微调用示例调整模型权重,改变的是模型的行为方式而非知识储备。
微调要多少钱? 对于中型企业应用,通常 £20,000 到 £80,000,外加两到八周的工程时间。训练算力通常是最小的一项;大部分成本在生产几百到几千个高质量示例上,这需要懂业务的人员。
RAG 系统构建要多少钱? 通常 £15,000 到 £60,000,耗时四到十二周,主要取决于源内容有多混乱。大部分工作花在数据摄入、分块、处理权限(确保用户只能检索到有权查看的内容)以及保持索引最新。
我应该按什么顺序尝试这些方法? 先建评估集,然后优化提示词,然后尝试更大或不同的模型,如果失败与知识相关就加检索,只有当失败与行为相关时才考虑微调。大多数项目在前几步就解决了。