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

Model Provider Services を使用したプロバイダーの作成と管理

プロバイダーをモデルプロバイダーサービスとして登録し、アクセス権を付与し、Unity Gatewayの機能を設定して削除する方法について説明します。

要件​

  • CREATE SERVICE モデルプロバイダーサービスを作成するスキーマ上、そのカタログとスキーマに対するUSE CATALOGとUSE SCHEMAの権限。
  • 登録する外部プロバイダーの認証情報(例:OpenAI API キーまたはAWSアクセスキーペア)。
  • API キーの代わりにサービス資格情報を使用して Google Gemini Enterprise を認証するには、既存のサービス資格情報とその資格情報に対する ACCESS が必要です。サービス資格情報を使用した Google Gemini Enterprise の認証を参照してください。

値をインラインで保存する代わりに、顧客が所有する Unity Catalog シークレットでプロバイダーの認証情報をバックアップするには、既存の Unity Catalog シークレットとそのシークレットに対する READ SECRET が必要です。「Unity Catalog シークレットを使用したプロバイダー認証情報のバックアップ」を参照してください。

モデルプロバイダーサービスを作成​

モデルプロバイダーサービスとモデルサービスは、Unity Catalog スキーマ内で単一の名前空間を共有します。スキーマ内のモデルサービスがすでに使用している名前をモデルプロバイダーサービスに使用することはできません。その逆も同様です。

Unity Gateway UIまたはCatalog Explorerでモデルプロバイダーサービスを作成します。プログラムで作成するには、REST API、Databricks SDK、Databricks CLI、Terraform、または Declarative Automation Bundles (DABs) を使用します。

  1. 以下のいずれかを実行します。

    • ワークスペースのサイドバーで [ AI Gateway ] をクリックし、[ Providers tab] を開いて [ Provider ] をクリックします。
    • カタログエクスプローラーで、モデルプロバイダーサービスを作成したいスキーマに移動し、 作成 > サービス をクリックしてから、 サービスの作成 ダイアログで モデルプロバイダーサービス を選択します。
  2. モデルプロバイダーサービスの名前を入力し、作成するカタログとスキーマを選択します。Catalog Explorerから起動すると、Catalog Explorerがカタログとスキーマを事前に設定します。

  3. プロバイダータイプを選択し、プロバイダーの接続の詳細と資格情報を入力します。

  4. 作成 をクリックします。Databricksは資格情報を暗号化して保存します。この時点以降はUIに表示しません。

プロバイダーとその認証方法の完全なリストについては、Databricks 外部のモデルプロバイダーを参照してください。

サービス認証情報を使用してGoogle Gemini Enterpriseを認証する​

API キーを保存する代わりに、サービス認証情報を使用して Google Gemini Enterprise プロバイダーを認証できます。サービス認証情報には、Unity Catalog が管理する Google Cloud サービスアカウントが保持されます。そのため、有効期間の長い API キーがモデルプロバイダーサービスにコピーされることはありません。Databricks は、そのサービスアカウントから有効期間の短いトークンを取得して、各リクエストを認証します。

モデルプロバイダーサービスを作成するで説明されているように、モデルプロバイダーサービスを作成します。プロバイダータイプとして Google Gemini Enterprise を選択し、GCPプロジェクトIDやリージョンを含む接続詳細を入力します。次に、 認証方法 を サービス認証情報 に設定し、APIキーを入力する代わりにその認証情報を選択します。サービス認証情報はシークレットのみを置き換えるため、GCPプロジェクトIDとリージョンは引き続き必要です。

