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

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

備考

新しいユースケースの場合、Databricksはエージェントのコード、サーバー構成、およびデプロイワークフローを完全に制御するために、Databricks Appsにエージェントをデプロイすることを推奨しています。AIエージェントを作成してDatabricks Appsにデプロイするを参照してください。既存のエージェントを移行するには、Model ServingからDatabricks Appsへのエージェントの移行を参照してください。

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

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

要件

  • エージェントをUnity Catalogに登録する
  • MLflow 3.1.3をインストールしますdatabricks.agentsdeploy() 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 gen 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インデックスにアクセスする必要がある場合があります。

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

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

ワークスペースがPrivate Linkまたは制限付きエグレスネットワークポリシーを使用している場合、エージェントのデプロイを成功させるには、ネットワークアクセスを構成する必要があります。モデルサービング Endpointでは、コンテナのビルド プロセス中に依存関係をdownloadするために、アウトバウンドアクセスが必要です。エージェントは、ランタイム時に外部 APIs にアクセスする必要がある場合もあります。

Databricks Appsにデプロイされたエージェントについては、DNSまたは送信ポリシーの構成に関する詳細なガイダンスについて、Private Link環境にアプリをデプロイするを参照してください。

Model Servingにデプロイされたエージェントについては、以下を確認してください:

  • ビルド時の依存関係: ネットワークポリシーでは、Python パッケージの pypi.orgfiles.pythonhosted.org など、エージェントの環境で必要とされるパッケージリポジトリへのアクセスを許可する必要があります。Databricks では、ブロックされたネットワークアクセスが原因で、システムテーブルのsystem.access.outbound_networkにあるnetwork_source_type: ML Buildでビルドの失敗がログに記録されます。「モデルサービングで検証」を参照してください。
  • ランタイムの依存関係: エージェントが推論中に外部APIやサービスを呼び出す場合、それらのドメインをネットワークポリシーの許可リストに追加してください。
  • DNS解決:Private Link環境では、エージェントが依存するDatabricksのサービス(AI SearchやSQLウェアハウスエンドポイントなど)のホスト名を解決できることを確認してください。

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

次の表は、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推論テーブルを使用します

  • ストリーミング応答は、ResponsesAgentChatAgent、および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推論テーブルを使用します

  • ストリーミング応答は、ResponsesAgentChatAgent、およびChatCompletionスキーマと互換性のあるフィールドのみをログに記録します。

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

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

**警告:** フィードバックモデル は非推奨であり、今後のリリースで削除されます。MLflow 3にアップグレードし、代わりにlog_feedback APIを使用してください。ユーザーからのフィードバックを収集を参照してください。

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

その他のリソース