生成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 を使用する
- LLM プロバイダーから独自の API キーを直接使用する
- 外部モデルを作成して、LLM プロバイダーの API キーへの管理されたアクセスを有効にします
がサポートする他の20+LLM SDK (Anthropic 、 Bedrock など) または 生成AI オーサリングフレームワーク ( LangGraph など)MLflowのいずれかを使用する場合は、新しいMLflow エクスペリメントを作成するときに表示される指示に従ってください。
アプリケーションに適した統合を選択します。
-
次のコードを使用して、ノートブックにセルを作成します
ここでは、任意の Python アプリケーションを簡単にトレースできる
@mlflow.trace
デコレータと OpenAI 自動インストルメンテーションを組み合わせて、OpenAI SDK への呼び出しの詳細をキャプチャします。次のコード スニペットは、Anthropic の Claude Sonnet LLM を使用しています。サポートされている基本モデルのリストから別の LLM を選択できます。
Pythonimport 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
mlflow_creds = mlflow.utils.databricks_utils.get_databricks_host_creds()
client = OpenAI(
api_key=mlflow_creds.token,
base_url=f"{mlflow_creds.host}/serving-endpoints"
)
# 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="databricks-claude-sonnet-4", # This example uses a Databricks hosted LLM - you can replace this with any AI Gateway or Model Serving endpoint. If you have an external model endpoint configured, you can use that model name here.
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 に移動してトレースを表示できます
- 画面右側のエクスペリメントアイコンをクリックします
- エクスペリメント 実行の横にある開くアイコンをクリックします
- 生成されたトレースが [トレース ] タブに表示されます
- トレースをクリックすると、その詳細が表示されます
トレースの理解
作成したトレースには、次の情報が表示されます。
-
ルート スパン :
my_app(...)
関数への入力を表します- Child Span : OpenAI 完了リクエストを表します
-
属性 : モデル名、トークン数、タイミング情報などのメタデータが含まれます
-
入力 : モデルに送信されたメッセージ
-
出力 : モデルから受信した応答
この単純なトレースは、次のようなアプリケーションの動作に関する貴重な知見をすでに提供しています。
- 質問されたこと
- どのようなレスポンスが生成されたか
- リクエストにかかった時間
- 使用されたトークンの数 (コストに影響)
RAGシステムやマルチステップエージェントのようなより複雑なアプリケーションの場合、 MLflow Tracing は各コンポーネントとステップの内部動作を明らかにすることで、さらに多くの価値を提供します。
次のステップ
これらの推奨アクションとチュートリアルで旅を続けてください。
- アプリの品質を評価する - MLflow の評価機能を使用して、生成AI アプリの品質を測定し、改善します
- 人間によるフィードバックの収集 - ユーザーやドメインの専門家からフィードバックを収集する方法を学びます
- ユーザーとセッションの追跡 - トレースにユーザーと会話のコンテキストを追加します
リファレンスガイド
このガイドで説明されている概念と機能の詳細なドキュメントをご覧ください。
- トレースの概念 - MLflow Tracingの基本を理解する
- トレース データ モデル - トレース、スパン、MLflow が観測可能性データをどのように構造化するかについて学習します
- 手動トレースAPIs - カスタムインストゥルメンテーションの高度なトレース手法を探る