Elastic Algorithm Service (EAS) を使用すると、モデルをリアルタイム推論サービスとして迅速にデプロイできます。このトピックでは、vLLM フレームワークを使用した Qwen3-0.6B モデルのデプロイを例に、サービスのデプロイと呼び出しのプロセスを説明します。
コストに関する考慮事項:このガイドでは、パブリックな従量課金リソースを使用します。チュートリアル全体の推定コストは 2~5 元です。不要な課金を避けるため、使用しないサービスは必ず停止または削除してください。
前提条件
ルート権限を持つ有効な Alibaba Cloud アカウント
ご利用のワークスペースで PAI サービスが有効化されていること
クラウドコンピューティングの概念に関する基本的な理解
ルートアカウントを使用して PAI を有効化し、ワークスペースを作成します。PAI コンソールにログインし、左上のコーナーでリージョンを選択してから、ワンクリックでの権限付与とプロダクトの有効化を完了します。
課金
このトピックでは、パブリックリソースを使用してモデルサービスを作成します。課金方法は従量課金です。課金ルールの詳細については、「EAS の課金」をご参照ください。
事前準備
モデルサービスをデプロイするには、通常、モデルファイルや Web インターフェイスなどのコードファイルを準備する必要があります。プラットフォームの Alibaba Cloud イメージがデプロイ要件を満たさない場合は、独自のランタイムイメージをビルドする必要もあります。
モデルファイルの準備
この例の Qwen3-0.6B モデルファイルを取得するには、次の Python コードを実行します。ファイルは ModelScope からデフォルトパスの ~/.cache/modelscope/hub にダウンロードされます。
注:モデルはデフォルトで ~/.cache/modelscope/hub に保存されます。
# モデルのダウンロード
from modelscope import snapshot_download
model_dir = snapshot_download('Qwen/Qwen3-0.6B')コードファイルの準備
vLLM フレームワークを使用すると、OpenAI API と互換性のある API サービスを簡単にビルドできます。そのため、個別のコードファイルを準備する必要はありません。
複雑なビジネスロジックや特定の API 要件がある場合は、独自のコードファイルを準備してください。たとえば、次のコードでは Flask を使用して簡単な API インターフェイスを作成します。
OSS へのファイルのアップロード
ossutil を使用して、モデルファイルとコードファイルを OSS にアップロードします。その後、OSS をサービスにマウントすることでモデルファイルを読み取ることができます。
ベストプラクティス:最適なパフォーマンスを得るために、リージョナル OSS バケットを使用し、モデルを構造化されたディレクトリパスで整理することを推奨します。
OSS に加えて、他のストレージメソッドも使用できます。詳細については、「ストレージ構成」をご参照ください。
必要なすべてのファイルをランタイムイメージにパッケージ化してデプロイすることもできます。ただし、次の理由からこの方法は推奨されません。
モデルの更新や反復を行うたびにランタイムイメージを再ビルドして再アップロードする必要があり、メンテナンスコストが増加します。
モデルファイルが大きいと、ランタイムイメージのサイズが大幅に増加します。これにより、イメージのプル時間が長くなり、サービスの起動効率に影響します。
ランタイムイメージの準備
Qwen3-0.6B モデルと vllm>=0.8.5 を使用して、OpenAI と互換性のある API エンドポイントを作成できます。EAS が提供する公式イメージ vllm:0.8.5.post1-mows0.2.1 はこの要件を満たしているため、このトピックでは公式イメージを使用します。
要件を満たす Alibaba Cloud イメージがない場合は、カスタムイメージを作成する必要があります。DSW インスタンスでモデルを開発およびトレーニングする場合は、DSW インスタンスイメージを作成することで、開発環境とデプロイ環境の一貫性を確保できます。
サービスのデプロイ
-
PAI コンソールにログインします。ページ上部でリージョンを選択します。次に、目的のワークスペースを選択し、[Elastic Algorithm Service (EAS)] をクリックします。
-
[サービスをデプロイ] をクリックします。[カスタムモデルのデプロイ] セクションで、[カスタムデプロイ] をクリックします。
デプロイパラメーターを設定します。主要なパラメーターを次のように設定し、その他のパラメーターはデフォルト値のままにします。
[デプロイ方法]:イメージベースのデプロイ。
[イメージ構成]:[Alibaba Cloud イメージ] リストで、
vllm:0.8.5.post1-mows0.2.1を選択します。[ストレージのマウント]:このトピックでは、モデルファイルを OSS のパス
oss://examplebucket/models/Qwen/Qwen3-0___6Bに保存します。そのため、OSS を選択し、次のように設定します。[Uri]:モデルが配置されている OSS パス。これを
oss://examplebucket/models/に設定します。[マウントパス]:ファイルがマウントされるサービスインスタンス内の宛先パス。例:
/mnt/data/。
コマンド:Alibaba Cloud イメージには、デフォルトの起動コマンドが関連付けられています。必要に応じて変更できます。この例では、
vllm serve /mnt/data/Qwen/Qwen3-0___6Bに変更します。[リソースタイプ]:[パブリックリソース] を選択します。[リソース仕様] を
ecs.gn7i-c16g1.4xlargeに設定します。他のリソースタイプを使用する場合は、「リソース構成」をご参照ください。
[デプロイ] をクリックします。サービスのデプロイには約 5 分かかります。[サービスステータス] が [実行中] に変わると、サービスは正常にデプロイされています。
ヒント:デプロイの進行状況は、デプロイログでリアルタイムに監視できます。
オンラインデバッグ
サービスがデプロイされた後、オンラインデバッグ機能を使用して、サービスが正しく実行されているかをテストできます。特定のモデルサービスに基づいて、リクエストメソッド、リクエストパス、リクエストボディを設定できます。
このトピックでデプロイされたサービスのオンラインデバッグ方法は次のとおりです。
[推論サービス] タブで、対象のサービスをクリックしてサービス概要ページに移動します。[オンラインデバッグ] タブに切り替えます。
デバッグページの [オンラインデバッグリクエストパラメーター] セクションで、リクエストパラメーターを設定し、[リクエストを送信] をクリックします。リクエストパラメーターは次のとおりです。
チャットインターフェイス:既存の URL に
/v1/chat/completionsを追加します。ヘッダー:リクエストヘッダーを追加します。キーを
Content-Typeに、値をapplication/jsonに設定します。
ボディ:
{ "model": "/mnt/data/Qwen/Qwen3-0___6B", "messages": [ { "role": "user", "content": "Hello!" } ], "max_tokens": 1024 }
応答は次の図のようになります。

