次の方法で共有


Azure AI Foundry モデルの Azure OpenAI でプロビジョニングされたデプロイの使用を開始する

次のガイドでは、Azure AI Foundry リソースを使用してプロビジョニングされたデプロイを作成する際の主要な手順について説明します。 ここで説明する概念の詳細については、以下を参照してください。

[前提条件]

PTU クォータの可用性を取得または確認します。

プロビジョニング スループットのデプロイは、プロビジョニング スループット ユニット (PTU) という単位でサイズ設定されます。 デプロイの種類ごとのプロビジョニング済みの PTU クォータは、リージョンごとにサブスクリプションに付与され、すべてのモデルとバージョンにわたってそのリージョンにデプロイできる PTU の合計数が制限されます。

新しいデプロイを作成するには、必要なサイズのデプロイをカバーするために使用できる (使用されていない) クォータが必要です。 たとえば、米国中南部のサブスクリプションに以下がある場合:

  • 合計 PTU クォータ = 500 PTU
  • デプロイ:
    • 100 PTU: GPT-4o、2024-05-13
    • 100 PTU: DeepSeek-R1、1

この場合、200 PTU のクォータが使用済みと見なされ、新しいデプロイの作成に使用できるのは 300 PTU です。

グローバル、データ ゾーン、およびリージョンのプロビジョニング済みクォータの既定の量は、複数のリージョン内の対象となるサブスクリプションに割り当てられます。 Azure AI Foundry ポータルの [クォータ] ウィンドウにアクセスし、目的のサブスクリプションとリージョンを選択することで、リージョンで使用可能なクォータを表示できます。 たとえば、次のスクリーンショットは、選択したサブスクリプションの米国西部で 300 グローバル プロビジョニング スループット PTU のクォータ制限を示しています。 このグローバル PTU の合計使用量は 50 です。その後、グローバル プロビジョニング スループットのデプロイの種類をデプロイするために 250 の PTU ユニットを使用できます。

Azure AI Foundry ポータル内で使用可能なクォータのスクリーンショット。

[クォータの要求] ボタンをクリックすると、追加のクォータを要求できます。

Azure AI Foundry リソースを作成する

プロビジョニングされたデプロイは、Azure 内の Azure AI Foundry リソース オブジェクトを介して作成されます。 デプロイを作成する予定の各リージョンに Azure AI Foundry リソースが必要です。 必要に応じて、Azure portal を使用して、使用できるクォータがあるリージョンにリソースを作成します。

Azure AI Foundry リソースでは、複数の種類の Azure AI Foundry デプロイを同時にサポートできます。 新しいリソースをプロビジョニング済みデプロイ専用にする必要はありません。

プロビジョニングされたデプロイ オプションを使用してモデルを検出する

クォータを確認したら、デプロイを作成できます。 Azure AI Foundry モデル カタログに移動して、プロビジョニングされたデプロイ オプションを使用してモデルを検出します。

  1. Azure AI Foundry ポータルにサインインします。
  2. プロビジョニングされたデプロイが有効になっているサブスクリプションを選択し、クォータがあるリージョンで目的のリソースを選択します。
  3. モデル コレクション フィルターで Microsoft の Direct をフィルター処理することで、モデルを選択できます。 これらは、Azure によって直接保持および提供されるモデルであり、プロビジョニングされたスループット デプロイ オプションをサポートします。
  4. デプロイするモデルを選択し、モデル カードでモデルの詳細を確認します。

プロビジョニング済みデプロイを作成する - 容量を使用できる

プロビジョニングされたデプロイを作成するには、次の手順に従います。説明されている選択肢は、スクリーンショットに示されているエントリを反映しています。

プロビジョニングされたデプロイの、Azure AI Foundry ポータルでのデプロイ ページのスクリーンショット。

  1. [ このモデルを使用 する] をクリックし、次のフィールドを構成します。

  2. プロビジョニングされたデプロイの [デプロイの種類] ドロップダウンで必要に応じて、[グローバル プロビジョニング スループット]、[データ ゾーンプロビジョニングスループット]、または [リージョンプロビジョニングスループット] を選択します。

  3. [詳細オプション] ドロップダウン メニューを展開します。

  4. 各フィールドに値を入力します。 次に例を示します。

