このページでは、推論テーブルを使用して Unity AI Gateway モデル サービスを監視する方法について説明します。
注
推論テーブルは、課金対象の Unity AI Gateway 機能です。 Azure Databricksは、推論テーブルが記録するリクエストとレスポンスに対して料金を請求します。 Unity AI Gatewayの料金をご覧ください。
Unity AI Gateway 推論テーブルとは
Unity AI Gateway 推論テーブルは、モデル サービスから Unity カタログ デルタ テーブルへの要求と応答をログに記録します。 このデータは、モデルの監視、デバッグ、最適化に使用できます。
一般的なユース ケースは次のとおりです。
- デバッグ: 要求と応答のペイロードを分析して問題のトラブルシューティングを行います。
- 監視: モデルのパフォーマンスを追跡し、異常を特定します。
- 最適化: 相互作用を確認して、モデルのプロンプトと構成を改善します。
- コンプライアンス: すべてのモデル操作の監査ログを保持します。
必要条件
Unity AI Gateway でサポートされているリージョン内のAzure Databricks ワークスペース。
ワークスペースに対して有効になっている Unity カタログ。 「Unity Catalog のワークスペースを有効にする」を参照してください。
モデル サービスに対する
MANAGE特権。 モデル サービスの作成者と修飾子の両方に、この特権が必要です。Unity Catalog の指定されたカタログとスキーマの
CREATE TABLE権限。指定したカタログに対する
USE CATALOG特権。指定したスキーマに対する
USE SCHEMA特権。カタログを現在のメタストアの OpenSharing カタログにすることはできません。
Databricks では、パフォーマンスを向上させるために 予測最適化 を有効にすることをお勧めします。
推論テーブルを有効にする
推論テーブルは、モデル サービスを作成した後にのみ構成できます。
推論テーブルを有効にするには:
- サイドバーで、[ AI ゲートウェイ] をクリックします。
- モデル サービス名をクリックして、モデル サービス ページを開きます。
- [セットアップ] を [推論テーブル] の横でクリックします。
- 推論テーブルを格納するカタログとスキーマを指定します。
- 保存 をクリックします。
推論テーブルの所有者は、モデル サービスを作成したユーザーです。 すべての ACL は標準の Unity カタログのアクセス許可に従い、テーブル所有者が変更できます。
注
既存のテーブルの指定はサポートされていません。 推論テーブルを有効にすると、エンドポイントが最初のリクエストを受け取った後、Azure Databricksが自動的に新しい推論テーブルを作成します。 行がテーブルに現れるまでに、エンドポイントが最初のリクエストを受け取ってから最大1時間かかることがあります。
警告
次のいずれかの操作を行うと、推論テーブルがデータのログ記録を停止したり、破損したりする可能性があります。
- テーブル スキーマを変更します。
- テーブル名を変更します。
- テーブルを削除します。
推論テーブルを無効にする
推論テーブルを無効にするには:
- サイドバーで、[ AI ゲートウェイ] をクリックします。
- モデル サービス名をクリックして、モデル サービス ページを開きます。
- 推論テーブルの横にある編集アイコンをクリック します。
- [ 推論テーブルを無効にする] をクリックします。
推論テーブルのクエリを実行する
UI でテーブルを表示したり、Databricks SQL またはノートブックからテーブルにクエリを実行したりすることもできます。
UI でテーブルを表示するには、モデル サービス ページの推論テーブル リンクをクリックして、カタログ エクスプローラーでテーブルを開きます。
Databricks SQL またはノートブックからテーブルにクエリを実行するには:
SELECT * FROM <catalog>.<schema>.<payload_table>
<catalog>、<schema>、および<payload_table>をテーブルの場所に置き換えます。
推論テーブル スキーマ
Unity AI Gateway 推論テーブルには、次のスキーマがあります。
| 列名 | タイプ | 説明 | 例 |
|---|---|---|---|
request_id |
STRING | 要求の一意の識別子。 | 7a99b43cb46c432bb0a7814217701909 |
invocation_id |
STRING | 各推論呼び出しに対する一意の識別子。 ガードレール チェックやマルチターン エージェント呼び出しなど、複数の呼び出しで同じ request_idを共有できます。
invocation_idを使用して区別します。 |
c0a8012e-9f3b-4d21-8a7e-1b2c3d4e5f60 |
request_tags |
MAP | 要求に関連付けられているタグ。 | {"team": "engineering"} |
event_time |
タイムスタンプ | 要求が受信されたときのタイムスタンプ。 | 2024-05-17T13:47:13.282-07:00 |
status_code |
INT | レスポンスのHTTPステータスコード。 | 200 |
sampling_fraction |
DOUBLE | ダウン サンプリングが使用された場合のサンプリング率。 値 1 は、ダウン サンプリングがないことを意味します。 | 1 |
latency_ms |
LONG | 合計待機時間 (ミリ秒)。 | 300 |
time_to_first_byte_ms |
LONG | 最初のバイトまでの時間 (ミリ秒)。 | 200 |
request |
STRING | 生の JSON 要求ペイロード。 | {"messages": [...], ...} |
response |
STRING | 生の JSON 応答ペイロード。 | {"choices": [...], ...} |
destination_type |
STRING | 変換先の種類 (外部モデルや基礎モデルなど)。 | PAY_PER_TOKEN_FOUNDATION_MODEL |
destination_name |
STRING | 変換先モデルまたはプロバイダーの名前。 | system.ai.gpt-5-2 |
destination_model |
STRING | 要求に使用される特定のモデル。 | GPT-5.2 |
logging_error_codes |
ARRAY | ログ記録に失敗した場合のエラー コード (たとえば、 MAX_REQUEST_SIZE_EXCEEDED)。 |
["MAX_RESPONSE_SIZE_EXCEEDED"] |
requester |
STRING | 要求を行ったユーザーまたはサービス プリンシパルの ID。 | databricks.engineer@databricks.com |
schema_version |
STRING | 推論テーブル レコードのスキーマ バージョン。 | 0 |
Limitations
- 外部ストレージ カタログのみ: 推論テーブルは、外部ストレージ カタログ内にのみ作成できます。 既定のストレージ カタログは現在サポートされていません。
- プライベート エンドポイントはサポートされていません。推論テーブルは、プライベート エンドポイントを介してセキュリティで保護されたストレージに作成できません。 「Zerobus Ingest クォータ」を参照してください。
- ベスト エフォート配信: ログは通常、要求から数分以内に参照可能ですが、配信は保証されません。
-
最大ペイロード サイズ: 10 MiB を超える要求と応答はログに記録されません。
logging_error_codes列は、これがMAX_REQUEST_SIZE_EXCEEDEDまたはMAX_RESPONSE_SIZE_EXCEEDEDでいつ発生するかを示します。 - エラー応答: 401、403、429、または 500 エラーを返す要求に対してログが設定されない場合があります。