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

Platform For AI:LLM インテリジェントルーターのデプロイによる推論効率の向上

最終更新日:Jun 11, 2026

LLM ワークロードは、可変のリクエスト長、予測不能なトークン生成、変動する GPU 使用率といった固有の課題に直面します。従来のロードバランサーは、バックエンドの負荷を把握することなくトラフィックを分散するため、インスタンスの負荷が不均一になり、スループットが低下します。EAS は、インテリジェントスケジューリング視覚的な操作 を 1 つのサービスに統合した LLM インテリジェントルーターにより、この課題を解決します。リアルタイムの LLM メトリクスに基づいてコンピュートと GPU メモリを動的に調整し、負荷時でも高いスループットを維持します。さらに、ライブモニタリング、ホット構成更新、アイデンティティの隔離、ユーザーごとの API キー管理を可能にする、組み込みの WebUI ワークベンチを提供します。

仕組み

基本概念

LLM インテリジェントルーターサービスは、2 つのコアコンポーネントで構成されています。

  • LLM ゲートウェイ:トラフィックの入口とリクエスト処理。 ユーザーリクエストを受信し、LLM スケジューラ からの決定に基づいて、ターゲットの推論インスタンスに転送します。

    • HTTP (HTTP_SSE) および WebSocket プロトコルをサポートします。

    • デフォルトで Anthropic API プロトコル変換が有効になっています。Anthropic 仕様でフォーマットされたリクエストは、OpenAI 互換のフォーマットに自動的に変換されます。これにより、コードを変更することなく、OpenAI API 標準に準拠したモデルサービスで Claude Code のようなツールを使用できます。詳細については、「ルーターでの Claude Code の使用」をご参照ください。

  • LLM スケジューラ:スケジューリングエンジン。 設定されたスケジューリングポリシー (例:プレフィックスキャッシュルーティング) に基づき、各リクエストに最適なターゲットインスタンスを選択します。

リクエストフロー

リクエストフローは以下の通りです。

  1. リクエストの受信。 ユーザーリクエストは LLM ゲートウェイ に到達します。すべてのバックエンド推論インスタンスが高負荷の場合、ゲートウェイはリクエストをキューに入れます。

  2. インテリジェントスケジューリング。 LLM ゲートウェイ は、スケジューリングリクエストを LLM スケジューラ に送信します。LLM スケジューラ は、設定されたポリシーと各インスタンスからのリアルタイムメトリクスに基づいて、最適なインスタンスを選択します。

  3. リクエストの転送。 スケジューリング結果を受信した後、LLM ゲートウェイ はユーザーリクエストを選択されたインスタンスに直接転送します。

image

フェールオーバーメカニズム

このサービスには、可用性を維持するために、複数階層のフォールトトレランスが備わっています。

  • LLM ゲートウェイ: 少なくとも 2 つのインスタンスをデプロイしてください。1 つのインスタンスに障害が発生した場合、トラフィックは自動的に正常なインスタンスに切り替わります。

  • LLM スケジューラ: スケジューラに障害が発生した場合、LLM ゲートウェイ は自動的にラウンドロビンルーティングにフォールバックします (スケジューリング性能は低下しますが、可用性は維持されます)。スケジューラが復旧すると、インテリジェントスケジューリングが自動的に再開されます。

  • 推論インスタンス: インスタンスに障害が発生した場合、LLM スケジューラ はそのインスタンスを直ちに利用可能プールから削除します。復旧して自動的に再追加されるまで、そのインスタンスに新しいトラフィックはルーティングされません。

制限事項

  • サービスグループの要件:

    • LLM インテリジェントルーターは、推論サービスと同一のサービスグループにデプロイする必要があります。推論サービスとは異なるサービスグループにデプロイした場合、ルーターは機能しません。

    • 同一のサービスグループ内では、LLM インテリジェントルーターサービスとキューサービスは共存できません。

  • LLM インテリジェントルーターは新しい推論サービスの作成時にのみ設定してください。 サービスのグループメンバーシップは作成時に決定され、その後変更することはできません。そのため、インテリジェントルーティングは新しい推論サービスの作成時にのみ設定できますサービスの更新では、既存のサービスに対してインテリジェントルーティングを追加または変更することはできません。

  • 推論エンジンの要件: vLLMSGLang のみがサポートされています。

  • NLB および Nacos との非互換性: NLB または Nacos を介してアクセスされる推論サービスは、LLM インテリジェントルーターを同時に使用することはできません。

  • 複数の推論インスタンスのデプロイ: LLM インテリジェントルーターは、複数の推論インスタンスがデプロイされている場合にのみメリットがあります。

