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

Container Service for Kubernetes:rtp-llm を使用した ACK への Qwen モデル推論のデプロイ

最終更新日:Jun 18, 2026

A10 または T4 GPU を使用して、ACK 上に Qwen1.5-4B-Chat 推論サービスを rtp-llm でデプロイします。

背景情報

Qwen1.5-4B-Chat

Qwen1.5-4B-Chat は、Alibaba Cloud が開発したトランスフォーマー アーキテクチャに基づく 40 億パラメーターの大規模言語モデルです。ウェブテキスト、専門書籍、コードなど、多様かつ大規模な事前学習データでトレーニングされています。詳細については、「Qwen GitHub リポジトリ」をご参照ください。

rtp-llm

rtp-llm は、Alibaba の大規模モデル予測チームが大規模言語モデル (LLM) 向けに特化して開発した推論アクセラレーションエンジンです。このエンジンにより、推論効率とパフォーマンスが向上します。rtp-llm には以下の特徴があります。

  • 高性能 CUDA カーネル(PagedAttention、FlashAttention、FlashDecoding を含む)

  • WeightOnly INT8 および INT4 量子化

  • GPTQ (General Purpose Quantization) や AWQ (Approximate Weight Quantization) などの一般的な量子化アルゴリズムへの対応

  • 動的バッチ処理におけるオーバーヘッドを詳細に最適化した、適応型 KVCache 量子化フレームワーク

  • V100 GPU ハードウェア向けの最適化

詳細については、「rtp-llm」をご参照ください。

前提条件

  • GPU ノードを備えた ACK Pro マネージドクラスター が必要です。クラスターは Kubernetes 1.22 以降を実行している必要があり、各 GPU ノードには少なくとも 16 GB の GPU メモリが必要です。詳細については、「ACK マネージドクラスターの作成」をご参照ください。

    GPU ノードでは NVIDIA ドライバー バージョン 525 の使用を推奨します。ノードプールに ack.aliyun.com/nvidia-driver-version:525.105.17 ラベルを追加することで、ドライバー バージョンを 525.105.17 に固定できます。詳細については、「バージョン番号を指定してノードの GPU ドライバー バージョンをカスタマイズする」をご参照ください。

  • Arena クライアントの最新バージョンがインストールされている必要があります。詳細については、「Arena クライアントの設定」をご参照ください。

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

Qwen1.5-4B-Chat モデルをダウンロードし、OSS にアップロードして、ACK クラスター内に PV および PVC を作成します。

モデルを NAS にアップロードする方法については、「静的 NAS 永続ボリュームの使用」をご参照ください。

  1. モデルファイルをダウンロードします。

    1. 次のコマンドを実行して Git をインストールします。

      # このコマンドは Red Hat 系システム用です。Debian 系システムの場合は 'apt install git' を使用してください。
      yum install git
    2. 次のコマンドを実行して Git Large File Storage (LFS) プラグインをインストールします。

      # このコマンドは Red Hat 系システム用です。Debian 系システムの場合は 'apt install git-lfs' を使用してください。
      yum install git-lfs
    3. 次のコマンドを実行して、ModelScope から Qwen1.5-4B-Chat リポジトリをローカルマシンにクローンします。

      GIT_LFS_SKIP_SMUDGE=1 git clone https://www.modelscope.cn/qwen/Qwen1.5-4B-Chat.git
    4. 次のコマンドを実行して Qwen1.5-4B-Chat ディレクトリに移動し、LFS で管理されている大容量ファイルをプルします。

      cd Qwen1.5-4B-Chat
      git lfs pull
  2. ダウンロードした Qwen1.5-4B-Chat ファイルを OSS にアップロードします。

    1. OSS コンソール にログインし、ご利用のバケット名を確認・記録します。

      バケットの作成方法については、「バケットの作成」をご参照ください。

    2. OSS リソースを管理するために ossutil をインストールおよび設定します。詳細については、「ossutil のインストール」をご参照ください。

    3. 次のコマンドを実行して、OSS 内に Qwen1.5-4B-Chat という名前のディレクトリを作成します。

      ossutil mkdir oss://<Your-Bucket-Name>/Qwen1.5-4B-Chat
    4. 次のコマンドを実行して、モデルファイルを OSS にアップロードします。

      ossutil cp -r ./Qwen1.5-4B-Chat oss://<Your-Bucket-Name>/Qwen1.5-4B-Chat
  3. 送信先クラスターに対して PV および PVC を構成します。詳細については、「静的にプロビジョニングされた ossfs 1.0 ボリュームの使用」をご参照ください。

    • 以下の表は、サンプルの PV 構成を示しています。

      パラメーター

      説明

      ストレージタイプ

      OSS

      名前

      llm-model

      AccessKey

      OSS にアクセスするために使用する AccessKey ID および AccessKey Secret です。

      バケット ID:

      作成した OSS バケットです。

      OSS パス

      モデルが保存されているパス(例:/models/Qwen1.5-4B-Chat)を選択します。

    • 以下の表は、サンプルの PVC 構成を示しています。

      パラメーター

      説明

      ボリュームタイプ

      OSS

      名前

      llm-model

      割り当てモード

      既存ボリューム を選択します。

      既存ボリューム

      ボリュームの選択 をクリックし、作成した PV を選択します。

