次の方法で共有


チュートリアル: Azure Container Apps でサーバーレス GPU を使用してイメージを生成する

この記事では、AI アプリケーションの基盤となるサーバーレス GPU を使用するコンテナー アプリを作成する方法を学習します。

サーバーレス GPU を使用すると、ドライバーのインストールなどの手動のインフラストラクチャ構成を行わなくても、GPU コンピューティング リソースに直接アクセスできるようになります。 必要なのは、AI モデルのイメージをデプロイすることだけです。

このチュートリアルでは、次のことを行います。

  • 新しいコンテナー アプリと環境を作成する
  • サーバーレス GPU を使用するように環境を構成する
  • アプリを Azure Container Apps にデプロイする
  • 新しいサーバーレス GPU 有効化アプリケーションを使用する
  • アーティファクト ストリーミングを有効にして GPU コールド スタートを減らす

前提条件

リソース 説明
Azure アカウント アクティブなサブスクリプションを含む Azure アカウントが必要です。 持っていない場合は、無料で作成できます。
サーバーレス GPU へのアクセス GPU へアクセスするには、まず GPU クォータのリクエストを行う必要があります。 GPU クォータ要求は、カスタマー サポート ケースを介して送信できます。
リソース 説明
Azure アカウント アクティブなサブスクリプションを含む Azure アカウントが必要です。 持っていない場合は、無料で作成できます。
サーバーレス GPU へのアクセス GPU へアクセスするには、まず GPU クォータのリクエストを行う必要があります。 GPU クォータ要求は、カスタマー サポート ケースを介して送信できます。
Azure CLI Azure CLI をインストールするか、最新バージョンにアップグレードします。

コンテナー アプリを作成する

  1. Azure portal に移動し、[Container Apps] を検索して選択します。

  2. [作成] を選択した後、[コンテナー アプリ] を選択します。

  3. [基本] ウィンドウで、各セクションに以下の値を入力します。

    [プロジェクトの詳細] で、以下の値を入力します。

    設定
    サブスクリプション Azure サブスクリプションを選択します。
    リソースグループ [新規作成] を選択し、「my-gpu-demo-group」と入力します。
    コンテナー アプリ名 my-gpu-demo-app」と入力します。
    デプロイ ソース [コンテナー イメージ] を選択します。

    [Container Apps 環境] で、以下の値を入力します。

    設定
    リージョン [スウェーデン中部] を選択します。

    サポートされているその他のリージョンについては、「Azure でのサーバーレス GPU の使用」を参照してください。
    Container Apps 環境 [新規作成] を選択します。

    [Container Apps 環境の作成] ウィンドウで、以下の値を入力します。

    設定
    環境名 my-gpu-demo-env」と入力します。

    [作成]を選択します

    [次へ: コンテナー >] を選択します。

  4. [コンテナー] ウィンドウで、以下の値を入力します。

    設定
    名前 my-gpu-demo-container」と入力します。
    イメージのソース [Docker Hub またはその他のレジストリ] を選択します。
    イメージの種類 [パブリック] を選択します。
    レジストリ ログイン サーバー mcr.microsoft.com」と入力します。
    [Image and tag]\(イメージとタグ\) k8se/gpu-quickstart:latest」と入力します。
    ワークロード プロファイル [従量課金 - 最大 4 vCPU、8 GiB メモリ] を選択します。
    GPU チェックボックスを選択します。
    GPU の種類 Consumption-GPU-NC8as-T4 - 最大 8 vCPU、56 GiB メモリを選択し、リンクを選択してプロファイルを環境に追加します。

    [次へ: イングレス >] を選択します。

  5. [イングレス] ウィンドウで、以下の値を入力します。

    設定
    イングレス [有効] チェック ボックスをオンにします。
    イグレス トラフィック [すべての場所からのトラフィックを受け取る] ラジオ ボタンを選択します。
    ターゲット ポート 80」と入力します。
  6. [Review + create]\(レビュー + 作成\) を選択します。

  7. [作成]を選択します

  8. デプロイが完了するまでしばらく待ってから、[リソースに移動] を選択します。

    このプロセスが完了するには最大で 5 分かかる可能性があります。

