次の方法で共有


MLflow トレース - 生成 AI の可観測性

MLflow Tracing は、複雑なエージェントベースのシステムを含む、Gen AI アプリケーションに エンドツーエンドの監視機能 を提供する強力な機能です。 入力、出力、中間ステップ、メタデータを記録して、アプリの動作を完全に把握できます。

トレースを使用すると、次のことができます。

  • アプリケーションをデバッグして理解する
  • パフォーマンスを監視し、コストを最適化する
  • アプリケーションの品質を評価して強化する
  • 監査可能性とコンプライアンスを確保する
  • トレースを多くの一般的なサードパーティ フレームワークと統合する

ゲートウェイ追跡ビデオ

トレースの使用を開始しますか?

クイックスタートガイドを実践的に参照してください。

ローカル IDE: トレースのクイックスタート Databricks Notebook: トレースのクイックスタート

ここでは、わずか数行のコードで MLflow Tracing を使い始めるのがいかに簡単であるかを示します。 mlflow.openai.autolog() アプリケーション内のすべての OpenAI 呼び出しが自動的にトレースされます。他のコード変更は必要ありません。

import mlflow
import openai
import os # Added for environment variable configuration

# Configure Databricks Authentication (if running outside Databricks)
# If running in a Databricks notebook, these are not needed.
# os.environ["DATABRICKS_HOST"] = "https://your-workspace.databricks.com"
# os.environ["DATABRICKS_TOKEN"] = "your-databricks-token"

# Configure OpenAI API Key (replace with your actual key)
# os.environ["OPENAI_API_KEY"] = "your-api-key-here"

# Enable automatic tracing for OpenAI - that's it!
mlflow.openai.autolog()

# Set up MLflow tracking
mlflow.set_tracking_uri("databricks")
mlflow.set_experiment("/Shared/my-genai-app")

# Your existing OpenAI code works without any changes
client = openai.OpenAI()
response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": "Explain MLflow Tracing"}],
    max_tokens=100
)

# Traces are automatically captured and logged to MLflow!

ヒント

Databricks ノートブック内で実行している場合、 mlflow.set_tracking_uri("databricks") 呼び出しと mlflow.set_experiment() 呼び出しは必要ありません。MLflow は自動的に構成されます。

アプリケーションをデバッグして理解する

MLflow Tracing は、アプリケーションの動作に関する詳細な分析情報を提供し、さまざまな環境で完全なデバッグ エクスペリエンスを実現します。 完全な要求/応答サイクル (入力/出力追跡)実行フローをキャプチャすることで、アプリケーションのロジックと意思決定プロセスを視覚化して理解できます。

各中間ステップ (取得、ツール呼び出し、LLM 対話など) の入力、出力、メタデータ、および関連するユーザー フィードバックまたは品質評価の結果を調べることで、次のことができます。

  • 開発中: GenAI ライブラリの抽象化の下で何が起こるかを詳細に把握し、問題や予期しない動作が発生する場所を正確に特定するのに役立ちます。
  • 運用環境: 問題をリアルタイムで監視およびデバッグします。 トレースはエラーをキャプチャし、各ステップの待機時間などの運用メトリックを含めることができるので、迅速な診断に役立ちます。

MLflow Tracing は 、開発と運用の間で統一されたエクスペリエンスを提供します。アプリケーションを 1 回インストルメント化し、両方の環境でトレースが一貫して機能します。 これにより、IDE、ノートブック、運用監視ダッシュボードなど、任意の環境内でトレースをシームレスに移動できるため、複数のツールを切り替えたり、圧倒的なログを検索したりする手間を省くことができます。

トレース エラーのスクリーンショット

パフォーマンスを監視し、コストを最適化する

GenAI アプリケーションのパフォーマンスとコストを理解して最適化することは非常に重要です。 MLflow Tracing を使用すると、アプリケーションの実行の各ステップで 、待機時間、コスト (トークン使用量など)、リソース使用率 などの主要な運用メトリックをキャプチャして監視できます。

これにより、次のことができます。

  • 複雑なパイプライン内のパフォーマンスのボトルネックを追跡して特定します。
  • リソース使用率を監視して、効率的な運用を確保します。
  • リソースまたはトークンが消費される場所を理解することで、コスト効率を最適化します。
  • コードまたはモデルの対話におけるパフォーマンス向上の領域を特定します。

さらに、MLflow トレースは業界標準の可観測性仕様である OpenTelemetry と互換性があります。 この互換性により、既存の監視スタック内のさまざまなサービスにトレース データをエクスポートできます。 詳細については、「 トレースを他のサービスにエクスポートする 」を参照してください。

