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

Platform For AI:PAI での Qwen3 モデルのデプロイ、ファインチューニング、評価

最終更新日:Aug 26, 2026

Qwen3 は、Alibaba Cloud の Qwen チームが開発した最新の大規模言語モデルシリーズです。2 つの MoE モデルと 6 つの Dense モデルが含まれており、推論、指示追従、エージェント、多言語機能が向上しています。PAI モデルギャラリーでは、Base バージョンと FP8 バージョンを含む全 22 モデルを提供しています。このトピックでは、Qwen3-235B-A22B を例に、モデルギャラリーでこのシリーズのモデルをデプロイ、呼び出し、ファインチューニング、評価する方法を説明します。

モデルのデプロイと呼び出し

モデルのデプロイ

この例では、SGLang を使用して Qwen3-235B-A22B モデルをデプロイします。

  1. モデルギャラリーページに移動します。

    1. PAI コンソールにログインし、左上隅でリージョンを選択します。リージョンを切り替えて、利用可能なコンピューティングリソースを検索します。

    2. 左側メニューで ワークスペース一覧 を選択し、対象のワークスペース名をクリックして開きます。

    3. 左側メニューで、クイックスタート > [Model Gallery] を選択します。

  2. モデルギャラリーページの右側にあるモデルリストで、[Qwen3-235B-A22B] モデルカードをクリックしてモデル詳細ページを開きます。

  3. 右上隅の デプロイメント をクリックします。以下のパラメータを設定し、その他はデフォルト設定のままにして、モデルを EAS 推論サービスプラットフォームにデプロイします。

    • デプロイメント方式 : 推論エンジン を SGLang に、デプロイテンプレート を Single-Node に設定します。

    • リソース情報 : リソースタイプ でパブリックリソースを選択します。システムが適切なインスタンスタイプを推奨します。各モデルの最小構成については、「付録:コンピューティングリソースとトークン上限」をご参照ください。

      重要

      利用可能なインスタンスタイプがない場合、そのリージョンのパブリックリソースは在庫切れです。以下のオプションをご検討ください:

      • リージョンの切り替え。中国 (ウランチャブ) では、より多くの Lingjun プリエンプティブルリソース (ml.gu7ef.8xlarge-gu100、ml.gu7xf.8xlarge-gu108、ml.gu8xf.8xlarge-gu108、ml.gu8tf.8.40xlarge) を提供しています。プリエンプティブルリソースは回収される可能性があるため、入札額は慎重に設定してください。

      • EAS リソースグループの使用。EAS 専用リソースのサブスクリプションページに移動して、EAS 専用リソースを購入します。

オンラインデバッグ

サービスの詳細 ページの下部で、オンラインデバッグをクリックします。以下の図は一例です。

image

API の呼び出し

  1. サービスエンドポイントとトークンを取得します。

    1. [Model Gallery] > タスク管理 > タスクのデプロイメント で、デプロイしたサービスのサービス名をクリックして、サービス詳細ページを開きます。

    2. エンドポイント情報の表示 をクリックして、インターネットエンドポイントとトークンを取得します。

      image

  2. SGLang でデプロイされたサービスの /v1/chat/completions チャット API への呼び出し例。

    curl -X POST \
        -H "Content-Type: application/json" \
        -H "Authorization: <EAS_TOKEN>" \
        -d '{
            "model": "<model_name, obtained from the /v1/models API>",
            "messages": [
            {
                "role": "system",
                "content": "You are a helpful assistant."
            },
            {
                "role": "user",
                "content": "hello!"
            }
            ]
        }' \
        <EAS_ENDPOINT>/v1/chat/completions
    from openai import OpenAI
    
    ##### API 設定 #####
    # <EAS_ENDPOINT> をサービスエンドポイントに、<EAS_TOKEN> をサービス トークンに置き換えます。
    openai_api_key = "<EAS_TOKEN>"
    openai_api_base = "<EAS_ENDPOINT>/v1"
    
    client = OpenAI(
        api_key=openai_api_key,
        base_url=openai_api_base,
    )
    
    models = client.models.list()
    model = models.data[0].id
    print(model)
    
    stream = True
    chat_completion = client.chat.completions.create(
        messages=[
            {"role": "user", "content": "Hello, could you please introduce yourself"}
        ],
        model=model,
        max_completion_tokens=2048,
        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)

    <EAS_ENDPOINT> をサービスエンドポイントに、<EAS_TOKEN> をサービス トークンに置き換えます。

