Databricksアプリに1つのUnity Gatewayモデルサービスリソースを追加

Important

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

UnityゲートウェイモデルサービスをDatabricks Appsリソースとして追加することで、アプリがUnity Catalogで管理されるAIモデルにチャット、補完、埋め込みなどの推論リクエストを送信できるようにします。 Unity Gatewayモデルサービスには、system.aiの下で利用可能なトークンごとの支払い型基礎モデルや、あなたが作成したモデルサービスが含まれます。

Note

Unity Gatewayモデルサービスの使用アトリビューションは、標準的なDatabricksアプリにのみ正確です。 Genieのアプリビルダーアプリのように、マイクロVM環境で動作するアプリは、正確な使用状況のアトリビューションを報告しません。

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

特権の要件

Unity Gatewayモデルサービスにアクセスするには、アプリのサービスプリンシパルが親カタログの USE CATALOG 権限、親スキーマの USE SCHEMA 権限、モデルサービスに対する EXECUTE 権限を持たなければなりません。 モデルサービスリソースを追加すると、Azure Databricksはこれらの権限を自動的にアプリのサービスプリンシパルに付与します。

この自動付与を成功させるには、各特権に対して次のいずれかが当てはまる必要があります。

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

Unity カタログ権限のリファレンスを参照してください。

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

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

  1. アプリを作成または編集する際は、アプリ リソースセクションで+リソースを追加>モデルをクリックします。
  2. リソースピッカーで、 Unity Gateway セクションからモデルサービスを選択します。 ピッカーは「 Serving Endpoints 」セクションの下にカスタムサービスエンドポイントもリストアップしています。 これらのエンドポイントのいずれかを接続するには、「Databricksアプリにモデルサービングエンドポイントリソースを追加」を参照してください。 トークンごとの支払い型基盤モデルを使用するには、system.ai カタログからモデルサービスを選択してください。
  3. アプリのアクセス許可レベルを選択します。
    • 実行可能: アプリのサービスプリンシパルにモデルサービスへの推論要求を送信する EXECUTE 権限を付与します。 これはモデルサービスに対して利用可能な唯一の権限レベルです。
  4. (任意) カスタム リソース キーを指定してください。これは、アプリの構成でモデル サービスを参照する際に使用する識別子です。 既定のキーは modelです。

Databricks アセット バンドルを使用して設定

宣言的自動化バンドルを使ってアプリを定義する場合は、バンドル構成の uc_securable リソースとしてモデルサービスを追加してください。

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'

宣言的自動化バンドル内のアプリリソースに関する情報は 、app.resources をご覧ください。

環境変数

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

構成の例:

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)に解決されます。 Azure Databricks SDKまたはUnity Gateway REST APIを通じてモデルサービスを呼び出す際は、この名前を使用してください。

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

Unity Gateway モデルサービスリソースを削除してください

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

ベスト プラクティス

Unity Gatewayモデルサービスリソースを扱う際には、以下の点を考慮してください。

  • EXECUTE が利用可能な唯一の許可レベルです。 これはアプリに推論リクエストを送信する権限を与え、モデルサービスに対する管理権限は付与しません。
  • 追加設定なしでトークンごとの支払い型基礎モデルを使用するには、 system.ai カタログからモデルサービスを選択してください。
  • 環境変数はUnityカタログの3部構成の名前(catalog.schema.model_service)に解決されます。 この値はAzure Databricks SDKやREST APIを通じてモデルサービスを呼び出す際に使用してください。
  • アプリコードの推論エラーやレート制限を処理しましょう。 Unity Gatewayは各モデルサービスに設定されたレート制限とガードレールを強制します。
  • モデルリソースピッカーは、Serving Endpointsセクションの下にまとめられたクラシックモデルのサービングエンドポイントも一覧表示します。 モデルサービスとサービス用エンドポイントは同じアプリ内で共存可能です。