このクイックスタートでは、開発環境として Databricks ノートブックを使用する場合に、GenAI アプリを MLflow Tracing と統合するのに役立ちます。 ローカル IDE を使用する場合は、代わりに IDE クイック スタート を使用してください。
このチュートリアルの最後には、次の内容が含まれます。
- GenAI アプリ用のリンクされた MLflow 実験を含む Databricks ノートブック
- MLflow トレースを使用してインストルメント化されたシンプルな GenAI アプリケーション
- MLflow 実験でそのアプリからのトレース
環境のセットアップ
Databricks ワークスペースに新しいノートブックを作成します。 ノートブックには、GenAI アプリケーションのコンテナーである既定の MLflow 実験があります。 MLflow の実験の詳細については、「 MLflow の概念」セクションを参照してください。
必要なパッケージをインストールする:
-
mlflow[databricks]:MLflow の最新バージョンを使用して、より多くの機能と改善を得ます。 -
openai: このチュートリアルでは、OpenAI API クライアントを使用して Databricks でホストされるモデルを呼び出します。
-
%pip install -qq --upgrade "mlflow[databricks]>=3.1.0" openai
dbutils.library.restartPython()
手順 1: トレースを使用してアプリケーションをインストルメント化する
以下のコード スニペットでは、LLM を使用して文テンプレートを完成する単純な GenAI アプリを定義します。
まず、 Databricks でホストされる基盤モデルに接続する OpenAI クライアントを作成します。
from databricks.sdk import WorkspaceClient
# Create an OpenAI client that is connected to Databricks-hosted LLMs
w = WorkspaceClient()
client = w.serving_endpoints.get_open_ai_client()
model_name = "databricks-claude-sonnet-4"
または、OpenAI SDK を使用して、OpenAI でホストされるモデルに接続することもできます。
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
client = openai.OpenAI()
model_name = "gpt-4o-mini"
次に、アプリケーションを定義して実行します。 トレースを使用してアプリをインストルメント化するには、次のものが使用されます。
-
mlflow.openai.autolog(): OpenAI SDK への呼び出しの詳細をキャプチャするための自動インストルメンテーション -
@mlflow.trace:任意の Python 関数を簡単にトレースできるデコレーター
import mlflow
import os
# 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")
# 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(
model=model_name,
temperature=0.1,
max_tokens=200,
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)
アプリへのトレースの追加の詳細については、 トレース インストルメンテーション ガイド と 20 以上のライブラリ統合を参照してください。
手順 2: MLflow でトレースを表示する
ノートブック セルの下にトレースが表示されます。
必要に応じて、MLflow 実験 UI に移動してトレースを表示できます。
- 右側のサイドバーで、[実験] アイコン
をクリックします。
- 開いているアイコン [
をクリックします。実験の実行の横にあります。
- 生成されたトレースが [ トレース ] タブに表示されます。
- トレースをクリックして詳細を表示します。
トレースを理解する
先ほど作成したトレースには、次の情報が表示されます。
-
ルート スパン:
my_app(...)関数への入力を表します- 子スパン: OpenAI 完了要求を表します
- 属性: モデル名、トークン数、タイミング情報などのメタデータが含まれています
- 入力: モデルに送信されるメッセージ
- 出力: モデルから受信した応答
この単純なトレースは、次のようなアプリケーションの動作に関する貴重な分析情報を既に提供しています。
- 質問された内容
- 生成された応答
- 要求にかかった時間
- 使用されたトークンの数 (コストに影響)
RAG システムやマルチステップ エージェントなどのより複雑なアプリケーションの場合、MLflow Tracing は各コンポーネントとステップの内部動作を明らかにすることで、さらに多くの価値を提供します。
次のステップ
- MLflow トレース ガイド - MLflow トレース の詳細については、ここから開始してください
- MLflow トレース統合 - 20 以上のライブラリと自動トレース統合
- トレースの概念 - MLflow トレースの基礎を理解する