推理 和 训练 成本 占比

成本与用量

给做模型预算的团队讲清推理与训练开销的分布规律,只给判断口径和拆账步骤,不给写死的数字。

做预算的时候最容易卡在一句话上:这钱到底该算在训练头上还是推理头上。有人把一次性投入摊进每个月,有人只盯着调用账单,最后两边对不上。这篇给一套拆法:先分清哪些开销属于哪个池子,再按业务形态看两边的相对关系,最后给一个能直接照着填的对照表和排查顺序。数字一律到站内页面按当时口径核对。

做预算的时候最容易卡在一句话上:这钱到底该算在训练头上还是推理头上。有人把一次性投入摊进每个月,有人只盯着调用账单,最后两边对不上,开会时谁也说服不了谁。问题不在数字,在口径:两个池子的时间尺度、触发条件、跟业务量的关系都不一样,混在一起看必然得出相反的结论。

这篇给一套能直接照做的拆法:先把每笔开销归到训练池还是推理池,再按你所在阶段看两边的相对关系,然后给训练成本一个合理的摊销口径,最后附一张对照清单和排查顺序。所有具体数字一律到站内页面按当时口径核对,这里只讲判断标准和动作。

先把钱分成两个池子,别混着看

训练侧和推理侧最大的差别不是金额,是时间结构。训练侧通常一次性、前置、金额大,而且跟你的业务量没有直接关系——今天没有新用户,这笔钱照样花出去了。推理侧是持续的,随调用量线性走,停掉调用基本就停掉开销。两者的时间尺度不一样,直接相加会误导决策。

训练池
为让模型具备某种能力而提前花掉的钱,花完之后不随调用量变化
推理池
每次请求都要发生的钱,随调用量、上下文长度、并发水平变化
混账
同一笔支出被两边的负责人各记一次,或者被随手塞进看起来更顺的那个池子

判断一笔钱归谁,问三个问题就够了:在没有新调用量的情况下它还会不会发生;能不能随时停;停了业务受不受影响。三个问题都指向「会/不能停/受影响」,那就是推理侧;反过来基本是训练侧。标不出归属的先放待定区,不要硬塞。

  • 把微调当成推理:微调本身是训练动作,但它依赖的常驻实例可能算推理基础设施,要拆开看
  • 把推理用的常驻实例算成训练基础设施:这部分是按时间计费的,跟调用量关系不大,但停掉会影响服务
  • 把数据标注算成任意一边:标注如果服务于一次训练,进训练池;如果服务于线上持续评测,进推理池
  • 把试错跑废的批次漏掉:跑废的算力也是训练成本,不记就会低估训练池

占比规律取决于你处在哪个阶段

这个占比没有放之四海皆准的答案,但它有一个稳定的方向:业务量越小、训练占比越高;业务量越大、推理越会逐步压过训练。研究型团队前期训练占绝对大头,推理几乎为零;产品型团队反过来,训练是一次性投入,推理随用户量不断累积,早晚会反超。

反超的那个点因模型规模和调用频次差别很大,别人的数字对你没有参考价值。要算自己的交叉点,只需要三个输入:单次调用的推理开销、日均调用量、训练侧总投入。前两个可以用站内工具估,第三个按自己的实际支出记。估算工具的具体口径和当时数值到 价格追踪(/price-watch) 与 速度与成本测试(/tools/speed-test) 核对。

团队形态训练侧特征推理侧特征占比观察重点
研究型一次性大投入,反复迭代几乎为零或仅有评测调用训练池是否被重复计入多个项目
产品型早期一次性投入已发生随用户增长快速累积交叉点什么时候到,提前做容量规划
产品型成熟小幅迭代为主占比通常主导推理单价的稳定性,比总量更值得盯
纯调用型没有或极少全部开销不适用两池对比,看单价和调用结构