フィールド 説明
モデルを選択する デプロイする特定のモデルを選択します。 GPT-4
モデル バージョン デプロイするモデルのバージョンを選択します。 0613
デプロイの名前 デプロイ名は、クライアント ライブラリと REST API を使ってモデルを呼び出すためにコードで使用されます。 gpt-4
コンテンツ フィルター デプロイに適用するフィルター ポリシーを指定します。 詳細については、「コンテンツのフィルター処理」の方法を参照してください。 既定値
展開の種類 これはスループットとパフォーマンスに影響します。 デプロイの [デプロイ] ダイアログ ボックスのドロップダウンから、[グローバル プロビジョニング スループット]、[データ ゾーン プロビジョニング スループット]、または [リージョン プロビジョニング スループット] を選択します グローバルプロビジョンド・スループット
プロビジョニング済みスループット ユニット デプロイに含めるスループットの量を選択します。 100

デプロイ ダイアログには、Azure AI Foundry Provisioned Throughput の Azure Reservation を購入して、期間コミットメントの大幅な割引を取得できることを示す通知が表示されます。

デプロイ設定を入力したら、[Confirm Pricing]\(価格の確認\) をクリックして続行します。 価格の確認ダイアログが表示され、期間割引を提供する Azure 予約を利用せず、時間単位で料金を支払うことを選択した場合のデプロイの定価が表示されます。

コストについて不明な点がある場合は、デプロイをキャンセルし、プロビジョニングされたデプロイの支払いモデルと基礎となるコストを理解してから次に進みます。 この手順を踏むことで、支払い請求書に予期しない高額請求が記載されるのを防ぐことができます。 ご自身の知識を深めるためのリソースについては、以下を参照してください。

次の図は、表示される価格の確認画面です。 表示される価格は一例です。

価格の確認画面を示すスクリーンショット。

プログラムでデプロイを作成する場合は、次の Azure CLI コマンドを使用してそれを行うことができます。 デプロイの種類を指定するには、目的のデプロイの種類に基づいて sku-nameGlobalProvisionedManagedDataZoneProvisionedManaged または ProvisionedManaged に変更します。 希望するプロビジョニングされたスループット ユニットの数で sku-capacity を更新します。

az cognitiveservices account deployment create \
--name <myResourceName> \
--resource-group <myResourceGroupName> \
--deployment-name MyModel \
--model-name GPT-4 \
--model-version 0613  \
--model-format OpenAI \
--sku-capacity 100 \
--sku-name ProvisionedManaged

REST、ARM テンプレート、Bicep、Terraform を使用してデプロイを作成することもできます。 クォータの管理の攻略ガイドにあるデプロイの自動化に関するセクションを参照し、sku.nameGlobalProvisionedManaged ではなく DataZoneProvisionedManagedProvisionedManaged、または Standard に置き換えます。

プロビジョニング済みデプロイを作成する - 容量使用不可

容量の可用性には動的な性質があるため、選択したリソースのリージョンには、指定したモデル、バージョン、PTU 数のデプロイを作成できるだけのサービス容量がない可能性があります。

この場合、 Azure AI Foundry ポータル のウィザードによって、使用可能なクォータと容量を持つ他のリージョンに移動し、目的のモデルのデプロイを作成します。 このような場合、デプロイ ダイアログは次のようになります。

使用可能な容量がないプロビジョニング済みデプロイに関する、Azure AI Foundry ポータルでのデプロイ ページのスクリーンショット。

注意事項:

  • 使用できるクォータ内にある PTU 数と、現時点でデプロイできる数を示すメッセージが表示されます。
  • サービス容量を超える PTU 数を選択すると、より多くの容量を取得するためのオプションを示すメッセージと、代替リージョンを選択できるボタンが表示されます。 [他のリージョンを表示する] ボタンをクリックすると、デプロイを作成できる Azure AI Foundry リソースの一覧と、各リージョンで使用可能なクォータとサービス容量に基づいて作成できる最大サイズのデプロイが表示されるダイアログが表示されます。

別のリソースと Azure リージョンを選択するための、Azure AI Foundry ポータルでのデプロイ ページのスクリーンショット。

リソースを選択して [リソースの切り替え] をクリックすると、選択したリソースを使用してデプロイ ダイアログが再表示されます。 そうすると、新しいリージョンでのデプロイの作成に進むことができます。

クォータを使用して新しいデプロイまたは交換モデルを作成する

サブスクリプションとリージョンで引き続きクォータを使用できる場合は、Microsoft から直接ホストおよび販売される他のモデルに対して、プロビジョニングされた新しいデプロイを作成できます。