クイックスタート

ステップ 1:LLM インテリジェントルーター サービスのデプロイ

  1. PAI コンソールにログインし、ページ上部でターゲットリージョンを選択します。

  2. 左側のナビゲーションペインで、Elastic Algorithm Service (EAS) をクリックし、対象のワークスペースを選択して、EAS に移動します。

  3. Deploy Service をクリックし、Scenario-based Model Deployment>Deploy LLM gateway を選択します。

  4. パラメータを設定します。

    パラメータ

    説明

    [Basic Information]

    [Service Name]

    任意のサービス名です。例:llm_gateway

    [Resource Information]

    [Deployment Resources]

    LLM Gateway のリソース設定では、高可用性を確保するため、Number of Replicas のデフォルトは 2 です。このデフォルト値を維持することをお勧めします。デフォルトのリソース割り当ては 4 vCPU と 8 GB のメモリです。

    [Scheduling configuration]

    LLM スケジューラのリソース構成です。デフォルトは 2 vCPU および 4 GB のメモリです。

    [Scheduling Policy]

    バックエンド推論インスタンスを選択するために使用される負荷分散ポリシーです。デフォルトはPrefix cacheです。詳細な比較と選択のガイダンスについては、「スケジューリングポリシーリファレンス」をご参照ください。

    [Advanced Features]

    [Redis config]

    オプションです。ユーザー情報と使用統計を永続化します。Redis がない場合、サービスはローカルメモリを使用し、サービス停止時にデータが失われます。詳細については、「Redis 永続ストレージの構成」をご参照ください。

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

    デプロイ後、group_<LLM インテリジェントルーターサービス名> という名前のサービスグループが自動的に作成されます。 これを表示するには、Elastic Algorithm Service (EAS) ページに移動し、Canary Release タブをクリックします。image

ステップ 2:LLM サービスのデプロイ

新しい LLM サービスを作成する際に、インテリジェントルーターを構成します。Update を通じて既存のサービスに追加することはできません。

次の例では Qwen3-8B を使用します。

  1. Deploy Service をクリックし、次に Scenario-based Model Deployment>LLM Deployment を選択します。

  2. 次のパラメータを設定します。

    パラメータ

    [Basic Information]

    [Model Settings]

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

    [Inference Engine]

    vLLM を選択します (推奨、OpenAI API 互換)。

    説明

    LLM インテリジェントルーターに Prefix cache スケジューリングポリシーが設定されており、推論エンジンとして vLLM を選択した場合は、vLLM でプレフィックスキャッシュが有効になっていることを確認してください。

    [Deployment Template]

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

    [Features]

    [LLM Intelligent Router]

    トグルを有効にし、ステップ 1 でデプロイした LLM インテリジェントルーター サービスをドロップダウンリストから選択します。

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

ステップ 3:サービスのテスト

すべてのリクエストは、個々のバックエンド推論サービスの URL ではなく、LLM インテリジェントルーター サービスのアクセス URL に送信します。

説明
  • グループ内のいずれかの推論サービスでトラフィック分散が有効になっている場合、グループの集約トラフィックエントリを通じて送信されたリクエストは、インテリジェントルーターをバイパスし、スケジューリングが失敗する可能性があります。

  • グループ内でトラフィック分散が有効になっているのはインテリジェントルーター サービスのみであることを確認してください。インテリジェントルーターの 専用トラフィックエントリ URL を通じてリクエストを送信してください。

  1. アクセス認証情報の取得

    1. LLM インテリジェントルーターサービスをクリックしてOverviewページを開きます。Basic Informationセクションで、View Endpoint Informationをクリックします。

    2. [呼び出し情報] ページで、Service-specific Traffic Entry Internet Endpoint[トークン] をコピーします。image

    重要

    ここに表示されるサービス トークンは管理者の認証情報です。管理者が WebUI ワークベンチを通じて個々の API キーをユーザーに割り当てている場合、各ユーザーは以下の例の <YOUR_TOKEN> を自分の API キーに置き換える必要があります。

  2. リクエスト URL の構築と呼び出しの送信

    • URL 形式: <LLM インテリジェントルーター URL>/<LLM サービス API パス>

    • 例: http://********.pai-eas.aliyuncs.com/api/predict/group_llm_gateway.llm_gateway/v1/chat/completions

    リクエスト例:

    # <YOUR_GATEWAY_URL> と <YOUR_TOKEN> を実際の値に置き換えてください
    curl -X POST "<YOUR_GATEWAY_URL>/v1/chat/completions" \
         -H "Authorization: Bearer <YOUR_TOKEN>" \
         -H "Content-Type: application/json" \
         -N \
         -d '{
               "messages": [{"role": "user", "content": "こんにちは"}],
               "stream": true
             }'

    レスポンス例:

    data: {"id":"chatcmpl-9a9f8299*****","object":"chat.completion.chunk","created":1762245102,"model":"Qwen3-8B","choices":[{"index":0,"delta":{"role":"assistant","content":""},"logprobs":null,"finish_reason":null}]}
    data: {"id":"chatcmpl-9a9f8299*****","object":"chat.completion.chunk","created":1762245102,"model":"Qwen3-8B","choices":[{"index":0,"delta":{"content":"<think>","tool_calls":[]}}]}
    
    ...
    data: [DONE]