次の要件を確認してください:

  • モデル プロバイダー サービスの所有者は、サービス認証情報に対する ACCESS を持っています。Databricks はリクエストの処理時に所有者のアクセス権を再チェックするため、所有者はプロバイダーを使用している間、アクセス権を維持する必要があります。これを取り消すと、プロバイダーに対して EXECUTE を保持している呼び出し元を含め、すべてのユーザーのクエリーが停止します。所有者に認証情報へのアクセス権を付与するには:

    SQL
    GRANT ACCESS ON SERVICE CREDENTIAL <service-credential-name> TO `<model-provider-service-owner>`;
  • この資格情報の目的はストレージではなく、 サービス です。

  • その認証情報は、リクエストの発信元であるワークスペースで使用可能です。そのワークスペースのバインドは引き続き適用されるため、モデルプロバイダーサービス自体はメタストアを共有するどのワークスペースからでも到達可能であっても、認証情報がバインドされていないワークスペースからのリクエストは失敗します。

  • サービス資格情報のGoogle Cloudサービスアカウントには、クエリーを実行する予定のGeminiモデルを呼び出す権限が付与されています。サービス資格情報を作成するには、サービス資格情報の作成を参照してください。

プロバイダーに対してクエリーを実行する呼び出し元には、他のプロバイダーと同様の権限が必要です。彼らはサービス資格情報に対する権限を必要としません。これにより、資格情報自体が彼らの手の届かないところに保持されます。

モデルプロバイダーサービスは内部識別子によって資格情報を追跡するため、クエリーを失敗させることなく資格情報の名前を変更できます。

認証情報を削除するとクエリーは失敗しますが、モデルプロバイダーサービスがそれを参照しているという警告は表示されません。認証情報を削除する前に、この認証情報への参照がないことを確認してください。

既存のモデルプロバイダーサービスにおいて、サービス資格情報認証とAPIキー認証を切り替えることはできません。代わりに、新しいモデルプロバイダーサービスを作成してください。

カスタムプロバイダーの API キーをヘッダーで送信する​

カスタムプロバイダーは、default で API キーをベアラートークンとして送信します。Endpoint が特定のヘッダーでキーを要求する場合は、API キーヘッダー認証を使用し、ヘッダー名を指定してください。その後、Databricks は各送信リクエストでキーを <header name>: <header value> として送信します。

モデルプロバイダーサービスを作成するで説明されているように、モデルプロバイダーサービスを作成します。プロバイダータイプとして Custom を選択し、 Auth method を API key header に設定して、Endpoint が期待する Header name (X-API-Key や Ocp-Apim-Subscription-Key など) と Header value を指定します。

これら2つのメソッドは相互に排他的です。カスタムプロバイダーは、ベアラートークンまたは名前付きヘッダーのいずれかを使用し、両方を使用することはできません。ヘッダー認証には、ヘッダーが1つ必要です。

