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

Platform For AI:LLM インテリジェントルーターで推論効率を向上

最終更新日:Feb 25, 2026

大規模言語モデル (LLM) アプリケーションでは、従来のロードバランシングポリシーでは不十分な場合があります。リクエストと応答の長さの変動、ランダムなトークン生成、予測不可能な GPU リソース使用量により、バックエンドの負荷をリアルタイムで評価することが困難です。これにより、インスタンス間で負荷の不均衡が生じ、システムスループットと応答効率が低下します。Elastic Algorithm Service (EAS) は、LLM 固有のメトリックを使用してリクエストを動的に分散する LLM インテリジェントルーターコンポーネントを導入しています。これにより、推論インスタンス全体で計算能力と VRAM 割り当てのバランスが取れ、クラスターリソース利用率とシステム安定性が向上します。

仕組み

アーキテクチャの概要

LLM インテリジェントルーターは、LLM GatewayLLM Scheduler、および LLM Agent の 3 つのコアコンポーネントで構成されています。これらが連携して、バックエンド LLM 推論インスタンスクラスターにインテリジェントなトラフィック分散と管理を提供します。

重要

LLM インテリジェントルーターは、EAS の特殊なサービスです。正しく機能させるには、推論サービスと同じサービスグループにデプロイする必要があります。

image

コアプロセスは次のとおりです。

  1. インスタンス登録: 推論サービスが起動した後、LLM Agent は推論エンジンが準備完了になるのを待機します。その後、インスタンスを LLM Scheduler に登録し、定期的にヘルスステータスとパフォーマンスメトリックの報告を開始します。

  2. トラフィックイングレス: ユーザーリクエストは最初に LLM Gateway に到達します。

  3. スケジューリング決定: LLM GatewayLLM Scheduler にスケジューリングリクエストを送信します。

  4. インテリジェントスケジューリング: LLM Scheduler は、スケジューリングポリシーと、各 LLM Agent から収集されたリアルタイムメトリックに基づいて、最適なターゲットインスタンスを選択します。

  5. リクエスト転送: LLM Scheduler はその決定を LLM Gateway に返します。LLM Gateway は、元のユーザーリクエストをターゲットインスタンスに転送します。

  6. リクエストバッファリング: すべてのバックエンドインスタンスが高負荷の場合、新しいリクエストは一時的に LLM Gateway キューにバッファリングされます。リクエストは、LLM Scheduler がそれらを転送する適切な時間を特定するまで待機し、リクエストの失敗を防ぎます。

コアコンポーネント

コンポーネント

主な役割

LLM Gateway

トラフィックのエントリポイントおよびリクエスト処理センター。すべてのユーザーリクエストを受信し、LLM Scheduler の決定に基づいて指定されたバックエンド推論インスタンスに転送します。

  • HTTP (HTTP_SSE) および WebSocket プロトコルをサポートします。バックエンド推論インスタンスが高負荷の場合、リクエストをキャッシュすることもできます。

  • Anthropic API プロトコル変換機能はデフォルトで有効になっています。Anthropic 仕様に準拠するリクエストを OpenAI 互換形式に自動的に変換します。Claude Code エコシステムのツールを使用して、コードを変更することなく OpenAI インターフェイス標準に従うモデルサービスを呼び出すことができます。これにより、シームレスな統合が可能になります。詳細については、「付録: Claude Code を使用して呼び出しを行う」をご参照ください。

LLM Scheduler

インテリジェントスケジューリングの頭脳。すべての LLM Agent から報告されるリアルタイムメトリックを収集します。その後、プレフィックスキャッシュベースのポリシーなど、選択されたスケジューリングポリシーに基づいて、各リクエストの最適なターゲットインスタンスを計算します。

LLM Agent

推論インスタンスとともにデプロイされるプローブ。各推論インスタンスとともにサイドカーコンテナーとしてデプロイされます。推論エンジンからパフォーマンスメトリックを収集し、LLM Scheduler とのハートビートを維持し、インスタンスのヘルスステータスと負荷データを報告します。

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

