次の方法で共有


Azure Container Apps でのサーバーレス GPU の使用

Azure Container Apps では、基盤となるインフラストラクチャを管理することなく、オンデマンドで GPU にアクセスできます。 サーバーレス機能として、使用中の GPU に対してのみ支払いが発生します。 有効にすると、アプリケーションに使用される GPU の数は、アプリケーションの負荷需要に合わせて増減します。 サーバーレス GPU を使用することで、自動スケーリング、最適化されたコールド スタート、未使用時のスケールダウンによる秒単位の課金、運用オーバーヘッドの削減により、ワークロードをシームレスに実行できます。

サーバーレス GPU は、従量課金ワークロード プロファイルでのみサポートされています。 この機能は、従量課金のみの環境ではサポートされていません。

GPU へアクセスするには、まず GPU クォータのリクエストを行う必要があります。 GPU クォータのリクエストは、カスタマー サポート ケースを介して送信できます。

メリット

サーバーレス GPU は、GPU を使用する場合にインフラストラクチャの管理を軽減し、コア AI コードに焦点を当てるようにすることで、AI 開発を加速させます。 この機能では、Azure AI モデル カタログのサーバーレス API とマネージド コンピューティングのホスティング モデルの間の中間層のオプションが提供されます。

Container Apps のサーバーレス GPU サポートは、アプリケーションを構築するための管理されたサーバーレス プラットフォームを提供しながら、データがコンテナーの境界を離れることがないため、完全なデータ ガバナンスが提供されます。

Container Apps でサーバーレス GPU を使用すると、アプリは次のようなことができます。

  • ゼロ GPU へのスケール: NVIDIA A100 と NVIDIA T4 GPU の自動サーバーレス スケーリングをサポートします。

  • 秒単位の課金: 使用した GPU コンピューティングに対してのみ料金を支払います。

  • 組み込みのデータ ガバナンス: データがコンテナー境界を離れることはありません。

  • 柔軟なコンピューティング オプション: NVIDIA A100 または T4 GPU の種類から選択できます。

  • AI 開発のための中間層: マネージド サーバーレス コンピューティング プラットフォームに独自のモデルを導入します。

一般的なシナリオ

次のシナリオは、包括的なものではありませんが、サーバーレス GPU の一般的な使用例を説明しています。

  • リアルタイム推論とバッチ推論: 高速なスタートアップ時間、自動スケーリング、秒単位の課金モデルを使用したカスタム オープンソース モデルを使用しています。 サーバーレス GPU は動的なアプリケーションに最適です。 使用したコンピューティングに対してのみ支払いが発生し、アプリケーションは需要に応じて自動的にスケールインされます。

  • 機械学習シナリオ: 微調整されたカスタム生成 AI モデル、ディープ ラーニング、ニューラル ネットワーク、または大規模データ分析を実装するアプリケーションを大幅に高速化します。

  • ハイ パフォーマンス コンピューティング (HPC): 科学的コンピューティング、財務モデリング、天気予報など、複雑な計算やシミュレーションが必要なアプリケーションでは、GPU を高い計算要求のリソースとして使用します。

  • レンダリングと可視化: 3D レンダリング、画像処理、またはビデオ コード変換を含むアプリケーションでは、多くの場合 GPU を使用してレンダリング処理を高速化し、リアルタイムで可視化できます。

  • ビッグデータ分析: GPU は膨大なデータセットのデータ処理と分析を高速化できます。

考慮事項

サーバーレス GPU を使用する場合は、次の項目に留意してください。

  • CUDA バージョン: サーバーレス GPU は最新の CUDA バージョンをサポートします

  • サポートの制限:

    • 一度に GPU を使用できるのは、アプリ内の 1 つのコンテナーだけです。 アプリ内に複数のコンテナーがある場合、最初のコンテナーで GPU にアクセスできます。
    • 複数のアプリで同じ GPU ワークロード プロファイルを共有できますが、それぞれに独自のレプリカが必要です。
    • マルチ GPU レプリカと 1 秒未満の GPU レプリカはサポートされていません。
    • アプリケーションの最初のコンテナーで GPU にアクセスできます。
  • IP アドレス: 独自の仮想ネットワークとの統合を設定する場合、従量課金 GPU はレプリカごとに 1 つの IP アドレスを使用します。

サーバーレス GPU クォータを要求する

この機能へのアクセスは、サーバーレス GPU クォータがある場合のみ利用できます。 GPU クォータのリクエストは、カスタマー サポート ケースを介して送信できます。 GPU クォータ要求のサポート ケースを開く場合は、問題の種類として "技術" を選択します。

