この記事では、Azure API Managementで言語モデル API の要求と応答のAzure Monitorログを設定する方法について説明します。
API Management 管理者は、言語モデルの API 要求ログと応答ログを、次のようなシナリオで API Management ゲートウェイ ログと共に使用できます。
課金の使用量を計算します。 各アプリケーションまたは API コンシューマーによって消費されたトークンの数に基づいて課金の使用状況メトリックを計算します (たとえば、サブスクリプション ID または IP アドレスでセグメント化)。
メッセージを検査します。 デバッグ、監査、モデルの評価に役立つプロンプトと完了を検査および分析します。
詳細については、以下をご覧ください。
[前提条件]
- Azure API Management インスタンス。
- Azure API Managementと統合されたマネージド言語モデルのチャット補完 API。 たとえば、 Microsoft Foundry API をインポートします。
- Azure Log Analytics ワークスペースへのアクセス。
- API Management で診断設定とアクセス ログを構成するための適切なアクセス許可。
言語モデル API ログの診断設定を有効にする
診断設定を有効にして、ゲートウェイが大規模言語モデル REST API に対して処理する要求をログに記録します。 要求ごとに、Azure Monitorは次の内容を受け取ります。
プロンプト トークン、完了トークン、合計トークンなど、トークンの使用状況に関するデータ
使用されるモデルの名前
必要に応じて、要求メッセージと応答メッセージにおけるプロンプトとその完了
Azure Monitorは、必要に応じて、後で再構築するために、大きな要求と応答をシーケンス番号を持つ複数のログ エントリに分割します。
言語モデル API ログを Log Analytics ワークスペースに転送する診断設定を有効にするには、次の手順に従います。 詳細については、「 Azure Monitor ログの診断設定を有効にする」を参照してください。
Azure portal で、Azure API Management インスタンスに移動します。
左側のメニューの [ 監視] で、[ 診断設定>+ 診断設定の追加] を選択します。
AI ゲートウェイ ログを Log Analytics ワークスペースに送信するように設定を構成します。
- [ ログ] で、 生成 AI ゲートウェイに関連するログを選択します。
- [ 宛先の詳細] で、[ Log Analytics ワークスペースに送信] を選択します。
他の設定を確認または構成し、必要に応じて変更を加えます。
保存 を選択します。
言語モデル API の要求または応答のログ記録を有効にする
すべての API の診断設定を有効にしたり、特定の API のログ記録をカスタマイズしたりできます。 API の言語モデル要求と応答メッセージの両方をログに記録するには、次の手順に従います。 詳細については、「 API ログ設定の変更」を参照してください。
- API Management インスタンスの左側のメニューで、API>API を選択し、API の名前を選択します。
- 上部のバーから [設定] を 選択します。
- Diagnostic Logs セクションまで下にスクロールし、Azure Monitor を選択します。
- [LLM メッセージのログ記録] で、[有効] を選択します。
- [ログ プロンプト] を選択し、サイズ (32768 など) をバイト単位で入力します。
- [ログの完了を記録]を選択し、バイト単位でサイズを入力します (例: 32768)。
- その他の設定を確認し、必要に応じて変更を加えます。 保存 を選択します。
注
コレクションを有効にすると、最大 32 KB のサイズの言語モデル要求または応答メッセージが 1 つのエントリで送信されます。 32 KB を超えるメッセージは分割され、後で再構築するためにシーケンス番号を含む 32 KB のチャンクに記録されます。 要求メッセージと応答メッセージは、それぞれ 2 MB を超えることはできません。
言語モデル API の分析ブックを確認する
Azure Monitor ベースの Analytics ダッシュボードには、Log Analytics ワークスペースで集計されたデータを使用した言語モデル API の使用状況とトークンの使用量に関する分析情報が表示されます。 詳細については、「Get API analytics in Azure API Management」を参照してください。
- API Management インスタンスの左側のメニューで、[ 監視>Analytics] を選択します。
- [ 言語モデル ] タブを選択します。
- 選択した 時間範囲内の言語モデル API トークンの消費量と要求のメトリックと視覚化を確認します。
Azure Monitor ログで要求と応答を確認する
ApiManagementGatewayLlmLog ログで、言語モデルの要求と応答の詳細 (トークンの使用、使用されるモデルのデプロイ、特定の時間範囲に関するその他の詳細など) を確認します。
大きな要求と応答のチャンク されたメッセージを含む要求と応答は、 CorrelationId フィールドを使用して関連付けることができる個別のログ エントリに表示されます。
監査の目的で、次のクエリのような Kusto クエリを使用して、各要求と応答を 1 つのレコードに結合します。 追跡するフィールドを含むようにクエリを調整します。
ApiManagementGatewayLlmLog
| extend RequestArray = parse_json(RequestMessages)
| extend ResponseArray = parse_json(ResponseMessages)
| mv-expand RequestArray
| mv-expand ResponseArray
| project
CorrelationId,
RequestContent = tostring(RequestArray.content),
ResponseContent = tostring(ResponseArray.content)
| summarize
Input = strcat_array(make_list(RequestContent), " . "),
Output = strcat_array(make_list(ResponseContent), " . ")
by CorrelationId
| where isnotempty(Input) and isnotempty(Output)
モデル評価のために Microsoft Foundry にデータをアップロードする
Microsoft Foundry では、言語モデルのログ データを model 評価のデータセットとしてエクスポートできます。 モデル評価では、組み込みの評価メトリックまたはカスタム評価メトリックを使用して、テスト モデルまたはデータセットに対して生成 AI モデルとアプリケーションのパフォーマンスを評価できます。
モデル評価のデータセットとして言語モデル ログを使用するには:
- 前のセクションに示すように、言語モデルの要求メッセージと応答メッセージを、対話ごとに 1 つのレコードに結合します。 モデル評価に使用するフィールドを含めます。
- データセットを CSV 形式にエクスポートします。これは Microsoft Foundry と互換性があります。
- Microsoft Foundry ポータルで、データセットをアップロードして評価する新しい評価を作成します。
Microsoft Foundry でモデル評価を作成して実行する方法の詳細については、Microsoft Foundry ポータルからのRun 評価を参照してください。