Replicateの請求方法
Replicateの時間ベースの料金は、モデルに依存しません。SDXLで画像を生成する場合でも、Llama 3を実行する場合でも、請求額はハードウェアのティアと実行時間によって決まります。Replicateは、モデルごとに個別の料金を設定することなく、数千種類のオープンソースモデルをホスティングできます。
以下の実装では、Replicate の料金ページに現在掲載されていない A40 および A100 (40GB) ティアのメーターも例として使用しています。提供するハードウェアティアごとに1つのメーターを作成してください。
各実行は、使用したハードウェアのメーターで計測されます。
- ハードウェア固有の料金: 1秒あたりの料金は、使用したコンピューティングリソースによって異なります。ハードウェアの各ティアには固有の料金が設定されています。
- 純粋な使用量ベースのモデル: 月額料金、含まれるクォータ、超過料金はありません。ユーザーは「A100で12.4秒」のように、生成回数ではなく、正確なコンピューティング時間に対して支払います。
- 秒単位の粒度: 時間単位または分単位で請求するプロバイダーでは、短いタスクで使用していない時間にも料金がかかります。秒単位の請求により、小規模な実験でも大規模な本番ワークロードでも、この無駄をなくせます。
公開モデルの場合、Replicateはモデルがリクエストを実際に処理している時間に対してのみ請求します。セットアップ(コールドブート)とアイドル時間は無料です。プライベートモデルとデプロイメントは専用ハードウェア上で実行されるため、インスタンスがオンラインになっているすべての時間(セットアップ、アイドル、アクティブ)に対して支払います(Replicateの請求ドキュメント)。
独自性
- ハードウェア固有のメータリング: 同じモデルでも、より高速なハードウェアでは料金が高くなるため、ユーザーは速度とコストのバランスを選択できます。時間的な制約がないタスクにはT4 GPUが適しており、リアルタイムアプリケーションにはA100が適しています。
- 秒単位の粒度: 請求は秒単位で計算されるため、短いタスクで使用していない時間に対して支払う必要がありません。
- サブスクリプションなし: ユーザーは契約なしで開始でき、コストは使用量に応じて増減します。これは、さまざまなモデルを試すスタートアップや開発者に適しています。
- モデルに依存しない: 同じ請求ロジックが、画像生成、テキスト処理、音声文字起こし、動画合成に適用されます。複雑な料金表を用意することなく、多数のモデルを含むカタログをサポートできます。
Dodo Paymentsで構築する
Dodo Paymentsの使用量ベースの請求を使って、このモデルを構築できます。ハードウェアの各ティアに1つずつメーターを作成し、それらをすべて1つのプロダクトに関連付けます。1
Create Usage Meters (One Per Hardware Class)
ハードウェアの各ティアに個別のメーターを作成します。各ティアには固有の1秒あたりの料金があるため、個別のメーターによってDodo Paymentsは各ティアに適切な料金を設定し、請求書に明細を記載できます。
execution_seconds に対して Sum 集計を行うと、請求期間中のハードウェアティアごとの合計コンピューティング時間が得られます。2
Create a Usage-Based Product
次の設定でDodo Paymentsダッシュボードにプロダクトを作成します。
- 料金タイプ: Usage Based Billing
- 基本料金: $0/月(サブスクリプション料金なし)
- 請求頻度: Monthly
すべてのメーターの Free Threshold を0に設定し、実行時間の1秒ごとに請求できるようにします。
3
Send Usage Events
各モデルの実行が完了したら、Dodo Paymentsに使用量イベントを送信します。再試行されたイベントが二重にカウントされないよう、各予測に一意の
event_idを付与します。4
Measure Execution Time Precisely
performance.now()で各モデルの実行時間を計測し、請求用に0.1秒単位で四捨五入します。5
Create Checkout
ユーザーがサインアップしたら、使用量ベースのプロダクトのチェックアウトセッションを作成します。その後、Dodo Paymentsが各サイクルで使用量を請求し、請求書を発行します。
Time Range Ingestion Blueprintで高速化する
Time Range Ingestion Blueprintを使用すると、秒単位のコンピューティング追跡を簡略化できます。ハードウェアの各ティアに1つずつ取り込みインスタンスを作成し、各実行後にtrackTimeRangeを呼び出します。
durationMsとして記録します。各メーターの Over Property をdurationMsに設定するか、durationSecondsを送信して秒単位の料金を維持します。ハードウェアの各ティアに1つずつ取り込みインスタンスを用意することで、Replicateのマルチティアメータリングに直接対応できます。
ユーザー向けのコスト見積もり
使用量ベースの請求額は予測しにくい場合があるため、モデルを実行する前にユーザーへコストの見積もりを提示します。見積もりによって予想外の請求を防ぎ、信頼を築けます。コスト計算の例
コスト計算ツールの構築
この関数は、ティアの1秒あたりの料金に推定実行時間を掛け合わせます。エンタープライズ: 予約済みキャパシティ
専用キャパシティとコールドブートのない環境を必要とする顧客向けに、Replicateはデプロイメントを提供しています。これは、オンラインになっている全時間に対して請求される専用インスタンスです。 Dodo Paymentsで予約済みキャパシティをモデル化するには、サブスクリプションプロダクトとして販売します。- プロダクトタイプ: Subscription
- 料金: 固定月額料金(例: 「Reserved A100 Instance - $500/month」)
- 請求サイクル: Monthly
Advanced: Heartbeat Metering
数分または数時間実行されるタスクでは、最後に1つのイベントだけを送信するのは危険です。プロセスがクラッシュすると、使用量データが失われるためです。その代わり、タスクの実行中は30~60秒ごとに使用量イベントを送信します。使用するDodoの主な機能
Usage-Based Billing
消費量に基づいて請求するプロダクトを設定します。
Meters
追跡および請求するメトリクスを定義します。
Event Ingestion
発生した使用量データをDodo Paymentsに送信します。
Subscriptions
予約済みキャパシティとエンタープライズプランの定期請求を管理します。
Time Range Blueprint
期間ヘルパーを使用して、秒単位のコンピューティングを追跡します。