MLflow Tracing - 生成AI オブザーバビリティ
MLflow Tracingは、複雑なエージェントベースのシステムを含むジェネレーションAIアプリケーションの エンドツーエンドの可観測性 を提供する強力な機能です。入力、出力、中間ステップ、メタデータを記録して、アプリの動作の全体像を把握できます。
トレースを使用すると、次のことができます。
- アプリケーションのデバッグと理解
- パフォーマンスの監視とコストの最適化
- アプリケーションの品質を評価し、向上させる
- 監査可能性とコンプライアンスの確保
- トレースを多くの一般的なサードパーティフレームワークと統合する
トレーシングを始めてみませんか?
実践的な体験は、クイックスタートをご覧ください。
ここでは、わずか数行のコードで 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 では、 開発と本番運用の間で統一されたエクスペリエンス が提供され、アプリケーションを一度インストゥルメントすれば、トレースは両方の環境で一貫して機能します。 これにより、IDE、ノートブック、本番運用モニタリングダッシュボードなど、お好みの環境内でトレースをシームレスにナビゲートできるため、複数のツールを切り替えたり、膨大なログを検索したりする手間が省けます。
パフォーマンスの監視とコストの最適化
GenAIアプリケーションのパフォーマンスとコストを理解し、最適化することは非常に重要です。MLflow Tracing を使用すると、アプリケーションの実行の各ステップで 、レイテンシ、コスト(トークン使用量など)、リソース使用率 などの主要な運用メトリクスをキャプチャして監視できます。
これにより、次のことが可能になります。
- 複雑なパイプライン内のパフォーマンスのボトルネックを追跡して特定します。
- リソース使用率を監視して、効率的な運用を確保します。
- リソースやトークンが消費される場所を理解することで、コスト効率を最適化します。
- コードまたはモデルの相互作用におけるパフォーマンス改善の余地がある領域を特定します。
さらに、 MLflow Tracing は、業界標準の可観測性仕様である OpenTelemetry と互換性があります。 この互換性により、トレースデータを既存の監視スタック内のさまざまなサービスにエクスポートできます。詳細については、「 トレースを他のサービスにエクスポート する」を参照してください。
アプリケーションの品質を評価し、向上させる
GenAIアプリケーションの品質を体系的に評価し、改善することは、中核的な課題です。MLflow Tracing、 ユーザーフィードバックと品質評価の結果 (LLM審査員またはカスタムメトリクスによる)をトレースに直接添付して追跡できるようにすることで役立ちます。
これにより、アプリケーションのライフサイクル全体を通じて包括的な品質評価が可能になります。
-
開発中 : 人間のレビュー担当者または LLM ジャッジを使用してトレースを評価し、次のことを行います。
- 精度、関連性、およびその他の品質側面を測定します。
- プロンプト、モデル、または取得戦略を反復する際の品質改善を追跡します。
- 品質問題のパターンを特定します (たとえば、応答が不十分な特定の種類のクエリなど)。
- データドリブンな改善をアプリケーションに行います。
-
In 本番運用 : リアルタイムの品質を監視および評価するには、次の方法を使用します。
- デプロイ間での品質メトリクス (ユーザーフィードバックと評価結果から導き出される) の追跡。
- 突然の品質低下やリグレッションの特定。
- 重大な品質問題に対するアラートのトリガー。
- 品質の高いサービスレベルアグリーメント(SLA)の維持を支援します。
評価実行と本番運用 モニタリングの両方からのトレースを調査して、品質問題の根本原因 (たとえば、RAG システムでの不十分な取得ドキュメントや特定のモデルのパフォーマンスの低下など) を特定できます。 トレースを使用すると、これらの問題を詳細に分析し、迅速に反復処理することができます。
さらに、トレースは 高品質の評価データセットを構築する ために非常に貴重です。実際のユーザーインタラクションとその結果をキャプチャすることで、次のことが可能になります。
- 実際の使用パターンに基づいて代表的なテストケースをキュレーションします。
- 多様なシナリオをカバーする包括的な評価セットを構築します。
- このデータを使用して、モデルを微調整したり、取得メカニズムを改善したりします。
MLflow LLM Evaluation と組み合わせると、MLflow はアプリケーションの品質を評価および改善するためのシームレスなエクスペリエンスを提供します。
監査可能性とコンプライアンスの確保
MLflow Tracing では、アプリケーションのすべての実行をキャプチャし、すべての出力がどのように生成されたかの詳細な監査証跡を作成できます。 これは、GenAI アプリケーションの透明性、説明責任、コンプライアンスを維持するために不可欠です。
すべての入力、出力、中間ステップ、使用されるパラメーターを含む実行フローを完全に可視化することで、次のことが可能になります。
- すべての出力の出所を追跡し、検証します。
- コンプライアンス要件の証拠を提供します。
- 特定のリクエストに対するアプリケーションの動作を徹底的に事後分析できます。
- 過去のトレースを調べて、過去の問題をデバッグします。
この包括的なロギングにより、内部監査や外部規制のニーズに必要な記録を確保できます。
広範なフレームワークのサポートと拡張性
MLflow Tracing は、既存のGenAI開発ワークフローに最小限の摩擦で適合するように設計されています。 OpenAI、LangChain 、LlamaIndex、 、 など、 すぐに使える20+の一般的なGenAIライブラリおよびフレームワークDSPy Anthropicと統合します。これらの多くでは、トレースは 1 行のコード( mlflow.openai.autolog()
など)で有効にできます。
サポートされているライブラリの完全なリストとその使用方法については、 自動トレース のセクションと インテグレーションのページを参照してください 。
この広範なサポートにより、コードを大幅に変更することなく、すでに使用しているツールを活用して可観測性を確保できます。カスタムコンポーネントまたはサポートされていないライブラリの場合、MLflow には強力な手動トレースAPIs.
MLflow のバージョン管理に関する推奨事項
MLflow 2.15.0+ ではトレース機能を利用できますが、最新世代の AI 機能を利用するには、MLflow 3 ( mlflow[databricks]
を使用する場合は 3.1 以降) をインストールすることを強くお勧めします。
トレースのみが必要な本番運用環境の場合は、 mlflow-tracing
パッケージをご検討ください。 Databricks を使用した開発と実験には、 mlflow[databricks]>=3.1
.
次のステップ
これらの推奨アクションとチュートリアルで旅を続けてください。
- アプリのインストルメント化 - 自動トレースと手動トレースのアプローチから選択します
- アプリのデバッグと監視 - デバッグとモニタリングにトレースを使用する方法を学ぶ
- トレースを使用して品質を向上させる - 評価データセットを作成し、改善の機会を特定します
リファレンスガイド
このガイドで説明されている概念と機能の詳細なドキュメントをご覧ください。
- トレースの概念 - MLflow Tracingの基本を理解する
- トレーシング・データ・モデル - トレース、スパン、属性について学習します
- クエリ トレース - トレース データへのプログラムによるアクセスを調べる