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

Platform For AI:DeepSeek-V4 と DeepSeek-R1 のデプロイ

最終更新日:Jun 23, 2026

DeepSeek モデルを手動でデプロイするには、コンピューティング環境の構成、モデルのロード、推論の最適化など、複雑なタスクが伴います。PAI モデルギャラリーは、ワンクリックデプロイ機能によってこのプロセスを簡素化します。わずか数ステップで、OpenAI API と互換性のあるモデルサービスを作成し、アプリケーションに統合できます。

ソリューションアーキテクチャ

コアコンポーネント

このソリューションは PAI (Platform for AI) を基盤としており、以下のコアコンポーネントで構成されています。

  • モデルギャラリー:モデルのディストリビューションとデプロイのエントリポイントとして機能します。事前構成済みの DeepSeek モデルと、それに対応するデプロイ構成を提供します。

  • Elastic Algorithm Service (EAS):モデルのデプロイと推論をホストするコアサービスです。GPU などの基盤となるコンピューティングリソースを自動的に管理し、モデルサービスインスタンスを起動します。

  • 推論アクセラレーションエンジン (SGLang/vLLM/BladeLLM):モデルの推論パフォーマンスを最適化します。

    • SGLang/vLLM:OpenAI API と完全に互換性のあるインターフェイスを提供し、既存アプリケーションの移行を簡素化します。

    • BladeLLM:特定のシナリオで優れた推論パフォーマンスを提供する、独自開発のパフォーマンス専有型推論フレームワークです。

  • API ゲートウェイ:モデルサービスにアクセスするためのセキュアなチャネルを提供します。サービスエンドポイントと認証トークンを使用してモデルサービスを呼び出すことをサポートします。

デプロイ方法

大規模モデル向けに、モデルギャラリーはシングルノードデプロイに加えて、分散デプロイEP+PD 分離などのワンクリックデプロイソリューションも提供しています。

例えば、DeepSeek-V4-Pro-FP8 と DeepSeek-V4-Flash-FP8 は、どちらも EP+PD 分離方式でデプロイできます。

クイックデプロイと検証

ステップ 1:モデルサービスのデプロイ

  1. PAI コンソールにログインし、左上隅で対象のリージョンを選択します。左側のナビゲーションウィンドウからWorkspacesに移動し、対象のワークスペースを選択します。

  2. ワークスペースで、QuickStart > [モデルギャラリー] に移動します。

  3. モデルリストで、DeepSeek-R1-Distill-Qwen-7B などの対象モデルを検索して選択し、モデル詳細ページを開きます。

  4. 右上隅のDeployをクリックして、以下のパラメーターを設定します。

    • 推論エンジン:SGLang または vLLM を推奨します。

    • デプロイリソース:パブリックリソースまたは専用リソースを選択し、モデルの要件に基づいて適切な GPU 仕様を選択します。

      • デフォルトではパブリックリソースが使用され、推奨仕様が提供されます。利用可能な仕様がない場合は、リージョンを切り替えてみてください。

        重要

        パブリックリソースを使用してデプロイする場合、サービスインスタンスがリソースをプロビジョニングするとすぐに課金が開始され、呼び出しがない場合でも時間単位で料金が発生します。テスト後は速やかにサービスを停止してください。

      • [リソースクォータ] を選択した場合、インスタンスタイプに対応する推論エンジンとデプロイテンプレートを必ず選択してください。例えば、GP7V インスタンスタイプを使用する場合、[推論エンジン][SGLang] を選択し、[デプロイテンプレート] には [Single-Node-GP7V] を選択する必要があります。

    [デプロイテンプレート] はデフォルトで [Single-Node] に設定されています。推奨される GPU 仕様の例は ecs.gn7i-c16g1.4xlarge (16 vCPU、60 GiB、1 × NVIDIA A10) で、料金は約 11.1 人民元/時間です。

  5. すべての設定が正しいことを確認した後、[デプロイ] をクリックします。システムがサービスの作成を開始します。

    説明

    フルバージョンの DeepSeek-R1 のような大規模モデルの場合、モデルのロードプロセスに 20〜30 分かかることがあります。

  6. [モデルギャラリー] > Job Management > Deployment Jobs ページでデプロイメントジョブのステータスを確認できます。 サービス名をクリックすると、サービス詳細ページが開きます。 また、右上隅の More Information をクリックして、EAS のモデルサービス詳細ページを表示することもできます。

    サービス詳細ページで、[ステータス] フィールドの隣にある [デプロイイベントの表示] をクリックすると、詳細を確認できます。サービスエンドポイントとトークンを取得するには、[呼び出し情報] セクションの [呼び出し情報の表示] をクリックします。

