AI Gateway 対応の推論テーブルを使用して、提供されたモデルを監視する
この記事では AI モニタリング提供モデルのゲートウェイ対応推論テーブルについて説明します。 推論テーブルは、エンドポイントの受信要求と送信応答を自動的にキャプチャし、それらを Unity Catalog Delta テーブルとしてログに記録します。 この表のデータを使用して、機械学習モデルを監視、評価、比較、および微調整できます。
AI Gateway 対応推論テーブルとは
AI Gateway 対応の推論テーブルは、Mosaic AI Model Serving エンドポイントからのサービングリクエストの入力と応答(予測)を継続的にログに記録し、それらを Unity Catalog の Delta テーブルに保存することで、モデルのモニタリングと診断を簡素化します。 その後、Databricks SQL クエリやノートブックなど、Databricks プラットフォームのすべての機能を使用して、モデルを監視、デバッグ、最適化できます。
既存または新しく作成されたモデルサービングエンドポイントで推論テーブルを有効にでき、そのエンドポイントへのリクエストは Unity Catalogのテーブルに自動的に記録されます。
推論テーブルの一般的なアプリケーションには、次のようなものがあります。
- トレーニング コーパスを作成します。推論テーブルをグラウンドトゥルースラベルと結合することで、モデルの再トレーニングや微調整、改善に使用できるトレーニングコーパスを作成できます。Lakeflowジョブを使用すると、継続的なフィードバックループを設定し、再トレーニングを自動化できます。
 - データとモデルの品質を監視します。データプロファイリングを使用すると、モデルのパフォーマンスとデータのドリフトを継続的に監視できます。これにより、関係者と共有できるデータとモデル品質のダッシュボードが自動的に生成されます。 さらに、受信データの変化やモデルのパフォーマンスの低下に基づいてモデルを再トレーニングする必要があるタイミングを知るためのアラートを有効にすることもできます。
 - 本番運用の問題をデバッグします。 推論テーブルは、HTTP ステータスコード、リクエストとレスポンスの JSON コード、モデルの実行時間、モデルの実行時間中の トレース出力 などのデータをログに記録します。 このパフォーマンス・データは、デバッグ目的で使用できます。 また、推論テーブルでヒストリカルデータを使用して、履歴リクエストに対するモデルのパフォーマンスを比較することもできます。
 - デプロイされた AI エージェントを監視します。 推論テーブルには、AI エージェントの MLflow トレースも格納できるため、問題のデバッグとパフォーマンスの監視に役立ちます。
 
必要条件
- 
AI Gateway 対応推論テーブルは、次のいずれかを提供するエンドポイントでのみサポートされます。
- プロビジョニングされたスループット ワークロード
 - トークン単位の従量課金 モデル
 - 外部モデル
 - カスタムモデル
 
 - 
モデルサービングがサポートされている地域の Databricks ワークスペース。 モデル サービング機能の可用性を参照してください。
 - 
ワークスペースでサーバレスコンピュートを有効にする必要があります。
 - 
Databricks では、推論テーブルのパフォーマンスを最適化するために 、予測的最適化を有効にする ことをお勧めします。
 - 
ワークスペースはUnity Catalogが有効になっていなければなりません。
 - 
エンドポイントの作成者と修飾子の両方に、エンドポイントに対する Can Manage アクセス許可が必要です。 アクセス制御リストを参照してください。
 - 
エンドポイントの作成者と修飾子の両方に、Unity Catalog で次の アクセス許可 が必要です。
USE CATALOG指定したカタログに対する権限。USE SCHEMA指定したスキーマに対する権限。CREATE TABLEスキーマ内の権限。
 
推論テーブルは、次のいずれかの操作を行うと、データのログ記録を停止したり、破損したりする可能性があります。
- テーブル スキーマを変更します。
 - テーブル名を変更します。
 - テーブルを削除します。
 - Unity Catalogカタログまたはスキーマに対する権限を失います。
 
推論テーブルの有効化と無効化
このセクションでは、Serving UI を使用して推論テーブルを有効または無効にする方法を示します。 推論テーブルの所有者は、エンドポイントを作成したユーザーです。 テーブル上のすべてのアクセス制御リスト (ACL) は、標準の Unity Catalog アクセス許可に従い、テーブルの所有者が変更できます。
エンドポイントの作成時に推論テーブルを有効にするには、次の手順に従います。
- Databricks Mosaic AI UI で サービング をクリックします。
 - サービングエンドポイントの作成 をクリックします。
 - AI Gatewayセクションで、 推論テーブルを有効にする を選択します。
 
