モデルの接続と開発モデリングプロジェクトの管理ライブデプロイのリファレンスとよくある質問ライブデプロイのコンピュート使用量

注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

ライブデプロイのコンピュート使用量

Foundry Machine Learning のライブデプロイは、モデルリリースを API エンドポイント経由で操作できる、永続的でスケーラブルなデプロイです。ライブデプロイは、受信トラフィックに迅速に応答できるよう、専用のコンピュートリソースを継続的に確保します。そのため、ライブデプロイをホストすると、デプロイがアクティブな間は Foundry のコンピュート秒を使用します。

以下のドキュメントでは、Modeling Objective を元にしたライブデプロイのみを説明します。JavaScript の関数ベースのデプロイと直接デプロイは、ここでは扱いません。直接デプロイは Compute Module を元にしているため、対応する原則に従います。ただし、コンテナベースのモデルにはデプロイとモデルの両方のリソースが必要であるという注意点は、引き続き適用されます。

ライブで実行している場合、Foundry Machine Learning のコンピュート使用量は Modeling Objective 自体に計上され、Modeling Objective を含むプロジェクトの単位で集計されます。Foundry におけるコンピュート秒の定義と、使用量の計算に使用する式の根拠については、使用量の種類のドキュメントを参照してください。

コンピュート秒を測定する

Foundry Machine Learning のライブデプロイは、Foundry のポッドベースの計算クラスターで実行される専用の「レプリカ」上にインフラストラクチャをホストします。各レプリカには、vCPU 数と RAM の GiB 数で測定される計算リソースが割り当てられます。各レプリカはモデルをローカルにホストし、計算リソースを使用して受信リクエストを処理します。

コンテナベースのモデルの場合、各レプリカには、コンテナのモデルバージョンのランタイム設定で指定された専用の GPU または vCPU リソースを持つコンテナが付属します。

Modeling Objective にインポートされた Foundry Machine Learning のライブデプロイは、受信するリクエスト数にかかわらず、アクティブな間はコンピュート秒を使用します。デプロイは開始されると「アクティブ」と見なされ、グラフィカルインターフェースまたは API でシャットダウンされるまで「アクティブ」のままです。ライブデプロイに関連付けられている Modeling Objective がプラットフォームのゴミ箱に移動されると、ライブデプロイはシャットダウンされます。一方、Modeling Objective ではなくモデルリソースから開始された直接デプロイは、リクエスト量に基づいて自動スケーリングされ、使用されていないときに最小レプリカ数を0にできるよう設定できます。Modeling Objective からのライブデプロイと直接デプロイの違い、および直接デプロイの自動スケーリングの動作について、詳しくはこちら。

ライブデプロイが使用するコンピュート秒数は、主に3つの要因によって決まります。

  • レプリカあたりの vCPU 数
    • ライブデプロイでは、vCPU はミリコア単位で測定され、1ミリコアは1 vCPU の1/1000です
  • レプリカあたりの RAM の GiB 数
  • レプリカあたりの GPU 数
  • レプリカ数
    • デプロイ内の各レプリカは、同じ vCPU 数と RAM の GiB 数を持ちます

Foundry の使用に対して支払う場合、デフォルトの使用量レートは次のとおりです。

vCPU / GPU使用量レート
vCPU0.2
T4 GPU1.2
A100 GPU1.3
L4 GPU2.1
A10G GPU1.5
V100 GPU3
H100 GPU4.7

これらは、Foundry の並列コンピュートフレームワークにおいて、ライブモデルがプロファイルに基づいてコンピュートを使用する際のレートです。Palantir とエンタープライズ契約を結んでいる場合は、コンピュート使用量の計算について Palantir サポートにお問い合わせください。

次の式で vCPU コンピュート秒を測定します。

live_deployment_vcpu_compute_seconds = max(vCPUs_per_replica, GiB_RAM_per_replica / 7.5) * num_replicas * live_model_vcpu_usage_rate * time_active_in_seconds

次の式で GPU コンピュート秒を測定します。

live_deployment_gpu_compute_seconds = GPUs_per_replica * num_replicas * live_model_gpu_usage_rate * time_active_in_seconds

Modeling Objective の使用量を調査する

プラットフォーム内のすべてのコンピュート秒の使用量は、Resource Management アプリケーションで確認できます。

デプロイのコンピュート使用量は、デプロイ元の Modeling Objective に紐付けられます。1つの Objective に対して、複数のライブデプロイをアクティブにできます。Modeling Objective のライブデプロイは、デプロイセクションで確認できます。例として、以下のスクリーンショットを参照してください。

デプロイ

使用量の増減要因