ステップ 2:オンラインデバッグ

[モデルギャラリー] > Job Management > Deployment Jobs ページで、デプロイされたサービスの名前をクリックし、Online Debugging タブに切り替えます。このタブは Conversation DebuggingAPI Debugging の両方をサポートしています。

説明

DeepSeek-R1 モデルシリーズの公式な使用推奨事項は以下の通りです。

  • temperature は 0.5 から 0.7 の間の値に設定します。繰り返しや支離滅裂な出力を防ぐため、推奨値は 0.6 です。

  • システムプロンプトを追加せず、すべての命令をユーザープロンプトに配置してください。

  • 数学関連の質問については、プロンプトに「Please reason step by step and put the final answer in a \boxed{}.」を含めてください。

API デバッグページのみが利用可能な場合、以下の手順は大規模言語モデル (LLM) サービスのチャット API を使用した例です。

  1. リクエストパスの確認: <EAS_ENDPOINT>/v1/chat/completions。このパスの <EAS_ENDPOINT> はサービスエンドポイントで、通常は自動入力されます。

    SGLang/vLLM でデプロイされたサービスの場合、<EAS_ENDPOINT>/openapi.json からさらに多くのサポートされている API を取得できます。
  2. リクエストボディの構築

    プロンプトが「3 + 5 は何ですか?」の場合、リクエストボディは次のようにフォーマットされます。

    model パラメーターの値は、モデルリスト API <EAS_ENDPOINT>/v1/models から取得したモデル名です。この例では DeepSeek-R1-Distill-Qwen-7B を使用します。

    {
        "model": "DeepSeek-R1-Distill-Qwen-7B",
        "messages": [
            {
                "role": "user",
                "content": "3 + 5 は何ですか?"
            }
        ]
    }
  3. リクエストの送信。

    [オンラインデバッグ] タブで、HTTP メソッドとして [POST] を選択し、URL フィールドにサービスエンドポイント (例:http://<service_address>/v1/chat/completions) を入力します。[Body] セクションで [raw] を選択し、model (例:DeepSeek-R1-Distill-Qwen-7B) や messages フィールドを含む JSON 形式のリクエストボディを入力します。[リクエストの送信] をクリックします。右側の [レスポンス] エリアにステータスコード 200 が表示され、モデルの応答が JSON 形式でボディに表示されます。

BladeLLM API リクエストのサンプル

重要

BladeLLM アクセラレーションデプロイ方式を使用する場合、max_tokens パラメーターを指定しないと、出力はデフォルトで 16 トークンに切り捨てられます。必要に応じて max_tokens リクエストパラメーターを調整してください。

{
    "messages": [
        {
            "role": "user",
            "content": "3 + 5 は何ですか?"
        }
    ],
    "max_tokens": 2000
}

API 呼び出し

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

    1. [モデルギャラリー] > Job Management > Deployment Jobs ページで、デプロイされたサービスの名前をクリックしてサービス詳細ページに移動します。

    2. View Call Information をクリックして、サービスエンドポイントとトークンを取得します。

  2. 以下の例は、チャット API 呼び出しを行う方法を示しています。

    <EAS_ENDPOINT> をサービスエンドポイントに、<EAS_TOKEN> をサービストークンに置き換えてください。

    OpenAI SDK

    注:

    • エンドポイントの末尾に /v1 を追加してください。

    • BladeLLM アクセラレーションデプロイは client.models.list() をサポートしていません。回避策として、model パラメーターを空の文字列 ("") に設定してください。

    SGLang/vLLM
    from openai import OpenAI
    # 1. クライアントの設定
    # <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,
    )
    # 2. モデル名の取得
    try:
        model = client.models.list().data[0].id
        print(model)
    except Exception as e:
        print(f"モデルリストの取得に失敗しました。エンドポイントとトークンを確認してください。エラー: {e}")
    # 3. リクエストの構築と送信
    stream = True
    chat_completion = client.chat.completions.create(
        messages=[
            {"role": "user", "content": "こんにちは、自己紹介をしてください。"}
        ],
        model=model,
        max_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)
    BladeLLM
    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,
    )
    # BladeLLM アクセラレーションデプロイは現在、client.models.list() を使用してモデル名を取得することをサポートしていません。互換性のために model の値を "" に設定できます。
    model=""
    stream = True
    chat_completion = client.chat.completions.create(
        messages=[
                  {"role": "user", "content": "こんにちは、自己紹介をしてください。"}
        ],
         model=model,
         max_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)

    HTTP

    SGLang/vLLM

    モデルリスト API <EAS_ENDPOINT>/v1/models から取得したモデル名で <model_name> を置き換えてください。

    curl -X POST \
        -H "Content-Type: application/json" \
        -H "Authorization: <EAS_TOKEN>" \
        -d '{
            "model": "<model_name>",
            "messages": [
            {
                "role": "user",
                "content": "hello!"
            }
            ]
        }' \
        <EAS_ENDPOINT>/v1/chat/completions
    
    import json
    import requests
    # <EAS_ENDPOINT> をデプロイされたサービスのエンドポイントに、<EAS_TOKEN> をデプロイされたサービスのトークンに置き換えます。
    EAS_ENDPOINT = "<EAS_ENDPOINT>"
    EAS_TOKEN = "<EAS_TOKEN>"
    url = f"{EAS_ENDPOINT}/v1/chat/completions"
    headers = {
        "Content-Type": "application/json",
        "Authorization": EAS_TOKEN,
    }
    # <model_name> をモデルリスト API <EAS_ENDPOINT>/v1/models から取得したモデル名に置き換えます。
    model = "<model_name>"
    stream = True
    messages = [
        {"role": "user", "content": "こんにちは、自己紹介をしてください。"},
    ]
    req = {
        "messages": messages,
        "stream": stream,
        "temperature": 0.6,
        "top_p": 0.5,
        "top_k": 10,
        "max_tokens": 300,
        "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")
            if msg.startswith("data"):
                info = msg[6:]
                if info == "[DONE]":
                    break
                else:
                    resp = json.loads(info)
                    print(resp["choices"][0]["delta"]["content"], end="", flush=True)
    else:
        resp = json.loads(response.text)
        print(resp["choices"][0]["message"]["content"])
    
    BladeLLM
    curl -X POST \
        -H "Content-Type: application/json" \
        -H "Authorization: <EAS_TOKEN>" \
        -d '{
            "messages": [
            {
                "role": "user",
                "content": "hello!"
            }
            ]
        }' \
        <EAS_ENDPOINT>/v1/chat/completions
    
    import json
    import requests
    # <EAS_ENDPOINT> をデプロイされたサービスのエンドポイントに、<EAS_TOKEN> をデプロイされたサービスのトークンに置き換えます。
    EAS_ENDPOINT = "<EAS_ENDPOINT>"
    EAS_TOKEN = "<EAS_TOKEN>"
    url = f"{EAS_ENDPOINT}/v1/chat/completions"
    headers = {
        "Content-Type": "application/json",
        "Authorization": EAS_TOKEN,
    }
    stream = True
    messages = [
        {"role": "user", "content": "こんにちは、自己紹介をしてください。"},
    ]
    # BladeLLM を使用してアクセラレーションデプロイを行う場合、max_tokens パラメーターを指定しないと、出力はデフォルトで 16 トークンに切り捨てられます。必要に応じて max_tokens リクエストパラメーターを調整することを推奨します。
    req = {
        "messages": messages,
        "stream": stream,
        "temperature": 0.6,
        "top_p": 0.5,
        "top_k": 10,
        "max_tokens": 300,
    }
    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")
            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"])
  3. モデルやデプロイフレームワークによって動作が異なるため、モデルギャラリーのモデル紹介ページにある詳細な API 呼び出し手順を参照してください。

    例えば、モデルギャラリーの DeepSeek-R1-Distill-Qwen-7B モデルの紹介ページには、BladeLLM アクセラレーションデプロイのリソース要件が記載されています。このデプロイには 24 GB の GPU メモリが必要で、ecs.gn7 以降のインスタンスファミリーのみをサポートします。また、このページには、モデルが OpenAI の v1/completions および v1/chat/completions エンドポイントと互換性があり、curl コマンドと Python スクリプトを使用した呼び出し例が提供されていることも記載されています。