既存のエンドポイントで推論テーブルを有効にすることもできます。 既存のエンドポイント設定を編集するには、次の手順を実行します。
- AI Gatewayセクションで、 Edit AI Gateway をクリックします。
 - 推論テーブルを有効にする を選択します。
 
推論テーブルを無効にするには、次の手順に従います。
- エンドポイント ページに移動します。
 - AI Gatewayの編集 をクリックします。
 - 推論テーブルを有効にする をクリックして、チェックマークを外します。
 - AI Gateway の仕様に問題がなければ、 更新 をクリックします。
 
AI エージェントの推論テーブルを有効にする
また、デプロイされた AI エージェントの推論テーブルを有効にすることもでき、これらの推論テーブルにはペイロードと要求の詳細、MLflow トレース ログが格納されます。
次の方法を使用して、AI エージェントの推論テーブルを有効にします。
mlflow.deploy()API を使用してデプロイされたエージェントでは、推論テーブルが自動的に有効になります。生成AIアプリケーションのためのエージェントのデプロイを参照してください。- プログラムによるデプロイの場合は、エンドポイント構成で 
ENABLE_MLFLOW_TRACING環境変数をTrueに設定します。 プレーンテキスト環境変数の追加を参照してください。 
MLflow エージェントのトレースの詳細については、「MLflow Tracing - 生成AI オブザーバビリティ」を参照してください。
推論テーブル内の結果のクエリと分析
提供したモデルの準備ができたら、モデルに対して行われたすべてのリクエストは、レスポンスとともに推論テーブルに自動的に記録されます。 UI でテーブルを表示したり、Databricks SQL またはノートブックからテーブルをクエリしたり、REST API を使用してテーブルをクエリしたりできます。
UI でテーブルを表示するには、次のようにします。 エンドポイントページで、推論テーブルの名前をクリックして、カタログエクスプローラーでテーブルを開きます。

Databricks SQL または Databricks ノートブックからテーブルをクエリするには: 次のようなコードを実行して、推論テーブルをクエリできます。
SELECT * FROM <catalog>.<schema>.<payload_table>
推論テーブルのデータを、エンドポイントで提供される基盤となる基盤モデルの詳細と結合するには、次のようにします。 基盤モデルの詳細はシステムテーブルsystem.serving.served_entitiesにキャプチャされます 。
SELECT * FROM <catalog>.<schema>.<payload_table> payload
JOIN system.serving.served_entities se on payload.served_entity_id = se.served_entity_id
AI Gateway 対応推論テーブル スキーマ
AI Gateway を使用して有効にした推論テーブルには、次のスキーマがあります。
列名  | 説明  | タイプ  | 
|---|---|---|
  | モデルサービングリクエストが受信されたUTCの日付。  | 日付  | 
  | すべてのモデルサービング要求にアタッチされる Databricksが生成するリクエストの識別子。  | 文字列  | 
  | モデルサービング要求本文で指定できるユーザー指定のリクエスト識別子。  | 文字列  | 
  | 要求が受信されたタイムスタンプ。  | Timestamp  | 
  | モデルから返された HTTP 状態コード。  | INT  | 
  | 要求がダウンサンプリングされた場合に使用されるサンプリングの割合。 この値は 0 から 1 までで、1 は受信要求の 100% が含まれていたことを表します。  | double  | 
  | モデルが推論を実行した時間 (ミリ秒単位)。 これには、オーバーヘッド ネットワークの待機時間は含まれず、モデルが予測を生成するのにかかった時間のみを表します。  | BIGINT  | 
  | モデルサービング エンドポイントに送信された未加工の要求 JSON 本文。  | 文字列  | 
  | モデルサービングエンドポイントによって返された未加工のレスポンス JSON 本文。  | 文字列  | 
  | 提供されたエンティティの一意の ID。  | 文字列  | 
  | データをログに記録できなかったときに発生したエラー。 エラーコードには、   | ARRAY  | 
  | サービスエンドポイントの呼び出しリクエストにアクセス許可が使用されるユーザーまたはサービスプリンシパルの ID。このフィールドは、ルート最適化カスタムモデルエンドポイントの  | 文字列  | 
AIエージェント推論テーブルスキーマ
リクエスト ログと評価ログは非推奨であり、将来のリリースで削除される予定です。移行ガイダンスについては、リクエスト ログと評価ログの廃止を参照してください。
AI エージェントの場合、Databricks はデプロイごとに 3 つの推論テーブルを作成し、モデルサービングエンドポイントとの間の要求と応答をログに記録します。
推論テーブル  | Databricks テーブル名の例  | テーブルの内容  | 
|---|---|---|
ペイロード  | 
  | 生の JSON 要求と応答のペイロード  | 