サービスのデプロイ後、ライブモニタリングや構成管理を含む視覚的な管理のために WebUI ワークベンチにアクセスしてください。詳細については、「LLM インテリジェントルーティング ワークベンチの使用」をご参照ください。

Redis 永続ストレージの構成

LLM インテリジェントルーターには、マルチユーザー管理、ロールベースのアクセス制御、監査ログ、使用状況ダッシュボードが組み込まれています。外部の Redis インスタンスは、サービスの再起動後もユーザーデータと使用統計を永続化します。Redis がない場合、サービスはローカルメモリを使用し、サービス停止時にすべてのデータが失われます。本番デプロイメントでは、Redis ストレージを構成してください。

ステップ 1: Tair (Redis) インスタンスのプロビジョニング

  1. Tair 購入ページにアクセスし、インスタンスを購入します。

    重要

    デプロイする予定の LLM インテリジェントルーターサービスと同じ Virtual Private Cloud (VPC) と vSwitch を選択してください。その他のオプションは必要に応じて構成します。最小仕様から開始してください。

  2. LLM インテリジェントルーターサービスの vSwitch CIDR ブロックをインスタンスの許可リストに追加します。詳細については、「許可リストの構成」をご参照ください。

  3. ターゲットインスタンス ID をクリックして詳細ページを開き、接続情報を確認します。この情報は、LLM インテリジェントルーターサービスをデプロイする際に必要になります。

    • 接続アドレスとポート: インスタンス情報 > 接続情報 で、VPC 接続アドレスとポート番号を取得します。

    • ユーザー名とパスワード: アカウント管理 ページで、デフォルトアカウントを確認します。インスタンス作成時にパスワードが設定されていない場合は、そこでパスワードを設定またはリセットしてください。デフォルトアカウントの代わりに新しいアカウントを作成することもできます。

ステップ 2: デプロイ時の Redis の構成

基本構成に加えて、VPC 設定と Redis 接続パラメーターを指定して、永続ストレージを有効にします。

  • VPC の構成: VPCvSwitch は、ステップ 1 の Tair インスタンスと一致させる必要があります。これにより、LLM インテリジェントルーターサービスが Tair インスタンスにアクセスできるようになります。

  • Redis の構成:

    コンソール

    [Advanced Features] セクションで、[Redis config] を有効にし、以下を入力します。

    パラメーター

    説明

    [Redis Address]

    Tair インスタンスの接続アドレス。形式は <VPC アドレス>:<ポート> で、例は r-uxxx.redis.rds.aliyuncs.com:6379 です。

    [Redis Username]

    Tair インスタンスのユーザー名です。

    [Redis Password]

    Tair インスタンスのパスワードです。

    JSON

    JSON ボディの llm_gateway ノードに、次のパラメーターを追加します。

    パラメーター

    説明

    enable_user_management

    ユーザー管理を有効にします。デフォルトは true です。

    redis_addrs

    Tair インスタンスの接続アドレス。<VPC address>:<port> 形式で、たとえば r-uxxx.redis.rds.aliyuncs.com:6379 のようになります。

    redis_username

    Tair インスタンスのユーザー名です。

    redis_password

    Tair インスタンスのパスワードです。

    JSON の例:

    {
        "llm_gateway": {
            "enable_user_management": true,
            "redis_addrs": "r-uxxx.redis.rds.aliyuncs.com:6379",
            "redis_username": "xxx",
            "redis_password": "xxx"
        }
    }