サードパーティ統合

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

ローカル Web UI

Gradio を使用したローカル Web UI の構築」をご参照ください。

リソースのクリーンアップ

パブリックリソースを使用してデプロイされたインスタンスの場合、課金はリソースがプロビジョニングされた時点から使用期間に基づいて計算されます。1 時間未満の使用量は分単位で課金されます。

  1. [ジョブ管理] > [デプロイジョブ] ページに移動します。

  2. 停止したいサービスを見つけ、[操作] 列の [停止] または [削除] をクリックします。

    • 停止:サービスインスタンスが解放され、課金が停止します。サービス構成は保持され、後でサービスを再起動できます。

    • 削除:サービス構成とインスタンスの両方が完全に削除されます。

モデルとリソースの選択

モデルの選択によって、必要なコンピューティングリソースとデプロイコストが決まります。DeepSeek モデルには「フルバージョン」と「蒸留版」のバリアントがあり、リソース要件が大きく異なります。

  • 開発とテストDeepSeek-R1-Distill-Qwen-7B などの蒸留版モデルの使用を推奨します。これらのモデルはリソースフットプリントが小さく (通常は 24 GB の GPU メモリを持つ単一の GPU)、迅速にデプロイでき、コスト効率が高いため、迅速な機能検証に最適です。

  • 本番環境:パフォーマンスとコストのバランスに基づいて評価します。DeepSeek-R1-Distill-Qwen-32B モデルは、効果とコストのバランスが取れています。より高いモデルパフォーマンスが必要な場合は、フルバージョンモデルを選択してください。これには、それぞれ 96 GB の GPU メモリを持つ 8 つの GPU など、複数のハイエンド GPU が必要となり、コストが大幅に増加します。