システムには、サービス安定性を確保するための多層フォールトトレランスメカニズムが含まれています。

  • LLM Gateway (高可用性): ステートレスなトラフィックイングレスレイヤーとして、少なくとも 2 つのインスタンスをデプロイします。インスタンスが失敗した場合、トラフィックは自動的に他の正常なインスタンスに切り替わり、継続的なサービス可用性を維持します。

  • LLM Scheduler (グレースフルデグラデーション): リクエストスケジューリングコンポーネントとして、グローバルスケジューリングを可能にするために単一インスタンスとして実行されます。LLM Scheduler が失敗した場合、LLM Gateway はハートビート障害後に自動的にグレースフルデグラデーションし、ポーリングポリシーを使用してリクエストをバックエンドインスタンスに直接転送します。これにより、サービス可用性は確保されますが、スケジューリングパフォーマンスは低下します。LLM Scheduler が回復すると、LLM Gateway は自動的にインテリジェントスケジューリングを再開します。

  • 推論インスタンスまたは LLM Agent (自動削除): 推論インスタンスまたはそれに関連付けられた LLM Agent が失敗した場合、LLM AgentLLM Scheduler 間のハートビートが中断されます。LLM Scheduler は、利用可能なサービスリストからインスタンスを直ちに削除し、新しいトラフィックの割り当てを停止します。インスタンスが回復してハートビートの報告を再開すると、自動的にサービスリストに再参加します。

複数の推論エンジンのサポート

/metrics エンドポイントによって返されるメトリックは、LLM 推論エンジンによって異なります。LLM Agent はこれらのメトリックを収集し、均一にフォーマットして報告します。LLM Scheduler は特定の推論エンジンの実装の詳細を知る必要はありません。統一されたメトリックに基づいてスケジューリングアルゴリズムを実装するだけで済みます。サポートされている LLM 推論エンジンとそれに対応するメトリックは次のとおりです。

LLM 推論エンジン

メトリック

説明

vLLM

vllm:num_requests_running

実行中のリクエスト数。

vllm:num_requests_waiting

キューで待機中のリクエスト数。

vllm:gpu_cache_usage_perc

GPU KV Cache の使用方法。

vllm:prompt_tokens_total

プロンプトトークンの総数。

vllm:generation_tokens_total

生成されたトークンの総数。

SGLang

sglang:num_running_reqs

実行中のリクエスト数。

sglang:num_queue_reqs

キューで待機中のリクエスト数。

sglang:token_usage

KV キャッシュの使用率。

sglang:prompt_tokens_total

プロンプトトークンの総数。

sglang:gen_throughput

1 秒あたりに生成されるトークン数。

制限事項

  • 更新中に追加できません: LLM インテリジェントルーターは、新しいサービスを作成する際にのみ構成できます。既存の推論サービスを更新する際に、追加することはできません。

  • 推論エンジンの制限: 現在、vLLMSGLang のみがサポートされています。

  • 複数の推論インスタンスのデプロイを推奨: 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 です。この値を維持することを推奨します。デフォルトの CPU は 4 コア、デフォルトの Memory は 8 GB です。

    Scheduling configuration

    LLM Scheduler のリソース構成。デフォルトの CPU は 2 コア、デフォルトの Memory は 4 GB です。

    Scheduling Policy

    バックエンド推論インスタンスのロードバランシングポリシーを選択します。デフォルトは Prefix cache です。詳細な比較および選択に関する推奨事項については、「スケジューリングポリシーの説明」をご参照ください。

  5. [Deploy] をクリックします。サービスのステータスが [Running] に変わると、デプロイが成功します。

デプロイメントが成功すると、システムは自動的に group_<LLM_intelligent_router_service_name> という名前のサービスグループを作成します。Elastic Algorithm Service (EAS) ページに移動し、Canary Release タブをクリックして確認できます。image

説明

インテリジェントルーターとサービスキューは互いに競合します。同じサービスグループに共存することはできません。

ステップ 2: LLM サービスをデプロイする

新しい LLM サービスをデプロイする際に、インテリジェントルーター機能を構成する必要があります。既存の LLM サービスを更新する際に、追加することはできません。