エンタープライズ契約と従量課金制のお客様は、既定で A100 クォータと T4 クォータが有効になっています。

サポートされているリージョン

サーバーレス GPU は、次のリージョンで使用できます。

リージョン A100 T4
米国西部 3 イエス イエス
米国西部 イエス いいえ
オーストラリア東部 イエス イエス
スウェーデン中部 イエス イエス
西ヨーロッパ1 いいえ イエス

1 西ヨーロッパで T4 サーバーレス GPU ワークロード プロファイルを追加するには、リージョンに新しいワークロード プロファイル環境を作成する必要があります。

サーバーレス GPU を使用する

Azure portal を通じてコンテナー アプリを作成すると、GPU リソースを使用するようにコンテナーを設定できます。

作成プロセスの [コンテナー] タブで、次の設定を行います。

  1. [コンテナー リソースの割り当て] セクションで、[GPU] チェックボックスをオンにします。

  2. GPU の種類として、NVIDIA A100 または NVIDIA T4 オプションを選択します。

サーバーレス GPU ワークロード プロファイルを管理する

サーバーレス GPU は、消費 GPU ワークロード プロファイルで実行されます。 消費 GPU ワークロード プロファイルは、他のワークロード プロファイルと同じ方法で管理します。 CLI または Azure portal を使用してワークロード プロファイルを管理できます。

GPU コールド スタートを改善する

成果物のストリーミングを有効にし、大きな言語モデルなどの大きなファイルをストレージ マウントに配置することで、コールド スタート時間を大幅に短縮できます。

  • アーティファクト ストリーミング: Azure Container Registry では、イメージの起動時間を大幅に短縮できるイメージ ストリーミングが提供されます。 アーティファクト ストリーミングを使用するには、コンテナー イメージを Premium Azure Container Registry でホストする必要があります。

  • ストレージ マウント: コンテナー アプリに関連付けられている Azure ストレージ アカウントに大きなファイルを格納することで、ネットワーク待機時間の影響を軽減します。

Foundry モデルをサーバーレス GPU にデプロイする (プレビュー)

Azure Container Apps サーバーレス GPU で、パブリック プレビューで Azure AI Foundry モデルがサポートされるようになりました。 Azure AI Foundry モデルには、次の 2 つのデプロイ オプションがあります。

Azure Container Apps サーバーレス GPU では、Foundry モデルをデプロイするために、サーバーレス API とマネージド コンピューティングの間でバランスの取れたデプロイ オプションが提供されます。 オンデマンドのオプションです。このオプションは、サーバーレスでスケーリングし、使用されていない場合にはゼロにスケールインします。また、データの所在地要件に準拠します。 サーバーレス GPU では、Foundry モデルを使用することで、サポートされているモデルを、自動スケーリング、従量課金制、完全なデータ ガバナンス、すぐに使用できるエンタープライズ ネットワークとセキュリティ サポートで柔軟に実行できます。

MLFLOW型の言語モデルがサポートされています。 MLFLOW モデルの一覧を表示するには、azureml レジストリで使用可能なモデルの一覧に移動します。 モデルを見つけるには、次の手順を使用して、 MLFLOW モデルのフィルターを追加します。

  1. フィルターを選択します。

  2. [ フィルターの追加] を選択します

  3. フィルター規則として、「 Type = MLFLOW」と入力します。

Azure Container Apps リポジトリにここに記載されているモデルの場合、次の CLI コマンドを使用して独自のイメージを構築しなくても、サーバーレス GPU に直接デプロイできます。

az containerapp up \
  --name <CONTAINER_APP_NAME> \
  --location <LOCATION> \
  --resource-group <RESOURCE_GROUP_NAME> \
  --model-registry <MODEL_REGISTRY_NAME> \
  --model-name <MODEL_NAME> \
  --model-version <MODEL_VERSION>

この一覧にないモデルについては、次の操作を行う必要があります。

  1. Azure Container Apps リポジトリからモデル イメージの github テンプレートをダウンロードします。

  2. モデルの種類に合わせて score.py ファイルを変更します。 スコアリング スクリプト ( score.py という名前) は、モデルとの対話方法を定義します。 次の例は、 カスタム score.py ファイルを使用する方法を示しています。

  3. イメージをビルドし、コンテナー レジストリにデプロイします。

  4. 前の CLI コマンドを使用して、モデルをサーバーレス GPU にデプロイしますが、 --imageを指定します。 --model-registry--model-name、および--model-versionパラメーターを使用すると、アプリのコールド スタートを最適化するための主要な環境変数が設定されます。

フィードバックを送信

イシューを Azure Container Apps GitHub リポジトリに送信します。

次のステップ