AI Gateway 対応の推論テーブルを使用して、提供されたモデルを監視する
プレビュー
この機能は パブリック プレビュー段階です。
この記事では、外部モデル、プロビジョニングされたスループットワークロード、またはエージェントモデルの推論テーブルに適用されるトピックについて説明します。 カスタムモデルについては、モニタリングモデルとデバッグモデルの推論テーブルを参照してください。
この記事では AI モニタリング提供モデルのゲートウェイ対応推論テーブルについて説明します。 推論テーブルは、エンドポイントの受信要求と送信応答を自動的にキャプチャし、それらを Unity Catalog Delta テーブルとしてログに記録します。 この表のデータを使用して、機械学習モデルを監視、評価、比較、および微調整できます。
AI Gateway 対応推論テーブルとは
AI Gateway 対応の推論テーブルは、Mosaic AI Model Serving エンドポイントからのサービングリクエストの入力と応答(予測)を継続的にログに記録し、それらを Unity Catalog の Delta テーブルに保存することで、モデルのモニタリングと診断を簡素化します。 その後、Databricks SQL クエリやノートブックなど、Databricks プラットフォームのすべての機能を使用して、モデルを監視、デバッグ、最適化できます。
既存または新しく作成されたモデルサービングエンドポイントで推論テーブルを有効にでき、そのエンドポイントへのリクエストは Unity Catalogのテーブルに自動的に記録されます。
推論テーブルの一般的なアプリケーションには、次のようなものがあります。
- トレーニング コーパスを作成します。 推論テーブルをグラウンドトゥルースラベルと結合することで、モデルの再トレーニングや微調整、改善に使用できるトレーニングコーパスを作成できます。 Databricks ジョブを使用すると、継続的なフィードバックループを設定し、再トレーニングを自動化できます。
- データとモデルの品質を監視します。 レイクハウスモニタリングを使用して、モデルのパフォーマンスとデータドリフトを継続的に監視できます。 レイクハウスモニタリングは、関係者と共有できるデータとモデル品質ダッシュボードを自動的に生成します。 さらに、アラートを有効にして、受信データのシフトやモデルのパフォーマンスの低下に基づいてモデルを再トレーニングする必要があるタイミングを知ることができます。
- 本番運用の問題をデバッグします。 推論テーブルは、HTTP ステータスコード、リクエストとレスポンスの JSON コード、モデルの実行時間、モデルの実行時間中の トレース出力 などのデータをログに記録します。 このパフォーマンス・データは、デバッグ目的で使用できます。 また、推論テーブルでヒストリカルデータを使用して、履歴リクエストに対するモデルのパフォーマンスを比較することもできます。
- デプロイされた AI エージェントを監視します。 推論テーブルには、AI エージェントの MLflow トレースも格納できるため、問題のデバッグとパフォーマンスの監視に役立ちます。
必要条件
-
AI Gateway 対応推論テーブルは、 プロビジョニングされたスループットを使用するエンドポイント、 外部モデルを提供するエンドポイント、 またはデプロイされた AI エージェントを提供するエンドポイントでのみサポートされます。
-
次のいずれかの Databricks ワークスペース。
-
プライベート接続の場合は、 AWS PrivateLink を使用してプライベート接続を有効にするのステップを完了します。 AWS PrivateLink はデフォルトでサポートされていません。
-
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 エージェントのトレースの詳細については、「 推論テーブルを使用してデプロイされたエージェントを監視する」を参照してください。
推論テーブル内の結果のクエリと分析
提供したモデルの準備ができたら、モデルに対して行われたすべてのリクエストは、レスポンスとともに推論テーブルに自動的に記録されます。 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 |
| レビューアプリからのエージェントの応答に関するフィードバックのデータ。 | 文字列 |
| 応答のために取得されたドキュメントに関するフィードバックのデータ。 | 文字列 |
制限
-
プロビジョニングされたスループットワークロード:
- プロビジョニングされたスループットを使用する新しいモデルサービングエンドポイントを作成する場合は、AI Gateway 対応の推論テーブルのみがサポートされます。
- プロビジョニング スループットを使用する既存のモデルサービング エンドポイントがあり、 以前に推論テーブルが設定されていなかった 場合は、 AI ゲートウェイ対応推論テーブルを使用するように更新できます。
- プロビジョニングされたスループットを使用する既存のモデルサービングエンドポイントがあり、 現在または以前に推論テーブルが設定されている場合 、AI Gateway 対応推論テーブルを使用するように更新 することはできません 。
- ストリーミング AI エージェントの応答ログの場合、ChatCompletion と互換性のあるフィールドとトレースのみが集計されます。
-
推論テーブルのログ配信は現在ベストエフォートですが、リクエストから 1 時間以内にログが利用可能になることが期待できます。 詳細については、 Databricks アカウントチームにお問い合わせください。
-
ログに記録される要求と応答の最大サイズは 1 MiB (1,048,576 バイト) です。 これを超える要求ペイロードと応答ペイロードは
null
としてログに記録され、logging_error_codes
にはMAX_REQUEST_SIZE_EXCEEDED
またはMAX_RESPONSE_SIZE_EXCEEDED
が入力されます。
AI Gateway に固有の制限については、 制限事項を参照してください。一般的なモデルサービングエンドポイントの制限については、 モデルサービングの制限とリージョンを参照してください。