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

AI アプリケーションのエージェントをデプロイ(Model Serving)

備考

新しいエージェントの場合は、Databricks では Agent Bricks CLI の使用をお勧めします。CLI は、Agent ランタイム 上のAgent Bricks エージェント サーバー を使用してエージェントをデプロイします。Databricks でのエージェントのデプロイを参照してください。既存のエージェントを Model Serving から Databricks Apps に移行する方法については、Model Serving から Databricks Apps へのエージェントの移行を参照してください。

カスタムエージェントPython APIのdeploy()関数を使用して、Model Servingにエージェントをデプロイします。デプロイにより、組み込みの拡張性、モニタリング、およびコラボレーションツールを備えたサービングEndpointが作成されます。

デプロイされたエージェントは、リアルタイムトレース、利害関係者からのフィードバックを得るためのレビューアプリ、モニタリングなど、MLflow 3の評価およびモニタリング機能と自動的に統合されます。

要件​

  • エージェントをUnity Catalogに登録する。
  • MLflow 3.1.3をインストールしますdatabricks.agentsのdeploy() APIを使用してエージェントをデプロイするか、またはそれ以上のものが必要です。
  • Databricks ノートブックの外部からエージェントをデプロイするには、databricks-agents SDK バージョン 1.1.0 が必要です。以上。

前提条件をインストールする:

Python
# 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()

エージェントのデプロイに使用 deploy()​

エージェントをモデルサービングEndpointにデプロイします:

Python
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 のリアルタイムトレースはdefaultでは機能しません。

リアルタイムトレースを有効にするには、 agents.deploy()を実行する前に、 mlflow.set_experiment()を使用してエクスペリメントをGitに関連付けられていないエクスペリメントに設定します。

deploy()関数は、defaultで次のアクションを実行します。

  • モデルサービングEndpointを作成します 。エージェントを自動スケーリングと負荷分散でホストします
  • エージェントが基盤となるリソースにアクセスするための 安全な認証をプロビジョニング します。
  • MLflow エクスペリメントのトレースと本番運用トラフィックの自動品質評価によるリアルタイム モニタリングを可能にします
  • **レビューアプリを使用してフィードバック収集のための利害関係者のコラボレーションをセットアップします**

詳細については、「詳細なデプロイ アクション」を参照してください。

デプロイメントをカスタマイズ​

展開をカスタマイズするには、追加の引数を deploy() に渡します。たとえば、scale_to_zero_enabled=True を渡すことで、アイドル状態のEndpointのスケールをゼロにすることができます。これによりコストは削減されますが、初期クエリーの提供にかかる時間が増加します。

詳細なパラメーターについては、Databricks Agents Python APIを参照してください。

既存のデプロイメントを更新​

既存のデプロイと同じUnity Catalogモデル名でdeploy()を呼び出すと、新しいモデルバージョンが既存のサービング Endpointに追加され、準備が整い次第トラフィックがそれにシフトします。ロールアウト中に以前にデプロイされたバージョンがリクエストを処理し続けるため、更新によって処理中のトラフィックが中断されることはありません。

ゼロダウンタイムのデプロイを実現するには、UC モデル バージョン (つまり、endpoint_name とモデル名) 以外の設定を変更しないでください。

エージェントデプロイの取得と削除​

既存のエージェントデプロイを取得または管理します。Databricks Agents Python APIを参照してください。

Python
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インデックスにアクセスする必要がある場合があります。

認証方法、それらを使用する時期、および設定方法に関する情報については、エージェントの認証 (Model Serving)を参照してください。

エージェントデプロイメントのネットワーキング​

ワークスペースで Private Service Connect または制限付き egress ネットワークポリシーを使用している場合、エージェントのデプロイを成功させるにはネットワークアクセスを設定する必要があります。モデルサービング Endpointでは、コンテナのビルド プロセス中に依存関係をdownloadするために、アウトバウンドアクセスが必要です。エージェントは、ランタイム時に外部 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でビルドの失敗がログに記録されます。「モデルサービングで検証」を参照してください。
  • ランタイムの依存関係: エージェントが推論中に外部APIやサービスを呼び出す場合、それらのドメインをネットワークポリシーの許可リストに追加してください。
  • DNS解決: Private Service Connect環境では、エージェントが依存するDatabricksサービス(AI SearchやSQL Warehouse Endpointなど)のホスト名を解決できることを確認してください。

デプロイメントアクションの詳細​

次の表は、deploy()呼び出しから生じる詳細なデプロイアクションをリストします。デプロイには完了までに最大15分かかる場合があります。

deploy() 操作

説明

モデルサービング Endpoint の作成

エージェントを自動負荷分散機能付きでユーザー向けアプリケーションに提供する、スケーラブルなREST API Endpointを作成します。

安全な認証をプロビジョニングする

エージェントが、必要最小限のアクセス許可でDatabricksで管理されるリソース(AI Searchインデックス、Unity Catalog機能など)にアクセスできるようにする、有効期間の短い資格情報を自動的に提供します。

Databricks は、資格情報を発行する前に Endpoint の所有者が必要な権限を持っていることを確認し、不正アクセスを防ぎます。