検証チェックリスト:
✓ HTTP 200 ステータスコードを受信
✓ 応答に生成されたテキストが含まれている
✓ 簡単なクエリに対する応答時間が 5 秒未満
サービスの呼び出し
エンドポイントとトークンの取得
このデプロイでは、デフォルトで共有ゲートウェイが使用されます。デプロイが完了したら、サービスの概要情報から呼び出しに必要なエンドポイントとトークンを取得できます。
[推論サービス] タブで、目的のサービス名をクリックして、その [概要] ページに移動します。[基本情報] セクションで、[エンドポイント情報の表示] をクリックします。
[呼び出し方法] パネルで、エンドポイントとトークンを取得します。必要に応じて、インターネットまたは VPC エンドポイントを選択します。以下の例では、これらの値のプレースホルダーとして <EAS_ENDPOINT> と <EAS_TOKEN> を使用します。

curl または Python を使用した呼び出し
次のコードに例を示します。
curl http://16********.cn-hangzhou.pai-eas.aliyuncs.com/api/predict/****/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: *********5ZTM1ZDczg5OT**********" \
-X POST \
-d '{
"model": "/mnt/data/Qwen/Qwen3-0___6B",
"messages": [
{
"role": "user",
"content": "Hello!"
}
],
"max_tokens": 1024
}' import requests
# 実際のエンドポイントに置き換えてください。
url = 'http://16********.cn-hangzhou.pai-eas.aliyuncs.com/api/predict/***/v1/chat/completions'
# ヘッダーについては、Authorization の値を実際のトークンに設定してください。
headers = {
"Content-Type": "application/json",
"Authorization": "*********5ZTM1ZDczg5OT**********",
}
# 特定のモデルで要求されるデータ形式に基づいてサービスリクエストを構築します。
data = {
"model": "/mnt/data/Qwen/Qwen3-0___6B",
"messages": [
{
"role": "user",
"content": "Hello!"
}
],
"max_tokens": 1024
}
# リクエストを送信します。
resp = requests.post(url, json=data, headers=headers)
print(resp)
print(resp.content)サービスの停止または削除
このトピックでは、パブリックリソースを使用して EAS サービスを作成しており、これは従量課金制で課金されます。サービスが不要になった場合は、さらなる課金を避けるためにサービスを停止または削除してください。
管理のヒント:一時的に停止する場合は、「停止」を使用して構成を保持します。完全に削除する場合は、「削除」を使用してすべてのリソースを解放します。

参考資料
LLM サービスの効率を向上させるには、「LLM インテリジェントルーターのデプロイ」をご参照ください。
EAS の機能の詳細については、「EAS の概要」をご参照ください。