メインコンテンツまでスキップ

モデルサービングエンドポイントでの AI Gateway の構成

備考

新しいAIゲートウェイベータ版をお試しください

新しい AI ゲートウェイ エクスペリエンスがベータ版で利用可能になりました。新しい AI ゲートウェイは、強化された機能を備えた LLM エンドポイントとコーディング エージェントを管理するためのエンタープライズ コントロール プレーンです。AI ゲートウェイ (ベータ版)を参照してください。

この記事では、モデルサービング エンドポイントでAI Gatewayを構成する方法を学習します。

必要条件

UI を使用した AI Gateway の構成

エンドポイント作成ページの AI Gateway セクションでは、AI Gateway の機能を個別に構成できます。 外部モデルサービングエンドポイントとプロビジョン済みスループットエンドポイントで利用可能なサポート機能をご覧ください。

AI Gateway の機能を構成する

次の表は、エンドポイントの作成時に Serving UI を使用して AI Gateway を構成する方法をまとめたものです。これをプログラムで行う場合は、 ノートブックの例を参照してください。

機能

有効にする方法

詳細

使用状況の追跡

使用状況の追跡を有効にする を選択して、データ使用量メトリクスの追跡と監視を有効にします。

    • Unity Catalog を有効にする必要があります。

    • 次のシステムテーブルが自動的に共有されます。

      • system.serving.endpoint_usageは、エンドポイントへの各リクエストのトークン数をキャプチャします。
      • system.serving.served_entitiesは、各基盤モデルのメタデータを格納します。 トークン単位の従量課金エンドポイントではサポート されていません
      • 使用状況追跡テーブルスキーマ」を参照してください
    • エンドポイントを管理するユーザーが使用状況の追跡を有効にする必要がある場合でも、アカウント管理者のみが served_entities テーブルまたは endpoint_usage テーブルを表示またはクエリする権限を持っています。システムテーブルへのアクセス権の付与を参照してください。

    • トークン数がモデルによって返されない場合、入力トークン数と出力トークン数は (text_length+1)/4 と推定されます。

ペイロードのロギング

[ 推論テーブルを有効にする ] を選択すると、エンドポイントからの要求と応答が Unity Catalog によって管理される Delta テーブルに自動的に記録されます。

    • Unity Catalog を有効にし、指定したカタログ スキーマでアクセス CREATE TABLE 必要があります。
    • AI Gateway によって有効になる推論テーブルには 、特定の スキーマがあります。
    • ペイロード ログ データは、エンドポイントをクエリしてから 1 時間以内にこれらのテーブルに入力されます。カスタムモデルサービングエンドポイントの待機時間の期待に関する 制限 事項を参照してください。
    • 1 MiB を超えるペイロードはログに記録されません。
    • 応答ペイロードは、返されたすべてのチャンクの応答を集計します。
    • ストリーミングがサポートされています。ストリーミング シナリオでは、応答ペイロードは、返されたチャンクの応答を集計します。
    • ルート最適化モデルサービング エンドポイントの推論テーブルはパブリック プレビュー段階です。

AIガードレール

UI での AI ガードレールの設定を参照してください。

    • ガードレールは、モデルの入力および出力で検出された安全でない有害なコンテンツとモデルが対話するのを防ぎます。
    • 出力ガードレールは、埋め込みモデルまたはストリーミングではサポートされていません。

レート制限

