生成AIアプリケーションのエージェントをデプロイする (Model Serving)
新しいユースケースの場合、Databricksは、エージェントのコード、サーバー設定、およびデプロイワークフローを完全に制御するために、Databricks Appsへのエージェントのデプロイを推奨しています。AIエージェントを作成してDatabricks Appsにデプロイするを参照してください。既存のエージェントを移行するには、Model ServingからDatabricks Appsにエージェントを移行するを参照してください。
Model Serving でAIエージェントをデプロイするには、Custom Agents Python API のdeploy()関数を使用します。デプロイにより、組み込みの拡張性、モニタリング、コラボレーションツールを備えたサービングエンドポイントが作成されます。
展開済みエージェントは、リアルタイムのトレース、ステークホルダーからのフィードバックを得るためのレビューアプリ、およびモニタリングを含む、MLflow 3の評価およびモニタリング機能と自動的に統合されます。
要件
- MLflow 3
- MLflow 2.x
- Unity Catalog にエージェントを登録する。
- MLflow 3.1.3 をインストールします。
databricks.agentsのdeploy()API を使用してエージェントをデプロイするには、以上が必要です。 - Databricks ノートブックの外部からエージェントをデプロイするには、
databricks-agentsSDK バージョン 1.1.0 が必要です。以上。
前提条件をインストールします:
# Install prerequisites
%pip install mlflow>=3.1.3 databricks-agents>=1.1.0
# Restart Python to make sure the new packages are picked up
dbutils.library.restartPython()
Databricksでは、一部のMLflow 2ログ機能が非推奨となるため、エージェントのデプロイにMLflow 3の使用を推奨しています。詳細なデプロイアクションを参照してください。
- Unity Catalog にエージェントを登録する。
databricks.agentsのdeploy()API を使用してエージェントをデプロイするには、MLflow 2.13.1 以上をインストールしてください。- Databricksノートブックの外部からエージェントをデプロイするには、
databricks-agentsSDKバージョン0.12.0以上が必要です。
前提条件をインストールします:
# Install prerequisites
%pip install mlflow>=2.13.1 databricks-agents>=0.12.0
# Restart Python to make sure the new packages are picked up
dbutils.library.restartPython()
を使用してエージェントをデプロイする deploy()
エージェントをモデルサービングエンドポイントにデプロイしてください:
from databricks import agents
deployment = agents.deploy(uc_model_name, uc_model_info.version)
# Retrieve the query endpoint URL for making API requests
deployment.query_endpoint
deploy()を呼び出すと、Databricksは本番運用インフラストラクチャを自動的にセットアップし、以下の方法でエージェントをMLflow生成AI機能と統合します。
Databricks Gitフォルダーに保存されているノートブックからエージェントをデプロイしている場合、MLflow 3 リアルタイムトレースはデフォルトで機能しません。
リアルタイムトレースを有効にするには、 agents.deploy()を実行する前に、 mlflow.set_experiment()を使用してエクスペリメントをGitに関連付けられていないエクスペリメントに設定します。
deploy()関数はデフォルトで次のアクションを実行します:手のひらにすっぽり収まります。
- モデルサービングエンドポイントを作成し、自動スケーリングとロードバランシングによってエージェントをホストします
- エージェントが基盤となるリソースにアクセスするための**安全な認証を提供します**
- **MLflowエクスペリメントのトレースと本番運用のトラフィックに対する自動品質評価により、リアルタイムモニタリングを実現します**
- フィードバック収集のためにレビューアプリを使用して利害関係者のコラボレーションを設定します。
情報については、詳細なデプロイアクションを参照してください。
デプロイメントをカスタマイズする
デプロイメントをカスタマイズするために、deploy() に追加の引数を渡します。たとえば、scale_to_zero_enabled=True を渡すことで、アイドル状態のエンドポイントのスケールをゼロにすることができます。これによりコストは削減されますが、初期クエリの処理時間は増加します。
その他のパラメーターについては、Databricks Agents Python APIを参照してください。
既存の展開を更新
既存のデプロイと同じUnity Catalogモデル名でdeploy()を呼び出すと、新しいモデルバージョンが既存のサービングエンドポイントに追加され、準備が整うとトラフィックがそれに切り替わります。以前にデプロイされたバージョンは、展開中にリクエストを処理し続けるため、更新によって進行中のトラフィックが中断されることはありません。
ゼロダウンタイムデプロイメントを実現するには、UCモデルバージョン(つまり、endpoint_nameとモデル名)以外の構成を変更しないでください。
エージェントデプロイの取得と削除
既存のエージェントデプロイの取得または管理。Databricks Agents Python APIを参照してください。
from databricks.agents import list_deployments, get_deployments, delete_deployment
# Print all current deployments
deployments = list_deployments()
print(deployments)
# Get the deployment for a specific agent model name and version
agent_model_name = "" # Set to your Unity Catalog model name
agent_model_version = 1 # Set to your agent model version
deployment = get_deployments(model_name=agent_model_name, model_version=agent_model_version)
# List all deployments
all_deployments = list_deployments()
# Delete an agent deployment
delete_deployment(model_name=agent_model_name, model_version=agent_model_version)
依存リソースの認証
エージェントは、デプロイ時にタスクを完了するために、他のリソースに対して認証を行う必要があることがよくあります。例えば、エージェントは非構造化データをクエリするために、AI Searchインデックスにアクセスする必要がある場合があります。
認証方法(使用するタイミングや設定方法を含む)に関する情報については、AIエージェントの認証 (Model Serving)を参照してください。
エージェントデプロイメントのネットワーキング
ワークスペースで Private Service Connect または制限付き送信ネットワークポリシーを使用している場合、エージェントのデプロイを成功させるにはネットワークアクセスを構成する必要があります。モデルサービングエンドポイントでは、コンテナのビルド中に依存関係をダウンロードするためのアウトバウンドアクセスが必要です。エージェントは、ランタイム時に外部 APIs にアクセスする必要がある場合もあります。
Databricks Apps にデプロイされたエージェントについては、DNS または送信ポリシーの構成に関する詳細なガイダンスについて、Private Service Connect 環境でアプリをデプロイするを参照してください。
Model Serving にデプロイされたエージェントについては、以下を確認してください:
- ビルド時の依存関係: ネットワークポリシーでは、Pythonパッケージの
pypi.orgやfiles.pythonhosted.orgなど、エージェントの環境で必要とされるパッケージリポジトリへのアクセスを許可する必要があります。Databricksは、ブロックされたネットワークアクセスが原因で発生したビルドの失敗を、system.access.outbound_networkシステムテーブル内のnetwork_source_type: ML Buildでログに記録します。モデルサービングで検証を参照してください。 - Runtime の依存関係 :エージェントが推論中に外部 APIs またはサービスを呼び出す場合、それらのドメインをネットワークポリシーの許可リストに追加します。
- DNS 解決: Private Service Connect 環境では、エージェントが AI Search や SQLウェアハウス エンドポイントなど、依存する Databricks サービスのホスト名を解決できることを確認してください。
詳細なデプロイアクション
次の表に、deploy()呼び出しから生じる詳細なデプロイアクションを示します。デプロイが完了するまでに最大15分かかる場合があります。
- MLflow 3
- MLflow 2
| 説明 |
|---|---|
モデルサービングエンドポイントを作成 | 自動負荷分散により、エージェントをユーザー向けアプリケーションに提供するスケーラブルな REST API エンドポイントを作成します。 |
安全な認証をプロビジョニングします。 | エージェントがDatabricks管理のリソース(AI Searchインデックス、Unity Catalog関数など)に最小限必要な権限でアクセスできるように、有効期間の短い資格情報を自動的に提供します。 Databricksは、資格情報を発行する前にエンドポイントの所有者が必要な権限を持っていることを確認し、不正アクセスを防止します。 Databricks以外のリソースについては、シークレットを含む環境変数を |
レビューアプリを有効にする | ステークホルダーがエージェントと対話し、フィードバックを提供できるWebインターフェースを提供します。既存のトレースにラベルを付けてフィードバックと期待を収集するを参照してください。 |
リアルタイムトレースを有効にする | すべてのエージェントインタラクションをリアルタイムでMLflowエクスペリメントにログ記録し、モニタリングとデバッグのために即座に可視性を提供します。
|
本番運用モニタリング(ベータ)を有効にする | 本番運用のトラフィックでスコアラーを実行する自動品質評価を設定します。本番運用のモニタリングを参照してください。 |
推論テーブルを有効にする | 監査と分析のために、リクエストの入力と応答をログに記録するテーブルを作成します。 警告: リクエストログと評価ログは非推奨であり、将来のリリースで廃止されます。代わりに MLflow 3 リアルタイムトレーシングを使用してください。移行ガイダンスについては、リクエストログと評価ログの廃止を参照してください。
|
REST API リクエストと Review App フィードバックをログに記録 | APIリクエストとフィードバックを推論テーブルにログ記録します。 **警告:** フィードバックモデル は非推奨であり、今後のリリースで削除されます。MLflow 3 にアップグレードし、代わりに
|
| 説明 |
|---|---|
モデルサービングエンドポイントを作成 | 自動負荷分散により、エージェントをユーザー向けアプリケーションに提供するスケーラブルな REST API エンドポイントを作成します。 |
安全な認証をプロビジョニングします。 | エージェントがDatabricks管理のリソース(AI Searchインデックス、Unity Catalog関数など)に最小限必要な権限でアクセスできるように、有効期間の短い資格情報を自動的に提供します。 Databricksは、資格情報を発行する前にエンドポイントの所有者が必要な権限を持っていることを確認し、不正アクセスを防止します。 Databricks以外のリソースについては、シークレットを含む環境変数を |
レビューアプリを有効にする | ステークホルダーがエージェントと対話し、フィードバックを提供できるWebインターフェースを提供します。既存のトレースにラベルを付けてフィードバックと期待を収集するを参照してください。 |
推論テーブルを有効にする | 監査と分析のために、リクエストの入力と応答をログに記録するテーブルを作成します。 警告: リクエストログと評価ログは非推奨であり、将来のリリースで廃止されます。移行ガイダンスについては、リクエストログと評価ログの非推奨化を参照してください。
|
REST APIリクエストとレビューアプリのフィードバックをログに記録する(非推奨) | APIリクエストとフィードバックを推論テーブルにログ記録します。 **警告:** フィードバックモデル は非推奨であり、今後のリリースで削除されます。MLflow 3 にアップグレードし、代わりに
|