以下の手順では、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 スケジューリングポリシーを選択し、LLM サービスのデプロイ時に推論エンジンとして vLLM を選択した場合は、エンジンのプレフィックスキャッシュ機能を必ず有効にしてください。

    Deployment Template

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

    Features

    LLM Intelligent Router

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

  3. Deploy」をクリックします。サービスデプロイには約5分かかります。サービスのステータスが「Running」に変更されたら、デプロイが完了します。

ステップ 3: サービスをテストする

すべてのリクエストは、バックエンド推論サービスではなく、LLM インテリジェントルーターサービスのエンドポイントに送信してください。

  1. アクセス認証情報を取得する

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

    2. [エンドポイント情報] ページで、Service-specific Traffic Entry の下にある Internet Endpoint[トークン] をコピーします。image

  2. リクエスト URL を構築して呼び出す。

    • URL 構造: <LLM_intelligent_router_endpoint>/<LLM_service_API_path>

    • : 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": "Hello"}],
               "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]

高度な構成

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"
        }
    }
  • パラメーターの説明:

    パラメーター

    説明

    metadata

    type

    必須。LLMGatewayService に設定する必要があります。これは、LLM インテリジェントルーターサービスをデプロイしていることを示します。

    instance

    必須。LLM Gateway のレプリカ数。単一障害点を防ぐため、少なくとも 2 に設定することを推奨します。

    cpu

    LLM Gateway レプリカの CPU コア数。

    memory

    LLM Gateway のメモリ (GB)。

    group

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

    cloud.computing.instance_type

    LLM Gateway のリソース仕様を指定します。このパラメーターを設定した場合、metadata.cpumetadata.memory を構成する必要はありません。

    llm_gateway

    max_queue_size

    LLM Gateway キャッシュキューの最大長。デフォルトは 512 です。

    バックエンド推論フレームワークの処理能力を超過するリクエストは、このキューにキャッシュされ、スケジューリングを待機します。

    retry_count

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

    wait_schedule_timeout

    バックエンドエンジンがフルキャパシティの場合、リクエストは間隔を置いてスケジュールされます。このパラメーターは、スケジューリング試行時間を指定します。デフォルトは 10 秒です。

    wait_schedule_try_period

    各スケジューリング試行間の間隔。デフォルトは 1 秒です。

    llm_scheduler

    cpu

    LLM Scheduler の CPU コア数。デフォルトは 4 です。

    memory

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

    policy

    スケジューリングポリシー。デフォルト値は prefix-cache です。オプション値と説明については、「スケジューリングポリシーの説明」をご参照ください。

    prefill_policy

    ポリシーを pd-split に設定した場合、Prefill および Decode ステージのスケジューリングポリシーを個別に指定する必要があります。有効な値: prefix-cache、llm-metric-basedleast-request、および least-token

    decode_policy

スケジューリングポリシーの説明

適切なスケジューリングポリシーを選択することは、LLM インテリジェントルーターの価値を最大化する鍵です。次の表は、最適な決定を下すのに役立つように、各ポリシーのロジック、シナリオ、利点、および欠点を比較しています。

ポリシー名

JSON 値

コアロジック

シナリオ

利点

備考

Prefix cache

prefix-cache

(推奨) 同じ履歴コンテキスト (プロンプト) を持つリクエストを、すでに KV キャッシュをキャッシュしているインスタンスに送信することを優先する包括的なポリシー。

マルチターン対話ボットや、固定システムプロンプトを持つ検索拡張生成 (RAG) システム。

最初のトークンまでの時間 (TTFT) を大幅に削減し、マルチターン対話のパフォーマンスとスループットを向上させます。

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

LLM Metrics

llm-metric-based

キューに入っているリクエスト数、実行中のリクエスト、KV キャッシュ使用率など、バックエンドインスタンスの包括的な負荷メトリックに基づいてインテリジェントスケジューリングを実行します。

多様なリクエストパターンを持ち、明確な対話機能がない一般的な LLM ワークロード。

異なるインスタンス間で効果的に負荷を分散し、リソース利用率を向上させます。

スケジューリングロジックは比較的複雑であり、特定のシナリオではプレフィックスキャッシュベースのポリシーほど効果的ではない可能性があります。

Minimum Requests

least-request