アプリケーションの品質を評価して強化する

GenAI アプリケーションの品質を体系的に評価して改善することは、重要な課題です。 MLflow Tracing を使用すると、ユーザーのフィードバック品質評価の結果 (LLM ジャッジまたはカスタム メトリックから) をトレースに直接アタッチして追跡できます。

これにより、アプリケーションのライフサイクル全体にわたる包括的な品質評価が可能になります。

  • 開発中: 人間のレビュー担当者または LLM のジャッジを使用してトレースを評価し、次の作業を行います。
    • 精度、関連性、およびその他の品質面を測定します。
    • プロンプト、モデル、または取得戦略を繰り返し実行して、品質の向上を追跡します。
    • 品質の問題のパターン (たとえば、応答の低下につながる特定の種類のクエリ) を特定します。
    • アプリケーションに対してデータドリブンの改善を行います。
  • 運用環境: 次の方法で品質をリアルタイムで監視および評価します。
    • デプロイ全体で品質メトリック (ユーザーのフィードバックと評価結果から派生) を追跡します。
    • 急激な品質低下または回帰の特定。
    • 重大な品質問題に対するアラートの発動。
    • 質の高いサービス レベル アグリーメント (SLA) の維持に役立ちます。

評価実行と運用監視の両方からのトレースを調べて、品質の問題の根本原因 (RAG システム内のドキュメントの取得が不十分であったり、特定のモデルのパフォーマンスが低下したりするなど) を特定できます。 トレースを使用すると、これらの問題を詳細に分析し、迅速に反復処理することができます。

さらに、トレースは 、高品質の評価データセットを構築するために非常に重要です。 実際のユーザー操作とその結果をキャプチャすることで、次のことができます。

  • 実際の使用パターンに基づいて代表的なテスト ケースをキュレーションします。
  • 多様なシナリオに対応する包括的な評価セットを構築します。
  • このデータを使用して、モデルを微調整したり、取得メカニズムを改善したりします。

MLflow LLM Evaluation と組み合わせると、MLflow はアプリケーションの品質を評価して改善するためのシームレスなエクスペリエンスを提供します。

評価の追跡

監査可能性とコンプライアンスを確保する

MLflow Tracing を使用すると、アプリケーションのすべての実行をキャプチャし、すべての出力がどのように生成されたかの詳細な監査証跡を作成できます。 これは、GenAI アプリケーションの透明性、アカウンタビリティ、コンプライアンスを維持するために不可欠です。

すべての入力、出力、中間ステップ、使用されるパラメーターなど、実行フローを完全に可視化することで、次のことができます。

  • すべての出力の配信元を追跡して確認します。
  • コンプライアンス要件の証拠を提供します。
  • 特定の要求に対するアプリケーションの動作の完全な事後分析を有効にします。
  • 過去のトレースを調べることで、履歴の問題をデバッグします。

この包括的なログ記録により、内部監査や外部規制のニーズに必要な記録が確実に得られます。

トレース パラメーター

広範なフレームワークのサポートと拡張性

MLflow Tracing は、最小限の摩擦で既存の GenAI 開発ワークフローに適合するように設計されています。 OpenAI、LangChain、LlamaIndex、DSPy、Anthropic などを含む、 20 以上の一般的な GenAI ライブラリとフレームワーク とすぐに統合できます。 これらの多くの場合、トレースは 1 行のコード (例: mlflow.openai.autolog()) で有効にすることができます。

サポートされているライブラリの完全な一覧とその使用方法については、「 自動トレース 」セクションと 「統合」ページ を参照してください。

この広範なサポートにより、コードを大幅に変更することなく、既に使用しているツールを利用して、監視を実現できます。 カスタム コンポーネントまたはサポートされていないライブラリの場合、MLflow には強力な 手動トレース API も用意されています

MLflow のバージョン管理に関する推奨事項

トレース機能は MLflow 2.15.0 以降で利用できます。最新の Gen AI 機能には MLflow 3 ( mlflow[databricks] を使用している場合は特に 3.1 以降) をインストールすることを強くお勧めします。

トレースのみが必要な運用環境では、 mlflow-tracing パッケージを検討してください。 Databricks を使用した開発と実験には、 mlflow[databricks]>=3.1を使用します。

次のステップ

これらの推奨されるアクションとチュートリアルを使用して、体験を続けます。

リファレンス ガイド

このガイドで説明されている概念と機能の詳細なドキュメントを確認します。