Azure OpenAI Service の監視

Azure リソースに依存するクリティカルなアプリケーションとビジネス プロセスがある場合は、それらのリソースの可用性、パフォーマンス、操作を監視する必要があります。

この記事では、Azure OpenAI Service によって生成される監視データについて説明します。 Azure OpenAI は、Azure Monitor を使用する Azure AI サービスの一部です。 そのサービスを使用するすべての Azure サービスに共通する Azure Monitor の機能に馴染みがない場合は、「Azure Monitor を使用した Azure リソースの監視」を参照してください。

ダッシュボード​​

Azure OpenAI からは、Azure OpenAI リソースのそれぞれに面倒な設定のないダッシュボードが提供されます。 監視ダッシュボードにアクセスするには、https://portal.azure.com にサインインし、いずれかの Azure OpenAI リソースの概要ウィンドウを選択します。

Azure portal の Azure OpenAI リソース用の既定のダッシュボードを示すスクリーンショット。

ダッシュボードは 4 つのカテゴリ、すなわち、HTTP 要求トークンベースの使用PTU 使用率微調整にグループ化されます。

Azure Monitor でのデータ収集とルーティング

Azure OpenAI は、その他の Azure リソースと同じ種類の監視データを収集します。 アクティビティ ログ、リソース ログ、仮想マシン ログ、プラットフォーム メトリックにデータを生成するように Azure Monitor を構成できます。 詳細については、「Azure リソースからのデータの監視」を参照してください。

プラットフォーム メトリックと Azure Monitor アクティビティ ログは自動的に収集され、保存されます。 このデータは、診断設定を使用することで他の場所にルーティングされます。 Azure Monitor リソース ログは、診断設定を作成し、ログを 1 つ以上の場所にルーティングするまでは収集および保存されません。

診断設定を作成するときは、収集するログのカテゴリを指定します。 Azure portal、Azure CLI、または PowerShell を使用した診断設定の作成の詳細については、「Azure でプラットフォーム ログとメトリックを収集するための診断設定を作成する」を参照してください。

診断設定を使用して Azure Monitor ログにデータを送信すると、その他の関連するコストが発生することに注意してください。 詳細については、「Azure Monitor ログのコストの計算とオプション」を参照してください。

収集できるメトリックとログについては、次のセクションで説明します。

メトリックの分析

Azure portal の Azure Monitor ツールを使用して、Azure OpenAI Service リソースのメトリックを分析できます。 Azure OpenAI リソースの [概要] ページで、左ペインの [監視] の下にある [メトリック] を選択します。 詳細については、「Azure Monitor メトリックス エクスプローラーでの作業開始」を参照してください。

Azure OpenAI には、Azure AI サービスのサブセットとの共通点があります。 Azure Monitor によって収集される、Azure OpenAI、および類似する Azure AI サービスのすべてのプラットフォーム メトリックの一覧については、「Microsoft.CognitiveServices/accounts のサポート対象メトリック」を参照してください。

Cognitive Services メトリック

これらは、すべての Azure AI サービス リソースに共通するレガシ メトリックです。 Azure OpenAI でこれらのメトリックを使用することは、現在推奨されていません。

Azure OpenAI のメトリック

Note

プロビジョニングされたマネージド使用率メトリックは非推奨になり、推奨されなくなりました。 このメトリックは、プロビジョニングされたマネージド使用率 V2 メトリックに置き替えられました。

次の表は、Azure OpenAI で使用できるメトリックの現在のサブセットをまとめたものです。

