Databricks MLflow UI でトレースを表示する
キャプチャされたすべてのトレースは、MLflow エクスペリメントに記録されます。MLFLOW_TRACKING_URI が databricks に設定されている場合、ワークスペース内のマネージド MLflow Tracking サービスがそれらを格納および提供するため、実行する追加のホスティングは必要ありません。Databricks ワークスペースの MLflow UI からこれらにアクセスします。
-
エクスペリメントに移動する : トレースが記録されているエクスペリメントに移動します。 たとえば、
mlflow.set_experiment("/Shared/my-genai-app-traces")によって設定されたエクスペリメント)。 -
「トレース」タブを開きます 。「エクスペリメント」ビューで「 トレース」 タブをクリックすると、そのエクスペリメントに記録されたすべてのトレースのリストが表示されます。

トレースリストを理解する
トレースリストには、トレースの概要が高レベルで表示され、並べ替え可能な列が含まれています:
- トレース ID : 各トレースの一意の識別子。
- リクエスト :Trigger入力のプレビュー。
- レスポンス : トレースの最終出力のプレビュー。
- Session : 会話のターンなど、関連するトレースをグループ化するセッション識別子。指定されている場合に表示されます。
- User : ユーザー識別子。指定されている場合に表示されます。
- 実行時間 :トレースの完了にかかった合計時間。
- リクエスト時間 : トレースが開始されたときの Timestamp。
- ラン名 : トレースがランに属している場合、それにリンクされている、関連する MLflow ランの名前。
- ソース :計測対象のライブラリやコンポーネント(
openai、langchain、またはカスタムトレース名)など、トレースの発生元です。 - ステータス : トレースのステータス (
OK、ERROR、IN_PROGRESS)。 - トレース名 : トレースに割り当てられた名前。通常はルート スパンの名前になります。
- 評価 :評価タイプごとに1列(例:
my_scorer、professional)。リスト上のサマリーセクションには、表示されているトレース全体の平均や合格/不合格率などの集計された評価メトリクスが表示されます。 - タグ :列として表示されるタグ(例:
persona、style)。
トレースの検索とフィルタリング
UI では、関連するトレースを検索するためのいくつかの方法が提供されています。
-
検索バー : defaultでは、ID、入力、出力全体にわたってキーワードでトレースを検索します。
-
AIでフィルター :検索バーのスパークルアイコンをクリックしてAI検索に切り替え、表示するトレースを平易な英語で説明し(例:"エラーのあるトレース"や"5秒より遅いトレース")、Enterキーを押してください。MLflowは、フィルター可能なトレースフィールドに対する構造化フィルターに説明を変換します。多数のトレースにまたがる分析に関する質問には、Genie Codeを開いてください。
-
フィルタードロップダウン :次に対して構造化クエリーを構築します:
- Attributes :
Requestコンテンツ、Session time、Execution time、またはRequest time。 - Assessments :
my_scorerやprofessionalなどの評価の有無や値でフィルタリングします。 State、Trace name、Session、User、Tagsなどの他のフィールド(例:tags.persona = 'expert')。
- Attributes :
-
ソート ドロップダウン :
Request timeやExecution timeなどの列でトレースを順序付けます。 -
Columnsドロップダウン :特定のタグや評価メトリクスなど、どの列を表示するかを選択します。

メタデータフィルター
MLflow UI (トレースタブ) では、アタッチされたメタデータを表示できます。

次の検索クエリを使用して、MLflow UI でトレースをフィルターします。
# Find all traces for a specific user
metadata.`mlflow.trace.user` = 'user-123'
# Find all traces in a session
metadata.`mlflow.trace.session` = 'session-abc-456'
# Find traces for a user within a specific session
metadata.`mlflow.trace.user` = 'user-123' AND metadata.`mlflow.trace.session` = 'session-abc-456'
# Find traces from production environment
metadata.`mlflow.source.type` = 'production'
# Find traces from a specific app version
metadata.app_version = '1.0.0'
個々のトレースを探索する
特定のトレースを検査するには、リスト内の Request または Trace Name をクリックします。詳細なトレースビューには 2 つの tab があります。
- 概要 :トレースの高レベルな概要。ルートスパンの入出力、主要な中間スパン、およびトレース中に発生した例外が表示されます。 Default 、 JSON 、および Table のトグルを使用して、入出力のレンダリング方法を変更します。
- Details & Timeline : 次のセクションで説明するように、スパンごとの詳細を含む完全なスパンの内訳です。

The Details & Timeline tab には 3 つのパネルがあります:
-
トレースの内訳 (左側のパネル) :
- スパンの階層をツリーまたはウォーターフォール チャートとして表示します。トレース内のすべてのスパン、その親子関係、実行順序、および実行時間が表示されます。
- スパンを選択して、その詳細を確認します。
-
スパンの詳細(中央パネル) :
-
スパンを選択すると、このパネルにtabごとに整理された詳細が表示されます:
- チャット :チャットベースのLLMインタラクションでは、会話の流れ(ユーザー、アシスタント、ツールのメッセージ)をレンダリングして表示します。

- 入力 / 出力 :操作に渡された未加工の入力と、それによって返された未加工の出力。大規模なコンテンツの場合は、「もっと見る」 / 「折り畳む」トグルを使用して表示を拡大または縮小します。

- Attributes : スパン固有のキーと値のメタデータ(例:LLM呼び出しの場合は
modelとtemperature、リトリーバースパンの場合はdoc_uri)。