ステップ 2:推論サービスのデプロイ

  1. Qwen1.5-4B-Chat モデルの推論サービスをデプロイします。

    Arena を使用してカスタム推論サービスをデプロイします。サービス rtp-llm-qwen (v1) は 1 台の GPU 上で 1 つのレプリカと readiness プローブを使用して実行されます。--data は、llm-model PVC をコンテナ内の /model/Qwen1.5-4B-Chat にマウントします。

    単一 A10 GPU

    arena serve custom \
        --name=rtp-llm-qwen \
        --version=v1 \
        --gpus=1 \
        --replicas=1 \
        --readiness-probe-action="tcpSocket" \
        --readiness-probe-action-option="port: 8000" \
        --readiness-probe-option="initialDelaySeconds: 30" \
        --readiness-probe-option="periodSeconds: 30" \
        --restful-port=8000 \
        --image=ac2-registry.cn-hangzhou.cr.aliyuncs.com/ac2/rtp_llm:0.1.12-cuda12-ubuntu22.04 \
        --data=llm-model:/model/Qwen1.5-4B-Chat \
        "MODEL_TYPE=qwen_2 START_PORT=8000 CHECKPOINT_PATH=/model/Qwen1.5-4B-Chat TOKENIZER_PATH=/model/Qwen1.5-4B-Chat python3 -m maga_transformer.start_server"

    単一 T4 GPU

    arena serve custom \
        --name=rtp-llm-qwen \
        --version=v1 \
        --gpus=1 \
        --replicas=1 \
        --readiness-probe-action="tcpSocket" \
        --readiness-probe-action-option="port: 8000" \
        --readiness-probe-option="initialDelaySeconds: 30" \
        --readiness-probe-option="periodSeconds: 30" \
        --restful-port=8000 \
        --image=ac2-registry.cn-hangzhou.cr.aliyuncs.com/ac2/rtp_llm:0.1.12-cuda12-ubuntu22.04 \
        --data=llm-model:/model/Qwen1.5-4B-Chat \
        "MODEL_TYPE=qwen_2 START_PORT=8000 CHECKPOINT_PATH=/model/Qwen1.5-4B-Chat TOKENIZER_PATH=/model/Qwen1.5-4B-Chat MAX_SEQ_LEN=2048 python3 -m maga_transformer.start_server"

    期待される出力:

    service/rtp-llm-qwen-v1 created
    deployment.apps/rtp-llm-qwen-v1-custom-serving created
    INFO[0001] The Job rtp-llm-qwen has been submitted successfully
    INFO[0001] You can run `arena serve get rtp-llm-qwen --type custom-serving -n default` to check the job status

    推論サービスがデプロイされました。

  2. 推論サービスの詳細を表示し、準備完了状態になるまで待ちます。

    arena serve get rtp-llm-qwen

    期待される出力:

    Name:       rtp-llm-qwen
    Namespace:  default
    Type:       Custom
    Version:    v1
    Desired:    1
    Available:  1
    Age:        1h
    Address:    192.168.XX.XX
    Port:       RESTFUL:8000
    GPU:        1
    
    Instances:
      NAME                                             STATUS   AGE  READY  RESTARTS  GPU  NODE
      ----                                             ------   ---  -----  --------  ---  ----
      rtp-llm-qwen-v1-custom-serving-696f699485-mn56v  Running  1h   1/1    0         1    cn-beijing.192.168.XX.XX

    推論サービスの Pod rtp-llm-qwen-v1-custom-serving-696f699485-mn56v は実行中で、準備完了状態です。