以下の表は、異なるモデルバージョンの最小構成と、異なるインスタンスタイプおよび推論エンジンでサポートされる最大トークン数を示しています。

フルバージョンモデル

モデル

デプロイ方法

最大トークン数

最小構成

SGLang

vLLM

DeepSeek-V4-Pro

シングルノード/分散

1M

1M

シングルノード 8 × H20-3e (8 × 141 GB GPU メモリ)

DeepSeek-V4-Flash

シングルノード

1M

1M

シングルノード 8 × H20-3e (8 × 141 GB GPU メモリ)

DeepSeek-V4-Pro-FP8

シングルノード/PD 分離

1M

/

シングルノード 8 × H20-3e (8 × 141 GB GPU メモリ)

DeepSeek-V4-Flash-FP8

シングルノード/PD 分離

1M

/

シングルノード 4 × H20-3e (4 × 141 GB GPU メモリ)

DeepSeek-V3

シングルノード - NVIDIA GPU

56,000

65,536

シングルノード 8 × GU120 (8 × 96 GB GPU メモリ)

シングルノード - GP7V インスタンスタイプ

56,000

16,384

分散 - PAI Lingjun AI 計算サービス

163,840

163,840

DeepSeek-R1

シングルノード - NVIDIA GPU

56,000

65,536

シングルノード 8 × GU120 (8 × 96 GB GPU メモリ)

シングルノード - GP7V インスタンスタイプ

56,000

16,384

分散 - PAI Lingjun AI 計算サービス

163,840

163,840

シングルノードデプロイのインスタンスタイプに関する注意:

  • NVIDIA GPU

    • ml.gu8v.c192m1024.8-gu120ecs.gn8v-8x.48xlarge はパブリックリソースとして利用可能ですが、在庫が限られている場合があります。

    • ecs.ebmgn8v.48xlarge はパブリックリソースとして使用できません。専用 EAS リソースを購入する必要があります。

  • GP7V インスタンスタイプ:ml.gp7vf.16.40xlarge はパブリックリソースであり、プリエンプティブルインスタンスとしてのみ使用できます。NVIDIA GPU リソースが不足している場合は、中国 (ウランチャブ) リージョンに切り替えて GP7V インスタンスタイプリソースを探してください。デプロイ時に VPC を設定する必要があります。

分散デプロイのインスタンスタイプに関する注意 (高いパフォーマンスが必要な場合に推奨):