現在処理中のリクエストが最も少ないインスタンスに新しいリクエストを送信します。

リクエストの計算の複雑さ (トークン長、生成長) が比較的均一なシナリオ。

シンプルで効率的。インスタンス間のリクエスト数を迅速に分散できます。

リクエストの実際の負荷を認識できない。これにより、短いリクエストのインスタンスがアイドル状態になり、長いリクエストのインスタンスが過負荷になる可能性があります。

Minimum tokens

least-token

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

トークン数がリクエスト処理コストを正確に反映するシナリオ。

「最小リクエスト」ポリシーよりもインスタンスの真の負荷をより正確に反映します。

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

Static PD Disaggregation

pd-split

インスタンスを Prefill および Decode グループに事前に分割し、各グループのスケジューリングポリシーを指定する必要があります。

Prefill および Decode ステージの計算およびメモリアクセス特性が大きく異なり、個別のデプロイメントが大きなメリットをもたらすシナリオ。

ハードウェア利用率の最大化のための究極の最適化。

複雑な構成。モデルとビジネスロジックの深い理解、および Prefill と Decode サービスの独立したデプロイメントが必要です。

Dynamic PD Disaggregation

dynamic-pd-split

インスタンスに事前に割り当てられたロールは不要です。スケジューラは、リアルタイムの負荷に基づいて、リクエストの Prefill または Decode ステージを最適なインスタンスに動的にディスパッチします。

上記と同じですが、動的に変化する負荷のシナリオに適しています。

静的分割よりも柔軟で、負荷の変化に適応できます。

より複雑な構成。スケジューラとエンジンにより高い要求を課します。

サービス監視メトリックの表示

サービスをデプロイした後、EAS コンソールでそのコアパフォーマンスメトリックを表示して、インテリジェントルーターの有効性を評価できます。

[Elastic Algorithm Service (EAS)] ページで、デプロイされた LLM インテリジェントルーターサービスをクリックして、サービス詳細ページに移動します。Monitoring タブで、次のコアメトリックに注目します。

トークンスループット

LLM 入力および出力トークンのスループットimage

  • IN: LLM 入力トークンのスループット。

  • OUT: LLM 出力トークンのスループット。

GPU キャッシュ使用率

LLM エンジン GPU KV キャッシュの使用率

image

エンジン現在のリクエスト

LLM エンジンのリアルタイム同時リクエスト

image

  • Running: LLM エンジンが現在実行中のリクエスト数。

  • Waiting: LLM エンジンの待機キューにあるリクエスト数。

Gateway 現在のリクエスト

LLM インテリジェントルーターのリアルタイムリクエスト

image

  • Total: LLM インテリジェントルーターが現在受信しているリクエストの総数 (合計リアルタイム同時実行数)。

  • Pending: LLM インテリジェントルーターにキャッシュされているが、LLM エンジンによって処理されていないリクエスト数。

最初のトークンまでの時間

リクエストの最初のトークンまでの時間

image

  • Max: 最初のトークンまでの最大時間。

  • Avg: 最初のトークンまでの平均時間。

  • Min: 最初のトークンまでの最小時間。

  • TPxx: 最初のトークンまでの時間のパーセンタイル値。

出力トークンあたりの時間

パケットあたりのリクエストレイテンシー

image

  • Max: パッケージあたりの最大リクエストレイテンシー。

  • Avg: パケットあたりの平均リクエストレイテンシー。

  • Min: パッケージあたりの最小リクエストレイテンシー。

  • TPxx: さまざまなパーセンタイルレベルでのパッケージあたりのリクエストレイテンシー。

付録: Claude Code を使用して呼び出しを行う

  1. EAS インテリジェントルーターサービスによって提供される BASE URL と TOKEN を使用するように Claude Code を構成します。

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

    claude "Write a Hello World program in Python"

付録: パフォーマンス比較テスト

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

メトリック

LLM インテリジェントルーターなし

LLM インテリジェントルーターを使用

改善

LLM インテリジェントルーターなし

LLM インテリジェントルーターを使用

改善

LLM インテリジェントルーターなし

LLM インテリジェントルーターを使用

改善

成功したリクエスト

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

+4.4%

中央値 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

-