Container Service for Kubernetes (ACK) Auto モードクラスターは、Auto モードのノードプールと Knative Serving のオンデマンドな弾力性を利用して、Qwen3.5-4B 大規模言語モデルをサーバーレス推論サービスとしてデプロイします。この方法により、手動での GPU リソース管理が不要になり、コストを重視し、メンテナンスの手間を省きたい推論シナリオに最適です。
全体のプロセスは以下の通りです:
ACK Auto モードクラスター:GPU ノードの作成と解放を管理します。ノードのライフサイクルは Auto モードのノードプールによって管理されます。
Knative Serving:リクエストの同時実行数 (
concurrency) または秒間リクエスト数 (rps) に基づいて Pod のスケーリングをサポートします。
ステップ1:クラスターと GPU ノードプールの作成
1. クラスターの作成
ACK コンソールにログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。
クラスターリスト ページで、Kubernetes クラスターの作成 をクリックします。ACK マネージドクラスター ページで、Auto モードを有効にします。

設定を確認し、Kubernetes クラスターの作成 をクリックします。
詳細な手順については、「ACK Auto モードクラスターの作成」をご参照ください。
2. GPU ノードプールの作成
ACK クラスターページで、対象クラスターの名前をクリックします。左側のナビゲーションウィンドウで、 をクリックします。
ノードプール ページで、ノードプールの作成 をクリックし、ノードプールの作成 ダイアログボックスでノードプールを設定します。
以下の主要な設定を行います。詳細については、「ノードプールの作成」をご参照ください。
マネージド設定:インテリジェントマネージドモードを選択します。
インスタンス関連の設定:インスタンス設定方法 を インスタンスタイプの指定 に設定し、V100、A10、T4 などの GPU ECS インスタンスタイプを選択します。
ノードラベル (Labels):ラベル
ack.aliyun.com/nvidia-driver-version:550.144.03を追加して、NVIDIA ドライバーのバージョンが 550.144.03 であることを指定します。コンテナのイメージアクセラレーション:この機能を有効にして、モデルイメージのプルを高速化します。
3. Knative コンポーネントのデプロイ
「Knative コンポーネントのデプロイ」をご参照のうえ、デプロイを完了してください。
ステップ2:モデルファイルの準備とアップロード
このステップでは、一時的な Elastic Compute Service (ECS) インスタンスを使用して ModelScope から Qwen3.5-4B モデルファイルをダウンロードし、ossutil を使用して OSS バケットにアップロードします。バケットから推論コンテナにファイルをボリュームとしてマウントすることで、コンテナが起動するたびにモデルを再ダウンロードする必要がなくなります。
始める前に、以下のタスクを完了してください:
一時的な ECS インスタンスに ossutil をインストールして設定します。
1. Qwen3.5-4B モデルファイルのダウンロード
一時的な ECS インスタンスで、以下のコマンドを実行して ModelScope からモデルファイルをダウンロードします。
Git をインストールします。
# `yum install git` または `apt install git` を実行できます。 sudo yum install gitGit LFS (Large File Storage) プラグインをインストールします。
# `yum install git-lfs` または `apt install git-lfs` を実行できます。 sudo yum install git-lfsModelScope から Qwen3.5-4B リポジトリをクローンします。この時点では Git LFS が管理する大きなファイルはスキップします。
GIT_LFS_SKIP_SMUDGE=1 git clone https://www.modelscope.cn/qwen/Qwen3.5-4B.gitリポジトリのディレクトリに移動し、Git LFS が管理する大きなファイルをプルします。
cd Qwen3.5-4B git lfs pull
2. モデルファイルの OSS へのアップロード
OSS バケットにモデルを保存するためのディレクトリを作成します。
<Your-Bucket-Name>を実際の名前で置き換えてください。ossutil mkdir oss://<Your-Bucket-Name>/models/Qwen3.5-4Bローカルのモデルファイルを OSS バケットにアップロードします。
ossutil cp -r ./Qwen3.5-4B oss://<Your-Bucket-Name>/models/Qwen3.5-4B
3. OSS ボリュームの設定
認証方式 (RRSA または AccessKey) を選択し、認証情報を準備して、クラスターが OSS バケットに安全にアクセスできるようにします。
この例では AccessKey 認証を使用します。詳細については、「静的 ossfs 2.0 ボリュームの使用」をご参照ください。
取得した AccessKey をシークレットとして保存し、永続ボリュームで使用できるようにします。
<yourAccessKeyID>と<yourAccessKeySecret>を実際の認証情報に置き換えてください。シークレットの名前空間は、アプリケーションの名前空間と同じである必要があります。kubectl create -n default secret generic oss-secret --from-literal='akId=<yourAccessKeyID>' --from-literal='akSecret=<yourAccessKeySecret>'対象クラスターに永続ボリューム (PV) と永続ボリューム要求 (PVC) を作成し、OSS バケットのモデルディレクトリを読み取り専用モードでマウントします。以下の例では、静的 ossfs 2.0 ボリュームを使用します。
ステップ3:サービスのデプロイと検証
1. Knative サービスの作成
ACK クラスターページで、対象クラスターの名前をクリックします。左側のナビゲーションウィンドウで、 をクリックします。
[サービス] タブで、[テンプレートから作成] をクリックします。[サンプルテンプレート] を [カスタム] に設定し、以下のコードを使用して Knative サービスをデプロイします。
パラメーター
説明
autoscaling.knative.dev/metricオートスケーリングのメトリック。有効な値:
concurrency(デフォルト):同時操作数。rps:秒間リクエスト数。
autoscaling.knative.dev/target選択したメトリックのターゲット値。オートスケーラーは、Pod ごとのこの平均値を維持するようにサービスをスケーリングします。
autoscaling.knative.dev/minScaleレプリカの最小数。ゼロへのスケーリングを有効にするには 0 に設定します。
autoscaling.knative.dev/maxScaleレプリカの最大数。スケールアウトの上限を制限します。
2. サービスの検証
[サービス] タブで、サービスが準備完了状態であることを確認し、デフォルトドメイン名とアクセスゲートウェイアドレスを取得します。

推論サービスにテストリクエストを送信します。
xx.40.85.xxを実際のアクセスゲートウェイアドレスに、qwen.default.example.comを実際のデフォルトドメイン名に置き換えてください。curl http://xx.40.85.xx:80/v1/chat/completions \ -H "Host: qwen.default.example.com" \ -H "Content-Type: application/json" \ -d '{ "model": "Qwen3.5-4B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Tell me about Hangzhou" } ] } ], "max_tokens": 200 }'期待される出力は以下の通りです:
{ "id": "chatcmpl-20dfb4c8-d1ab-48bc-9f1a-78b84c6c8adf", "object": "chat.completion", "created": 1772602897, "model": "Qwen3.5-4B", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "杭州は「杭」と略され、中国浙江省の副省級市です..." }, "finish_reason": "length" } ], "usage": { "prompt_tokens": 14, "completion_tokens": 200, "total_tokens": 214 } }