[レート制限] を選択して、エンドポイントがサポートできる毎分のクエリ数 (QPM) または毎分トークン数 (TPM) を管理および指定します。

  • レート制限は、エンドポイントを照会する権限を持つユーザーにのみ適用されます。 クエリベーストークンベースの レート制限は、さまざまなレベルで定義できます。
    • [ エンドポイント] フィールドを使用して、エンドポイント全体が処理できる最大 QPM または TPM を指定します。この制限は、ユーザーに関係なく、すべてのトラフィックに適用されます。
    • [ ユーザー (デフォルト)] フィールドを使用して、より具体的な カスタム レート制限 が定義されていない限り、エンドポイントのすべてのユーザーに適用される デフォルトのユーザーごとのレート制限を設定します。
    • 次のカスタム レート制限 を指定できます。
      • 個人ユーザーまたはサービスプリンシパル 。 これらは、ユーザー グループのカスタム レート制限よりも優先されます。
      • ユーザーグループ 。この制限は、グループのすべてのメンバーに対する共有レート制限です。
    • TPM レート制限は、カスタムモデルまたはエージェントを提供するサービスエンドポイントには適用できません。
    • デフォルトでは、ユーザーまたはエンドポイントに対してレート制限は設定されていません。
    • エンドポイントでは、最大 20 のレート制限と最大 5 つのグループ固有のレート制限を指定できます。
    • エンドポイント レート制限は、グローバル最大値です。この制限を超えると、ユーザー固有またはグループ固有のレート制限に関係なく、エンドポイントへのすべての要求がブロックされます。
    • エンドポイント、ユーザー、またはサービスプリンシパルにクエリベースのレート制限とトークンベースのレート制限の両方が指定されている場合は、より制限の厳しいレート制限が適用されます。
    • カスタム レート制限は、ユーザー (デフォルト) レート制限よりも優先されます。
      • ユーザーがユーザー固有の制限とグループ固有の制限の両方に属している場合、ユーザー固有の制限が適用されます。
      • ユーザーが異なる QPM レート制限と TPM レート制限を持つ複数のユーザーグループに属している場合、ユーザーがユーザーグループのすべての QPM レート制限またはすべての TPM レート制限を超えると、ユーザーはレート制限されます。

トラフィック分割

サーブされるエンティティ セクションで、特定のモデルにルーティングする トラフィックの割合 を指定します。

エンドポイントのトラフィック分割をプログラムで設定するには、エンドポイントに複数の外部モデルを提供するを参照してください。

    • すべてのトラフィックを特定のモデルにルーティングするには、100% に設定します。
    • フォールバック専用モデルを指定する場合は、そのモデルをエンドポイントに追加し、トラフィックの割合を 0% に設定します。
    • モデル間でトラフィックの負荷を分散し、フォールバックを設定するには、次の動作が予想されます。
      • 要求は、割り当てられたトラフィックの割合に基づいてエンティティ間でランダムに分割されます。
      • 要求が最初のエンティティにヒットして失敗した場合、エンドポイントの作成時または最新のエンドポイント更新時に提供されたエンティティが一覧表示された順序で、次のエンティティにフォールバックします。
      • トラフィックの分割は、フォールバック試行の順序には影響しません。

フォールバック

[AI Gateway] セクションで [ フォールバックの有効化 ] を選択して、エンドポイント上の他の提供モデルにフォールバックとしてリクエストを送信します。

    • 特定のエンティティにルーティングされた最初の要求が 429 または 5XX エラーを返した場合、要求はエンドポイントにリストされている次のエンティティにフォールバックします。
    • リクエストがフォールバック サービス エンティティにリダイレクトされる順序は、エンドポイントの作成時または最新のエンドポイント更新時にモデルが一覧表示される順序に基づきます。トラフィックの割合は、サービス提供されたエンティティに送信されるフォールバック試行の順序には影響しません。
    • フォールバックは 、外部モデルでのみサポートされます。
    • 外部モデルへのフォールバックを有効にする前に、エンドポイントで提供される他のモデルにトラフィックの割合を割り当てる必要があります。
    • トラフィックが 0% 割り当てられた外部モデルは、フォールバック モデルとしてのみ機能します。
    • 最大 2 つのフォールバックを設定できます。
    • 各エンティティは、要求が成功するまで順番に 1 回試行されます。リストされたすべてのエンティティが試行され、成功しなかった場合、要求は失敗します。
    • 最初に成功した、または最後に失敗した要求の試行と応答は、使用状況の追跡テーブルとペイロードログテーブルの両方に記録されます。

次の図は、フォールバックの例を示しています。

  • 3 つのサーブされたエンティティは、モデル サービング エンドポイントで提供されます。
  • 要求は最初に サーブされるエンティティ 3 にルーティングされます。
  • リクエストが 200 レスポンスを返した場合、リクエストは サーブされるエンティティ 3 で成功し、リクエストとそのレスポンスはエンドポイントの使用状況追跡テーブルとペイロードロギングテーブルに記録されます。
  • 要求が サーブされる エンティティ 3 で 429 または 5xx エラーを返した場合、要求はエンドポイントで次に提供されるエンティティである サーブされる エンティティ 1 にフォールバックします。
    • リクエストが サーブされる エンティティ 1 で 429 または 5xx エラーを返した場合、リクエストはエンドポイントで次に提供されたエンティティである サーブされる エンティティ 2 にフォールバックします。
    • 要求が サーブされる エンティティ 2 で 429 または 5xx エラーを返した場合、これがフォールバック エンティティの最大数であるため、要求は失敗します。失敗したリクエストとレスポンスエラーは、使用状況追跡テーブルとペイロードロギングテーブルに記録されます。