分散デプロイは高速ネットワークに依存しており、PAI Lingjun AI 計算サービスを使用する必要があります。このサービスは、パフォーマンス専有型で弾力性のあるヘテロジニアスコンピューティング能力を提供します。また、デプロイ中に VPC を設定する必要があります。PAI Lingjun AI 計算サービスを使用するには、リージョンを中国 (ウランチャブ) に切り替えてください。

  • Lingjun パブリックリソース

    • ml.gu7xf.8xlarge-gu108:シングルインスタンスデプロイには 4 台のマシンが必要で、プリエンプティブルインスタンスとしてのみ使用できます。

    • GP7V インスタンスタイプ:シングルインスタンスデプロイには 2 台のマシンが必要です。

  • Lingjun プリペイドリソース:これらのリソースを使用するには、ホワイトリストに追加される必要があります。営業担当者にご連絡いただくか、チケットを起票してご相談ください。

蒸留版モデル

モデル

最大トークン数

最小構成

SGLang

vLLM

BladeLLM

DeepSeek-R1-Distill-Qwen-1.5B

131,072

131,072

131,072

1 × A10 GPU (24 GB GPU メモリ)

DeepSeek-R1-Distill-Qwen-7B

131,072

32,768

131,072

1 × A10 GPU (24 GB GPU メモリ)

DeepSeek-R1-Distill-Llama-8B

131,072

32,768

131,072

1 × A10 GPU (24 GB GPU メモリ)

DeepSeek-R1-Distill-Qwen-14B

131,072

32,768

131,072

1 × GPU L (48 GB GPU メモリ)

DeepSeek-R1-Distill-Qwen-32B

131,072

32,768

131,072

2 × GPU L (2 × 48 GB GPU メモリ)

DeepSeek-R1-Distill-Llama-70B

131,072

32,768

131,072

2 × GU120 (2 × 96 GB GPU メモリ)

PAI 最適化済みモデル

モデルギャラリーは、以下の PAI 最適化済み DeepSeek 関連モデルのワンクリックデプロイを提供します。

  • DeepSeek-R1-PAI-optimized

  • DeepSeek-R1-0528-PAI-optimized

  • DeepSeek-V3-0324-PAI-optimized

コストとリスク

コストの内訳

パブリックリソースを使用するサービスの場合、課金はインスタンスがプロビジョニングされてから停止または削除されるまで、分単位で計算されます。請求は時間単位で決済されます。サービスがアイドル状態でも料金は発生します。サービスを停止すると課金が停止します。

詳細については、「Elastic Algorithm Service (EAS) の課金」をご参照ください。

コスト管理

  • 迅速なクリーンアップ:開発とテストの後、すぐにサービスを停止または削除することで、コストを効果的に管理できます。

  • 適切なモデルの選択:非本番環境では、低コストの蒸留版モデルを優先してください。

  • プリエンプティブルインスタンスの使用:非本番タスクの場合、デプロイ時にプリエンプティブルモードを有効にできます。ただし、入札が成功するには特定の条件を満たす必要があり、リソースの安定性にリスクがあることに注意してください。

  • 長期利用割引:長期間実行される本番サービスの場合、節約プランやプリペイドリソースを購入することでコストを削減できます。

主なリスク

  • 予期せぬコスト:サービスの停止を忘れると、継続的に課金が発生します。使用後は必ずすぐにリソースをクリーンアップしてください。

  • BladeLLM の出力切り捨て:BladeLLM エンジンを使用する場合、API リクエストで max_tokens パラメーターが指定されていないと、出力が 16 トークンに切り捨てられ、機能が期待どおりに動作しない可能性があります。

  • 不適切な API の使用

    • DeepSeek-R1 シリーズのモデルを呼び出す際に、messagessystem プロンプトを含めると、予期せぬ動作を引き起こす可能性があります。

    • API リクエスト URL は、/v1/chat/completions のようなパスで終わる必要があります。そうでない場合、404 エラーが返されます。

  • リソース在庫:特定のリージョンにおけるハイエンド GPU リソースの在庫が限られていると、デプロイの失敗や長い待機時間につながる可能性があります。別のリージョンに切り替えてみてください。

モデルデプロイに関するよくある質問