-
イベント : エラーを発生させたスパンの場合、例外の詳細とスタックトレースが表示されます。ストリーミングスパンの場合、生成された個別のデータチャンクが表示されます。
-
一部の出力フィールドには、コンテンツが Markdown の場合に、未加工ビューとレンダリング済みビューを切り替えるための Markdown トグル が用意されています。
-
-
Assessments (right panel) :
- トレース全体 または 選択したスパン に対してログに記録された評価 (ユーザーフィードバックまたは評価) を表示します。
- UI から直接フィードバックや評価スコアを記録するには、 [+ 新しい評価の追加] ボタンを使用します。これにより、手動レビューおよびラベル付けワークフローがサポートされます。

トレースレベルの情報 :このビューには、トレースレベルのタグや、トレース全体に対してログ記録された評価も表示されます。これらは、ルートスパンまたは何もスパンが選択されていないときに、[評価]パネルで確認できます。これらは、直接的なユーザーフィードバックまたは体系的な評価から得ることができます。
defaultのtabを、関心のあるフィールド、メトリクス、フィードバックコントロールのみを表示するパーソナライズされたLayoutに置き換えるには、カスタムトレースビューを構築してください。
一般的なデバッグシナリオ
MLflow Tracing UIを使用して、一般的なデバッグやオブザーバビリティのニーズに対応します。
-
遅いトレース(レイテンシのボトルネック)を特定する :
- トレースリスト :最も遅いトレースを上位に表示するには、「実行時間」で降順に並べ替えます。
- 詳細ビュー :低速なトレースを開き、「Trace breakdown」パネルを確認します。ウォーターフォール表示は、最も実行時間の長い操作を強調表示し、アプリケーションのフローにおけるボトルネックを特定します。

-
特定のユーザーからのトレースを見つける :
- Filters : 追跡されたユーザー情報があり、それがフィルターとして使用可能な場合(「Attributes」または「User」フィルターの下)は、ユーザー ID を選択または入力します。
- 検索とタグ : ユーザー ID が
mlflow.trace.userなどのタグとして保存されている場合は、tags.mlflow.trace.user = 'user_example_123'で検索します。

-
失敗 (エラー) のあるトレースの特定 :
- フィルター :
State属性を選択し、ERRORを選択して失敗したトレースのみを表示します。 - Detailed view : Select the errored span in the "Trace breakdown", then open its "Events" tab to view the exception message and stack trace.

- フィルター :
-
否定的なフィードバックや問題のあるトレースを特定します 。
- 評価フィルター :ユーザーフィードバックを収集するか、評価を実行して、Boolean の
is_correctや数値のrelevance_scoreなどのアセスメントを生成した場合は、アセスメント名と値(is_correct = falseやrelevance_score < 0.5など)でフィルタリングします。 - 評価の表示 :トレースを開き、"Assessments" パネルまたは個々のスパン評価を確認して、ログ記録されたフィードバック、スコア、根拠を確認します。

- 評価フィルター :ユーザーフィードバックを収集するか、評価を実行して、Boolean の
Databricksノートブックでのトレース
MLflow Tracing は、開発および実験のワークフローの一環として、Databricksノートブックにトレースを直接表示します。
MLflow Tracing Databricksノートブック統合は、 MLflow 2.20 以降で利用できます。

Databricks ノートブックで作業しており、MLflow Tracking URI が "databricks" に設定されている場合 (通常は default、または mlflow.set_tracking_uri("databricks") で設定されます)、トレース UI がセルの出力に自動的に表示されます。
これは次の場合に発生します。
- セルのコードがトレースを生成します(たとえば、
@mlflow.traceでデコレートされた関数や、自動計装されたライブラリの呼び出しを実行するなど)。 mlflow.search_traces()を呼び出して結果を表示します。mlflow.entities.Traceオブジェクト (mlflow.get_trace()など) は、セル内の最後の式であるか、display()に渡されます。
ノートブック内ビューでは、メインの MLflow エクスペリメント UI と同じトレース探索機能が提供されるため、コンテキストを切り替えることなく反復処理を行うことができます。
ノートブックのディスプレイを制御する
ノートブックのセルの出力でトレースの自動表示を有効または無効にするには、次を実行します: mlflow.tracing.disable_notebook_display()またはmlflow.tracing.enable_notebook_display()
制限事項
- トレースリストには最大1,000件のトレースが返されます。フィルターとトレース ID 検索は、エクスペリメント全体ではなく、このセットにのみ適用されるため、大規模なエクスペリメント内の古いトレースは表示されない可能性があります。 古い痕跡を見つけるには、その痕跡が含まれるように時間範囲を絞り込みます。
- Unity Catalogにないエクスペリメントは、100,000トレースに制限されています。スケーラブルで、ガバナンスが適用され、トレース制限のないストレージの場合、DatabricksはUnity Catalogにトレースを保存することをお勧めします。既存のエクスペリメントのトレースを移動するには、Unity Catalogのトレースに移行してください。
その他のリソース
- カスタムトレースビューを構築する - 自然言語を使用して、パーソナライズされた再利用可能なトレース Layout を作成します
- トレースのクエリーと検索 - カスタム ワークフローのトレースをプログラムで検索および分析します
- 評価データセットの構築- 体系的な評価と品質改善のためにトレースをテストデータに選択して変換します
次のステップ: トレース全体の問題を検索する