次の方法で共有


AI ツールチェーン オペレーター (プレビュー) を使用して Azure Kubernetes Service (AKS) に AI モデルをデプロイする

Azureにデプロイする

AI ツールチェーン オペレーター (KAITO) は、AKS クラスターでオープンソースおよびプライベート AI モデルを実行するエクスペリエンスを簡略化するマネージド アドオンです。 KAITO を使用すると、モデルのオンボードとリソースのプロビジョニングにかかる時間が短縮され、インフラストラクチャ管理ではなく、より高速な AI モデルのプロトタイプ作成と開発が可能になります。

この記事では、AI ツールチェーン オペレーター アドオンを有効にし、AKS で推論用の AI モデルをデプロイする方法について説明します。

重要

AKS のプレビュー機能は、セルフサービスのオプトイン単位で利用できます。 プレビューは、"現状有姿" および "利用可能な限度" で提供され、サービス レベル アグリーメントおよび限定保証から除外されるものとします。 AKS プレビューは、ベストエフォート ベースでカスタマー サポートによって部分的にカバーされます。 そのため、これらの機能は、運用環境での使用を意図していません。 詳細については、次のサポート記事を参照してください。

開始する前に

  • この記事では、Kubernetes の基本的な概念を理解していることを前提としています。 詳細については、AKS における Kubernetes の中心概念に関するページを参照してください。
  • ホストされているすべてのモデル プリセット イメージと既定のリソース構成については、KAITO GitHub リポジトリを参照してください。
  • 現在、AI ツールチェーン オペレーター アドオンでは KAITO バージョン 0.4.4 がサポートされています。KAITO モデル リポジトリからのモデルの選択を検討する際には、この点に注意してください。

前提条件

Azure CLI プレビュー拡張機能をインストールする

  1. az extension add コマンドを使用して Azure CLI プレビュー拡張機能をインストールします。

    az extension add --name aks-preview
    
  2. az extension update コマンドを使用して、拡張機能を更新して最新バージョンがあることを確認します。

    az extension update --name aks-preview
    

AI ツールチェーン オペレーター アドオン機能フラグを登録する

  1. az feature register コマンドを使用して、AIToolchainOperatorPreview 機能フラグを登録します。

    az feature register --namespace "Microsoft.ContainerService" --name "AIToolchainOperatorPreview"
    

    登録が完了するまでに数分かかります。

  2. az feature show コマンドを使用して登録を確認します。

    az feature show --namespace "Microsoft.ContainerService" --name "AIToolchainOperatorPreview"
    

環境変数をエクスポートする

  • この記事では構成手順を簡略化するために、次のコマンドを使用して環境変数を定義できます。 プレースホルダーの値は、実際の値に置き換えてください。

    export AZURE_SUBSCRIPTION_ID="mySubscriptionID"
    export AZURE_RESOURCE_GROUP="myResourceGroup"
    export AZURE_LOCATION="myLocation"
    export CLUSTER_NAME="myClusterName"
    

AKS クラスターで AI ツールチェーン オペレーター アドオンを有効にする

次のセクションでは、AI ツールチェーン オペレーター アドオンを有効にして AKS クラスターを作成し、既定のホステッド AI モデルをデプロイする方法について説明します。

AI ツールチェーン オペレーター アドオンが有効になっている AKS クラスターを作成する

  1. az group create コマンドを使って Azure リソース グループを作成します。

    az group create --name $AZURE_RESOURCE_GROUP --location $AZURE_LOCATION
    
  2. az aks create コマンドと --enable-ai-toolchain-operator フラグを使用して、AI ツールチェーン 演算子アドオンを有効にして AKS クラスターを作成します。

    az aks create --location $AZURE_LOCATION \
        --resource-group $AZURE_RESOURCE_GROUP \
        --name $CLUSTER_NAME \
        --enable-ai-toolchain-operator \
        --generate-ssh-keys
    
  3. 既存の AKS クラスターでは、az aks update コマンドを使用して、AI ツールチェーン オペレーター アドオンを有効にすることができます。

    az aks update --name $CLUSTER_NAME \
            --resource-group $AZURE_RESOURCE_GROUP \
            --enable-ai-toolchain-operator
    

クラスターへの接続

  1. kubectl コマンドを使用して、クラスターに接続するように を構成します。

    az aks get-credentials --resource-group $AZURE_RESOURCE_GROUP --name $CLUSTER_NAME
    
  2. kubectl get コマンドを使用して、ご利用のクラスターへの接続を確認します。

    kubectl get nodes
    

既定のホステッド AI モデルをデプロイする

  1. kubectl apply コマンドを使用して、KAITO モデル リポジトリから Falcon 7B 命令モデル プリセットをデプロイします。

    kubectl apply -f https://raw.githubusercontent.com/Azure/kaito/main/examples/inference/kaito_workspace_falcon_7b-instruct.yaml
    
  2. kubectl get コマンドを使用して、ワークスペース内のライブ リソースの変更を追跡します。

    kubectl get workspace workspace-falcon-7b-instruct -w
    

    注記

    KAITO ワークスペースのデプロイを追跡するときは、マシンの準備に最大 10 分かかる場合があり、モデルのサイズに応じてワークスペースの準備に最大 20 分かかることに注意してください。

  3. kubectl get svc コマンドを使用して、推論サービスを確認し、サービス IP アドレスを取得します。

    export SERVICE_IP=$(kubectl get svc workspace-falcon-7b-instruct -o jsonpath='{.spec.clusterIP}')
    
  4. OpenAI chat completions API 形式を使用して、選択したサンプル入力で Falcon 7B-instruct 推論サービスをテストします:

    kubectl run -it --rm --restart=Never curl --image=curlimages/curl -- curl -X POST http://$SERVICE_IP/v1/completions -H "Content-Type: application/json" \
      -d '{
            "model": "falcon-7b-instruct",
            "prompt": "What is Kubernetes?",
            "max_tokens": 10
           }'
    

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

これらのリソースが不要になった場合は、余分な Azure Compute の料金が発生しないように削除することができます。

  1. kubectl delete workspace コマンドを使用して KAITO ワークスペースを削除します。

    kubectl delete workspace workspace-falcon-7b-instruct
    
  2. KAITO デプロイによってプロビジョニングされた GPU ノード プールを手動で削除する必要があります。 Falcon-7b によって作成されたノード ラベルを使用して、az aks nodepool list コマンドを使用してノード プール名を取得するようにワークスペースに指示します。 この例では、ノード ラベルは "kaito.sh/workspace": "workspace-falcon-7b-instruct" です。

    az aks nodepool list --resource-group $AZURE_RESOURCE_GROUP --cluster-name $CLUSTER_NAME
    
  3. この名前のノード プールを AKS クラスターから削除し、削除される KAITO ワークスペースごとにこのセクションの手順を繰り返します。

一般的なトラブルシューティングのシナリオ

KAITO モデル推論ワークスペースを適用した後、次の理由により、リソースの準備状況とワークスペースの条件が True に更新されないことがあります。

  • Azure サブスクリプションには、KAITO ワークスペースで指定されている最小 GPU インスタンスの種類のクォータがありません。 Azure サブスクリプションで GPU VM ファミリの クォータの引き上げを要求 する必要があります。
  • GPU インスタンスの種類は、AKS リージョンでは使用できません。 特定の リージョンで GPU インスタンスの可用性を 確認し、GPU VM ファミリが使用できない場合は Azure リージョンを切り替えます。

次のステップ

KAITO モデルのデプロイ オプションの詳細については、以下を参照してください。