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

DatabricksアプリにUnity Gatewayモデル・サービス・リソースを追加する

備考

プレビュー

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

アプリが、Unity Catalogで管理されているAIモデルに対して、チャット、完了、埋め込みなどの推論リクエストを送信できるように、Unity GatewayモデルサービスをDatabricks Appsリソースとして追加します。Unity Gatewayモデルサービスには、system.aiで利用可能なトークン単位の従量課金基盤モデルや、作成したモデルサービスが含まれます。

注記

Unity Gateway モデルサービスの利用状況アトリビューションは、標準の Databricks Apps でのみ正確になります。Genie アプリビルダーアプリなどのマイクロ VM 環境で実行されるアプリでは、正確な利用状況アトリビューションがレポートされません。

Unity Gateway 使用状況の追跡を参照してください。

権限要件​

Unity Gateway モデル サービスにアクセスするには、アプリの Service Principal が親カタログに対する USE CATALOG 権限、親スキーマに対する USE SCHEMA 権限、およびモデル サービスに対する EXECUTE 権限を持っている必要があります。モデル サービスのリソースを追加すると、Databricks はこれらの権限をアプリの Service Principal に自動的に付与します。

この自動付与を成功させるには、各権限について次の条件のいずれかを満たしている必要があります:

  • USE CATALOG の場合: すべてのアカウントユーザーがカタログに対する USE CATALOG 権限を持っているか、ユーザー自身がカタログに対する MANAGE 権限を持っているかのいずれかです。
  • USE SCHEMAの場合: すべてのアカウントユーザーがスキーマに対する USE SCHEMA 権限を持っているか、ユーザーがスキーマに対する MANAGE 権限を持っています。
  • EXECUTE の場合: すべてのアカウントユーザーがモデルサービスに対する EXECUTE 権限を持っているか、ユーザー自身がモデルサービスに対する MANAGE 権限を持っているかのいずれかです。

See Unity Catalog の権限リファレンスを参照してください。

Unity Gatewayモデルサービスリソースの追加​

Unity Gateway モデルサービスをリソースとして追加する前に、アプリリソースの前提条件を確認してください。

  1. アプリの作成または編集時に App リソース セクションで、 + リソースの追加 > モデル の順にクリックします。

  2. リソースピッカーで、 Unity Gateway セクションからモデルサービスを選択します。ピッカーには、 Serving Endpoints セクションの下にカスタムサービングエンドポイントも一覧表示されます。これらのエンドポイントのいずれかに接続するには、Databricks アプリへのモデルサービングエンドポイントリソースの追加を参照してください。トークン単位の従量課金基盤モデルを使用するには、system.ai カタログからモデルサービスを選択します。

  3. アプリの権限レベルを選択します:

    • 実行可能: アプリのService Principalに、モデルサービスへ推論リクエストを送信するためのEXECUTE権限を付与します。モデルサービスで利用可能な権限レベルはこれだけです。
  4. (オプション)カスタムリソースキーを指定します。これは、アプリ構成でモデルサービスを参照する方法です。defaultキーはmodelです。

Databricks Asset Bundle で構成する​

Declarative Automation Bundlesを使用してアプリを定義する場合は、バンドル設定にモデルサービスを uc_securable リソースとして追加します。

YAML
resources:
apps:
my_app:
name: 'my-app'
source_code_path: ./app
resources:
- name: 'model'
uc_securable:
securable_full_name: '<catalog>.<schema>.<model_service>'
securable_type: 'MODEL_SERVICE'
permission: 'EXECUTE'

Declarative Automation Bundlesのアプリリソースの情報については、app.resources をご覧ください。

環境変数​

Unity Gateway モデルサービスリソースを使用してアプリをデプロイすると、Databricks は valueFrom フィールドを使用して参照できる環境変数を介して、モデルサービスの完全な 3 つの部分で構成される Unity Catalog 名を公開します。

構成例:

YAML
env:
- name: MODEL_SERVICE_NAME
valueFrom: model # Use your custom resource key if you set one

valueFrom フィールドは、モデルサービスの3パートからなる完全な Unity Catalog 名に解決されます(例: system.ai.databricks-dbrx-instruct)。Databricks SDKまたはUnity Gateway REST APIを通じてモデルサービスを呼び出すときは、この名前を使用します。

情報については、環境変数を使用してリソースにアクセスするを参照してください。

Unity Gatewayモデルサービスリソースの削除​

Unity Gatewayモデルサービスリソースをアプリから削除すると、アプリのService Principalはそのモデルサービスに対する EXECUTE 権限を失います。モデルサービス自体は変更されず、適切な権限を持つ他のユーザーやアプリケーションが引き続き利用できます。

ベストプラクティス​

Unity Gateway モデルサービスリソースを使用する場合は、次の点を考慮してください。

  • EXECUTE は唯一利用可能な権限レベルです。これにより、アプリに推論リクエストの送信アクセス権が与えられますが、モデルサービスに対する管理権限は付与されません。
  • 追加の設定なしでトークン単位の従量課金基盤モデルを使用するには、system.ai カタログからモデルサービスを選択します。
  • 環境変数は、完全な 3 パートの Unity Catalog 名(catalog.schema.model_service)に解決されます。Databricks SDK または REST API を介してモデル サービスを呼び出すときは、この値を使用します。
  • アプリ コードで推論エラーとレート制限を処理します。Unity ゲートウェイは、各モデル サービスに構成されたレート制限とガードレールを適用します。
  • また、 Model (モデル)リソースピッカーには、従来型の モデルサービングエンドポイント も表示され、 Serving Endpoints (サービングエンドポイント)セクションの下にグループ化されます。モデルサービスとサービングEndpointを同じアプリに共存させることができます。