フォールバック図の例

UI での AI ガードレールの構成

備考

プレビュー

この機能は パブリック プレビュー段階です。

次の表は、 サポートされているガードレールを構成する方法を示しています。

ガードレール

有効にする方法

安全性

[ 安全性 ] を選択すると、モデルが安全でない有害なコンテンツと相互作用するのを防ぐための保護機能が有効になります。

個人を特定できる情報 (PII) の検出

名前、住所、クレジット カード番号などの PII データがエンドポイントの要求と応答で検出された場合に、 それらをブロック または マスク することを選択します。 それ以外の場合は、[ なし ] を選択して PII 検出が発生しないようにします。

AI Guardrail 機能の構成

使用状況追跡テーブルのスキーマ

次のセクションでは、 system.serving.served_entities および system.serving.endpoint_usage システムテーブルの使用状況追跡テーブル スキーマをまとめます。

system.serving.served_entities 使用状況追跡テーブル スキーマ

system.serving.served_entities使用状況追跡システムテーブルには、次のスキーマがあります。

列名

説明

タイプ

served_entity_id

提供されたエンティティの一意の ID。

文字列

account_id

Delta Sharingの顧客 アカウント ID。

文字列

workspace_id

サービスエンドポイントの顧客ワークスペース ID。

文字列

created_by

作成者のID。VPN単位の従量課金エンドポイントの場合、これは System-User

文字列

endpoint_name

サービングエンドポイントの名前。

文字列

endpoint_id

サービングエンドポイントの一意の ID。

文字列

served_entity_name

提供されるエンティティの名前。

文字列

entity_type

提供されるエンティティのタイプ。 FEATURE_SPECEXTERNAL_MODELFOUNDATION_MODEL、または CUSTOM_MODEL

文字列

entity_name

エンティティの基になる名前。 ユーザーが指定した名前である served_entity_name とは異なります。 たとえば、 entity_name は Unity Catalog モデルの名前です。

文字列

entity_version

提供されたエンティティのバージョン。

文字列

endpoint_config_version

エンドポイント設定のバージョン。

INT

task

タスクの種類。 llm/v1/chatllm/v1/completions、または llm/v1/embeddingsを指定できます。

文字列

external_model_config

外部モデルの構成。 例えば {Provider: OpenAI}

構造体

foundation_model_config

基盤モデルの構成。 例えば{min_provisioned_throughput: 2200, max_provisioned_throughput: 4400}

構造体

custom_model_config

カスタムモデルの設定。 例えば{ min_concurrency: 0, max_concurrency: 4, compute_type: CPU }

構造体

feature_spec_config

機能仕様の構成。 例えば { min_concurrency: 0, max_concurrency: 4, compute_type: CPU }

構造体

change_time

提供されたエンティティの変更のタイムスタンプ。

TIMESTAMP

endpoint_delete_time

エンティティ削除のタイムスタンプ。 エンドポイントは、提供されるエンティティのコンテナです。 エンドポイントが削除されると、提供されたエンティティも削除されます。

TIMESTAMP

system.serving.endpoint_usage 使用状況追跡テーブル スキーマ

system.serving.endpoint_usage使用状況追跡システムテーブルには、次のスキーマがあります。

列名

説明

タイプ

account_id

顧客アカウント ID。

文字列

workspace_id

サービスエンドポイントの顧客ワークスペース ID。

文字列

client_request_id

モデルサービング要求本文で指定できるユーザー指定の要求識別子。 カスタムモデルエンドポイントの場合、これは 4MiB を超えるリクエストではサポートされていません。

文字列

databricks_request_id

すべてのモデルサービング要求にアタッチされた Databricks 生成要求識別子。

文字列

requester

サービスエンドポイントの呼び出しリクエストにアクセス許可が使用されるユーザーまたはサービスプリンシパルの ID。

文字列

status_code

モデルから返された HTTP 状態コード。

