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

MLflowトレース全体の問題を検出して監視します

備考

ベータ版

MLflowの問題検出はベータ版です。ワークスペース管理者は、 MLflow エクスペリメントの問題 tab を プレビュー ページから有効にする必要があります。Databricksのプレビューを管理を参照してください。

MLflow問題検出は、Genie Codeを使用してMLflowエクスペリメントのトレースを分析し、繰り返し発生する品質上および運用上の問題を見つけます。入力、出力、スパン、ツール呼び出し、タイミング、エラー、評価、メタデータを検査し、調査して修正できるよう、関連する証拠を次のような問題にグループます:

  • 顧客サポートエージェントは、返品依頼に回答する際、根拠なく30日間の返金ポリシーを作り出します。
  • リサーチエージェントが同じウェブ検索を5回繰り返すため、応答が遅くなり、ツールとトークンのコストが増加します。
  • トラベルエージェントが必須のdeparture_date引数を省略したため、予約ツールが失敗します。
  • 抽出エージェントは、呼び出し元アプリケーションが必要とするJSONスキーマではなく、説明文を返します。

MLflowは、発見から本番運用モニタリングまでの継続的な改善サイクルをサポートします。問題の背後にあるトレースを確認し、アプリケーションを修正して評価した後、デプロイ後の問題発生率を追跡できます。

問題検出のライフサイクル:繰り返し発生するパターンを検出し、トレースの証拠を確認し、エージェントを修正して評価し、本番運用で問題の発生率を監視します。

問題検出を起動する​

MLflowエクスペリメントを開き、 問題 tabを選択して、 問題検出ラン をクリックします。Genie Codeがエクスペリメント内のトレースの起動を開始します。分析には通常、トレースの数とサイズに応じて5~30分かかります。ページを離れて、後で戻って結果を確認できます。

ヒント

分析をツールの承認待ちで一時停止させないように、Genie Codeの自動承認 モードを使用します。

「問題」tabと「ラン問題検出」ボタン。

または、 トレース tabで 問題を検出 をクリックして、同じワークフローを起動することもできます。

問題を確認​

分析が完了すると、 問題 tabに検出された問題が一覧表示され、選択した問題の裏付けとなる証拠が表示されます。各証拠は、影響を受けたソーストレースにLinkしています。

検出された問題、選択した問題の裏付けとなる証拠、「モニターを有効化」ボタンが表示される「問題」tab。

検出結果が該当しない場合は、右上隅のドロップダウンを使用して、ステータスを 問題ではない に更新します。MLflowはこのフィードバックから学習し、後の検出ランで類似の問題を表示しないようにします。

コーディングエージェントの問題を修正する​

各問題には、コーディングエージェントが問題を調査するために必要なコンテキストと代表的なトレースを含む修正プロンプトがあります。「この問題を修正」セクションのプロンプトをコピーし、アプリケーションのリポジトリで実行しているコーディングエージェントに貼り付けます。エージェントは問題の証拠を使用してトレースとコードを調査し、対象を絞った変更を提案して修正を検証します。

プロンプトを使用する前に:

  • コーディングエージェントにMLflowスキルをインストールします。
  • コーディング エージェントがDatabricksワークスペースにアクセスできることを確認してください。

デプロイする前に、提案された変更を確認してください。次に、修正を確認し、リグレッションをチェックするため、代表的なケースに対して更新されたエージェントを評価します。

本番運用で修正をモニタリングする​

開発環境で機能する修正でも、本番運用トラフィックでは失敗する可能性があります。問題モニターには、デプロイ後に問題発生率が低下したかどうか、および問題が再発したかどうかが表示されます。

問題を選択し、「モニター」セクションで モニターを有効化 をクリックします。MLflowはその問題のスコアラーを作成し、ベースラインを確立するために最近のトレース全体に遡って適用します。本番運用における問題発生率を追跡するため、MLflowは新しいトレースのサンプルに対してオンラインでスコアラーのランを実行します。

過去7日間のフラグ付きトレースとフラグなしトレース、および問題率を示すモニターチャート。

修正をデプロイしたら、グラフを使用して、デプロイ前とデプロイ後の問題発生率を比較します。本番運用環境に問題が表示されなくなったら、 解決済み としてマークします。

スケジュール検出​

新しいトレースを定期的に分析するための問題検出をスケジュールします。

MLflowが問題をスキャンする頻度を選択するには、 問題 tabで 検出をスケジュール をクリックします。environment = productionなどのメタデータフィールドまたはタグ値でフィルタリングすると、トレースのサブセットに分析を限定できます。

頻度とトレースフィルターの設定が表示された問題検出のスケジュールダイアログ。

検出条件をカスタマイズする​

歯車アイコン。問題検出を設定するには、 問題 ページで をクリックします。アプリケーションにとって重要な検出結果をMLflowに指定し、組み込みのフォーカス領域をオンまたはオフにして、アプリケーション固有の障害用にカスタムカテゴリを追加できます。たとえば、ユーザーの不満を優先し、レイテンシの問題を無視できます。

REST APIを使用した問題へのアクセス​

問題のトリアージを外部ワークフローと統合するには、Issues REST APIを使用します。APIは、experiments/<experiment-id>/issues/<issue-id>の形式で問題のリソース名を使用します。

問題を検索​

検索では、タイトルのテキスト、ステータス、重大度、カテゴリ、タグ、並び替え、ページネーションに対応しています。次のリクエストは、詳細な説明付きで未解決の重大度の高い問題を返します。

Bash
curl --request POST \
"https://<workspace-host>/api/2.0/mlflow/experiments/<experiment-id>/issues:search" \
--header "Authorization: Bearer <databricks-token>" \
--header "Content-Type: application/json" \
--data '{
"parent": "experiments/<experiment-id>",
"statuses": ["PENDING"],
"severities": ["HIGH"],
"sort_key": "LAST_SEEN_TIME",
"sort_order": "DESCENDING",
"page_size": 100,
"view": "FULL"
}'

課題を更新します​

問題を更新するには、更新マスクを含めます。例えば、次の要求は問題を「解決済み」としてマークします:

Bash
curl --request PATCH \
"https://<workspace-host>/api/2.0/mlflow/experiments/<experiment-id>/issues/<issue-id>?update_mask=status" \
--header "Authorization: Bearer <databricks-token>" \
--header "Content-Type: application/json" \
--data '{"status": "RESOLVED"}'

コスト割り当て​

手動およびスケジュールされた問題検出のランでは、Genie Codeを使用します。価格情報については、Genieの価格を参照してください。

その他のリソース​