呼び出し方法はデプロイ方法によって異なります。その他の呼び出し方法については、「デプロイされた LLM サービスの API の呼び出し」をご参照ください。

サードパーティとの統合

Chatbox、Dify、または Cherry Studio に接続するには、「サードパーティクライアントとの統合」をご参照ください。

高度な設定

サービスの JSON 設定を編集することで、トークン上限の調整 や ツール呼び出し (関数呼び出し) の有効化などの高度な機能を有効にできます。

手順:デプロイページで、対応する JSON 設定 セクションの JSON を編集します。サービスがすでにデプロイされている場合は、サービスを更新してデプロイページにアクセスします。

image

トークン上限の変更

Qwen3 モデルは、標準で 32,768 トークンをサポートします。RoPE スケーリングによってこれを 131,072 まで拡張できますが、パフォーマンスがわずかに低下する可能性があります。サービス設定 JSON の containers.script フィールドを変更します:

  • vLLM:

    vllm serve ... --rope-scaling '{"rope_type":"yarn","factor":4.0,"original_max_position_embeddings":32768}' --max-model-len 131072
  • SGLang:

    python -m sglang.launch_server ... --json-model-override-args '{"rope_scaling":{"rope_type":"yarn","factor":4.0,"original_max_position_embeddings":32768}}'

ツール呼び出しの解析

vLLM と SGLang は、モデルによって生成されたツール呼び出しのコンテンツを構造化されたメッセージにパースできます。サービス設定 JSON の containers.script フィールドを変更します:

  • vLLM:

    vllm serve ... --enable-auto-tool-choice --tool-call-parser hermes
  • SGLang:

    python -m sglang.launch_server ... --tool-call-parser qwen25

思考モードの制御

Qwen3 はデフォルトで思考モードを使用します。ハードスイッチは思考を完全に無効にし、ソフトスイッチは、モデルが思考するかどうかの指示に従うようにします。

ソフトスイッチ / no_think の使用

次の例はリクエストボディを示しています:

{
  "model": "<MODEL_NAME>",
  "messages": [
    {
      "role": "user",
      "content": "/no_think Hello!"
    }
  ],
  "max_tokens": 1024
}

ハードスイッチ

  • API パラメーターによる制御 (vLLM および SGLang):API コールに chat_template_kwargs パラメーターを追加します。例:

    curl -X POST \
        -H "Content-Type: application/json" \
        -H "Authorization: <EAS_TOKEN>" \
        -d '{
            "model": "<MODEL_NAME>",
            "messages": [
                {
                    "role": "user",
                    "content": "Give me a short introduction to large language models."
                }
            ],
            "temperature": 0.7,
            "top_p": 0.8,
            "max_tokens": 8192,
            "presence_penalty": 1.5,
            "chat_template_kwargs": {"enable_thinking": false}
        }' \
        <EAS_ENDPOINT>/v1/chat/completions
    from openai import OpenAI
    # <EAS_ENDPOINT> をサービスエンドポイントに、<EAS_TOKEN> をサービス トークンに置き換えます。
    openai_api_key = "<EAS_TOKEN>"
    openai_api_base = "<EAS_ENDPOINT>/v1"
    
    client = OpenAI(
        api_key=openai_api_key,
        base_url=openai_api_base,
    )
    
    chat_response = client.chat.completions.create(
        model="<MODEL_NAME>",
        messages=[
            {"role": "user", "content": "Give me a short introduction to large language models."},
        ],
        temperature=0.7,
        top_p=0.8,
        presence_penalty=1.5,
        extra_body={"chat_template_kwargs": {"enable_thinking": False}},
    )
    print("Chat response:", chat_response)

    <EAS_ENDPOINT> をサービスエンドポイントに、<EAS_TOKEN> をトークンに、<MODEL_NAME> を /v1/models API から取得したモデル名に置き換えます。

  • サービス設定の変更による無効化 (BladeLLM): 起動時にモデルが思考コンテンツを生成しないようにするチャットテンプレートを使用します。

    • Model Gallery のモデルのページで、BladeLLM の思考モードを無効にする方法が提供されているかどうかを確認します。例えば、Qwen3-8B では、サービス設定 JSON の containers.script フィールドを変更して思考モードを無効にします:

      blade_llm_server ... --chat_template /model_dir/no_thinking.jinja
    • no_thinking.jinja のような独自のチャットテンプレートを記述し、OSS からマウントして、サービス設定 JSON の containers.script フィールドを更新します。

      image