手順は、上記の例と同じです。 新しいデプロイを作成すると、デプロイ ウィジェットで使用できる使用可能なクォータの合計が表示されます。 次のスクリーンショットでは、使用可能なクォータは 250 ユニットです。

フラッグシップ モデルをデプロイするための代替 PTU のスクリーンショット。

新しいモデルをデプロイしたら、 AI Foundry ポータルでクォータの使用状況を確認できます。 新しいクォータを要求するか、既存のデプロイを削除して、プロビジョニングされた新しいデプロイの PTU クォータを解放することで、クォータを管理できます。

クォータ ページの代替可能なPTUクォータのスクリーンショット。

必要に応じて予約を購入する

デプロイの作成後、Azure Reservation を通じて期間割引を購入することができます。 Azure Reservation では、数日を超えてデプロイを使用する予定のユーザーに対して、1 時間あたりの料金を大幅に割り引くことができます。

購入モデルと予約の詳細については、次を参照してください。

Von Bedeutung

モデルのデプロイに使用できる容量の可用性は動的であり、リージョンやモデルによって頻繁に変化します。 使用する PTU 以上の予約を購入しないようにするには、最初にデプロイを作成してから、デプロイした PTU をカバーする Azure 予約を購入します。 このベスト プラクティスにより、予約割引を最大限に活用し、使用できない期間コミットメントを購入することを防ぐことができます。

最初の推論呼び出しを行う

プロビジョニングされたデプロイの推論コードは、標準のデプロイの種類と同じです。 次のコード スニペットは、GPT-4 モデルへのチャット入力候補呼び出しを示しています。 これらのモデルをプログラムで初めて使う場合は、クイックスタート ガイドから始めることをお勧めします。 バージョン 1.0 以降の OpenAI ライブラリを使用することをお勧めします。理由は、ライブラリ内の再試行ロジックが含まれるためです。

    import os
    from openai import AzureOpenAI

    client = AzureOpenAI(
        azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"), 
        api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
        api_version="2024-10-21"
    )

    response = client.chat.completions.create(
        model="gpt-4", # model = "deployment_name".
        messages=[
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},
            {"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},
            {"role": "user", "content": "Do other Azure services support this too?"}
        ]
    )

    print(response.choices[0].message.content)

Von Bedeutung

運用環境では、Azure Key Vault などの資格情報を格納してアクセスする安全な方法を使用します。 資格情報のセキュリティの詳細については、この セキュリティ に関する記事を参照してください。

予想されるスループットについて

エンドポイントで達成できるスループットの量は、デプロイされた PTU の数、入力サイズ、出力サイズ、呼び出しレートをかけ合わせたものです。 同時呼び出しの数と処理されるトークンの合計数は、これらの値によって異なる場合があります。 デプロイのスループットを決定するための推奨される方法は次のとおりです。

  1. サイズの見積もりには容量計算ツールを使用します。 容量計算ツールは 、Azure AI Foundry ポータル の [クォータ] ページと [プロビジョニング済み] タブにあります。
  2. 実際のトラフィック ワークロードを使用して負荷のベンチマークを実行します。 ベンチマークの詳細については、ベンチマークのセクションを参照してください。

デプロイ使用率を測定する

指定された数のプロビジョニングされたスループット ユニット (PTU) をデプロイすると、そのエンドポイントで、設定された量の推論スループットが使用できるようになります。 このスループットの使用率は、モデル、モデル バージョンの呼び出し速度、プロンプトのサイズ、生成サイズに基づく複雑な数式です。 この計算を簡略化するために、Azure Monitor に使用率メトリックが用意されています。 使用率が 100% を超えて上昇した場合、新しい呼び出しでデプロイから 429 が返されます。 プロビジョニングされた使用率は次のように定義されています。

PTU デプロイ使用率 = (一定期間に消費された PTU) / (その期間内にデプロイされた PTU)

使用率のメジャーは、リソースの Azure-Monitor セクションで確認できます。 監視ダッシュボードにアクセスするには、https://portal.azure.com にサインインし、Azure OpenAI リソースに移動して、左側のナビゲーションから [メトリック] ページを選択します。 メトリックのページで、"Provisioned-managed utilization V2" メトリックを選択します。 リソースに複数のデプロイがある場合は、[分割を適用する] ボタンをクリックして、デプロイごとに値を分割する必要もあります。