Databricks 以外のリソースの場合は、シークレットを含む環境変数をdeploy()に渡します。モデルサービングEndpointからリソースへのアクセスを構成するを参照してください。

レビューアプリを有効にする

利害関係者がエージェントと対話し、フィードバックを提供できるWebインターフェイスを提供します。専門家と協力者がトレースにラベルを付けられるようにするを参照してください。

リアルタイムトレースの有効化

LogsすべてのエージェントのインタラクションをリアルタイムでMLflowエクスペリメントに記録し、モニタリングとデバッグのための即座の可視性を提供します。

  • Endpointからのトレースは、現在アクティブなMLflowエクスペリメントに書き込まれます (mlflow.set_experiment()で設定)。
  • Endpoint内のすべてのエージェントは、トレースの保存に同じエクスペリメントを共有します。
  • トレースは、長期保存のために推論テーブルにも書き込まれます。

本番運用モニタリング (ベータ版) を有効にする

本番運用トラフィックでスコアラーを実行する自動品質評価を構成します。本番運用モニタリングを参照してください。

推論テーブルを有効にする

リクエストの入力と応答を監査・分析のためにLogsするテーブルを作成します。

Warning: Request Logs and assessment Logs are deprecated and will be removed in a future release. 代わりに MLflow 3 のリアルタイムトレースを使用してください。移行ガイダンスについては、リクエストLogsと評価Logsの廃止を参照してください。

  • すべてのエージェントは、ログ記録にAI Gateway推論テーブルを使用します
  • ストリーミング応答は、ResponsesAgent、ChatAgent、およびChatCompletionスキーマと互換性のあるフィールドのみをログに記録します。

REST APIリクエストとReview AppのフィードバックをLogs。

Logs API リクエストとフィードバックを推論テーブルに記録します。

警告: フィードバック モデルは非推奨であり、将来のリリースで削除される予定です。MLflow 3にアップグレードし、代わりにlog_feedback APIを使用してください。フィードバックの収集とデータセットの構築を参照してください。

  • レビューアプリからのフィードバックを受け入れてログに記録するフィードバックモデルを作成します。
  • このモデルは、デプロイされたエージェントと同じCPUモデルサービングEndpointで提供されます。

deploy() 操作

説明

モデルサービング Endpoint の作成

エージェントを自動負荷分散機能付きでユーザー向けアプリケーションに提供する、スケーラブルなREST API Endpointを作成します。

安全な認証をプロビジョニングする

エージェントが、必要最小限のアクセス許可でDatabricksで管理されるリソース(AI Searchインデックス、Unity Catalog機能など)にアクセスできるようにする、有効期間の短い資格情報を自動的に提供します。

Databricks は、資格情報を発行する前に Endpoint の所有者が必要な権限を持っていることを確認し、不正アクセスを防ぎます。

Databricks 以外のリソースの場合は、シークレットを含む環境変数をdeploy()に渡します。モデルサービングEndpointからリソースへのアクセスを構成するを参照してください。

レビューアプリを有効にする

利害関係者がエージェントと対話し、フィードバックを提供できるWebインターフェイスを提供します。専門家と協力者がトレースにラベルを付けられるようにするを参照してください。

リアルタイムトレースの有効化

LogsすべてのエージェントのインタラクションをリアルタイムでMLflowエクスペリメントに記録し、モニタリングとデバッグのための即座の可視性を提供します。

  • Endpointからのトレースは、現在アクティブなMLflowエクスペリメントに書き込まれます (mlflow.set_experiment()で設定)。
  • Endpoint内のすべてのエージェントは、トレースの保存に同じエクスペリメントを共有します。
  • トレースは、長期保存のために推論テーブルにも書き込まれます。

本番運用モニタリング (ベータ版) を有効にする

本番運用トラフィックでスコアラーを実行する自動品質評価を構成します。本番運用モニタリングを参照してください。

推論テーブルを有効にする

リクエストの入力と応答を監査・分析のためにLogsするテーブルを作成します。

Warning: Request Logs and assessment Logs are deprecated and will be removed in a future release. 代わりに MLflow 3 のリアルタイムトレースを使用してください。移行ガイダンスについては、リクエストLogsと評価Logsの廃止を参照してください。

  • すべてのエージェントは、ログ記録にAI Gateway推論テーブルを使用します
  • ストリーミング応答は、ResponsesAgent、ChatAgent、およびChatCompletionスキーマと互換性のあるフィールドのみをログに記録します。

REST APIリクエストとReview AppのフィードバックをLogs。

Logs API リクエストとフィードバックを推論テーブルに記録します。

警告: フィードバック モデルは非推奨であり、将来のリリースで削除される予定です。MLflow 3にアップグレードし、代わりにlog_feedback APIを使用してください。フィードバックの収集とデータセットの構築を参照してください。

  • レビューアプリからのフィードバックを受け入れてログに記録するフィードバックモデルを作成します。
  • このモデルは、デプロイされたエージェントと同じCPUモデルサービングEndpointで提供されます。

その他のリソース​