推論エンジンの選択

  • 推奨:SGLang。高いパフォーマンスを提供しつつ、OpenAI API 標準と完全に互換性があるため、主流のアプリケーションエコシステムに最適です。ほとんどのシナリオで、vLLM よりも長い最大コンテキスト長をサポートします。

  • 代替:vLLM。業界で人気のあるフレームワークとして、優れた API 互換性も提供します。

  • 特定のシナリオ:BladeLLM。より高い推論パフォーマンスが必要で、client.models.list() のサポートがない、max_tokens パラメーターのデフォルトの切り捨て動作など、OpenAI 標準との API の違いを受け入れられる場合にのみ、Alibaba Cloud PAI が独自に開発したパフォーマンス専有型推論フレームワークである BladeLLM を使用してください。

サービスが待機状態でスタックする

考えられる理由:

  • 現在のリージョンのマシンリソースが不足している。

  • モデルが大きく、モデルのロードに時間がかかる。DeepSeek-R1 や DeepSeek-V3 などの大規模モデルの場合、20〜30 分かかることがあります。

しばらく待つことができます。長時間経ってもサービスが起動しない場合は、以下の手順を試すことを推奨します。

  1. Job Management > Deployment Jobs ページに移動し、デプロイメントジョブの詳細を表示します。 右上隅で More > More Information をクリックして PAI-EAS モデルサービスの詳細ページに移動し、サービスインスタンスのステータスを確認します。

    [インスタンスステータス] 列に [在庫不足] と表示されている場合、リソース不足のためにインスタンスをスケジュールできないことを意味します。

  2. 現在のサービスを停止し、コンソールの左上で別のリージョンに切り替えてサービスを再デプロイします。

    説明

    DeepSeek-R1 や DeepSeek-V3 のような非常に大きなパラメーターを持つモデルの場合、サービスを起動するには 8 つの GPU が必要です (リソース在庫は逼迫しています)。DeepSeek-R1-Distill-Qwen-7B のような、より小さな蒸留モデルをデプロイすることを選択できます (リソース在庫は豊富です)。

モデル呼び出しに関するよくある質問

API 呼び出しで 404 が返される

URL に v1/chat/completions のような OpenAI API のサフィックスが追加されているか確認してください。詳細については、モデルの紹介ページにある API 呼び出し手順をご参照ください。

vLLM アクセラレーションデプロイを使用している場合、会話 API のリクエストボディの model パラメーターが正しいモデル名に設定されているか確認してください。モデル名は v1/models から取得できます。

リクエストタイムアウト

デフォルトのゲートウェイリクエストタイムアウトは 180 秒です。これを延長するには、専用ゲートウェイを設定し、チケットを起票してタイムアウトを調整してください。最大は 600 秒です。

「Web 検索」機能がない

「Web 検索」機能は、モデルサービスをデプロイするだけでは有効になりません。サービスの上に別途 AI アプリケーション (エージェント) を構築する必要があります。

モデルが思考をスキップする

DeepSeek-R1 モデルが思考プロセスをスキップすることがある場合、DeepSeek から更新された、思考を強制するチャットテンプレートを使用してください。

  1. 起動コマンドの変更

    サービス構成で、JSON 構成を編集します。containers-script フィールドを変更して --chat-template /model_dir/template_force_thinking.jinja を追加します。これは --served-model-name DeepSeek-R1 の後に追加できます。

    デプロイ済みのサービスの場合、[モデルギャラリー] > Job Management > Deployment Jobs に移動してデプロイ済みのサービス名をクリックした後、右上隅の Update service をクリックすると構成ページに移動します。

  2. リクエストボディの変更。各リクエストで、メッセージの最後に {"role": "assistant", "content": "<think>\n"} を追加します。

思考モードの無効化

DeepSeek-R1 シリーズのモデルは、思考プロセスの無効化をサポートしていません。

マルチターン対話

モデルサービスは会話履歴を保存しません。クライアントアプリケーションが履歴を保存し、後続のリクエストに含める必要があります。以下の例は、SGLang を使用してデプロイされたサービスとのマルチターン対話を示しています。

curl -X POST \
    -H "Content-Type: application/json" \
    -H "Authorization: <EAS_TOKEN>" \
    -d '{
        "model": "<model_name>",
        "messages": [
         {
            "role": "user", 
            "content": "こんにちは"
        },
        {
            "role": "assistant",
            "content": "こんにちは!お会いできて嬉しいです。何かお手伝いできることはありますか?"
        },
        {
            "role": "user",
            "content": "私の前の質問は何でしたか?"
        }
        ]
    }' \
    <EAS_ENDPOINT>/v1/chat/completions

関連ドキュメント