Serverless 推理计费核对与费用排查
依据 RunPod、Modal、Replicate 的官方规则,用统一核对表拆分 Serverless 推理的计算、等待、存储、传输、税费与下游调用成本,定位余额、计费周期和失败请求造成的账单异常。
核对 Serverless 推理账单,不能只按“生成耗时”估算;要把启动、执行、空闲等待以及账单中实际出现的存储、传输、税费和下游调用逐项复算。对 RunPod、Modal、Replicate 来说,算力租赁的计时边界并不相同,应先按各自官方规则复算,再逐行核对账单或报价。
先把“运行时间”和“出账时间”分开
运行时间决定费用组成,出账时间决定何时扣款,两者不能混用。
| 平台 | 必须纳入的计费边界 |
|---|---|
| RunPod | RunPod Serverless 计费规则规定,从 worker 启动到完全停止按秒计费并向上取整;启动、执行和 idle timeout 都属于可计费阶段。 |
| Modal | Modal 定价说明将应用加载、输入处理和最后一次输入后的默认 60 s keep-alive 计入用量;缩到零容器后不再收费,也没有每实例最低使用时长。 |
| Replicate | Replicate 计费文档说明,public model 只对 active processing 收费,setup 和 idle 免费;private model 与 deployment 则对 setup、idle、active 全程在线时间收费。 |
上线前建立可复算清单
上线前,把算力租赁报价和账户账单中的适用行项放入同一张表。只保留实际出现的计算资源、存储、传输、订阅、税费、下游调用和额度抵扣,再填写当前报价中的单价:
RunPod: ceil((YOUR_VALUE - YOUR_VALUE) / 1 second) * YOUR_VALUE
Modal CPU/memory: max(YOUR_VALUE, YOUR_VALUE) * YOUR_VALUE * YOUR_VALUE
Replicate private/deployment: (YOUR_VALUE + YOUR_VALUE + YOUR_VALUE) * YOUR_VALUE
estimated_total = YOUR_VALUE
actual_total = YOUR_VALUE
difference = actual_total - estimated_total
RunPod 的两个时间值分别填启动和完全停止时间。Modal 的 max 中分别填申请量与实际用量,再乘计费秒数和当前单价;GPU 按秒数乘单价。Replicate 的三个时间依次是 setup、idle、active,public model 则只取 active time。
按平台固定影响用量的配置
RunPod:记录 endpoint 配置和伸缩规则
在 Endpoint settings 页面记录 Active workers、Max workers、Idle timeout 和 Execution timeout。当前默认值分别为 0、3、5 s 和 600 s;Active workers 即使闲置也会持续收费。
按请求量伸缩时,官方给出的计算式是:
Math.ceil((requestsInQueue + requestsInProgress) / scalerValue)
把当时的 scalerValue、最大 worker 数和请求时间线一起保存,避免只凭最终响应时间反推费用。
Modal:给应用增加成本标签
Modal 账单说明使用 key-value tags 归因成本,官方示例为:
app = modal.App(name="inference-engine", tags={"team": "llm-platform"})
同一条计费周期规则规定,Workspace 用量按月结算并在周期结束时自动扣款;用量首次超过特定阈值时,还可能产生周期中的增量扣款。因此,月中扣款不一定代表重复计费。
Replicate:先确认公开、私有还是 deployment
按 Replicate 的计费规则,先在模型页面的 Run time and cost 查看硬件,再只对按时间计费的模型套用公式。取消或失败也不能一律按“免费”处理:private model 和 deployment 的失败、取消运行会按实例 active time 计费;official model 取消时仍可能收费,按时间计费的模型则计算到取消时点。模型调用其他模型时,还要加入下游模型的计算费用。
一次请求怎样完成核对
- 记录请求到达、资源启动、最后输入、缩到零和账单入账时间。
- 按上表选择对应平台的时间边界,把时长和当前报价填入复算公式。
- 将计算、等待、存储、传输、订阅、税费、额度抵扣和下游调用逐行映射到账单。
- 查看
difference的第一个不一致字段,先修正计费边界或缺失行项,不要直接修改最终合计。
常见费用排查
余额、停止状态与存储对不上
RunPod 计费总览说明,账户先充值 credits,使用时扣减;计费任务每 5 min 运行一次,近期支出可从 Billing 页面的 Billing Explorer 查看。
同一计费页面还说明:数据传输不收费;余额耗尽时,运行中的 Pod 会自动停止,没有 network volume 的 Pod 被终止后数据无法恢复,而 network volume 在 Pod 停止后仍可能产生存储费用;host machine 不可用时则不收取存储费。
不要跨平台套用免费项目
不同平台的模型类型、伸缩方式和账单行项不能直接类比。若当前官方文档没有明确存储、传输或税费规则,就不要自行按零处理;应继续查看当前报价、账单明细和项目配置。排查时分开记录 RunPod 的 Pod 与 worker、Modal 的 app 与 Workspace,以及 Replicate 的 model 与 deployment,避免把不同对象的费用合并后失去归属。
本文步骤按正文所链接的官方文档整理,未运行或测量任何服务;使用前应按当前版本复核。