すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:Serverlessモードモデルを推論サービスとして展開する

最終更新日:Jul 07, 2025

KServe (以前はKFServingと呼ばれていました) は、クラウドネイティブ環境向けのモデルサービスおよび推論エンジンです。 自動スケーリング、ゼロスケール、カナリア展開をサポートしています。 このトピックでは、Service Mesh (ASM) とArenaを使用して、KServeモデルをサーバーレスモードの推論サービスとして展開する方法について説明します。

前提条件

ステップ1: モデルデータの準備

Apsara File Storage NAS (NAS) またはObject Storage Service (OSS) を使用して、モデルデータを準備できます。 詳細については、「静的にプロビジョニングされたNASボリュームのマウント」および「静的にプロビジョニングされたOSSボリュームのマウント」をご参照ください。 このトピックでは、NASを例としてモデルデータの準備方法について説明します。

1. NASファイルシステムのマウント対象を取得します。

  1. Apsara File Storage NASコンソールにログインします。 左側のナビゲーションウィンドウで、[ファイルシステム]> [ファイルシステムリスト] を選択します。 ページの上部で、NASファイルシステムが存在するリージョンを選択します。

  2. [ファイルシステムリスト] ページで、管理するファイルシステムのIDをクリックします。 詳細ページで、[マウントポイント] をクリックします。 [マウントポイントのアドレス] 列の上imageにポインターを移動して、NASファイルシステムのマウントポイントを表示します。 その後の操作のために、マウントポイントとマウントコマンドを記録します。

2. クラスターのPVとPVCの設定

  1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスターリスト] をクリックします。

  2. [クラスターリスト] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[ボリューム] > [永続ボリューム] を選択します。

  3. [永続ボリューム] ページの右上にある [作成する] をクリックします。

  4. [永続ボリュームの作成] ダイアログボックスでパラメーターを設定し、[作成する] をクリックしてtraining-dataという名前の永続ボリューム (PV) を作成します。

    次の表で、関連パラメーターについて説明します。 ビジネス要件に基づいて他のパラメーターを設定できます。 詳細については、「静的にプロビジョニングされたNASボリュームのマウント」をご参照ください。

    パラメーター

    説明

    PVタイプ

    NAS

    ボリューム名

    トレーニング-データ

    マウントポイントドメイン名

    ステップ1で取得したマウントポイントを選択します。

  5. 左側のナビゲーションウィンドウで、[ボリューム] > [ボリューム要求] を選択します。 [永続的なボリュームクレーム] ページで、右上隅の [作成] をクリックします。

  6. [PVCの作成] ダイアログボックスでパラメーターを設定し、[作成] をクリックして、training-dataという名前の永続ボリュームクレーム (PVC) を作成します。

    次の表で、関連パラメーターについて説明します。 ビジネス要件に基づいて他のパラメーターを設定できます。 詳細については、「静的にプロビジョニングされたNASボリュームのマウント」をご参照ください。

    パラメーター

    説明

    PVCタイプ

    NAS

    名前

    トレーニング-データ

    割り当てモード

    この例では、[既存のボリューム] が選択されています。

    既存のボリューム

    [PVの選択] をクリックして、作成したPVを選択します。

3。 NASファイルシステムへのデータのダウンロード

  1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、[ノード] > [ノード] を選択します。

  3. [ノード] ページで、管理するノードのインスタンスIDをクリックします。 [インスタンスの詳細] ページで、[接続] をクリックし、[今すぐサインイン] をクリックします。

  4. 手順1で取得したmountコマンドを実行し、NASファイルシステムをマウントします。

  5. BLOOMモデルとトレーニングデータをダウンロードします。

    Hugging Faceからbloom-560mモデルをダウンロードし、PVCにモデルを保存します。 パスはpvc:// training-data/bloom-560mです。

手順2: 推論サービスのデプロイ

  1. 次のコマンドを実行して、クラスターで使用可能なGPUリソースを照会します。

    アリーナトップノード

    期待される出力:

    名前IPADDRESS ROLE STATUS GPU (合計) GPU (割り当て済み)
    cn-beijing.192.1xx.x.xx 192.1xx.x.xx <none> Ready 0 0
    cn-beijing.192.1xx.x.xx 192.1xx.x.xx <none> Ready 0 0
    cn-beijing.192.1xx.x.xx 192.1xx.x.xx <none> Ready 0 0
    cn-beijing.192.1xx.x.xx 192.1xx.x.xx <none> Ready 1 0
    cn-beijing.192.1xx.x.xx 192.1xx.x.xx <none> Ready 1 0
    ---------------------------------------------------------------------------------------------------
    クラスター内の割り当て済み /合計GPU:
    0/2 (0.0%) 

    予想される出力は、GPUリソースを提供する2つのノードが推論サービスを実行できることを示しています。

  2. 次のコマンドを実行して、bloom-560mという名前の推論サービスを開始します。pvc training-dataをコンテナーの /mnt/modelsディレクトリにマウントします。これは、手順1でダウンロードしたモデルのパスです。

    アリーナサーブ \
        -- name=bloom-560m \
        -- image=ghcr.io/huggingface/text-generation-inference:1.0.2 \
        -- gpus=1 \
        -- cpu=6 \
        -- memory=20Gi \
        -- port=8080 \
        -- env=STORAGE_URI=pvc:// training-data \
        "text-generation-launcher -- disable-custom-kernels -- model-id /mnt/models/bloom-560m -- num-shard 1 -p 8080" 

    期待される出力:

    inferenceservice.serving.kserve.io/bloom-560m作成
    情報 [0013] 求人bloom-560mが正常に送信されました
    INFO[0013] 'arena serve get bloom-560m -- type kserve -n default' を実行して、ジョブステータス

    を確認できます。

    パラメーターを設定します。 コマンドのパラメーターについて、次の表に説明します。

    パラメーター

    必須

    説明

    -- name

    必須

    送信されたジョブの名前。 名前はグローバルに一意であり、重複することはできません。

    -- イメージ

    必須

    推論サービスのイメージアドレス。

    -- gpus

    選択可能

    推論サービスに必要なGPUの数。 デフォルト値:0

    -- cpu

    選択可能

    推論サービスに必要なCPUの数。

    -メモリ

    選択可能

    推論サービスに必要なメモリリソースの量。

    -- ポート

    選択可能

    外部アクセスに公開されている推論サービスのポート。

    -- env

    選択可能

    推論サービスの環境変数。 この例では、モデルを格納するために、トレーニングデータという名前のPVCが指定されています。

