Replicate 的计费方式
Replicate 的基于时间的定价不取决于模型。无论是使用 SDXL 生成图像,还是运行 Llama 3,账单都取决于硬件层级和运行时间。Replicate 可以托管数千个开源模型,而无需为每个模型单独定价。
下面的实现还使用了 A40 和 A100 (40GB) 层级的示例计量器,而 Replicate 的定价页面已不再列出这些层级。请为你提供的每个硬件层级分别创建一个计量器。
每次运行都会根据实际使用的硬件,在对应的计量器上进行计量:
- 硬件专属费率:每秒价格取决于所使用的计算资源。每个硬件层级都有自己的费率。
- 纯按用量计费模式:没有月费、包含配额或超额费用。用户只需为准确的计算时间付费,例如“在 A100 上运行 12.4 秒”,而不是按生成次数付费。
- 按秒计费粒度:按小时或分钟计费的提供商会对短任务未使用的时间收费。按秒计费则能消除这种浪费,既适用于小型实验,也适用于大型生产工作负载。
对于公共模型,Replicate 仅对模型主动处理请求的时间收费。初始化(冷启动)和空闲时间免费。私有模型和部署运行在专用硬件上,因此其实例在线期间的所有时间都需要付费:初始化、空闲和活动时间(Replicate billing docs)。
其独特之处
- 硬件专属计量: 同一模型在更快的硬件上成本更高,因此用户需要在速度和成本之间进行权衡。T4 GPU 适合对时间不敏感的任务,而 A100 适合实时应用。
- 按秒计费粒度: 计费精确到秒,因此用户无需为短任务中未使用的时间付费。
- 无订阅: 用户无需承担任何前期承诺,成本会随用量增长。这适合初创公司和尝试不同模型的开发者。
- 与模型无关: 相同的计费逻辑适用于图像生成、文本处理、音频转录和视频合成。该平台支持大量模型目录,无需复杂的定价表。
使用 Dodo Payments 构建
你可以使用 Dodo Payments 的按用量计费来构建此模型。为每个硬件层级创建一个计量器,并将所有计量器关联到同一个产品。1
Create Usage Meters (One Per Hardware Class)
为每个硬件层级创建单独的计量器。每个层级都有自己的每秒价格,因此单独的计量器可以让 Dodo Payments 为每个层级定价,并在发票中逐项列出费用。
对
execution_seconds 进行 Sum 聚合,可得计费周期内每个硬件层级的总计算时间。2
Create a Usage-Based Product
在 Dodo Payments 控制面板中使用以下设置创建一个产品:
- 定价类型: 按用量计费
- 基础价格: $0/月(无订阅费)
- 计费频率: 每月
将每个计量器的 Free Threshold 设置为 0,这样每一秒的执行时间都会产生费用。
3
Send Usage Events
每次模型运行完成后,向 Dodo Payments 发送一个用量事件。为每个预测分配唯一的
event_id,以确保重试的事件不会被重复计数。4
Measure Execution Time Precisely
使用
performance.now() 记录每次模型运行的时间,并四舍五入到最接近的十分之一秒后计费。5
Create Checkout
用户注册时,为按用量计费的产品创建结账会话。之后,Dodo Payments 会在每个周期对用量计费并开具发票。
使用 Time Range Ingestion Blueprint 加速
Time Range Ingestion Blueprint 可以缩短按秒跟踪计算时间的实现过程。为每个硬件层级创建一个 ingestion 实例,并在每次运行后调用trackTimeRange。
durationMs。将每个计量器的 Over Property 设置为 durationMs,或发送 durationSeconds 以保留按秒定价。为每个硬件层级使用一个 ingestion 实例后,即可直接映射到 Replicate 的多层级计量。
面向用户的成本估算
按用量计费的账单可能难以预测,因此应在用户运行模型前显示成本估算。估算可以避免意外账单并建立信任。成本计算示例
构建成本计算器
此函数将该层级的每秒费率乘以预计运行时间:企业版:预留容量
对于需要专用容量且不希望出现冷启动的客户,Replicate 提供 deployments:专用实例会对其在线期间的全部时间计费。 要使用 Dodo Payments 模拟预留容量,可将其作为订阅产品销售:- 产品类型: 订阅
- 价格: 固定月费(例如“Reserved A100 Instance - $500/月”)
- 计费周期: 每月
高级:Heartbeat Metering
对于运行数分钟或数小时的任务,仅在结束时发送一个事件存在风险:如果进程崩溃,你将丢失用量数据。相反,应在任务运行期间每 30 到 60 秒发送一个用量事件。使用的 Dodo 核心功能
Usage-Based Billing
设置基于消耗量计费的产品。
Meters
定义要跟踪并计费的指标。
Event Ingestion
在用量产生时将数据发送到 Dodo Payments。
Subscriptions
管理预留容量和企业计划的 recurring billing。
Time Range Blueprint
使用 duration helpers 跟踪每秒计算时间。