ペイロードリクエストログ  | 
  | 書式設定されたリクエストと応答、MLflowトレース  | 
ペイロード評価ログ  | 
  | レビューアプリで提供されるフォーマットされたフィードバック(各リクエストに対して)  | 
ユーザーは、サービス エンドポイントと対話してから 1 時間以内にペイロード テーブルのデータを期待できます。 ペイロード要求ログと評価ログは、入力に時間がかかる場合があり、未加工のペイロード テーブルから派生します。 ペイロード テーブルから要求ログと評価ログを自分で抽出できます。 ペイロード テーブルの削除と更新は、ペイロード要求ログまたはペイロード評価ログには反映されません。
以下は、ペイロードリクエストログテーブルのスキーマを示しています。
列名  | 説明  | タイプ  | 
|---|---|---|
  | すべてのモデルサービング要求にアタッチされる Databricksが生成するリクエストの識別子。  | 文字列  | 
  | モデルサービング要求本文で指定できるオプションのクライアント生成要求識別子。  | 文字列  | 
  | モデルサービングリクエストが受信されたUTCの日付。  | 日付  | 
  | モデルサービング リクエストが受信されたときのタイムスタンプ (エポックミリ秒)。  | ロング  | 
  | 要求のタイムスタンプ。  | Timestamp  | 
  | モデルから返された HTTP 状態コード。  | INT  | 
  | 要求がダウンサンプリングされた場合に使用されるサンプリングの割合。 この値は 0 から 1 までで、1 は受信要求の 100% が含まれていたことを表します。  | double  | 
  | モデルが推論を実行した実行時間 (ミリ秒単位)。 これには、オーバーヘッド ネットワークの待機時間は含まれず、モデルが予測を生成するのにかかった時間のみを表します。  | ロング  | 
  | 要求ログから抽出された会話 ID。  | 文字列  | 
  | ユーザーの会話からの最後のユーザー クエリ。  | 文字列  | 
  | ユーザーに対する最後の応答。  | 文字列  | 
  | request の文字列表現。  | 文字列  | 
  | 応答の文字列表現。  | 文字列  | 
  | 応答 Struct の   | 文字列  | 
  | 要求に関連付けられたモデルサービングエンドポイントに関連するメタデータのマップ。 このマップには、エンドポイントに使用されているエンドポイント名、モデル名、およびモデル バージョンが含まれています。  | MAP<文字列, 文字列>  | 
  | スキーマのバージョン。  | 文字列  | 
次に、ペイロード評価ログテーブルのスキーマを示します。
列名  | 説明  | タイプ  | 
|---|---|---|
  | Databricks 要求 ID。  | 文字列  | 
  | 取得評価から派生したステップ ID。  | 文字列  | 
  | 評価を作成したユーザーに関する情報を含む構造体フィールド。  | 構造体  | 
  | 要求のタイムスタンプ。  | Timestamp  | 
  | レビューアプリからのエージェントの応答に関するフィードバックのデータ。  | 文字列  | 
  | 応答のために取得されたドキュメントに関するフィードバックのデータ。  | 文字列  | 
制限
- 
カスタムモデルを提供するモデルサービングエンドポイントの推論テーブルログの配信には、約2時間かかります。
 - 
ワークロード、外部モデル、またはエージェント API 基盤モデルを提供するモデルサービングエンドポイントの推論テーブルのログ配信は、現在ベストエフォートです。 ログはリクエストから 1 時間以内に利用可能になることが期待できます。詳細については、 Databricks アカウントチームにお問い合わせください。
 - 
ログに記録される要求、応答、およびトレースの最大サイズは 1 MiB (1,048,576 バイト) です。これを超えるペイロードは
nullとしてログに記録され、logging_error_codesにはMAX_REQUEST_SIZE_EXCEEDEDまたはMAX_RESPONSE_SIZE_EXCEEDEDが入力されます。 - 
推論テーブル ログは、モデルサービング エンドポイントがエラーを返した場合にデータが入力されることは保証されません。
- カスタムモデルエンドポイントの場合、4xx または 5xx エラーのログは記録されない場合があります。
 - その他のエンドポイントでは、401、403、429、または 500 エラーのログが記録されない場合があります。
 
 
AI Gateway に固有の制限については、 制限事項を参照してください。一般的なモデルサービングエンドポイントの制限については、 モデルサービングの制限とリージョンを参照してください。