思考コンテンツの解析

think コンテンツを個別に出力するには、サービス設定 JSON の containers.script フィールドを変更します:

  • vLLM:

    vllm serve ... --enable-reasoning --reasoning-parser qwen3
  • SGLang:

    python -m sglang.launch_server ... --reasoning-parser qwen3

モデルのファインチューニング

  • Qwen3-32B、14B、8B、4B、1.7B、0.6B は、SFT (フルパラメータファインチューニング、LoRA、QLoRA ファインチューニング) と GRPO トレーニングをサポートしています。

  • ワンクリックでトレーニングタスクを送信することで、企業のビジネスシナリオに特化した専用モデルをトレーニングします。

image

image

モデルの評価

モデル評価の詳細な手順については、「モデル評価」と「LLM 評価のベストプラクティス」をご参照ください。

付録:コンピューティングリソースとトークン上限

次の表は、各 Qwen3 モデルの最小デプロイ構成と、各インスタンスタイプが異なる推論フレームワークでサポートする最大トークン数を示しています。

説明

FP8 モデルの中で、元のモデルより少ないコンピューティングパワーしか必要としないのは Qwen3-235B-A22B のみです。他の FP8 モデルは、非 FP8 バージョンと同じコンピューティングパワーを必要とするため、表には記載されていません。たとえば、Qwen3-30B-A3B-FP8 が必要とするコンピューティングパワーについては、Qwen3-30B-A3B をご参照ください。

モデル

最大トークン数 (入力 + 出力)

最小構成

SGLang 高速化デプロイ

vLLM 高速化デプロイ

Qwen3-235B-A22B

32,768 (RoPE スケーリング使用時:131,072)

32,768 (RoPE スケーリング使用時:131,072)

8 × GPU H / GU120

(8 × 96 GB VARM)

Qwen3-235B-A22B-FP8

32,768 (RoPE スケーリング使用時:131,072)

32,768 (RoPE スケーリング使用時:131,072)

4 × GPU H / GU120

(4 × 96 GB VARM)

Qwen3-30B-A3B

Qwen3-30B-A3B-Base

Qwen3-32B

32,768 (RoPE スケーリング使用時:131,072)

32,768 (RoPE スケーリング使用時:131,072)

1 × GPU H / GU120

(96 GB VARM)

Qwen3-14B

Qwen3-14B-Base

32,768 (RoPE スケーリング使用時:131,072)

32,768 (RoPE スケーリング使用時:131,072)

1 × GPU L / GU60

(48 GB VARM)

Qwen3-8B

Qwen3-4B

Qwen3-1.7B

Qwen3-0.6B

Qwen3-8B-Base

Qwen3-4B-Base

Qwen3-1.7B-Base

Qwen3-0.6B-Base

32,768 (RoPE スケーリング使用時:131,072)

32,768 (RoPE スケーリング使用時:131,072)

1 × A10 / GU30

(24 GB VARM)

重要

RoPE スケーリングを使用する 8B モデルには 48 GB の VARM が必要です。

よくある質問

Q: PAI にデプロイされたモデルサービスは、複数のリクエストにまたがってコンテキストを保持するセッションをサポートしていますか?

いいえ。PAI にデプロイされたモデルサービスの API はステートレスです。各呼び出しは完全に独立しており、サーバーはリクエスト間でコンテキストやセッション状態を保持しません。

マルチターン対話を実装するには、クライアントが会話履歴を保存し、各リクエストに添付する必要があります。リクエストの例については、「マルチターン対話の実装方法」をご参照ください。