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