高度な構成 (JSON)

JSON デプロイでは、LLM Gateway のリソース仕様とリクエスト処理の動作を設定できます。

設定エントリ: Inference Service ページで、Deploy Service をクリックします。Custom Model Deployment セクションで、JSON Deployment をクリックします。

構成例

{
    "cloud": {
        "computing": {
            "instance_type": "ecs.c7.large"
        }
    },
    "llm_gateway": {
        "max_queue_size": 128,
        "retry_count": 2,
        "wait_schedule_timeout": 5000,
        "wait_schedule_try_period": 500
    },
    "llm_scheduler": {
        "cpu": 2,
        "memory": 4000,
        "policy": "prefix-cache"
    },
    "metadata": {
        "group": "group_llm_gateway",
        "instance": 2,
        "name": "llm_gateway",
        "type": "LLMGatewayService",
         "rpc": {
            "disable_auth": true
        }
    }
}

パラメーター

パラメーター

説明

metadata

type

必須。固定値: LLMGatewayService。このデプロイが LLM インテリジェントルーターサービスであることを示します。

instance

必須。 LLM Gateway のレプリカ数。単一障害点を回避するため、2 以上に設定してください。

cpu

vCPU count per LLM Gateway replica.

memory

Memory (GB) for LLM Gateway.

group

LLM インテリジェントルーターサービスが属するサービスグループです。

rpc.disable_auth

必須。true に設定します。

cloud.computing.instance_type

LLM Gatewayのリソースタイプを指定します。設定すると、metadata.cpumetadata.memoryは不要になります。

llm_gateway

max_queue_size

LLM Gateway のキューの最大深度。デフォルト値は 512 です。

リクエストがバックエンドの処理能力を超えた場合、超過分はここにキューイングされ、処理能力が利用可能になると送信されます。

retry_count

バックエンド推論インスタンスが失敗した場合のリトライ回数です。デフォルトは 2 です。失敗時には、リクエストは別のインスタンスでリトライされます。

wait_schedule_timeout

すべてのバックエンドインスタンスがフル稼働状態の場合、ゲートウェイは一定間隔でスケジューリングをリトライします。このパラメーターでは、ゲートウェイがリクエストのスケジューリングを試行する合計時間を設定します。デフォルトは 5000 (ミリ秒) です。

wait_schedule_try_period

スケジューリングのリトライ間隔です。デフォルトは 500 (ミリ秒) です。

llm_scheduler

cpu

LLM Scheduler の vCPU 数。デフォルトは 4 です。

memory

LLM Scheduler のメモリ (GB)。デフォルトは 4 GB です。

policy

スケジューリングポリシー。デフォルトは prefix-cache です。詳細については、「スケジューリングポリシーのリファレンス」をご参照ください。

prefill_policy

policypd-split に設定されている場合、プレフィルおよびデコードステージのスケジューリングポリシーを個別に指定します。有効な値:prefix-cachellm-metric-basedleast-requestleast-token

decode_policy

付録

ルーターでの Claude Code の使用

  1. Claude Code に、EAS インテリジェントルーターサービスが提供するベース URL とトークンを設定します。

    # <YOUR_GATEWAY_URL> と <YOUR_TOKEN> を実際の値に置き換えてください
    export ANTHROPIC_BASE_URL=<YOUR_GATEWAY_URL>
    export ANTHROPIC_AUTH_TOKEN=<YOUR_TOKEN>
  2. Claude Code を実行します。

    claude "Python で Hello World を書いて"

スケジューリングポリシーのリファレンス

適切なスケジューリングポリシーを選択することが、LLM インテリジェントルーターを最大限に活用する鍵です。次の表では、各ポリシーのロジック、最適なユースケース、利点、および考慮事項を比較します。

ポリシー名

JSON 値

仕組み

最適な用途

利点

考慮事項

[Prefix cache]

prefix-cache

(推奨) 複合ポリシーです。同じ会話履歴 (プロンプト) を持つリクエストを、一致する KV キャッシュがすでにあるインスタンスにルーティングします。

固定のシステムプロンプトを使用するマルチターンチャットボットおよび RAG システム。

TTFT を大幅に削減し、マルチターンのパフォーマンスとスループットを向上させます。

推論エンジンでプレフィックスキャッシュを有効にする必要があります。

[Minimum Requests]

least-request