ステップ 3:推論サービスの検証

  1. 推論サービスへのポート フォワーディングを設定します。

    重要

    kubectl port-forward を使用したポート フォワーディングは、信頼性、セキュリティ、スケーラビリティが不足しているため、本番環境には適していません。開発およびデバッグ目的でのみ使用してください。Kubernetes クラスターにおける本番レベルのネットワーキング ソリューションについては、「Ingress 管理」をご参照ください。

    kubectl port-forward svc/rtp-llm-qwen-v1 8000:8000

    期待される出力:

    Forwarding from 127.0.0.1:8000 -> 8000
    Forwarding from [::1]:8000 -> 8000
  2. 推論サービスにリクエストを送信します。

    curl http://localhost:8000/v1/chat/completions -H "Content-Type: application/json"  -d '{"model": "/model/Qwen1.5-4B-Chat/", "messages": [{"role": "user", "content": "Run a quick test"}], "max_tokens": 10, "temperature": 0.7, "top_p": 0.9, "seed": 10}'

    期待される出力:

    {"id":"chat-","object":"chat.completion","created":1717383026,"model":"AsyncModel","choices":[{"index":0,"message":{"role":"assistant","content":"Sure. What would you like me to test for you?"},"finish_reason":"stop"}],"usage":{"prompt_tokens":21,"total_tokens":31,"completion_tokens":10}}

    モデルはテストメッセージに対する応答を生成しました。

(オプション)ステップ 4:環境のクリーンアップ

リソースが不要になった場合は、不要な課金を回避するために速やかに削除してください。

  • モデル推論サービスを削除します。

    arena serve del rtp-llm-qwen
  • PV および PVC を削除します。

    kubectl delete pvc llm-model
    kubectl delete pv llm-model

付録:コマンド パラメーター リファレンス

パラメーター 説明
serve custom Arena サブコマンド。 tfservingtriton などのプリセットタイプではなく、カスタムモデルサービスをデプロイします。
--name サービス名。 ログの確認やサービスの削除など、後続の操作で使用する一意の識別子です。 modelscope
--version サービス バージョン。 サービスのバージョンラベルで、バージョン管理や段階的リリースに役立ちます。 v1
--gpus GPU 数。 各 Pod に割り当てる GPU の数です。モデルが推論に GPU を必要とする場合に必須です。 1
--replicas レプリカ数。 実行する Pod の数です。レプリカを増やすことで同時スループットと可用性が向上します。 1
--restful-port RESTful API ポート。 推論リクエストを受信するためにサービスが RESTful API を公開するポートです。 8000
--readiness-probe-action readiness プローブ タイプ。 Kubernetes の readiness プローブがコンテナがトラフィックを受信可能な状態かどうかを判断するために使用するチェック方法です。 tcpSocket
--readiness-probe-action-option プローブ タイプ オプション。 選択したプローブ タイプのパラメーターです。tcpSocket の場合は、チェック対象のポートを指定します。 port: 8000
--readiness-probe-option 追加のプローブ設定。 readiness プローブの追加パラメーターです。このフラグは繰り返し使用可能です。初期遅延時間とチェック間隔を設定します。 initialDelaySeconds: 30periodSeconds: 30
--data ボリューム マウント。 コンテナ内の指定パスに PVC をマウントします。形式は <pvc-name>:<mount-path> です。事前にロードされたモデルファイルをマウントするために使用します。 llm-model:/Qwen1.5-4B-Chat
--image コンテナイメージ。 サービスの実行環境を定義するコンテナイメージの完全な URL です。 kube-ai-registry.cn-shanghai.cr.aliyuncs.com/kube-ai/quick-deploy-llm:v1
[COMMAND] 起動コマンド。 コンテナ起動後に実行するコマンドです。MODEL_ID 環境変数を設定し、server.py を起動します。 "MODEL_ID=/Qwen1.5-4B-Chat python3 server.py"