Integer

request_time

要求が受信されたタイムスタンプ。

TIMESTAMP

input_token_count

入力のトークン数。カスタム モデル要求の場合は 0 になります。

ロング

output_token_count

出力のトークン数。カスタム モデル要求の場合は 0 になります。

ロング

input_character_count

入力文字列またはプロンプトの文字数。カスタム モデル要求の場合は 0 になります。

ロング

output_character_count

応答の出力文字列の文字数。カスタム モデル要求の場合は 0 になります。

ロング

usage_context

ユーザーは、エンドポイントへの呼び出しを行うエンド ユーザーまたは顧客アプリケーションの識別子を含むマップを提供しました。 usage_contextを使用した使用法の詳細な定義を参照してください。カスタムモデルエンドポイントの場合、これは 4MiB を超えるリクエストではサポートされていません。

マップ

request_streaming

要求がストリーム・モードであるかどうか。

ブール値

served_entity_id

エンドポイントと提供されるエンティティに関する情報を検索するために system.serving.served_entities ディメンション テーブルと結合するために使用される一意の ID。

文字列

使用法をさらに定義する usage_context

使用状況の追跡が有効になっている外部モデルに対してクエリを実行する場合は、 usage_context パラメーターに Map[String, String]型を指定できます。 使用状況コンテキスト マッピングは、使用状況追跡テーブルの usage_context 列に表示されます。 usage_contextマップサイズは 10 KiB を超えることはできません。

Bash
{
"messages": [
{
"role": "user",
"content": "What is Databricks?"
}
],
"max_tokens": 128,
"usage_context":
{
"use_case": "external",
"project": "project1",
"priority": "high",
"end_user_to_charge": "abcde12345",
"a_b_test_group": "group_a"
}
}

OpenAI Python クライアントを使用している場合は、extra_body パラメーターに usage_context を含めることで指定できます。

Python
from openai import OpenAI

client = OpenAI(
api_key="dapi-your-databricks-token",
base_url="https://example.staging.cloud.databricks.com/serving-endpoints"
)

response = client.chat.completions.create(
model="databricks-claude-sonnet-4-5",
messages=[{"role": "user", "content": "What is Databricks?"}],
temperature=0,
extra_body={"usage_context": {"project": "project1"}},
)
answer = response.choices[0].message.content
print("Answer:", answer)

アカウント 管理者は、使用状況のコンテキストに基づいて異なる行を集計して知見を得ることができ、この情報をペイロードログテーブルの情報と結合することができます。 たとえば、エンドユーザーのコスト属性を追跡するための end_user_to_chargeusage_context に追加できます。

エンドポイントの使用状況を監視する

エンドポイントの使用状況をモニタリングするために、エンドポイントのシステムテーブルと推論テーブルを結合できます。

Join システムテーブル

この例は、外部、プロビジョニング スループット、仮想単位の従量課金、およびカスタム モデル エンドポイントに適用されます。

endpoint_usage システムテーブルと served_entities システムテーブルを結合するには、次の SQL を使用します。

SQL
SELECT * FROM system.serving.endpoint_usage as eu
JOIN system.serving.served_entities as se
ON eu.served_entity_id = se.served_entity_id
WHERE created_by = "\<user_email\>";

エンドポイントの AI Gateway 機能を更新する

AI Gateway の機能は、以前に有効になっていたモデルサービングエンドポイントと有効にしていなかったエンドポイントで更新できます。AI Gateway 構成の更新が適用されるまでに約 20 秒から 40 秒かかりますが、レート制限の更新には最大 60 秒かかる場合があります。

以下は、Serving UIを使用してモデルサービングエンドポイントの AI Gateway機能を更新する方法を示しています。

エンドポイント ページの ゲートウェイ セクションでは、有効になっている機能を確認できます。 これらの機能を更新するには、 AI Gateway の編集 をクリックします。

AI Gateway の機能を更新する

ノートブックの例

次のノートブックは、プログラムで Databricks AI Gateway 機能を有効にして使用し、プロバイダーからのモデルを管理および制御する方法を示しています。PUT /api/2.0/serving-endpoints/{name}/AI-gatewayを参照してください。 REST API の詳細については、こちらをご覧ください。

Databricks AI Gateway 機能のノートブックを有効にする

Open notebook in new tab

追加のリソース