注意一个反直觉的情况:推理占比高不一定是坏事。对于已经跑起来的业务,推理占主导说明收入侧也在同步增长,属于正常形态。真正需要警惕的是训练占比长期居高不下而推理量始终起不来——那通常意味着模型没转化成业务,或者迭代节奏和产品需求脱节。

训练成本怎么摊到每个月才不算自欺欺人

  1. 定摊销周期按模型的预期服役时长摊,而不是按财务上想看到的数字摊。服役期一到就得重训或换代,把周期拉长只是把问题推到以后。服役时长可以按同类模型的实际迭代节奏估,具体参考到 指南中心(/guides) 看当时的整理。
  2. 把训练池的完整拆项列出来摊销要包含的不只是算力:数据准备、标注、试错跑废的批次、人力。这些在站内训练成本相关页面有拆项可对照,逐项确认自己有没有漏记,漏记的部分会系统性低估训练池。
  3. 把摊销额和当月推理开销放同一张表只有放在一起,才能看出「这个月这个模型到底贵不贵」。分开看永远只有一个孤立的训练总额,没法跟推理侧做任何比较。
  4. 每季度复核摊销口径模型换过、渠道换过、服役周期估错了,都要重新摊。口径一变,历史对比就断了,所以每次变更都要在表里留一行备注。

有一种情况可以放宽:一次性采购、打算长期不动的小模型,摊销周期可以拉长。但要单独标注技术债在累积——模型不动,业务在动,迟早会出现能力跟不上的时候,那时重训的成本会比现在预估的高。

一份能直接照做的对照清单

  • 列全部支出项,逐条标「训练 / 推理 / 两者都占」,标不出归属的先放待定区,不要随手塞进池子
  • 对每个池子算三个数:本月实际、近三个月均值、按当前用量的下月预估,三个数一起看才能发现趋势
  • 看比例而不是看绝对值:训练占比连续走高,通常是推理量没起来或模型没迭代;推理占比突然跳升,先查调用量或上下文长度是不是变了
  • 对照站内页面核对单价口径,确认你用的单价是当时的,换过模型或渠道的一定要重新取数
  • 把待定区的条目定期清理,长期挂着的说明你的记账粒度需要调整
排查现象先看什么常见原因
训练占比持续走高推理量是否停滞、模型是否在反复重训业务没起来、迭代节奏脱离需求
推理占比突然跳升调用量、上下文长度、并发配置用量涨了、或某次改动让单次调用变贵
两边都对不上历史摊销口径、单价口径是否变更过中途换模型、换渠道、改了摊销周期
总账比预期高待定区条目是否被重复计入同一笔支出被两个池子各记一次

最后提醒一个动作:每次做预算前,先把上次的池子口径拿出来对一遍,确认没变再往里填数。口径不统一的时候,算出来的占比再精确也没有决策价值。站内的模型与价格资料可以到 中转站导航(/sites) 和 排行榜(/rankings) 按当时的数字核对,别把旧口径的数字直接搬进新表。

下一步把你现在的支出项按上面的三个问题过一遍,先分出两个池子,再对照站内的价格与用量页面确认单价口径,这样才能算出属于自己的占比。

常见问题

为什么我算出来的推理占比和别人差那么多?

多半是口径不同:有人把微调和批量任务算进推理,有人把常驻实例算成固定成本。先对齐三个口径——哪些算训练、哪些算推理、摊销周期多长,再比数字才有意义。具体单价到站内价格页按当时口径核。

小团队要不要认真拆这个占比?

如果全走 API、没有自建算力,训练池基本为零,拆占比意义不大,重点应该放在调用量控制和缓存上。只有当你开始自己租卡、做微调或多版本迭代时,这个拆分才真正影响预算决策。

这个占比多久看一次比较合适?

按月度节奏看就够了,频率再高容易被单次波动带偏。但有两种情况要临时加看:模型换代或调用量出现明显跳变时,当月的占比会失真,需要单独标注而不是直接写进趋势。

本文依据各平台公开文档与官方公告整理,只做中文归纳;具体做法、参数与限制以官方文档为准。