生成AI アプリのトレース (ノートブック)
このクイックスタートは、開発環境として ノートブックを使用する場合に、生成AI アプリをMLflow Tracing Databricksと統合するのに役立ちます。ローカル IDE を使用している場合は、代わりに IDE クイックスタート を使用してください。
達成できること
このチュートリアルを終了すると、次のことができるようになります。
- 生成AIアプリ用のMLflowエクスペリメントがリンクされたDatabricksノートブック
- MLflow Tracing でインストルメント化されたシンプルな 生成AI アプリケーション
- そのアプリからのトレースを MLflow エクスペリメントに
前提 条件
- Databricks Workspace : Databricksワークスペースへのアクセス。
手順 1: Databricks ノートブックを作成する
Databricks ノートブックを作成すると、生成AI アプリケーションのコンテナーである MLflow エクスペリメントが作成されます。エクスペリメントとその内容の詳細については、 データ モデルの セクションを参照してください。
- Databricks ワークスペースを開く
- 左側のサイドバーの上部にある[ 新規 ]に移動します
- [ノートブック] をクリックします
手順 2: 最新バージョンの MLflow をインストールする (推奨)
Databricks ランタイムには MLflow が含まれます。ただし、最も包括的なトレース機能や堅牢なサポートなど、生成AI 機能を最大限に活用するには、最新バージョンの MLflow を使用することを強くお勧めします。
ノートブックの MLflow を更新するには、次のコマンドを実行します。
%pip install --upgrade "mlflow[databricks]>=3.1" openai
dbutils.library.restartPython()
mlflow[databricks]>=3.1
: このコマンドにより、MLflow 3.1 以降のバージョンと、Databricks 内のシームレスな接続と機能のためのdatabricks
追加機能があることを確認します。dbutils.library.restartPython()
: これは、新しくインストールされたバージョンが Python カーネルによって使用されるようにするために重要です。
MLflow バージョンの推奨事項
MLflow 2.15.0+ ではトレース機能を使用できますが、拡張されたトレース機能や堅牢なサポートなど、最新の 生成AI 機能を利用するには、 MLflow 3 ( mlflow[databricks]
を使用している場合は 3.1 以降) をインストールすることを強くお勧めします 。
ステップ 3: アプリケーションを計測可能にする
Databricks は、一般的なフロンティアおよびオープンソース財団の LLM にすぐにアクセスできます。このクイックスタートを実行するには、次のモデル ホスティング オプションから選択できます。
- Databricks でホストされている LLM にアクセスします。
- OpenAI や MLflow でサポートされている 20+ の他の LLM SDK などの LLM プロバイダーから、独自の API キーを直接使用します。
- 外部モデルを作成して、LLM プロバイダーの API キーへの管理されたアクセスを有効にします。
ノートブックのセルで次のコードを実行します。@mlflow.trace
デコレータとOpenAI自動インストルメンテーションを組み合わせて、LLMリクエストの詳細をキャプチャします。
- Databricks-hosted LLMs
- OpenAI SDK
MLflow を使用して、Databricks でホストされている LLM に接続する OpenAI クライアントを取得します。以下のコード スニペットでは、Anthropic の Claude Sonnet LLM を使用していますが、 使用可能な基盤モデルから選択できます。
import mlflow
from databricks.sdk import WorkspaceClient
# Enable MLflow's autologging to instrument your application with Tracing
mlflow.openai.autolog()
# Create an OpenAI client that is connected to Databricks-hosted LLMs
w = WorkspaceClient()
client = w.serving_endpoints.get_open_ai_client()
# Use the trace decorator to capture the application's entry point
@mlflow.trace
def my_app(input: str):
# This call is automatically instrumented by `mlflow.openai.autolog()`
response = client.chat.completions.create(
# Replace this model name with any Databricks-hosted LLM, AI Gateway, or Model Serving endpoint name.
model="databricks-claude-sonnet-4",
messages=[
{
"role": "system",
"content": "You are a helpful assistant.",
},
{
"role": "user",
"content": input,
},
],
)
return response.choices[0].message.content
result = my_app(input="What is MLflow?")
print(result)
ネイティブの OpenAI SDK を使用して、OpenAI でホストされるモデルに接続します。以下のコードスニペットでは gpt-4o-mini
を使用していますが、 使用可能な OpenAI モデルから選択できます。
import mlflow
import os
import openai
# Ensure your OPENAI_API_KEY is set in your environment
# os.environ["OPENAI_API_KEY"] = "<YOUR_API_KEY>" # Uncomment and set if not globally configured
# Enable auto-tracing for OpenAI
mlflow.openai.autolog()
# Set up MLflow tracking to Databricks
mlflow.set_tracking_uri("databricks")
mlflow.set_experiment("/Shared/openai-tracing-demo")
openai_client = openai.OpenAI()
# Use the trace decorator to capture the application's entry point
@mlflow.trace
def my_app(input: str):
# This call is automatically instrumented by `mlflow.openai.autolog()`
response = openai_client.chat.completions.create(
model="gpt-4o-mini",
temperature=0.1,
max_tokens=100,
messages=[
{
"role": "system",
"content": "You are a helpful assistant.",
},
{
"role": "user",
"content": input,
},
]
)
return response.choices[0].message.content
result = my_app(input="What is MLflow?")
print(result)
手順 4: MLflow でトレースを表示する
トレースは、ノートブックのセルの下に表示されます。
必要に応じて、 MLflow エクスペリメント UI に移動して Trace を確認できます。
- 画面の右側にあるエクスペリメントアイコンをクリックします。
- エクスペリメント 実行 の横にある開くアイコンをクリックします。
- 生成されたトレースが [トレース] タブに表示されます。
- トレースをクリックして、その詳細を表示します。
トレースの理解
作成したトレースには、次の情報が表示されます。
-
ルート スパン :
my_app(...)
関数への入力を表します- Child Span : OpenAI 完了リクエストを表します
-
属性 : モデル名、トークン数、タイミング情報などのメタデータが含まれます
-
入力 : モデルに送信されたメッセージ
-
出力 : モデルから受信した応答
この単純なトレースは、次のようなアプリケーションの動作に関する貴重な知見をすでに提供しています。
- 質問されたこと
- どのようなレスポンスが生成されたか
- リクエストにかかった時間
- 使用されたトークンの数 (コストに影響)
RAGシステムやマルチステップエージェントのようなより複雑なアプリケーションの場合、 MLflow Tracing は各コンポーネントとステップの内部動作を明らかにすることで、さらに多くの価値を提供します。
次のステップ
これらの推奨アクションとチュートリアルで旅を続けてください。
- アプリの品質を評価する - MLflow の評価機能を使用して、生成AI アプリの品質を測定し、改善します
- 人間によるフィードバックの収集 - ユーザーやドメインの専門家からフィードバックを収集する方法を学びます
- ユーザーとセッションの追跡 - トレースにユーザーと会話のコンテキストを追加します
リファレンスガイド
このガイドで説明されている概念と機能の詳細なドキュメントをご覧ください。
- トレースの概念 - MLflow Tracingの基本を理解する
- トレース データ モデル - トレース、スパン、MLflow が観測可能性データをどのように構造化するかについて学習します
- 手動トレースAPIs - カスタムインストゥルメンテーションの高度なトレース手法を探る