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

Container Service for Kubernetes:ACK で TGI を使用して Qwen 推論サービスをデプロイする

最終更新日:Sep 17, 2026

このガイドでは、Hugging Face の Text Generation Inference (TGI) フレームワークを使用して、Container Service for Kubernetes (ACK) 上に Qwen1.5-4B-Chat 推論サービスをデプロイする方法について説明します。ターゲットハードウェアとして A10 GPU を使用します。

背景情報

Qwen1.5-4B-Chat

Qwen1.5-4B-Chat は、Alibaba Cloud が Transformer アーキテクチャに基づいて開発した 40 億パラメーターの LLM です。このモデルは、Web テキスト、特定分野の書籍、コードなど、大規模なデータセットで学習されています。詳細については、「Qwen GitHub リポジトリ」をご参照ください。

Text Generation Inference (TGI)

TGI は、Hugging Face による、LLM を推論サービスとして提供するためのオープンソースツールキットです。FlashAttention、ページ化アテンション、継続的バッチ処理、テンソル並列処理などの推論高速化技術をサポートしています。詳細については、「TGI ドキュメント」をご参照ください。

前提条件

開始する前に、以下の要件を満たしていることを確認してください。

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

Qwen1.5-4B-Chat モデルをダウンロードし、Object Storage Service (OSS) にアップロードし、ACK クラスターに永続ボリューム (PV) と永続ボリューム要求 (PVC) を作成して、推論サービスが実行時にモデルをロードできるようにします。

代替手段として File Storage NAS (NAS) を使用する方法については、「静的にプロビジョニングされた NAS ボリュームのマウント」をご参照ください。

モデルの重みのダウンロード

  1. Git のインストール:

    # RHEL/CentOS
    yum install git
    # Debian/Ubuntu
    # apt install git
  2. Git Large File Storage (LFS) のインストール:

    # RHEL/CentOS
    yum install git-lfs
    # Debian/Ubuntu
    # apt install git-lfs
  3. LFS ダウンロードをスキップし、ModelScope から Qwen1.5-4B-Chat リポジトリをクローンします。

    GIT_LFS_SKIP_SMUDGE=1 git clone https://www.modelscope.cn/qwen/Qwen1.5-4B-Chat.git
  4. LFS で管理されている大規模なモデルの重みファイルをプルします。

    cd Qwen1.5-4B-Chat
    git lfs pull

モデルの OSS へのアップロード

  1. OSS コンソールにログインし、OSS バケットの名前を記録します。バケットを作成するには、「バケットの作成」をご参照ください。

  2. ossutil をインストールして設定します。詳細については、「ossutil のインストール」をご参照ください。

  3. OSS にモデル用のディレクトリを作成します。

    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

PV と PVC の設定

ACK クラスターに PV と PVC を作成して、OSS でホストされているモデルを推論サービスコンテナにマウントします。詳細な手順については、「静的にプロビジョニングされた OSS ボリュームのマウント」をご参照ください。

以下の設定を使用します。

PV パラメータ

パラメータ

値

[PV タイプ]

OSS

[ボリューム名]

llm-model

[アクセス証明書]

OSS バケット用の AccessKey ID と AccessKey Secret

[バケット ID]

OSS バケットの名前

[OSS パス]

モデルディレクトリへのパス、たとえば /models/Qwen1.5-4B-Chat

PVC パラメータ

パラメータ

値

[PVC タイプ]

OSS

[ボリューム名]

llm-model

[割り当てモード]

既存のボリューム

[既存のボリューム]

作成した PV を選択します

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

重要

TGI は V100 または T4 GPU をサポートしていません。A10 またはより新しいアーキテクチャの GPU を使用してください。

次の Arena コマンドを実行して、推論サービスをデプロイします。

arena serve custom \
    --name=tgi-qwen-4b-chat \
    --version=v1 \
    --gpus=1 \
    --replicas=1 \
    --restful-port=8000 \
    --readiness-probe-action="TCPSocket" \
    --readiness-probe-action-option="port: 8000" \
    --readiness-probe-option="initialDelaySeconds: 30" \
    --readiness-probe-option="periodSeconds: 30" \
    --image=ac2-registry.cn-hangzhou.cr.aliyuncs.com/ac2/text-generation-inference:2.0.2-ubuntu22.04 \
    --data=llm-model:/model/Qwen1.5-4B-Chat \
    "text-generation-launcher --model-id /model/Qwen1.5-4B-Chat --num-shard 1 -p 8000"

次の表では、パラメータについて説明します。

パラメータ

説明

--name

推論サービスの名前

--version

推論サービスのバージョン

--gpus

レプリカあたりの GPU 数

--replicas

レプリカ数

--restful-port

推論サービスが公開するポート

--readiness-probe-action

readiness プローブの接続タイプ。有効な値: HttpGet、Exec、gRPC、TCPSocket

--readiness-probe-action-option

readiness プローブの接続方法

--readiness-probe-option

readiness プローブの設定

--data

コンテナに PVC をマウントします。形式: <pvc-name>:<mount-path>。利用可能な PVC を一覧表示するには、arena data list を実行します。

--image

推論サービスのコンテナイメージ

次のような出力が表示されます。

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

サービスが実行されていることを確認します。

arena serve get tgi-qwen-4b-chat

次のような出力が表示されます。

Name:       tgi-qwen-4b-chat
Namespace:  default
Type:       Custom
Version:    v1
Desired:    1
Available:  1
Age:        3m
Address:    172.16.XX.XX
Port:       RESTFUL:8000
GPU:        1

Instances:
  NAME                                                 STATUS   AGE  READY  RESTARTS  GPU  NODE
  ----                                                 ------   ---  -----  --------  ---  ----
  tgi-qwen-4b-chat-v1-custom-serving-67b58c9865-m89lq  Running  3m   1/1    0         1    cn-beijing.192.168.XX.XX

Available: 1 と STATUS: Running は、ポッドがリクエストを処理する準備ができたことを示します。

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

  1. ローカルマシンからサービスにアクセスするために、ポートフォワーディングを設定します。

    重要

    kubectl port-forward は、開発およびデバッグ専用です。 本番トラフィックに対しては、信頼性、安全性、スケーラビリティがありません。 ACK クラスターでの本番ネットワーキングについては、「Ingress の概要」をご参照ください。

    kubectl port-forward svc/tgi-qwen-4b-chat-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": "Test"}], "max_tokens": 10, "temperature": 0.7, "top_p": 0.9, "seed": 10}'

    次のような出力が表示されます。

    {"id":"","object":"text_completion","created":1716274541,"model":"/model/Qwen1.5-4B-Chat","system_fingerprint":"2.0.2-sha-6073ece","choices":[{"index":0,"message":{"role":"assistant","content":"OK. What test do you want me to run?"},"logprobs":null,"finish_reason":"length"}],"usage":{"prompt_tokens":21,"completion_tokens":10,"total_tokens":31}}

    choices 配列を含む有効な JSON レスポンスにより、モデルがロードされ、テキストを生成していることが確認されます。

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

リソースが不要になった場合は、継続的な料金を回避するために削除してください。

推論サービスを削除します。

arena serve delete tgi-qwen-4b-chat

PVC と PV を削除します。

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