做产品 PMaker
空格的键盘
训练:只发生一次 几个月 · 上万张卡 · 一次性的巨额投入 产物:一份从此固定下来的权重 模型发布 推理:每次调用都重来一遍 每一根都是一次真实花钱的调用 你动不了的这一侧 权重、知识截止日、天生的偏好和口味 唯一的开关是「换一个模型」 你能动的这一侧 提示、上下文长短、温度、工具、缓存、模型档位 效果和成本,都在这里调 「AI 太贵」几乎从来不是训练贵,是右边那排小柱子太多、太长

训练是一次性的巨额投入,跟你没关系;推理是每次调用的边际成本,全是你的事。

训练与推理的区别

训练是把语料压成一份权重,发生一次就结束了。推理是拿这份权重去算一次答案,你每按一次回车就发生一次。

你会遇到的现象
  • 你纠正了它一个错误,它当场认错,下次开新会话又错一遍
  • demo 阶段账单没感觉,一上线就发现成本失控
  • 老板问「能不能训练一个我们自己的模型」,你不知道该怎么接

两件完全不同的事

训练是:拿海量文本,一遍遍让模型猜下一个 token,猜错就微调参数,重复几万亿次。这个过程要几个月、上万张卡、天文数字的电费。结束之后,得到一份权重文件。这份文件从此就是死的。

推理是:把你的输入喂进这份权重,算出一串输出。这个过程通常几秒钟,用一张卡的一小部分算力,成本是几分几毛。但它每次调用都要重新发生一遍。

最容易误会的一条:你跟它说的任何话,都不会改变权重。你在对话里纠正它,它这一轮听进去了,是因为你的纠正进了这一次的输入序列,下一个 token 会参考到它。会话一关,这段输入就没了,权重还是原来那份。

训练推理
发生几次一次每次调用一次
量级几个月、几千万到几亿几秒、几分钱
谁在做模型厂商你和你的用户
改了会怎样换出一个新模型改这一次的答案
你能不能碰基本不能全在你手上
「训练一个我们自己的模型」这句话,九成情况下真正想要的是最后一行右边那些事:换个提示、接上自己的资料、限定输出格式。这些都在推理侧,成本差好几个数量级。

你能改的只有一侧

把这条线画清楚,很多争论会当场结束。

把这条线画清楚,很多争论会当场结束 训练侧 已经定死,动不了 · 知识截止日 · 语言强项 · 代码能力 · 天生的口味 唯一动作:选型 微调 改风格、格式、 领域口径 不改知识量 改完就固化, 不如提示灵活 放到最后再考虑 推理侧 日常做 AI 产品,九成工作量在这里 提示怎么写 上下文给多少 温度 挂不挂检索 给不给工具 哪个档位 开不开缓存 输出多长 要不要压缩 账单和延迟也全在这一侧,所以能压的地方也全在这里 「能不能训练一个我们自己的模型」 九成情况下,真正想要的是右边那些事——换个提示、接上自己的资料、限定输出格式。成本差好几个数量级。
你在对话里纠正它,它这一轮听进去了,是因为纠正进了这一次的输入序列。会话一关,这段输入就没了,权重还是原来那份。训练侧和推理侧之间没有回流的箭头。

成本从哪来

推理是按 token 计费的,输入和输出分开算,输出通常贵好几倍。于是账单的公式很简单:调用次数 × 每次的输入长度 × 单价,加上输出部分。三个乘数里,你最容易失控的是中间那个。

典型的失控是这样的:一开始提示词两百字,效果不错。后来加了系统规则,八百字。再后来接上历史对话、检索到的文档、工具返回的结果,一次请求变成两万 token。用户点一次,你付两万 token 的钱,而且每一轮对话都要把前面全部重发一遍。

能压的几个地方:把不变的前缀固定住走缓存、把长文档先摘要再进上下文、把简单任务分流给便宜档位的模型、把多轮对话阶段性压缩一次。这几件事都在推理侧,都是你能做的。

还有一条容易忽略的:延迟也是推理侧的账。输出越长,等待越久,因为它是一个 token 一个 token 吐的。要产品响应快,最有效的手段往往不是换更强的模型,而是让它少说几句。

接着看