EAS を使用すると、モデルをオンライン推論サービスとして迅速にデプロイできます。 このトピックでは、vLLM フレームワークを使用した Qwen3-0.6B モデルのデプロイを例に、サービスのデプロイと呼び出しのプロセスを順を追って説明します。
前提条件
Alibaba Cloud メインアカウントを使用して PAI をアクティブ化し、ワークスペースを作成します。 PAI コンソールにログインし、左上隅でリージョンを選択してから、ワンクリック承認と製品のアクティブ化を完了します。
課金
このトピックでは、パブリックリソースを使用してモデルサービスを作成します。 課金方法は従量課金です。 課金ルールの詳細については、「EAS 課金」をご参照ください。
準備
モデルサービスをデプロイするには、通常、モデルファイルやコードファイル(Web インターフェースなど)を準備する必要があります。 公式プラットフォームイメージがデプロイ要件を満たしていない場合は、独自のイメージをビルドする必要があります。
モデルファイルを準備する
この例では、Qwen3-0.6B モデルファイルを取得するために、次の Python コードを実行します。 ファイルは ModelScope からデフォルトパス ~/.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 に加えて、他のストレージ方法を使用することもできます。 詳細については、「ストレージ構成」をご参照ください。
必要なすべてのファイルをイメージにパッケージ化してデプロイすることもできます。 ただし、次の理由により、この方法は推奨されません。
モデルの更新または反復では、イメージを再構築して再アップロードする必要があるため、メンテナンスコストが増加します。
大きなモデルファイルはイメージサイズを大幅に増加させます。 これにより、イメージのプル時間が長くなり、サービスの起動効率に影響します。
イメージを準備する
Qwen3-0.6B モデルは、vllm>=0.8.5 を使用して、OpenAI 互換の API エンドポイントを作成できます。 公式 EAS イメージ vllm:0.8.5.post1-mows0.2.1 はこの要件を満たしています。 したがって、このトピックでは公式イメージを使用します。
公式イメージが要件を満たしていない場合は、カスタムイメージを作成する必要があります。 DSW でモデルを開発およびトレーニングする場合は、DSW インスタンスイメージを作成して、開発環境とデプロイ環境の一貫性を確保できます。
サービスデプロイ
PAI コンソールにログインします。 ページ上部でリージョンを選択します。 次に、目的のワークスペースを選択し、[Elastic Algorithm Service (EAS)] をクリックします。
[サービスのデプロイ] をクリックします。 [カスタムモデルデプロイ] セクションで、[カスタムデプロイ] をクリックします。
デプロイパラメータを構成します。 主要なパラメータを次のように構成し、その他のパラメータについてはデフォルト値を保持します。
[デプロイ方法]: [イメージベースのデプロイ] を選択します。
[イメージ構成]: [Alibaba Cloud イメージ] リストで、
vllm:0.8.5.post1-mows0.2.1を選択します。[直接マウント]: このトピックでは、モデルファイルを
oss://examplebucket/models/Qwen/Qwen3-0___6Bパスにある OSS に保存します。 したがって、OSS を選択し、次のように構成します。[URI]: モデルが配置されている OSS パス。 これを
oss://examplebucket/models/に設定します。[マウントパス]: ファイルがマウントされるサービスインスタンス内の宛先パス(例:
/mnt/data/)。
[コマンド]: 公式イメージには、関連付けられたデフォルトの起動コマンドがあります。 必要に応じて変更できます。 この例では、
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 }
応答は次の図に示されています。

サービス呼び出し
エンドポイントとトークンを取得する
このデプロイでは、デフォルトで共有ゲートウェイが使用されます。 デプロイが完了すると、呼び出しに必要なエンドポイントとトークンをサービス概要情報から取得できます。
[推論サービス] タブで、サービス名をクリックして [概要] ページに移動します。 [基本情報] セクションで、[エンドポイント情報を表示] をクリックします。
[呼び出し方法] パネルで、エンドポイントとトークンを取得できます。 必要に応じて、インターネットエンドポイントまたは 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 の概要」をご参照ください。