手順3: 推論サービスの検証

  1. 次のコマンドを実行して、KServe推論サービスのデプロイの進行状況を表示します。

    アリーナサーブget bloom-560m

    期待される出力:

    名: bloom-560m
    名前空間: デフォルト
    タイプ: KServe
    バージョン: 00001
    希望: 1
    利用可能: 1
    年齢: 9m
    住所: http://bloom-560m.default.example.com
    ポート: :80
    GPU: 1
    
    LatestRevision: bloom-560m-predictor-00001
    LatestPlest: 100
    
    インスタンス:
      NAME STATUS AGE READY RESTARTS GPUノード
      ----                                                   ------   ---  -----  --------  ---  ----
      bloom-560m-predictor-00001-deployment-ff4c49bf6-twrlp実行9m 2/2 0 1 cn-hongkong.192.1xx.x.xxx 

    期待される出力は、KServe推論サービスがデプロイされ、モデルアクセスアドレスが http://bloom-560m.default.example.com されていることを示します。

  2. ASM入口ゲートウェイのIPアドレスを取得する詳細については、「手順2: ASM入口ゲートウェイのIPアドレスを取得する」をご参照ください。

  3. 次のコマンドを実行して、ASM ingressゲートウェイの取得したIPアドレスを使用して推論サービスにアクセスします。

    # ${ASM_GATEWAY} をASM ingressゲートウェイのIPアドレスに置き換えます。 
    curl -H "ホスト: bloom-560m.default.example.com" http://${ASM_GATEWAY}:80/generate \
        -X POST \
        -d '{"input":"What is Deep Learning?","parameters":{"max_new_tokens":17}}' \
        -H 'Content-Type: application/json' 

    期待される出力:

    {"generated_text":"Deep Learningは、複雑な問題を解決するために使用される新しいタイプの機械学習です。"}

ステップ4: 推論サービスの更新

  1. モデルの新しいバージョンを作成し、PVC内のモデルアドレスを新しいパスbloom-560m-v2にコピーします。

  2. 次のコマンドを実行して、KServe推論サービスのカナリアリリースを実行します。 新しいモデルパスをbloom-560m-v2に設定します。 10% トラフィックを新しいバージョンの推論サービスに分散し、トラフィックを古いバージョンの推論サービスに90% します。

    arena serveアップデートkserve \
        -- 名前bloom-560m \
        -- canary-traffic-percent=10 \
        "text-generation-launcher -- disable-custom-kernels -- model-id /mnt/models/bloom-560m-v2 -- num-shard 1 -p 8080" 
  3. 次のコマンドを実行して、推論サービスのステータスを表示します。

    アリーナサーブget bloom-560m

    期待される出力:

    名: bloom-560m
    名前空間: デフォルト
    タイプ: KServe
    バージョン: 00002
    希望: 2
    利用可能: 2
    年齢: 36m
    住所: http://bloom-560m.default.example.com
    ポート: :80
    GPU: 2
    
    LatestRevision: bloom-560m-predictor-00002
    最新情報: 10
    PrevRevision: bloom-560m-predictor-00001
    PrevPRest: 90
    
    インスタンス:
      NAME STATUS AGE READY RESTARTS GPUノード
      ----                                                    ------   ---  -----  --------  ---  ----
      bloom-560m-predictor-00001-deployment-ff4c49bf6-twrlp実行中36m 2/2 0 1 cn-hongkong.192.1xx.x.xxx
      bloom-560m-predictor-00002-deployment-5b7bb66cfb-nqprp実行6m 2/2 0 1 cn-hongkong.192.1xx.x.xxx 
  4. 新しいバージョンの推論サービスがテストに合格したら、次のコマンドを実行してcanary-traffic-percentパラメーターの値を100に設定し、すべてのトラフィックを新しいバージョンの推論サービスに転送します。

    arena serveアップデートkserve \
        -- 名前bloom-560m \
        -- canary-traffic-percent=100 

(オプション) 手順5: 推論サービスの削除

次のコマンドを実行して、推論サービスを削除します。

アリーナサーブ削除bloom-560m