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

Platform For AI:PAI-EAS での大規模言語モデルのデプロイ

最終更新日:Feb 05, 2026

Elastic Algorithm Service (EAS) は、大規模言語モデル (LLM) をデプロイするためのワンストップソリューションを提供します。DeepSeek や Qwen などの人気のあるモデルをワンクリックでデプロイできます。このプロセスにより、複雑な環境構成、パフォーマンスチューニング、コスト管理が簡素化されます。

クイックスタート:オープンソースモデルのデプロイ

このセクションでは、オープンソースモデル Qwen3-8B のデプロイを例に説明します。同じプロセスが他のサポートされているモデルにも適用されます。

ステップ 1:サービスの作成

  1. PAI コンソールにログインします。ページ上部でリージョンを選択します。次に、目的のワークスペースを選択し、Elastic Algorithm Service (EAS) をクリックします。

  2. Deploy Service]をクリックします。[Scenario-based Model Deployment]エリアで、[LLM Deployment]をクリックします。

  3. 次の主要なパラメーターを設定します:

    設定項目

    Model Settings

    Public Modelを選択します。Qwen3-8B を検索して選択します。

    Inference Engine

    vLLM を選択します。これは推奨されており、OpenAI API と互換性があります。

    Deployment Template

    単一マシン を選択します。システムはテンプレートに基づいて、推奨されるインスタンスタイプ、ランタイムイメージ、その他のパラメーターを自動的に入力します。

  4. Deploy をクリックします。サービスデプロイには約 5 分かかります。サービスステータスが Running に変わると、デプロイメントは完了です。

    説明

    サービスデプロイが失敗した場合は、「サービスデプロイとステータスの問題」をご参照ください。

ステップ 2:オンラインデバッグによる検証

サービスがデプロイされた後、オンラインデバッグを使用して、サービスが正しく実行されていることを確認できます。

  1. サービス名をクリックしてサービス詳細ページに移動します。Online Debugging タブに切り替えます。

  2. リクエストパラメーターを次のように設定します:

    設定項目

    リクエストメソッド

    POST

    URL パス

    既存の URL に /v1/chat/completions を追加します。例:/api/predict/llm_qwen3_8b_test/v1/chat/completions

    本文

    {
      "model": "Qwen3-8B",
      "messages": [
        {"role": "user", "content": "Hello!"}
      ],
      "max_tokens": 1024
    }

    ヘッダー

    Content-Type: application/json が含まれていることを確認します。

  3. Send Request をクリックします。モデルの返信を含む応答が返されます。

image

API を使用した呼び出し

呼び出しを行う前に、サービスの詳細ページの概要タブに移動します。View Endpoint Information をクリックして、エンドポイントおよびトークンを取得する

次のコードは、API を使用してサービスを呼び出す例を示しています:

cURL

curl -X POST <EAS_ENDPOINT>/v1/chat/completions \
    -H "Content-Type: application/json" \
    -H "Authorization: <EAS_TOKEN>" \
    -d '{
        "model": "<model_name>",
        "messages": [
        {
            "role": "system",
            "content": "You are a helpful assistant."
        },
        {
            "role": "user",
            "content": "hello"
        }
        ],
        "max_tokens":1024,
        "temperature": 0.7,
        "top_p": 0.8,
        "stream":true
    }'

以下:

  • <EAS_ENDPOINT><EAS_TOKEN> を、デプロイしたサービスのエンドポイントとトークンに置き換えます。

  • <model_name> をモデル名に置き換えます。vLLM/SGLang の場合、モデル名は <EAS_ENDPOINT>/v1/models のモデルリスト API から取得できます。

    curl -X GET <EAS_ENDPOINT>/v1/models -H "Authorization: <EAS_TOKEN>"

OpenAI SDK

公式の Python SDK を使用してサービスと対話します。OpenAI SDK がインストールされていることを確認してください:pip install openai

from openai import OpenAI

# 1. クライアントの設定
# <EAS_TOKEN> をデプロイしたサービスのトークンに置き換えます
openai_api_key = "<EAS_TOKEN>"
# <EAS_ENDPOINT> をデプロイしたサービスのエンドポイントに置き換えます
openai_api_base = "<EAS_ENDPOINT>/v1"

client = OpenAI(
    api_key=openai_api_key,
    base_url=openai_api_base,
)

# 2. モデル名の取得
# BladeLLM の場合、model = "" と設定します。BladeLLM は model パラメーターを必要とせず、client.models.list() を使用したモデル名の取得をサポートしていません。OpenAI SDK の必須パラメーター要件を満たすために、空の文字列に設定します。
models = client.models.list()
model = models.data[0].id
print(model)

# 3. チャットリクエストの送信
# ストリーミング (stream=True) と非ストリーミング (stream=False) 出力をサポートします
stream = True
chat_completion = client.chat.completions.create(
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "hello"},          
    ],
    model=model,
    top_p=0.8,
    temperature=0.7,
    max_tokens=1024,
    stream=stream,
)

