自建推理最容易被问住的一句话是「你们这个算力价格怎么算出来的」。按卡时报价、按 token 折算、按整机月租摊,三种口径算出来的数能差出一倍,谈价和内部立项时很容易各说各话。这篇把计价口径、影响因素和换算步骤理一遍,让你能拿出一个说得清前提的数字。
自建推理的团队经常被一句话问住:你们这个算力价格到底怎么算出来的。按卡时报、按 token 折算、按整机月租摊,三种口径算出来的数能差出一大截,谈价和内部立项时很容易各说各话。想把这笔账说清,关键不是套一个公式,而是先把口径钉死,再谈分子分母。
这篇只讲计价本身,不讲该不该自建、也不讲怎么选卡。目标很实在:给你一套能自己套用的换算步骤,让你拿出去的数字带着明确前提,别人问「这个数怎么来的」时你能一条条答上来。下面先从最容易被含糊过去的计价口径说起。
先定口径:按卡时、按显存还是按 token
口径不定,后面所有比较都是白费。同样一台机器,按占用时长算和按实际产出算,得出的单位成本可以差出很多,因为中间夹着一段空转时间。所以第一步不是算数,是先约定「这一口价买的是什么」。
- 卡时口径
- 按占用卡的小时数计价,适合间歇性、批处理类任务,空转时间也算钱
- 整机月租口径
- 按独占整机的一个月计价,适合常驻在线服务,量再大单价也不变
- token 口径
- 由上面两种口径除以实际吞吐摊出来的结果,是产出指标,不能反过来当成采购价去谈
比价之前还有一件必做的事:把计价周期对齐。同一张卡按小时租和按月租,单位时间的价不是一回事,拿按小时的价去和按月租的报价比,结论一定是错的。各家口径说明到 /compute/providers 页面核对,重点看它标的是卡时、整机还是别的单位。
影响单价的几项关键变量
单价不是一个固定数,它被几项变量牵着走。理解这些变量,你才能判断对方报的价是偏乐观还是偏保守,也才知道自己这边哪些环节最费钱。下面这几项,按对最终单价的影响力从大到小排。
- 卡型和显存:显存决定能放下多大的模型和多大的并发批,放不下就得加卡或拆多机,单价直接被推上去
- 利用率:实际吞吐跑不满标称值时,摊销到每次请求的成本就上升,这是自建最容易翻车的一项
- 机房、电费、带宽、存储:租卡报价通常不含这些,长期跑必须单独列,电费部分的算法可以去 /compute/power 看
- 服务化开销:网关、队列、监控、日志、灰度环境这些不直接出 token,但每一台都要从预算里出
| 变量 | 影响方向 | 怎么估 |
|---|---|---|
| 卡型与显存 | 显存不够→加卡→单价升 | 按模型权重大小加并发批需求反推最少卡数 |
| 利用率 | 利用率低→单位成本升 | 用真实输入输出长度压测,别用标称值 |
| 机房与电费 | 独立于租金的固定支出 | 按实测功率乘在线时长估,参考 /compute/power |
| 服务化组件 | 隐性占用,容易漏算 | 把网关、监控、灰度各占的机器折算成卡时 |
这些变量里,利用率最难估也最要命。很多人立项时按满载算,上线后发现峰值只占少数时间,单位成本直接翻倍。所以估利用率时宁可保守,把计划在线时长和峰值占比都写进假设里。
把一台机器摊到每次请求的四步算法
前面讲了口径和变量,这一节给一套能直接套用的算法。四步走下来,你就得到一个带前提的单位成本数字。注意顺序不能颠倒,先算总支出再估吞吐,否则容易为了凑数字去反推。
- 算月度总支出租金或折旧加电费、带宽、存储、运维人力,全填进去,别只填租金那一栏;验证方法是把所有项列成表逐项打钩,缺一项就补
- 估有效吞吐在真实输入输出长度下压测,拿到每秒能处理的请求数和 token 数;验证方法是压测数据和线上监控对得上,对不上重测
- 按利用率打折把计划在线时长和峰值占比套进去,得到实际可售容量;验证方法是拿折扣后的容量和历史峰值对比,看是否够用
- 相除得单位成本总支出除以可售容量,得到每请求或每千 token 的成本,再和按量调用同任务的价格比一次
# 校验思路(示意,非真实数值)
monthly_cost = rent + power + bandwidth + storage + ops
usable_capacity = peak_throughput * online_ratio * peak_share
unit_cost = monthly_cost / usable_capacity
# 关键:三个假设值都要写进备注,换一个假设结果就变算完别急着下结论,把这个单位成本和按量渠道的价格放在同一张表里比。比的时候前提要对齐,输入输出长度、并发数、是否开缓存,这些不一样,比出来的是两件事。按量价格到 /official-api 核对当时的数字。
和按量调用、托管推理放在一起比
自建从来不是无条件划算的。它的优势区间通常出现在稳定高负载和需要数据不出域的场景;负载低或波动强的场景,按量调用的边际成本反而更低,因为你不用为空转买单。所以比价这件事,本质是比「你这边的负载形态适合哪种口径」。
| 场景特征 | 自建更可能划算 | 按量更可能划算 |
|---|---|---|
| 负载稳定性 | 长期稳定高负载 | 波动大、峰值短 |
| 数据要求 | 数据不能出域 | 无硬性要求 |
| 模型迭代频率 | 模型长期固定 | 换代频繁需反复适配 |
| 起步阶段 | 已有运维人力 | 人力紧张、想快速验证 |
开源模型的推理比价可以去 /inference 看,那边把常见开源模型的单位成本放在一起对照。要注意一点:模型换代频繁时,自建每次都要重做适配和压测,这部分人力成本往往比硬件还贵,比价时别把它漏掉。
对外报价或内部立项的自查清单
数字算完,最后一步是把它写清楚,让看的人知道这个数在什么前提下成立。下面这份清单,报价和立项都能用,逐条过一遍能挡掉大部分后续扯皮。
- 写清计价单位是卡时、月还是千 token,以及包含项和不含项、计费起点与起租时长
- 写清利用率假设,并注明这是估算前提,实际跑不到这个数成本会变
- 写清扩容触发点和对应的单价变化,避免量涨上去后单价谈不拢
- 留一条对比口径,写清同任务在按量渠道的价格,作为内部判断的锚点
一个说得清前提的数字,比一个漂亮的数字有用得多。下一步想拿真实数据核对上面每一项假设,去站内价格追踪和算力页面看当时的数字,再回头套这套算法,结论会稳得多。→
常见问题
按卡时算出来的成本,为什么和账单对不上?
多数是口径没对齐:卡时通常只算卡的占用时间,而账单里还会带存储、带宽、公网流量和停机保号的费用,另外起租时长和计费粒度也会造成差异。建议把账单项目逐条列出来,标出哪些进卡时价、哪些单列,再重算一遍。
估算时利用率一般按多少算比较稳?
别按理论峰值算。比较稳的做法是先看自己真实的时段分布,把峰值时段之外的闲置算进去,再用压测拿到的真实吞吐做基数。如果业务量还在爬坡,宁可先用偏保守的利用率做预算,跑一两个月用实际数据回填。
自建一定比按量调用便宜吗?
不一定。只有在负载稳定、利用率能拉起来、且模型不需要频繁换代的情况下,自建的单位成本才容易压过按量调用。低负载、强波动或模型一月一换的场景,按量的边际成本往往更低,还省掉适配和压测的人力。