ヘッダー名は有効なHTTPヘッダー名である必要があります(英数字および!#$%&'*+-.^_`|~の文字、最大255文字)。スペース、コロン、スラッシュ、改行など、その他の文字はすべて拒否されます。

Unity Catalogシークレットでプロバイダー資格情報をバックアップする​

プロバイダーの認証情報をインラインで保存する代わりに、モデルプロバイダーサービスの値を持つ顧客所有の Unity Catalog シークレットを指定できます。Databricks は、モデルプロバイダーサービスの所有者のアクセス権限のもとでクエリー時にシークレットを読み取り、モデルプロバイダーサービスに値がコピーされることはありません。そのため、シークレットをローテーションしても、モデルプロバイダーサービスを変更せずに有効になります。

これは、資格情報が単一のインライン値であるすべてのプロバイダー(OpenAI、Azure OpenAI、Anthropic、Amazon Bedrock、Microsoft Foundry、Google Gemini Enterprise、Custom など)で機能します。

モデルプロバイダーサービスの作成で説明されているように、モデルプロバイダーサービスを作成します。プロバイダーの種類を選択し、その接続の詳細を入力します。資格情報 ( API key など) については、認証タイプを Plaintext から Secret に変更し、Unity Catalog シークレットを特定するカタログ、スキーマ、シークレットを選択します。

次の要件を確認してください:

  • モデル プロバイダー サービスの所有者は、Unity Catalog シークレットに対する READ SECRET を持っています。Databricks はリクエストの処理時に所有者のアクセス権を再チェックするため、所有者はプロバイダーを使用している間、アクセス権を維持する必要があります。これを取り消すと、プロバイダーに対して EXECUTE を保持している呼び出し元を含め、すべてのユーザーのクエリーが停止します。所有者にシークレットへのアクセス権を付与するには:

    SQL
    GRANT READ SECRET ON SECRET <catalog>.<schema>.<secret> TO `<model-provider-service-owner>`;
  • Unity Catalog のシークレットは、参照する前に存在している必要があります。Unity Catalog のシークレットを作成および管理する方法については、Unity Catalog のシークレットを参照してください。

プロバイダーにクエリーを実行する呼び出し元には、他のプロバイダーと同じ権限付与が必要です。They don't need any privilege on the Unity Catalog secret, which is what keeps the secret value out of their reach.

認証情報をローテーションするには、モデルプロバイダーサービスを変更せずに、Unity Catalog のシークレットの値り値を更新します。

Unity Catalog のシークレットを削除すると、クエリーは失敗します。モデルプロバイダーサービスは、依存関係を確認できるように、切断された参照を保持します。存在し続けるシークレットを参照するように更新することで、プロバイダーを復元できます。

モデルプロバイダーサービスを削除しても、それが参照するUnity Catalogのシークレットが削除されることはありません。

モデルプロバイダーサービスへのアクセス権を付与する​

By default、モデルプロバイダーサービスの所有者のみがクエリーを実行できます。他のユーザーがモデルプロバイダーサービスに対してクエリーを実行できるようにするには、そのサービスに対するEXECUTE権限と、そのカタログおよびスキーマに対するUSE CATALOG権限とUSE SCHEMA権限を付与します。モデルプロバイダーサービスが推論テーブルにLogsを記録する場合、テーブルに対するSELECT権限を付与して、記録されたリクエストと応答を読み取れるようにします。

  1. カタログエクスプローラーでモデルプロバイダーサービスを開くか、 AI Gateway に移動してサービスを選択します。
  2. 権限 タブに移動します。
  3. 付与 をクリックします。
  4. アクセス権を付与するユーザー、グループ、またはService Principalを選択します。
  5. EXECUTE 権限を選択します。
  6. 付与 をクリックします。

アクセス権の付与と検出の詳細については、外部モデルプロバイダー(モデルプロバイダーサービス)へのアクセスの検出と管理を参照してください。

機能の構成​

モデルプロバイダーサービスはUnity Gatewayを経由するため、他のUnity Gatewayトラフィックで使用しているものと同じガバナンスおよびオブザーバビリティ機能を適用してください:

価格乗数を設定する​

defaultでは、Databricks はプロバイダーが公開している定価を使用して外部モデルの使用量を見積もります。プロバイダーの価格が異なる場合は、割引やマージンを反映するように価格乗数を設定します。たとえば、0.8 は定価の 80% を使用し、1.2 は 120% を使用します。

  1. モデルプロバイダーサービスを作成するか、Catalog Explorer または AI Gateway で既存のモデルプロバイダーサービスを開き、 [編集] をクリックします。
  2. 詳細オプション を展開します。
  3. 価格乗数 を入力します。
  4. 作成 または 保存 をクリックします。

モデルプロバイダーサービス作成ダイアログの「Advanced options」下の Price multiplier フィールド

この乗数は、モデルプロバイダーサービスを通じて利用可能なすべてのモデルに適用されます。system.ai_gateway.external_model_spend におけるコンピュート利用料金には、構成された乗数が反映されます。変更は、構成が有効になった後に行われたリクエストに適用されます。それ以前のリクエストは、定価または以前に構成された乗数を使用して見積もられたままになります。

構成された乗数には、 カスタム価格 タグが表示されます。価格表の調整後の価格には、点線の下線が表示されます。調整後の価格にマウスオーバーすると、プロバイダーの定価と比較できます。

モデルプロバイダーサービスを更新​

所有者であるか、MANAGEを持っている必要があります。プロバイダータイプは不変です。

Unity Gateway UI またはカタログエクスプローラーから、モデルプロバイダーサービスの構成を編集します。変更はその場で適用されます。

モデルプロバイダーサービスの削除​

所有者であるか、MANAGE を持っている必要があります。

Unity Gateway UI または Catalog Explorer でモデルプロバイダーサービスを開き、ケバブメニューから 削除 を選択します。

次のステップ​