メトリック カテゴリ 集計 説明 Dimensions
Azure OpenAI Requests HTTP Count 一定期間に Azure OpenAI API に対して行われた呼び出しの合計数。 PayGo、PTU、PTU マネージド SKU に適用されます。 ApiNameModelDeploymentNameModelNameModelVersionOperationNameRegionStatusCodeStreamType
Generated Completion Tokens 使用方法 SUM Azure OpenAI モデルから生成されたトークン (出力) の数。 PayGo、PTU、PTU マネージド SKU に適用されます。 ApiNameModelDeploymentNameModelNameRegion
Processed FineTuned Training Hours 使用方法 SUM Azure OpenAI 微調整モデルで処理されたトレーニング時間数。 ApiNameModelDeploymentNameModelNameRegion
Processed Inference Tokens 使用方法 SUM Azure OpenAI モデルで処理された推論トークンの数。 プロンプト トークン (入力) + 生成されたトークンとして計算されます。 PayGo、PTU、PTU マネージド SKU に適用されます。 ApiNameModelDeploymentNameModelNameRegion
Processed Prompt Tokens 使用方法 SUM Azure OpenAI モデルで処理されたプロンプト トークン (入力) の合計数。 PayGo、PTU、PTU マネージド SKU に適用されます。 ApiNameModelDeploymentNameModelNameRegion
Provision-managed Utilization V2 使用方法 Average プロビジョニングマネージド使用率は、プロビジョニングされ、管理対象となる特定のデプロイの使用率です。 (使用された PTU/デプロイされた PTU)*100 として計算されます。 使用率が 100% 以上の場合、呼び出しが調整され、429 エラー コードが返されます。 ModelDeploymentNameModelNameModelVersionRegionStreamType

診断設定を構成する

すべてのメトリックは、Azure Monitor の診断設定を使用してエクスポートできます。 Azure Monitor Log Analytics クエリを使用してログとメトリック データを分析するには、Azure OpenAI リソースと Log Analytics ワークスペースの診断設定を構成する必要があります。

  1. Azure OpenAI リソース ページの [監視] で、左ペインの [診断設定] を選択します。 [診断設定] ページで、[診断設定の追加] を選択します。

    Azure portal で Azure OpenAI リソースの [診断設定] ページを開く方法を示すスクリーンショット。

  2. [診断設定] ペインで、次のフィールドを構成します。

    1. [Log Analytics ワークスペースへの送信] を選択します。
    2. ご自身の Azure アカウントのサブスクリプションを選択します。
    3. Log Analytics ワークスペースを選択します。
    4. [ログ] の下の [allLogs] を選択します。
    5. [メトリック][AllMetrics] を選択します。

    Azure portal で Azure OpenAI リソースの診断設定を構成する方法を示すスクリーンショット。

  3. [診断設定の名前] を入力して、構成を保存します。

  4. [保存] を選択します。

診断設定を構成したら、Log Analytics ワークスペースで Azure OpenAI リソースのメトリックとログ データを操作できます。

ログの分析

Azure Monitor ログのデータはテーブルに格納され、各テーブルには独自の一意のプロパティ セットがあります。

Azure Monitor 内のすべてのリソース ログには、同じフィールドの後にサービス固有のフィールドがあります。 共通スキーマの詳細については、「Azure リソース ログの共通およびサービス固有のスキーマ」を参照してください。

アクティビティ ログは、サブスクリプションレベルのイベントに関する分析情報を提供する Azure のプラットフォーム ログの一種です。 このログは個別に表示することも、Azure Monitor ログにルーティングすることもできます。 Azure portal では、Azure Monitor ログのアクティビティ ログを使用して、Log Analytics で複雑なクエリを実行できます。

Azure OpenAI、および類似する Azure AI サービスで使用できるリソース ログの種類の一覧については、「Azure リソース プロバイダー操作」の「Microsoft.CognitiveServices」を参照してください。

Kusto クエリを使用する

Azure OpenAI モデルをデプロイしたら、Azure AI Studioプレイグラウンド環境を使用して、いくつかの入力候補呼び出しを送信できます。

Azure OpenAI Studio プレイグラウンドで Azure OpenAI リソースの入力候補を生成する方法を示すスクリーンショット。

[入力候補プレイグラウンド] または [チャット入力候補プレイグラウンド] に入力したテキストによって、Azure OpenAI リソースのメトリックとログ データが生成されます。 リソースの Log Analytics ワークスペースでは、Kusto クエリ言語を使用して監視データに対してクエリを実行できます。

重要