新しいリクエストを、現在処理中のリクエストが最も少ないインスタンスにルーティングします。

リクエストの複雑さが比較的均一な (トークン長と生成長が類似している) ワークロード。

シンプルで効率的です。インスタンス間でリクエスト数を迅速にバランスさせます。

実際のリクエスト負荷を考慮しません。短いリクエストを処理するインスタンスがアイドル状態になる一方、長いリクエストを処理するインスタンスが過負荷になる可能性があります。

[Minimum tokens]

least-token

新しいリクエストを、現在処理中の合計トークン数 (入力 + 出力) が最も少ないインスタンスにルーティングします。

トークン数が処理コストを確実に反映するワークロード。

最小リクエストよりも、実際のインスタンス負荷をより正確に反映します。

トークン数の推定に依存します。すべての推論エンジンがこのメトリックを報告するわけではありません。

[Static PD Disaggregation]

pd-split

インスタンスを、それぞれ独自のスケジューリングポリシーを持つプレフィルグループとデコードグループに事前に分割する必要があります。

プレフィルステージとデコードステージのコンピュートおよびメモリアクセスの特性が大きく異なり、分離することで明確な利点が得られるワークロード。

ステージごとの最適化により、ハードウェア利用率を最大化します。

構成が複雑です。モデルとワークロードの深い理解、およびプレフィルとデコードの個別のサービスデプロイメントが必要です。

パフォーマンスベンチマーク

Distill-Qwen-7B、QwQ-32B、および Qwen2.5-72b でのテストでは、LLM インテリジェントルーターを使用した場合の推論速度とスループットの向上が示されています。テスト環境と結果を以下に説明します。

重要

結果はワークロードによって異なります。ご自身のユースケースでパフォーマンスを検証するために、独自のベンチマークを実行してください。

テスト環境

  • スケジューリングポリシー:prefix-cache

  • テストデータセット:ShareGPT_V3_unfiltered_cleaned_split.json (マルチターン会話データセット)

  • 推論エンジン:vLLM (0.7.3)

  • バックエンドインスタンス:5

テスト結果

テストモデル

Distill-Qwen-7B

QwQ-32B

Qwen2.5-72b

インスタンスタイプ

ml.gu8tf.8.40xlarge

ml.gu8tf.8.40xlarge

ml.gu7xf.8xlarge-gu108

同時実行数

500

100

100

メトリック

ルーター不使用時

ルーター使用時

改善

ルーター不使用時

ルーター使用時

改善

ルーター不使用時

ルーター使用時

改善

成功したリクエスト

3698

3612

-

1194

1194

-

1194

1194

-

ベンチマーク期間

460.79 s

435.70 s

-

1418.54 s

1339.04 s

-

479.53 s

456.69 s

-

合計入力トークン

6605953

6426637

-

2646701

2645010

-

1336301

1337015

-

合計生成トークン

4898730

4750113

-

1908956

1902894

-

924856

925208

-

リクエストスループット

8.03 req/s

8.29 req/s

+3.2%

0.84 req/s

0.89 req/s

+5.95%

2.49 req/s

2.61 req/s

+4.8%

出力トークンスループット

10631.17 tok/s

10902.30 tok/s

+2.5%

1345.72 tok/s

1421.08 tok/s

+5.6%

1928.66 tok/s

2025.92 tok/s

+5.0%

合計トークンスループット

24967.33 tok/s

25652.51 tok/s

+2.7%

3211.52 tok/s

3396.38 tok/s

+5.8%

4715.34 tok/s

4953.56 tok/s

+5.0%

平均 TTFT

532.79 ms

508.90 ms

+4.5%

1144.62 ms

859.42 ms

+25.0%

508.55 ms

389.66 ms

+23.4%

中央値 TTFT

274.23 ms

246.30 ms

-

749.39 ms

565.61 ms

-

325.33 ms

190.04 ms

-

P99 TTFT

3841.49 ms

3526.62 ms

-

5339.61 ms

5027.39 ms

-

2802.26 ms

2678.70 ms

-

平均 TPOT

40.65 ms

39.20 ms

+3.5%

68.78 ms

65.73 ms

+4.4%

46.83 ms

43.97 ms

+6.1%

中央値 TPOT

41.14 ms

39.61 ms

-

69.19 ms

66.33 ms

-

45.37 ms

43.30 ms

-

P99 TPOT

62.57 ms

58.71 ms

-

100.35 ms

95.55 ms

-

62.29 ms

54.79 ms

-