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

始めよう:ローカルIDEでのGenAI向けMLflow Tracing

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

このチュートリアルでは、以下の手順を説明します。

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

trace

前提 条件

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

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

Databricksとの接続機能を備えたMLflowをインストールします。

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

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

MLflowエクスペリメントは、GenAI アプリケーションのコンテナです。 詳細については、 「体験」を参照してください。

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

エクスペリメントを作成

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

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

  1. MLflowエクスペリメントで、ケバブ メニュー アイコンをクリックします。ケバブメニューアイコン。 > ログトレースをローカルに記録する > 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 に接続します。

databricks-openaiを使用して、Databricks がホストする LLM に接続する OpenAI クライアントを取得します。利用可能なプラットフォームモデルからモデルを選択します。

Python
import mlflow
from databricks_openai import DatabricksOpenAI

# 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
client = DatabricksOpenAI()

# 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(
    # Uses a Databricks-hosted LLM by default. To use an AI Gateway, Model Serving endpoint, or your own OpenAI credentials, replace `model_name` with a valid model such as `gpt-4o`.
    model=model_name,
    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

アプリにトレースを追加する方法の詳細については、 「アプリケーションへのトレースの追加:自動トレースと手動トレース」およびMLflow Tracing統合(20 以上の 統合)」を参照してください。

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

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

トレースの詳細

トレースを理解する

新しいトレース結果は以下の通り。

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

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

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

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

この最小限のトレースでも、アプリケーションの動作に関する有用な情報が得られます。例えば、以下のような情報です。

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

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

ガイドとリファレンス

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