次の方法で共有


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

Azureにデプロイする

この記事では、AI ツールチェーン オペレーター アドオンを使用して、Kubernetes で大規模な言語モデルを効率的にセルフホストし、コストとリソースの複雑さを軽減し、カスタマイズを強化し、データを完全に制御する方法について説明します。

KAITO について

Kubernetes での大規模な言語モデル (LLM) のセルフホスティングは、バッチ処理、チャットボット、エージェント、AI 駆動型アプリケーションなどの大規模な推論ワークロードを持つ組織の間で勢いを増しています。 多くの場合、これらの組織は商用グレードの GPU にアクセスでき、コストのかかるトークンごとの API 価格モデルの代替手段を求めています。これにより、制御がすぐにスケールアウトされる可能性があります。 また、多くの場合、モデルを微調整またはカスタマイズする機能も必要です。これは、通常、クローズド ソース API プロバイダーによって制限される機能です。 さらに、機密性の高いデータや独自のデータを扱う企業 (特に金融、医療、防衛など、規制対象のセクター) では、データに対する厳密な制御を維持し、サード パーティのシステムによる露出を防ぐために、セルフホスティングに優先順位を付けます。

このようなニーズに対処するために、クラウド ネイティブ コンピューティング基盤 (CNCF) サンドボックス プロジェクトである Kubernetes AI Toolchain Operator (KAITO) は、Kubernetes にオープンソース LLM ワークロードをデプロイおよび管理するプロセスを簡略化します。 KAITO は、大規模な言語モデルを効率的に処理するように設計された高スループット推論エンジンである vLLM と統合されています。 推論エンジンとしての vLLM は、精度を大幅に損なうことなく、メモリと GPU の要件を削減するのに役立ちます。

AI ツールチェーン オペレーターマネージド アドオンは、オープンソースの KAITO プロジェクトに基づいて構築され、モジュール式のプラグ アンド プレイ セットアップを提供します。これにより、チームはモデルをすばやくデプロイし、運用対応 API を介して公開できます。 これには、OpenAI と互換性のある API、プロンプトの書式設定、ストリーミング応答のサポートなどの組み込み機能が含まれています。 AKS クラスターにデプロイすると、KAITO はデータが組織の制御された環境内に留まるようにし、クラウドでホストされる LLM API に代わる安全で準拠した代替手段を提供します。

開始する前に

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

制限事項

  • AzureLinux OS SKU と Windows OS SKU は現在サポートされていません。
  • KAITO ワークスペースでは、AMD GPU VM のサイズはサポートされていません。
  • AI ツールチェーン オペレーター アドオンは、 パブリック Azure リージョンでサポートされています。

前提条件

  • Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。

    • 複数の Azure サブスクリプションがある場合は、az account set コマンドを使用して、リソースを作成して課金する正しいサブスクリプションを選択してください。

      注記

      Azure サブスクリプションには、AKS リソースと同じ Azure リージョンでのモデル デプロイに推奨される GPU VM クォータが必要です。

  • Azure CLI バージョン 2.76.0 以降がインストールおよび構成されています。 バージョンを確認するには、az --version を実行します。 インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。

  • Kubernetes コマンド ライン クライアント kubectl がインストールされ、構成されていること。 詳細については、kubectl のインストールに関するページを参照してください。

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

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

    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. --enable-ai-toolchain-operator フラグを指定して --enable-oidc-issuer コマンドを使用して、AI ツールチェーン オペレーター アドオンが有効になっている AKS クラスターを作成します。

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

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

クラスターへの接続

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

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

    kubectl get nodes
    

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

KAITO には、パブリック コンテナー イメージとしてホストされるさまざまな小規模から大規模な言語モデルが用意されています。これは、KAITO ワークスペースを使用して 1 つの手順でデプロイできます。 KAITO モデル レジストリで使用可能なプリセット LLM イメージを参照できます。 このセクションでは、高パフォーマンスのマルチモーダル Microsoft Phi-4-mini 言語モデルを例として使用します。

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

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

    kubectl get workspace workspace-phi-4-mini -w
    

    注記

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

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

    export SERVICE_IP=$(kubectl get svc workspace-phi-4-mini -o jsonpath='{.spec.clusterIP}')
    
  4. OpenAI チャット補完 API 形式を使用して、任意のサンプル入力で Phi-4-mini の指示推論サービスをテストします。

    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": "phi-4-mini-instruct",
            "prompt": "How should I dress for the weather today?",
            "max_tokens": 10
           }'
    

カスタムまたはドメイン固有の LLM をデプロイする

オープン ソースの LLM は、多くの場合、さまざまなコンテキストとドメインでトレーニングされ、ホストされるモデル プリセットがアプリケーションまたはデータの要件に常に適合するとは限りません。 この場合、KAITO では 、HuggingFace からの新しい言語モデルまたはドメイン固有言語モデルの推論デプロイもサポートされます。 この記事に従って、KAITO を使用してカスタム モデル推論デプロイを試してみてください。

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

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

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

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

    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 モデルのデプロイ オプションの詳細については、以下を参照してください。