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

はじめよう: 生成AI 向けMLflow Tracing (ローカル IDE)

このクイックスタートは、IDE (VS Code、PyCharm、Cursor など) やローカルでホストされているノートブック環境 (Jupyter など) などのローカル開発環境を使用する場合に、生成AI アプリをMLflow Tracingと統合するのに役立ちます。Databricksノートブックを使用している場合は、代わりにDatabricksノートブック クイックスタートを使用してください。

達成できること

このチュートリアルを終了すると、次のことができるようになります。

  • 生成AI アプリのMLflowエクスペリメント
  • MLflow に接続されたローカル開発環境
  • MLflow Tracing でインストルメント化されたシンプルな 生成AI アプリケーション
  • MLflowエクスペリメント内のそのアプリからのトレース

trace

前提 条件

  • Databricks Workspace : Databricksワークスペースへのアクセス。

手順 1: MLflow をインストールする

ローカル IDE で作業する場合は、Databricks 接続を使用して MLflow をインストールする必要があります。

Bash
pip install --upgrade "mlflow[databricks]>=3.1" openai

ステップ 2: 新しいMLflowエクスペリメントを作成する

MLflowエクスペリメントは、生成AI アプリケーションのコンテナです。 エクスペリメントの詳細については、概念セクションをご覧ください。

  1. Databricks ワークスペースを開く
  2. 左側のサイドバーの AI / ML の下にある [エクスペリメント] をクリックします。
  3. エクスペリメント ページの上部で、 GenAI アプリとエージェント をクリックします。
  4. 情報アイコンをクリックしてエクスペリメント ID とパスを取得します。情報アイコン。左上にあります。 これらは後で使用します。

エクスペリメントを作成

手順 3: 環境を MLflow に接続する

以下のコード スニペットは、 Databricksパーソナルアクセストークンを使用して認証を設定する方法を示しています。 MLflow は、Databricks がサポートする他の認証方法でも動作します。

  1. MLflowエクスペリメントで、Kebab メニュー アイコンをクリックします。ケバブメニューアイコン。 > トレースをローカルに記録 > APIキーの生成 をクリックします。

  2. 生成されたコードをコピーしてターミナルで実行します。

    Bash
    export DATABRICKS_TOKEN=<databricks-personal-access-token>
    export DATABRICKS_HOST=https://<workspace-name>.cloud.databricks.com
    export MLFLOW_TRACKING_URI=databricks
    export MLFLOW_REGISTRY_URI=databricks-uc
    export MLFLOW_EXPERIMENT_ID=<experiment-id>

ステップ 4: アプリケーションを作成して計測可能にする

トレースを有効にして 生成AI アプリを作成します。

  1. プロジェクトディレクトリに app.py という名前のPythonファイルを作成します。

  2. OpenAI クライアントを初期化して、Databricks でホストされている LLM または OpenAI でホストされている LLM に接続します。

MLflow を使用して、Databricks でホストされている LLM に接続する OpenAI クライアントを取得します。利用可能な基盤モデルからモデルを選択します。

Python
import mlflow
from databricks.sdk import WorkspaceClient

# Enable MLflow's autologging to instrument your application with Tracing
mlflow.openai.autolog()

# Set up MLflow tracking to Databricks
mlflow.set_tracking_uri("databricks")
mlflow.set_experiment("/Shared/docs-demo")

# Create an OpenAI client that is connected to Databricks-hosted LLMs
w = WorkspaceClient()
client = w.serving_endpoints.get_open_ai_client()

# Select an LLM
model_name = "databricks-claude-sonnet-4"
  1. アプリケーションを定義して実行します。

    @mlflow.traceデコレータを使用すると、任意の Python 関数を簡単にトレースでき、 OpenAI 自動インストルメンテーションと組み合わせて、OpenAI SDK への呼び出しの詳細をキャプチャできます。

    Python
    # 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, # This example uses a Databricks hosted LLM - you can replace this with any AI Gateway or Model Serving endpoint. If you provide your own OpenAI credentials, replace with a valid OpenAI model e.g., gpt-4o, etc.
    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)
  2. アプリケーションを実行する

    Bash
    python app.py

アプリにトレースを追加する方法の詳細については、トレース インストルメンテーション ガイド20 を超えるライブラリ統合を参照してください。

ステップ 5: MLflowでトレースを表示する

  1. MLflowエクスペリメント UI に戻ります。
  2. 生成されたトレースが 「トレース」 タブに表示されます。
  3. トレースをクリックすると詳細が表示されます。

トレースの詳細

トレースを理解する

作成したトレースには、次の情報が表示されます。

  • ルートスパン : my_app(...)関数への入力を表します

    • 子スパン : OpenAI完了リクエストを表す
  • 属性 : モデル名、トークン数、タイミング情報などのメタデータが含まれます

  • 入力 : モデルに送信されたメッセージ

  • 出力 : モデルから受信した応答

この単純なトレースは、次のようなアプリケーションの動作に関する貴重な知見をすでに提供しています。

  • 質問されたこと
  • どのようなレスポンスが生成されたか
  • リクエストにかかった時間
  • 使用されたトークンの数 (コストに影響)

RAGシステムやマルチステップエージェントのようなより複雑なアプリケーションの場合、 MLflow Tracing は各コンポーネントとステップの内部動作を明らかにすることで、さらに多くの価値を提供します。

ガイドと参考資料

このガイドの概念と機能の詳細については、以下を参照してください。