Databricks の外部にデプロイされたアプリを監視する
ベータ版
この機能は ベータ版です。
このページでは、Agent Frameworkの外部にデプロイされた生成AI アプリのモニタリングの設定方法について説明します Mosaic AI 。 結果スキーマ、結果の表示、UI の使用、アラートの追加、モニターの管理など、モニタリングの使用に関する一般的な情報については、「AI アプリのモニター生成」を参照してください。
Lake House Monitoring for 生成AI は、 Mosaic AI Agent Evaluation AI Judgeを使用して、ボリューム、レイテンシー、エラー、コストなどの運用メトリクスと、正確性やガイドラインの遵守などの品質メトリクスを追跡するのに役立ちます。
モニタリングの仕組み:
モニタリング UI は、次のとおりです。
必要条件
- モニタリングを有効にして構成するには、databricks-agents SDKを使用する必要があります。
%pip install databricks-agents>=0.18.1
dbutils.library.restartPython()
本番運用アプリに databricks-agents
がインストールされている必要はありません。 本番運用アプリケーションをインストールするだけで、mlflow
MLflow Tracingインストゥルメンテーションが可能になります。
モニタリングの設定
AI アプリが Databricks の外部にデプロイされている場合、または Databricks アプリを使用している場合は、Databricks ノートブック内の create_external_monitor
メソッドを使用してモニターをセットアップします。
次に、MLFlow のトレースと mlflow.tracing.set_destination を使用してデプロイされたコードをインストルメント化します以下に説明するように。Agent Framework を使用してデプロイされたアプリについては、「 生成AI アプリケーション用のエージェントをデプロイする」を参照してください。
ステップ 1: 外部モニターを作成する
create_external_monitor
次の入力を受け取ります。
catalog_name: str
- デルタアーティファクトを書き込むカタログの名前。schema_name: str
- デルタアーティファクトを書き込むスキーマの名前。このスキーマは、上記のカタログに含まれている必要があります。[Optional] experiment_id
: 本番運用トレースが格納されている MLflowexperiment_id
。 これまたはexperiment_name
のいずれかを定義する必要があります。指定しない場合、モニターは、このコマンドが実行されたノートブックのエクスペリメントを使用します。[Optional] experiment_name
: 本番運用トレースが格納されている MLflowexperiment_name
。 これまたはexperiment_id
のいずれかを定義する必要があります。指定しない場合、モニターは、このコマンドが実行されたノートブックのエクスペリメントを使用します。assessments_config: AssessmentsSuiteConfig | dict
- モニターによる評価コンピュートの設定。 次のパラメーターがサポートされています。[Optional] sample: float
- コンピュート評価への要求の割合 (0 から 1 の間)。 デフォルトを 1.0 (コンピュート assessments for all traffic) に設定します。[Optional] paused: str
-PAUSED
またはUNPAUSED
.[Optional] assessments: list[BuiltinJudge | GuidelinesJudge]
組み込みジャッジまたはガイドラインジャッジのいずれかである評価のリスト。
BuiltinJudge
次の引数を取ります。
type: str
モニタリングでサポートされた組み込み審査員の1人:「安全性」、「接地性」、「relevance_to_query」、「chunk_relevance」。
GuidelinesJudge
次の引数を取ります。
name: str
ガイドライン審査員が作成した評価の名前。guidelines: list[str]
要求/応答に対してアサートするために使用されるプレーンテキストのガイドラインの一覧。ガイドラインの詳細については、ガイドラインの遵守を参照してください
例えば:
from databricks.agents.monitoring import create_external_monitor, AssessmentsSuiteConfig, BuiltinJudge, GuidelinesJudge
external_monitor = create_external_monitor(
catalog_name='agents_demo',
schema_name='nikhil',
assessments_config=AssessmentsSuiteConfig(
sample=1.0,
assessments=[
# Builtin judges: "safety", "groundedness", "relevance_to_query", "chunk_relevance"
BuiltinJudge(name='safety'),
BuiltinJudge(name='groundedness'),
BuiltinJudge(name='relevance_to_query'),
BuiltinJudge(name='chunk_relevance'),
# Create custom judges with the guidelines judge.
GuidelinesJudge(guidelines={
"pii": ["The response must not contain personal information."],
"english": ["The response must be in English"]
}),
]
)
)
print("experiment_id=", external_monitor.experiment_id)
セル出力にモニタリング UI へのリンクが表示されます。 評価結果はこの UI で表示でき、 monitoring_table
に保存されます。評価された行を表示するには、次のコマンドを実行します。
display(spark.table("cat.schema.monitor_table"))
ステップ 2: MLFlow トレースを使用して 生成AI アプリをインストルメント化する
デプロイされたエージェントに次のパッケージをインストールして開始します。
%pip install 'mlflow>=2.21.2'
生成 AI アプリで、以下を追加します。
- mlflow.tracing.set_destinationをクリックして、トレース先を設定します。
- MLFlow 自動トレースまたは MLFlow fluent APIs でアプリをトレースできます。MLFlow は、LangChain、Bedrock、DSPy、OpenAI など、多くの一般的なフレームワーク の自動 ログ をサポートしています。
import mlflow
from mlflow.tracing.destination import Databricks
# Setup the destination.
mlflow_experiment_id = "..." # This is the experiment_id that is configured in step 1.
mlflow.tracing.set_destination(Databricks(experiment_id=mlflow_experiment_id))
# Your AI app code, instrumented with mlflow.
# MLFlow supports autologging for a variety of
## Option 1: MLFlow autologging
import mlflow
mlflow.langchain.autolog()
# Enable other optional logging
# mlflow.langchain.autolog(log_models=True, log_input_examples=True)
# Your LangChain model code here
# ...
# ...
# Option 2: MLflow Fluent APIs:
import openai
client = openai.OpenAI(api_key=os.environ.get("OPENAI_API_KEY"))
# These traces will automatically be sent to Databricks.
@mlflow.trace(span_type='AGENT')
def openai_agent(messages):
return client.chat.completions.create(
model="gpt-4o",
messages=messages
)
実行とスケジューリングの監視
モニターを作成すると、過去 30 日間のエンドポイントへのリクエストのサンプルを評価するジョブが開始されます。この初期評価は、リクエストの量とサンプリングレートによっては、完了するまでに数分かかる場合があります。
初期評価後、モニターは 15 分ごとに自動的に更新され、新しい要求が評価されます。エンドポイントに対して要求が行われてから、モニターによって評価されるまでには遅延があります。
モニターは Databricks Workflowsによって支えられています。 モニターの更新を手動でトリガーするには、 [<endpoint_name>] Agent Monitoring Job
という名前のワークフローを見つけて、[ 今すぐ実行 ] をクリックします。