自托管与 Serverless 推理成本核算方法

分别列出自托管与 Serverless 的成本核算口径,把设备、算力、存储、电力、网络和运维拆成可填写项目,并明确 Serverless 的启动、执行与空闲等待都要纳入计费窗口。

自托管要把设备、算力、存储、电力和运维放进同一评估期;Serverless 则要把 worker 的启动、执行和空闲等待拆开计费。涉及算力租赁时,先从服务商当前账单或报价填入单价,再按下述方法汇总,不要只比较 GPU 型号。最后用实际账单回填 YOUR_VALUE,无法解释的差额应先查清。

算力租赁与 Serverless:先确定计费窗口

RunPod 的 Serverless 计费说明 把 worker 的计费时间分为启动、执行和 idle timeout。启动阶段包括容器初始化和把模型载入 GPU;费用从 worker 启动持续到完全停止,并向上取整到秒。请求到达、模型首次响应和容器停止不是同一个成本节点,模型加载与请求完成后的等待都要放进时间轴。

worker 运行费用 = 向上取整(启动秒数 + 执行秒数 + 空闲等待秒数)× 对应资源每秒单价
Serverless 总成本 = Σ worker 运行费用 + 存储 + 网络 + 软件与运维 + 报价单其他项目

月度汇总时,再把存储、网络、软件维护和人员值守放在算力费用之外。某个项目只出现在报价单而不在示例价目表,也要按报价单记录;未给出的字段保留为 YOUR_VALUE,不要自行补零。

RunPod 的 账单概览 写明,计算和存储按秒计费,数据传输不另收费,并从预付余额中持续扣款;这仅适用于该平台当前文档,不能外推到其他服务商。

Worker 模式也要分开核算。RunPod 的 Serverless worker 概览 说明,Flex worker 会按需求缩放,空闲时停止产生使用费,扩容时则会出现 cold start。同一平台的 endpoint 设置 写明,Active worker 即使空闲也持续产生费用。应在场景表中分别记录缩放计费与常驻计费,不要把两种口径混在同一行。

自托管:把设备与运行费用放在同一口径

把 GPU、CPU、内存等设备作为一个整体,或按实际使用比例分摊;模型文件、系统镜像、备份和日志另列存储,电力、网络、软件许可、补丁、监控、故障替换和人员值守另列运行成本。没有现成数据时写 YOUR_VALUE,不要把未知项当作免费项目。

评估期设备成本 = 设备取得成本 - 期末可回收价值 + 资金占用成本
自托管总成本 = 设备 + 电力 + 存储 + 网络 + 软件 + 运维 + 故障与冗余
电力成本 = IT 设备用电量 × PUE × 电力单价

Google 数据中心对 PUE 的说明 将其定义为非计算开销能耗与 IT 设备能耗之比。只有在按用电量独立核算时,才使用上述 PUE 公式;若算力单价已经包含机房开销,不要再次叠加。服务商没有说明口径时,应向其确认,而不是套用其他机房的 PUE。

资源参数会怎样改变自托管成本

vLLM 的 显存管理文档 写明,tensor_parallel_size 可以把模型拆到多张 GPU,但每个 process 都会读取完整 checkpoint,磁盘读取时间会随并行规模增加;max_model_len 和 max_num_seqs 可以降低内存用量。文档还说明 CUDA graphs 默认开启并额外占用显存,enforce_eager 可以完全关闭 graph capture。

tensor_parallel_size
max_model_len
max_num_seqs
enforce_eager

因此,成本表应把并行 GPU 规模、上下文长度、批大小、graph 选择和模型加载等待分别列项。调低上下文或批大小可能减少内存压力,但也可能无法满足既定服务要求,不能只复制一个配置值便结束核算。

按这个顺序完成核算

  • 锁定边界:写明评估期、计价单位、单价来源和适用场景,设备成本与 Serverless 费用必须使用可比较的时间范围。
  • 填写自Hosted项目:录入设备取得成本、可回收价值、用电量、PUE、存储、网络、软件和运维;缺项保留为 YOUR_VALUE。
  • 填写 Serverless 项目:按 worker 记录启动、执行和空闲等待,并分别建立 Active 与 Flex 场景。
  • 运行场景表:用你自己的峰值并发、上下文长度、批大小、模型加载记录和报价重新计算,不沿用他人的负载假设。
  • 核对实际账单:把每笔费用映射到公式中的项目,供应商账单口径改变时重新计算,不把方法变化解释成模型性能变化。
估算差异 = 实际账单金额 - 估算总成本

常见出错点

  • 只计算请求响应时间,漏掉容器启动、模型加载、worker 停止和空闲等待。
  • 用峰值 GPU 配置配合平均请求量,导致算力、存储和运维项目口径不一致。
  • 把 Active worker 的常驻费用与 Flex worker 的按需费用混算。
  • 未确认 PUE 是否已经包含在算力单价中,造成电力开销重复计算。
  • 看到示例价目表没有存储或网络项目,就直接删除字段,而不是保留待报价状态。

本文内容依据正文所链接的官方文档整理,未做任何运行或测量;使用前请按当前版本复核。

资料来源