ライブデプロイは、アクティブな間はコンピュート秒を使用します。次の方法で、デプロイ全体の使用量を制御できます。

  • 想定されるリクエスト負荷に合わせて、デプロイが適切に調整されていることを確認してください。デプロイは、想定される同時リクエスト数のピークに合わせて調整する必要があります。デプロイのリソースが不足すると、リクエストに対して失敗のレスポンスを返し始めます。ただし、デプロイにリソースを過剰に割り当てると、必要以上のコンピュート秒を使用する可能性があります。
    • ライブデプロイの管理者は、運用上重要な環境にモデルをデプロイする前に、ライブデプロイのエンドポイントに対してストレステストを実行し、適切なリソース設定を特定することを推奨します。
  • ライブデプロイは、明示的に停止またはキャンセルされるまで実行され続けます。不要なデプロイが誤って実行されたままにならないよう、ライブデプロイの使用量を監視することが重要です。これは、ステージング用のデプロイでよく起こります。
  • デプロイのプロファイルを変更せずに API 負荷を増減しても、コンピュート使用量は変わりません。ライブデプロイは、使用するコンピュート秒数を変えずに、リソースが許す限り多くのリクエストを処理します。

使用量を設定する

ライブデプロイのリソース使用量は、プロファイルによって定義されます。プロファイルは、ライブデプロイの作成時に設定できます。デプロイがアクティブな間も、プロファイルを変更できます。更新されたプロファイルは、ダウンタイムなしでデプロイに自動的に適用されます。

デプロイ

使用量を管理する

リソースキューを通じてコンピュートを管理しているエンロールメントでは、Resource Management の管理者は以下の手順で、特定のキューで現在実行中のライブデプロイを表示できます。

  1. Resource Management アプリケーションを開きます。
  2. リソースキューを選択します。
  3. 左側のサイドバーからキューを選択します。
  4. ページ中央の連続計算タブを選択します。
  5. 右端のフィルターアイコンを選択し、ライブデプロイで絞り込みます。

使用量の計算例

例1: vCPU コンピュート

次の例は、デフォルトのレプリカプロファイルである2個のレプリカを持ち、「low-cpu-lowest-memory」プロファイルで20秒間アクティブになっているライブデプロイを示しています。

デプロイ

デプロイ

resource_config:
    num_replicas: 2
    vcpu_per_replica: 0.5 vCPU
    GiB_RAM_per_replica: 1 GiB
seconds_active: 20 seconds
live_model_vcpu_usage_rate: 0.2

compute seconds = max(vcpu_per_replica, GiB_RAM_per_replica / 7.5) * num_replicas * live_model_vcpu_usage_rate * time_active_in_seconds
                = max(0.5vCPU, 1GiB / 7.5) * 2replicas * 0.2 * 20sec
                = 0.5 * 2 * 0.2 * 20
                = 4 compute-seconds

例2: GPU コンピュート

次の例は、ライブデプロイの使用量レートを示しています。このライブデプロイは、2個のレプリカを持つデフォルトのレプリカプロファイルを使用し、GPU V100 プロファイルで20秒間アクティブになっています。

resource_config:
    num_replicas: 2
    gpu_per_replica: 1 V100 GPU
seconds_active: 20 seconds
live_model_gpu_usage_rate: 3

compute seconds = gpu_per_replica * num_replicas * live_model_gpu_usage_rate * time_active_in_seconds
                = 1 * 2replicas * 3 * 20sec
                = 1 * 2 * 3 * 20
                = 120 compute-seconds

例3:コンテナベースのモデルのコンピュート

Deployment resource_config:
    num_replicas: 2
    vcpu_per_replica: 0.5 vCPU
    GiB_RAM_per_replica: 1 GiB

Model image resource_config:
    CPU: 4 cores
    Memory: 30 GiB

seconds_active: 20 seconds
live_model_vpcu_usage_rate: 0.2

total compute seconds = (compute seconds deployment resource) + (compute seconds model resource)

compute seconds deployment resource = max(vcpu_per_replica, GiB_RAM_per_replica / 7.5) * num_replicas * live_model_vcpu_usage_rate * time_active_in_seconds
                = 0.5 * 2replicas * 0.2 * 20sec
                = 0.5 * 2replicas * 0.2 * 20sec
                = 4 compute seconds

compute seconds model resources = max(cores, Memory / 7.5) * num_replicas * live_model_vcpu_usage_rate * time_active_in_seconds
compute seconds model resources = 30 / 7.5 * 2 * 0.2 * 20
compute seconds model resources = 32 compute seconds

total compute seconds = 36 compute seconds