この記事では、Azure OpenAI でプロビジョニングされたデプロイのスピルオーバーを使用してトラフィックを管理する方法について説明します。 スピルオーバーは、超過トラフィックを対応する標準デプロイにルーティングすることで、トラフィックの変動を管理します。 このオプション機能は、デプロイ上のすべての要求に対して設定することも、要求ごとに管理することもできます。これにより、トラフィックバースト中の中断を減らすことができます。
[前提条件]
Azure サブスクリプション。 無料で作成できます。
プロビジョニングされたマネージド デプロイと、同じ Azure OpenAI リソース内の標準デプロイ
REST API の例用にインストールされたAzure CLI、または Foundry ポータルへのアクセス
Azure OpenAI エンドポイント URL に設定された
AZURE_OPENAI_ENDPOINT環境変数Cognitive Services 共同作成者 ロールまたはそれ以上が必要なAzure OpenAI リソースでデプロイを作成または変更する。
プロビジョニングされたデプロイのすべての要求に対してスピルオーバーを有効にする
スピルオーバーを有効にする方法については、REST API タブを参照してください。
スピルオーバーを有効にするタイミング
プロビジョニングされたデプロイの使用率を最大限に高めるために、グローバルおよびデータ ゾーンでプロビジョニングされたすべてのデプロイでスピルオーバーを有効にします。 スピルオーバーにより、トラフィックのバーストまたは変動をサービスによって自動的に管理できます。 この機能により、プロビジョニングされたデプロイが完全に利用されたときに中断が発生するリスクが軽減されます。 また、スピルオーバーは要求ごとに構成可能で、さまざまなシナリオやワークロードに柔軟性を提供します。 スピルオーバーは 、Foundry Agent Service でも機能します。
スピルオーバーが発生した場合
デプロイのスピルオーバーを有効にするか、特定の推論要求に対して構成すると、次のいずれかのシナリオの結果として、特定の200 以外の応答コードを受信したときにスピルオーバーが開始されます。
プロビジョニングされたスループット ユニット (PTU) が完全に使用されるため、
429応答コードになります。長いコンテキスト トークン要求を送信すると、
400エラー コードが発生します。 たとえば、gpt 4.1シリーズ モデルを使用する場合、PTU は 128K 未満のコンテキスト長のみをサポートし、HTTP 400 を返します。サーバー エラーは要求の処理中に発生し、エラー コード
500または503が発生します。
要求の結果、200 以外の応答コードのいずれかが発生すると、Azure OpenAI は、プロビジョニングされたデプロイから処理される標準デプロイに要求を自動的に送信します。
注
要求のサブセットが標準デプロイにルーティングされた場合でも、サービスは、超過分の要求を標準デプロイに送信する前に、プロビジョニングされたデプロイへの要求の送信に優先順位を付けます。 この優先順位付けにより、待機時間が長くなる可能性があります。
スピルオーバー要求を特定する
次の HTTP 応答ヘッダーは、特定の要求がスピルオーバーしたことを示しています。
x-ms-spillover-from-<deployment-name>。 このヘッダーには、PTU デプロイ名が含まれています。 このヘッダーの存在は、要求がスピルオーバー要求であることを示します。x-ms-<deployment-name>。 このヘッダーには、要求を処理するデプロイの名前が含まれています。 要求がオーバーフローした場合、デプロイ名は標準デプロイメントの名称になります。
要求がオーバーフローする場合、標準的なデプロイ要求が何らかの理由で失敗した際は、元のPTU応答が顧客への応答に使用されます。 お客様は、スピルオーバー要求の応答コード (x-ms-spillover-errorや429など) を含むヘッダー 500を確認して、スピルオーバーが失敗した理由を把握します。
スピルオーバーの使用状況を監視する
スピルオーバー機能は、プロビジョニング済みデプロイと標準デプロイの組み合わせに依存してトラフィック超過を管理するため、各デプロイのデプロイ レベルで監視を実行できます。 プライマリ プロビジョニングされたデプロイとスピルオーバー標準デプロイで処理された要求の数を表示するには、Azure Monitorメトリックで分割機能を適用して、各デプロイによって処理された要求とそれぞれの状態コードを表示します。 同様に、分割機能を使用して、特定の期間のプライマリ プロビジョニング済みデプロイとスピルオーバー標準デプロイで処理されたトークンの数を表示します。
スピルオーバー コスト
スピルオーバーでは、プロビジョニングされたデプロイと標準のデプロイの組み合わせを使用してトラフィックの変動を管理するため、スピルオーバーの課金には次の 2 つのコンポーネントが含まれます。
プロビジョニングされたデプロイによって処理される要求には、時間単位のプロビジョニング済みデプロイ コストのみが適用されます。 これらの要求に対して追加コストは発生しません。
標準デプロイにルーティングされた要求の場合、要求は、指定されたモデルのバージョンとデプロイの種類に対して、関連付けられている入力トークン、キャッシュされたトークン、および出力トークンのレートで課金されます。
Azure ポータルでメトリックを監視する
次のAzure Monitorメトリック グラフは、スピルオーバーが開始されたときに、プライマリ プロビジョニングされたデプロイとスピルオーバー標準デプロイの間の要求の分割の例を示しています。 グラフを作成するには、Azure ポータルでリソースに移動します。
左側のナビゲーション メニューから [ 監視>メトリック ] を選択します。
Azure OpenAI Requestsメトリックを追加します。Azure portal における基本的なスピルオーバーの例のメトリックを示すスクリーンショットです。 Apply split を選択し、
ModelDeploymentName分割とStatusCode分割をAzure OpenAI Requestsメトリックに適用します。 これは、リソースに対して生成された200(成功) と429(要求が多すぎる) 応答コードを含むグラフを示しています。ModelDeploymentName分割を適用するときに表示するモデル デプロイを必ず追加してください。次の例は、プロビジョニング済みスループット デプロイに送信された要求の急増によって、エラーコード
429が生成されるケースを示しています。 その直後にスピルオーバーが発生し、要求はスピルオーバーに使用される従量課金制のデプロイに移動し始め、そのデプロイに対する200応答が生成されます。
スピルオーバー メトリックを表示する
IsSpillover 分割を適用すると、スピルオーバーデプロイにリダイレクトされた、元のデプロイへの要求を表示できます。 前の例に従って、プライマリ デプロイからの 429 応答が、スピルオーバーデプロイによって生成された 200 応答コードとどのように一致するかを確認できます。