if stream:
    for chunk in chat_completion:
        print(chunk.choices[0].delta.content, end="")
else:
    result = chat_completion.choices[0].message.content
    print(result)

Python の requests ライブラリ

OpenAI SDK への依存関係を必要としないシナリオでは、requests ライブラリを使用できます。

import json
import requests

# <EAS_ENDPOINT> をデプロイしたサービスのエンドポイントに置き換えます
EAS_ENDPOINT = "<EAS_ENDPOINT>"
# <EAS_TOKEN> をデプロイしたサービスのトークンに置き換えます
EAS_TOKEN = "<EAS_TOKEN>"
# <model_name> をモデル名に置き換えます。<EAS_ENDPOINT>/v1/models のモデルリスト API から取得できます。BladeLLM の場合、この API はサポートされていません。"model" フィールドを省略するか、"" に設定できます。
model = "<model_name>"

url = f"{EAS_ENDPOINT}/v1/chat/completions"
headers = {
    "Content-Type": "application/json",
    "Authorization": EAS_TOKEN,
}

stream = True
messages = [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "hello"},
]

req = {
    "messages": messages,
    "stream": stream,
    "temperature": 0.7,
    "top_p": 0.8,
    "max_tokens": 1024,
    "model": model,
}
response = requests.post(
    url,
    json=req,
    headers=headers,
    stream=stream,
)

if stream:
    for chunk in response.iter_lines(chunk_size=8192, decode_unicode=False):
        msg = chunk.decode("utf-8")
        # 次のコードは、サーバー送信イベント (SSE) 形式のストリーミング応答を処理します
        if msg.startswith("data:"):
            info = msg[6:]
            if info == "[DONE]":
                break
            else:
                resp = json.loads(info)
                if resp["choices"][0]["delta"].get("content") is not None:
                    print(resp["choices"][0]["delta"]["content"], end="", flush=True)
else:
    resp = json.loads(response.text)
    print(resp["choices"][0]["message"]["content"])

Gradio を使用したローカル Web UI の構築