Azure OpenAI リソース ページの [クエリを開く] オプションでは、Azure Resource Graph が参照されますが、これについてはこの記事では説明しません。 次のクエリでは、Log Analytics のクエリ環境を使用します。 必ず「診断設定を構成する」の手順に従って Log Analytics ワークスペースを準備してください。

  1. Azure OpenAI リソース ページの左ペインの [監視] で、[ログ] を選択します。

  2. Azure OpenAI リソースの診断で構成した Log Analytics ワークスペースを選択します。

  3. [Log Analytics ワークスペース] ページの左ペインの [概要] で、[ログ] を選択します。

    Azure portal に、既定でサンプル クエリと候補を含む [クエリ] ウィンドウが表示されます。 このウィンドウは閉じても構いません。

次の例では、[クエリ] ウィンドウの上部にある編集領域に Kusto クエリを入力し、[実行] を選択します。 クエリ結果は、クエリ テキストの下に表示されます。

次の Kusto クエリは、リソースに関する Azure Diagnostics (AzureDiagnostics) データの初期分析に役立ちます。

AzureDiagnostics
| take 100
| project TimeGenerated, _ResourceId, Category, OperationName, DurationMs, ResultSignature, properties_s

このクエリは、100 個のエントリのサンプルを返し、ログ内の使用可能なデータ列のサブセットを表示します。 クエリの結果で、テーブル名の横にある矢印を選択して、使用可能なすべての列と関連するデータ型を表示することができます。

Azure OpenAI リソースに関する Azure Diagnostics データに対する Log Analytics クエリの結果を示すスクリーンショット。

使用可能なすべてのデータ列を表示するには、クエリからスコープ パラメータ行 | project ... を削除します。

AzureDiagnostics
| take 100

リソースの Azure メトリック (AzureMetrics) データを調べるには、次のクエリを実行します。

AzureMetrics
| take 100
| project TimeGenerated, MetricName, Total, Count, Maximum, Minimum, Average, TimeGrain, UnitName

このクエリは、100 個のエントリのサンプルを返し、使用可能な Azure メトリック データ列のサブセットを表示します。

Azure OpenAI リソースに関する Azure メトリック データに対する Log Analytics クエリの結果を示すスクリーンショット。

Note

リソースの Azure OpenAI メニューで [監視]>[ログ] を選択すると、クエリ スコープが現在のリソースに設定された状態で Log Analytics が開きます。 表示されるログ クエリには、その特定のリソースからのデータのみが含まれます。 他のリソースのデータや他の Azure サービスのデータを含むクエリを実行するには、Azure portal の [Azure Monitor] メニューから [ログ] を選択します。 詳細については、「Azure Monitor Log Analytics のログ クエリのスコープと時間範囲」を参照してください。

アラートを設定する

Azure Monitor のアラートは、監視データで重要な状態が見つかると事前に通知します。 これにより、ユーザーがシステムの問題が気付く前に、これを識別して対処できます。 アラートはメトリックログアクティビティ ログに対して設定できます。 アラートの種類に応じて、さまざまな利点と欠点があります。

組織ごとにアラートのニーズは異なり、時間の経過と伴って変化する可能性があります。 一般には、すべてのアラートはアクション可能で、アラートが発生した場合の具体的な意図を持つ応答を備えている必要があります。 アラートに即時応答が必要ない場合は、アラートではなくレポートで状態をキャプチャできます。 一部のユース ケースでは、特定のエラー状態が存在するたびにアラートが必要になる場合があります。 それ以外の場合は、指定した期間に特定のしきい値を超えるエラーに対してアラートが必要になる場合があります。

特定のしきい値を下回るエラーは、多くの場合、Azure Monitor ログ内のデータの定期的な分析の中で評価できます。 ログ データを長期間にわたって分析すると、予想される期間に特定の状態が発生しない場合があります。 アラートを使用してこの状態を追跡できます。 ログにあるイベントが存在しないことは、エラーと同じくらい重要なシグナルである場合があります。

Azure OpenAI を使用して開発しているアプリケーションの種類によっては、Azure Monitor Application Insights によって、アプリケーション層でより多くの監視のメリットを得られる場合があります。

次のステップ