做产品 PMaker
空格的键盘空格的键盘
大模型

训练与推理的区别

训练与推理的区别 | 大模型 | 做产品

训练与推理的区别

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

你会遇到的现象

  • 你纠正了它一个错误,它当场认错,下次开新会话又错一遍

  • demo 阶段账单没感觉,一上线就发现成本失控

  • 老板问「能不能训练一个我们自己的模型」,你不知道该怎么接

两件完全不同的事

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

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

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

训练推理 发生几次一次每次调用一次 量级几个月、几千万到几亿几秒、几分钱 谁在做模型厂商你和你的用户 改了会怎样换出一个新模型改这一次的答案 你能不能碰基本不能全在你手上

「训练一个我们自己的模型」这句话,九成情况下真正想要的是最后一行右边那些事:换个提示、接上自己的资料、限定输出格式。这些都在推理侧,成本差好几个数量级。

你能改的只有一侧

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

  • **训练侧,你唯一的动作是选型。**模型的知识截止日、语言强项、代码能力、天生的口味,都是训练时定死的。不满意就换一个,没有第二条路。别指望用提示词把一个不擅长中文的模型调成擅长中文。

  • **推理侧,你能动的东西很多。**提示怎么写、给多少上下文、温度调多少、要不要挂检索、要不要给工具、用哪个档位的模型、要不要开缓存。日常做 AI 产品,九成工作量在这里。

  • **中间还有一层叫微调。**它介于两者之间:在已有权重上用少量数据再训一轮,改的是风格、格式、领域口径,不是知识量。成本比训练低几个数量级,但比改提示高得多,而且改完就固化了,不如提示灵活。先把提示和检索用尽,再考虑微调。

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

训练侧 已经定死,动不了 · 知识截止日 · 语言强项 · 代码能力 · 天生的口味

唯一动作:选型

微调 改风格、格式、 领域口径 不改知识量 改完就固化, 不如提示灵活 放到最后再考虑

推理侧 日常做 AI 产品,九成工作量在这里

提示怎么写

上下文给多少

温度

挂不挂检索

给不给工具

哪个档位

开不开缓存

输出多长

要不要压缩 账单和延迟也全在这一侧,所以能压的地方也全在这里

「能不能训练一个我们自己的模型」 九成情况下,真正想要的是右边那些事——换个提示、接上自己的资料、限定输出格式。成本差好几个数量级。

你在对话里纠正它,它这一轮听进去了,是因为纠正进了这一次的输入序列。**会话一关,这段输入就没了,权重还是原来那份。**训练侧和推理侧之间没有回流的箭头。

成本从哪来

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

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

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

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

接着看

Token 与计费单位 推理按 token 计费,那 token 到底怎么切出来的,中英文差在哪。

参数量与跑分怎么看 选型是训练侧唯一的动作。该看哪个指标,这一篇给判断。

上下文预算 压住「每次的输入长度」这个乘数的具体做法:什么该给、什么不该给。