GPU アプリを使用する

[概要] ウィンドウから、[アプリケーション URL] リンクを選択して、ブラウザーで Web アプリ フロントエンドを開き、GPU アプリケーションを使用します。

Note

環境変数を作成する

次の環境変数を定義します。 このコマンドを実行する前に、 <PLACEHOLDERS> を実際の値に置き換えます。

RESOURCE_GROUP="<RESOURCE_GROUP>"
ENVIRONMENT_NAME="<ENVIRONMENT_NAME>"
LOCATION="swedencentral"
CONTAINER_APP_NAME="<CONTAINER_APP_NAME>"
CONTAINER_IMAGE="mcr.microsoft.com/k8se/gpu-quickstart:latest"
WORKLOAD_PROFILE_NAME="NC8as-T4"
WORKLOAD_PROFILE_TYPE="Consumption-GPU-NC8as-T4"

コンテナー アプリを作成する

  1. このチュートリアルで作成したリソースを含むリソース グループを作成します。 このコマンドを実行するとSucceededが出力されます。

    az group create \
      --name $RESOURCE_GROUP \
      --location $LOCATION \
      --query "properties.provisioningState"
    
  2. コンテナー アプリをホストする Container Apps 環境を作成します。 このコマンドを実行するとSucceededが出力されます。

    az containerapp env create \
      --name $ENVIRONMENT_NAME \
      --resource-group $RESOURCE_GROUP \
      --location "$LOCATION" \
      --query "properties.provisioningState"
    
  3. ワークロード プロファイルを環境に追加します。

    az containerapp env workload-profile add \
      --name $ENVIRONMENT_NAME \
      --resource-group $RESOURCE_GROUP \
      --workload-profile-name $WORKLOAD_PROFILE_NAME \
      --workload-profile-type $WORKLOAD_PROFILE_TYPE
    
  4. コンテナー アプリを作成します。

    az containerapp create \
      --name $CONTAINER_APP_NAME \
      --resource-group $RESOURCE_GROUP \
      --environment $ENVIRONMENT_NAME \
      --image $CONTAINER_IMAGE \
      --target-port 80 \
      --ingress external \
      --cpu 8.0 \
      --memory 56.0Gi \
      --workload-profile-name $WORKLOAD_PROFILE_NAME \
      --query properties.configuration.ingress.fqdn
    

    このコマンドは、コンテナー アプリのアプリケーション URL を出力します。

GPU アプリを使用する

ブラウザーでコンテナー アプリのアプリケーション URL を開きます。 コンテナー アプリが起動するまでに最大 5 分かかる場合があることに注意してください。

サーバーレス GPU を使用する Azure Container Apps アプリケーションを使用すると、イメージを生成するためのプロンプトを入力できます。 Generate Imageを選択するだけで、既定のプロンプトを使用することもできます。 次の手順では、GPU 処理の結果を表示します。

Note

GPU を監視する

イメージを生成したら、次の手順に従って GPU 処理の結果を表示します。

  1. Azure portal でコンテナー アプリを開きます。

  2. [監視] セクションから、[コンソール] を選択します。

  3. レプリカを選択します。

  4. コンテナーを選択します。

  5. [ 再接続] を選択します。

  6. [スタートアップ コマンドの選択] ウィンドウで、[/bin/bash] を選択し、[接続] を選択します。

  7. シェルの設定が完了したら、コマンド nvidia-smi を入力して、GPU の状態と出力を確認します。

リソースをクリーンアップする

このチュートリアルで作成したリソースは、Azure の請求書に影響します。

これらのサービスを長期間にわたっては使用しない場合は、以下の手順を使用して、このチュートリアルで作成したすべてのものを削除してください。

  1. Azure portal で、[リソース グループ] を検索して選択します。

  2. [my-gpu-demo-group] を選択します。

  3. [リソース グループの削除] を選択します。

  4. 確認ボックスに、「my-gpu-demo-group」と入力します。

  5. [削除]を選択します。

次のコマンドを実行します。

az group delete --name $RESOURCE_GROUP

次のステップ