Azure portal 内のリソースのメトリック ブレードのプロビジョニングされたマネージド使用率のスクリーンショット。

デプロイの監視の詳細については、「 Azure OpenAI の監視 」ページを参照してください。

高使用率を処理する

プロビジョニングされたデプロイでは、特定のモデルを実行するために割り当てられたコンピューティング容量が提供されます。 Azure Monitor の 'Provisioned-Managed 使用率 V2' メトリックは、デプロイの使用率を 1 分単位で測定します。 また、プロビジョニングされたマネージド デプロイは最適化され、受け入れられた呼び出しは、呼び出しごとに一貫した最大待機時間で処理されます。 ワークロードが割り当てられた容量を超えると、使用率が 100% を下回るまで、サービスからは 429 HTTP 状態コードが返されます。 再試行までの時間は、retry-afterretry-after-ms の応答ヘッダーで提供され、それぞれ秒とミリ秒の単位で時間が示されます。 このアプローチを使用すると、呼び出しごとの待機時間の目標を維持しながら、高負荷の状況を処理する方法 (たとえば再試行や別のエクスペリエンスまたはエンドポイントへの転送など) を開発者が制御できます。

429 応答を受け取ったらどうすればよいですか?

429 応答は、割り当てられた PTU が呼び出し時にすべて消費されていることを示します。 この応答には、次の呼び出しが受け入れられるまで待機する時間を示す、retry-after-ms および retry-after ヘッダーが含まれます。 429 応答についてどのような処理方法を選ぶかは、アプリケーションの要件によって異なります。 次にいくつかの考慮事項を示します。

  • 呼び出しごとの待機時間が長くても問題ない場合は、クライアント側の再試行ロジックを実装して retry-after-ms の時間だけ待機し、再試行します。 この方法を使用すると、デプロイでのスループットを最大化できます。 Microsoft が提供するクライアント SDK では、既に適切な既定値で処理されています。 ユース ケースに基づいて、さらにチューニングが必要になる場合があります。
  • トラフィックを他のモデル、デプロイ、またはエクスペリエンスにリダイレクトすることを検討してください。 このアクションは 429 信号を受信するとすぐに実行できるため、この方法は最も低遅延の解決策です。 429 信号は、高使用率にプッシュする場合の予期しないエラー応答ではなく、プロビジョニングされたデプロイのキューと高負荷を管理するための設計の一部です。

クライアント ライブラリ内の再試行ロジックを変更する

Azure OpenAI SDK の既定では、クライアントのバックグラウンドで 429 応答を (最大再試行回数まで) 再試行します。 ライブラリは retry-after の時間を優先します。 エクスペリエンスに合わせて再試行の動作を変更することもできます。 Python ライブラリの例を次に示します。

max_retries オプションを使用して、再試行設定を構成するか無効にすることができます。

from openai import AzureOpenAI

# Configure the default for all requests:
client = AzureOpenAI(
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"),
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),
    api_version="2024-10-21",
    max_retries=5,# default is 2
)

# Or, configure per-request:
client.with_options(max_retries=5).chat.completions.create(
    model="gpt-4", # model = "deployment_name".
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},
        {"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},
        {"role": "user", "content": "Do other Azure services support this too?"}
    ]
)

ベンチマークを実行する

インスタンスの正確なパフォーマンスとスループットの機能は、行う要求の種類と正確なワークロードによって異なります。 ワークロードのスループットを判断する最良の方法は、独自のデータに対してベンチマークを実行することです。

この作業を支援するために、ベンチマーク ツールには、デプロイに対してベンチマークを簡単に実行する方法が用意されています。 このツールには、構成済みのワークロード シェイプがいくつか用意されており、主要なパフォーマンス メトリックが出力されます。 このツールと構成設定の詳細については、GitHub リポジトリの https://github.com/Azure/azure-openai-benchmark を参照してください。

次のワークフローをお勧めします。

  1. 容量計算ツールを使用してスループットの PTU を見積もります。
  2. このトラフィック シェイプでベンチマークを長時間 (10 分以上) 実行すると、安定した状態の結果が観察されます。
  3. ベンチマーク ツールと Azure Monitor からの使用率、処理されたトークン数、呼び出しレートの値を確認します。
  4. クライアント実装を使用して、独自のトラフィック シェイプとワークロードでベンチマークを実行します。 必ず Azure OpenAI クライアント ライブラリまたはカスタム ロジックを使用して再試行ロジックを実装します。

次のステップ