Gradio は、機械学習モデル用の対話型インターフェイスを迅速に作成するための、ユーザーフレンドリーな Python ライブラリです。次の手順に従って、Gradio WebUI をローカルで実行します。

  1. コードのダウンロード

    GitHub リンク | OSS リンク

  2. 環境の準備

    Python 3.10 以降が必要です。依存関係をインストールします:pip install openai gradio

  3. Web アプリケーションの起動

    ターミナルで次のコマンドを実行します。<EAS_ENDPOINT><EAS_TOKEN> を、デプロイしたサービスのエンドポイントとトークンに置き換えます。

    python webui_client.py --eas_endpoint "<EAS_ENDPOINT>" --eas_token "<EAS_TOKEN>"
  4. アプリケーションが正常に起動すると、ローカル URL (通常は http://127.0.0.1:7860) が表示されます。ブラウザでこの URL を開いて UI にアクセスします。

サードパーティアプリケーションとの統合

EAS サービスは、OpenAI API をサポートするさまざまなクライアントや開発ツールと統合できます。主要な設定要素は、サービスのエンドポイント、トークン、およびモデル名です。

Dify

  1. OpenAI-API-compatible モデルプロバイダーのインストール

    右上のプロフィール写真をクリックし、[Settings] を選択します。左側のナビゲーションウィンドウで、[Model Providers] を選択します。[Model List][OpenAI-API-compatible] がない場合は、下のリストから見つけて [Install] をクリックします。

    image

  2. モデルの追加

    [OpenAI-API-compatible] カードの右下にある [Add Model] をクリックし、パラメーターを次のように設定します:

    • モデルタイプ:LLM を選択します。

    • Model Name:vLLM デプロイメントの場合、GET リクエストを /v1/models API に送信して名前を取得します。例えば、Qwen3-8B と入力します。

    • API Key:EAS サービスのトークンを入力します。

    • API endpoint URL:EAS サービスのインターネットエンドポイントを入力します。注:末尾に /v1 を追加してください。

  3. 使用方法

    1. Dify のメインページで、[Create Blank App] をクリックします。Chatflow タイプを選択し、アプリケーション名などの情報を入力してから、[Create] をクリックします。

    2. LLM ノードをクリックし、追加したモデルを選択して、コンテキストとプロンプトを設定します。image

    3. 右上の [Preview] をクリックし、質問を入力します。

      image

Chatbox

  1. Chatbox にアクセスします。お使いのデバイス用のバージョンをダウンロードしてインストールするか、[Launch Web App] をクリックして Web 版を使用します。この例では、M3 チップを搭載した macOS を使用します。

  2. モデルプロバイダーを追加します。[Settings] をクリックし、モデルプロバイダーを追加して、pai などの名前を入力し、[API Mode] に [OpenAI API Compatible] を選択します。

    image

  3. pai モデルプロバイダーを選択し、次のパラメーターを設定します。

    • API Key:EAS サービスのトークンを入力します。

    • API Host:EAS サービスのインターネットエンドポイントを入力します。注:末尾に /v1 を追加してください。

    • API Path:このフィールドは空のままにします。

    • Model:[Get] をクリックしてモデルを追加します。推論エンジンが BladeLLM で、API を介した取得をサポートしていない場合は、[New] をクリックしてモデル名を入力します。

    image

  4. 会話をテストします。[New Chat] をクリックします。テキスト入力ボックスの右下で、モデルサービスを選択します。

    image

Cherry Studio

課金

以下の項目が課金対象です。詳細については、「Elastic Algorithm Service (EAS) の課金」をご参照ください。

  • コンピューティング料金:これが主なコストです。EAS サービスを作成する際に、ニーズに応じて従量課金またはサブスクリプションリソースを選択できます。

  • ストレージ料金:カスタムモデルを使用する場合、モデルファイルは Object Storage Service (OSS) に保存されます。使用量に応じて OSS ストレージ料金が課金されます。

本番環境への適用

適切なモデルの選択

  1. アプリケーションシナリオの定義

    • 汎用的な対話:基盤モデルではなく、命令チューニング済みモデルを選択します。これにより、モデルが命令を理解し、それに従うことが保証されます。

    • コード生成Qwen3-Coder シリーズなどの特化型コードモデルを選択します。これらは通常、コード関連のタスクにおいて汎用モデルよりもはるかに優れたパフォーマンスを発揮します。

    • ドメイン固有のタスク:金融や法律など、タスクが高度に専門化されている場合は、そのドメイン向けにファインチューニングされたモデルを探すことを検討してください。また、汎用モデルを自分でファインチューニングすることもできます。

  2. パフォーマンスとコスト:一般的に、パラメーター数が多いモデルほど高性能です。しかし、デプロイに必要な計算リソースも多くなり、推論コストが増加します。検証には、7B モデルなどの比較的小さなモデルから始めることを推奨します。そのパフォーマンスがニーズを満たさない場合は、徐々により大きなモデルを試してください。

  3. 権威あるベンチマークの参照:OpenCompass や LMSys Chatbot Arena などの業界で認められたリーダーボードを参照できます。これらのリーダーボードは、推論、コーディング、数学など、複数のディメンションにわたるモデルの客観的な評価を提供します。これらはモデル選択のための貴重なガイダンスとなります。

適切な推論エンジンの選択

  • vLLM/SGLang:これらはオープンソースコミュニティにおける主流の選択肢です。幅広いモデルサポートと豊富なコミュニティドキュメントおよびサンプルを提供しているため、統合やトラブルシューティングが容易です。

  • BladeLLM:これは Alibaba Cloud PAI チームが開発した推論エンジンです。特定のモデル、特に Qwen シリーズに対して深く最適化されています。より高いパフォーマンスと低い GPU メモリ使用量を提供する可能性があります。

推論の最適化

  • LLM インテリジェントルーターのデプロイ:この機能は、トークンスループットや GPU メモリ使用量などのリアルタイムメトリックに基づいてリクエストを動的に分散します。これにより、推論インスタンス間の計算能力とメモリ割り当てのバランスが取られます。これは、複数の推論インスタンスをデプロイし、負荷の不均衡が予想されるシナリオに適しています。クラスターリソースの利用率とシステムの安定性を向上させます。

  • エキスパート並列化と PD 分離を使用した MoE モデルのデプロイ:Mixture-of-Experts (MoE) モデルに対して、このアプローチはエキスパート並列化 (EP) や Prefill-Decode (PD) 分離などの技術を使用して、推論スループットを向上させ、デプロイコストを削減します。

よくある質問

Q:サービスが保留中状態でスタックし、起動しない場合はどうすればよいですか?

次の手順で問題をトラブルシューティングします:

  1. インスタンスのステータスの確認: サービスリストページで、サービス名をクリックしてサービス詳細ページに移動します。Service Instance セクションでインスタンスのステータスを確認します。ステータスが「在庫切れ」と表示されている場合は、パブリックリソースグループのリソースが不足していることを示します。

  2. ソリューション (優先順):

    1. ソリューション 1:インスタンスタイプの変更。デプロイページに戻り、別の GPU モデルを選択します。

    2. 解決策 2: 専用リソースを使用します。Resource Type[EAS リソースグループ] に設定して、専用リソースを使用します。事前にリソースグループを作成する必要があります。

  3. 予防策

    1. エンタープライズユーザーは、パブリックリソースによる制限を避けるために、専用リソースグループを作成することを推奨します。

    2. ピーク時には、複数のリージョンでテストすることを推奨します。

Q:呼び出しエラー

  1. 呼び出しでエラー Unsupported Media Type: Only 'application/json' is allowed が返される

    リクエストヘッダーに Content-Type: application/json が含まれていることを確認してください。

  2. 呼び出しでエラー The model '<model_name>' does not exist. が返される

    vLLM 推論エンジンでは、model フィールドを正しく入力する必要があります。モデル名は、GET リクエストで /v1/models API を呼び出すことで取得できます。

詳細については、「EAS よくある質問」をご参照ください。