🔬databricks-mlflow-evaluation
- プラグイン
- databricks
- ソース
- GitHub で見る ↗
説明
MLflow 3 GenAI エージェント評価。 次のような場合に使用: - `mlflow.genai.evaluate()` のコードを記述する - `@scorer` 関数を作成する - 組み込みスコアラー(Guidelines、Correctness、Safety、RetrievalGroundedness)を使用する - トレースから評価データセットを構築する - トレースの取り込みおよび本番環境モニタリングをセットアップする - ドメイン専門家のフィードバックをもとに MemAlign でジャッジを調整する - 自動プロンプト改善のために GEPA を用いた `optimize_prompts()` を実行する
原文を表示
MLflow 3 GenAI agent evaluation. Use when writing mlflow.genai.evaluate() code, creating @scorer functions, using built-in scorers (Guidelines, Correctness, Safety, RetrievalGroundedness), building eval datasets from traces, setting up trace ingestion and production monitoring, aligning judges with MemAlign from domain expert feedback, or running optimize_prompts() with GEPA for automated prompt improvement.
ユースケース
- ✓mlflow.genai.evaluate()のコードを記述する
- ✓@scorer関数を作成する
- ✓組み込みスコアラーを使用する
- ✓トレースから評価データセットを構築する
- ✓トレースの取り込みおよび本番環境モニタリングをセットアップする
本文(日本語訳)
MLflow 3 GenAI 評価
このスキルのスコープとアップストリームの mlflow/skills との違い
OSS の mlflow/skills リポジトリには、agent-evaluation およびその関連スキル(instrumenting-with-mlflow-tracing、analyze-mlflow-trace、retrieving-mlflow-traces、querying-mlflow-metrics)が含まれています。
これらは、mlflow.genai.evaluate()、スコアラー/ジャッジ、データセット、トレーシングのセットアップ、5ステップの評価ループといった、MLflow GenAI 評価の汎用ワークフロー全般をカバーしています。
本スキルは、そのワークフローを再説明するのではなく、Databricks 固有のパターンをその上に重ねるものです。 次のような場合に使用:
- Unity Catalog へのトレース取り込み — UCテーブルへのプロダクショントレースの書き込み、ログベースのモニタリング(
patterns-trace-ingestion.md) - UCのSMEラベリングセッションを利用したMemAlignジャッジのアライメント — Databricks上でドメイン専門家のフィードバックを収集し、カスタムジャッジをそれに合わせて調整する(
patterns-judge-alignment.md) optimize_prompts()GEPAループ — UCデータセット上で動作する、Databricksの自動プロンプト最適化ドライバー(patterns-prompt-optimization.md)- Databricks向けスコアラー/データセットパターン — UCテーブルをバックエンドとするデータセット、DatabricksのUIでトレースにタグを付けて評価対象に含める手法(
patterns-datasets.md、patterns-scorers.md)
それ以外のすべて — 汎用の mlflow.genai.evaluate() 呼び出し、スコアラー作成パターン、Databricks 外でのデータセット作成、UCテーブルに紐付かない MLflow トレーシングのセットアップ — については、アップストリームの mlflow/skills/agent-evaluation スキルが正式な情報源であり、MLflow チームによって常に最新の状態に保たれています。
コードを書く前に
- GOTCHAS.md を読む — 失敗の原因となる15以上のよくある間違いを掲載
- CRITICAL-interfaces.md を読む — 正確な API シグネチャとデータスキーマを掲載
エンドツーエンドワークフロー
目的に応じて以下のワークフローに従ってください。各ステップには、参照すべきファイルが示されています。
ワークフロー 1: 初回評価セットアップ
MLflow GenAI 評価を初めて使用するユーザー、または新しい agent の評価を設定するユーザー向け。
| ステップ | アクション | 参照ファイル |
|---|---|---|
| 1 | 何を評価するかを理解する | user-journeys.md(Journey 0: Strategy) |
| 2 | API パターンを学ぶ | GOTCHAS.md + CRITICAL-interfaces.md |
| 3 | 初期データセットを構築する | patterns-datasets.md(Patterns 1–4) |
| 4 | スコアラーを選択/作成する | patterns-scorers.md + CRITICAL-interfaces.md(組み込みリスト) |
| 5 | 評価を実行する | patterns-evaluation.md(Patterns 1–3) |
ワークフロー 2: プロダクショントレース → 評価データセット
プロダクショントレースから評価データセットを構築する場合向け。
| ステップ | アクション | 参照ファイル |
|---|---|---|
| 1 | トレースを検索・フィルタリングする | patterns-trace-analysis.md(MCPツールセクション) |
| 2 | トレースの品質を分析する | patterns-trace-analysis.md(Patterns 1–7) |
| 3 | 対象トレースにタグを付ける | patterns-datasets.md(Patterns 16–17) |
| 4 | トレースからデータセットを構築する | patterns-datasets.md(Patterns 6–7) |
| 5 | 期待値/グラウンドトゥルースを追加する | patterns-datasets.md(Pattern 2) |
ワークフロー 3: パフォーマンス最適化
agent の実行が遅い、またはコストが高い場合のデバッグ向け。
| ステップ | アクション | 参照ファイル |
|---|---|---|
| 1 | スパンごとにレイテンシをプロファイリングする | patterns-trace-analysis.md(Patterns 4–6) |
| 2 | トークン使用量を分析する | patterns-trace-analysis.md(Pattern 9) |
| 3 | コンテキストの問題を検出する | patterns-context-optimization.md(Section 5) |
| 4 | 最適化を適用する | patterns-context-optimization.md(Sections 1–4, 6) |
| 5 | 再評価して効果を測定する | patterns-evaluation.md(Pattern 6–7) |
ワークフロー 4: リグレッション検出
agent のバージョン間を比較し、リグレッションを検出する場合向け。
| ステップ | アクション | 参照ファイル |
|---|---|---|
| 1 | ベースラインを確立する | patterns-evaluation.md(Pattern 4: named runs) |
| 2 | 現在のバージョンを実行する | patterns-evaluation.md(Pattern 1) |
| 3 | メトリクスを比較する | patterns-evaluation.md(Patterns 6–7) |
| 4 | 失敗したトレースを分析する | patterns-trace-analysis.md(Pattern 7) |
| 5 | 特定の失敗をデバッグする | patterns-trace-analysis.md(Patterns 8–9) |
ワークフロー 5: カスタムスコアラーの開発
プロジェクト固有の評価メトリクスを作成する場合向け。
| ステップ | アクション | 参照ファイル |
|---|---|---|
| 1 | スコアラーのインターフェースを理解する | CRITICAL-interfaces.md(Scorer セクション) |
| 2 | スコアラーパターンを選択する | patterns-scorers.md(Patterns 4–11) |
| 3 | マルチ agent スコアラーの場合 | patterns-scorers.md(Patterns 13–16) |
| 4 | 評価を使ってテストする | patterns-evaluation.md(Pattern 1) |
ワークフロー 6: Unity Catalog へのトレース取り込みとプロダクションモニタリング
トレースをUnity Catalogに保存し、アプリケーションをインストルメント化して、継続的なプロダクションモニタリングを有効にする場合向け。
| ステップ | アクション | 参照ファイル |
|---|---|---|
| 1 | UCスキーマをExperimentにリンクする | patterns-trace-ingestion.md(Patterns 1–2) |
| 2 | トレースの送信先を設定する | patterns-trace-ingestion.md(Patterns 3–4) |
| 3 | アプリケーションをインストルメント化する | patterns-trace-ingestion.md(Patterns 5–8) |
| 4 | トレースソースを設定する(Apps/Serving/OTEL) | patterns-trace-ingestion.md(Patterns 9–11) |
| 5 | プロダクションモニタリングを有効にする | patterns-trace-ingestion.md(Patterns 12–13) |
| 6 | UCトレースをクエリ・分析する | patterns-trace-ingestion.md(Pattern 14) |
ワークフロー 7: MemAlign を使ったジャッジのアライメント
LLMジャッジをドメイン専門家の好みに合わせて調整する場合向け。 適切にアライメントされたジャッジは、評価精度、プロダクションモニタリングのシグナル品質、プロンプト最適化の精度など、すべての下流ユースケースを改善します。 このワークフローはプロンプト最適化とは独立して、単独でも大きな価値をもたらします。
| ステップ | アクション | 参照ファイル |
|---|---|---|
| 1 | make_judge でベースジャッジを設計する(任意のフィードバックタイプ対応) |
patterns-judge-alignment.md(Pattern 1) |
| 2 | evaluate() を実行し、成功したトレースにタグを付ける |
patterns-judge-alignment.md(Pattern 2) |
| 3 | UCデータセットを構築し、SMEラベリングセッションを作成する | patterns-judge-alignment.md(Pattern 3) |
| 4 | ラベリング完了後、MemAlignでジャッジをアライメントする | patterns-judge-alignment.md(Pattern 4) |
| 5 | アライメント済みジャッジをExperimentに登録する | patterns-judge-alignment.md(Pattern 5) |
| 6 | アライメント済みジャッジで再評価する(ベースライン) | patterns-judge-alignment.md(Pattern 6) |
ワークフロー 8: GEPAによる自動プロンプト最適化
optimize_prompts() を使用して、登録済みのシステムプロンプトを自動的に改善する場合向け。
任意のスコアラーと組み合わせて動作しますが、アライメント済みジャッジ(ワークフロー 7)と組み合わせることで、最もドメインに適したシグナルが得られます。
アライメントと最適化を組み合わせたフルエンドツーエンドループについては、user-journeys.md の Journey 10 を参照してください。
| ステップ | アクション | 参照ファイル |
|---|---|---|
| 1 | 最適化用データセットを構築する(inputs + expectations) | patterns-prompt-optimization.md(Pattern 1) |
| 2 | GEPA + スコアラーで optimize_prompts() を実行する |
patterns-prompt-optimization.md(Pattern 2) |
| 3 | 新バージョンを登録し、条件付きでプロモートする | patterns-prompt-optimization.md(Pattern 3) |
参照ファイルクイックルックアップ
| 参照ファイル | 目的 | 読むタイミング |
|---|---|---|
GOTCHAS.md |
よくある間違い | コードを書く前に必ず最初に読む |
CRITICAL-interfaces.md |
APIシグネチャ、スキーマ | 評価コードを書く際 |
patterns-evaluation.md |
評価の実行・比較 | 評価を実行する際 |
patterns-scorers.md |
カスタムスコアラーの作成 | 組み込みスコアラーでは不十分な場合 |
patterns-datasets.md |
データセット構築 | 評価データを準備する際 |
patterns-trace-analysis.md |
トレースのデバッグ | agentの挙動を分析する際 |
patterns-context-optimization.md |
トークン/レイテンシの改善 | agentが遅い、またはコストが高い場合 |
patterns-trace-ingestion.md |
UCトレースのセットアップ・モニタリング | トレースストレージやプロダクションモニタリングを設定する際 |
patterns-judge-alignment.md |
MemAlignジャッジのアライメント、ラベリングセッション、SMEフィードバック | ジャッジをドメイン専門家の好みに合わせる際 |
patterns-prompt-optimization.md |
GEPAによる最適化: データセット構築、optimize_prompts()、プロモート |
自動プロンプト改善を実行する際 |
user-journeys.md |
ハイレベルワークフロー、アライメント+最適化のフルループ | 新しい評価プロジェクトを開始する際、またはフルループを実行する際 |
重要なAPI仕様
- 使用すべきAPI:
mlflow.genai.evaluate()(mlflow.evaluate()は不可) - データフォーマット:
{"inputs": {"query": "..."}}(ネスト構造が必須) predict_fn:**unpacked kwargsを受け取る(dictではない)- MemAlign: スコアラー非依存(
float、bool、categoricalなど任意のfeedback_value_typeに対応);埋め込みモデルへのトークン消費が多いため、embedding_modelを明示的に指定すること - ラベルスキーマ名の一致:
align()がスコアを正しく対応付けるために、ラベリングセッション内のラベルスキーマのnameは、evaluate()で使用するジャッジのnameと必ず一致させること - アライメント済みジャッジのスコア: アライメント前より低くなる場合があるが、これは想定された動作であり、
原文(English)を表示
MLflow 3 GenAI Evaluation
Scope vs upstream mlflow/skills
The OSS mlflow/skills repo ships agent-evaluation and related skills (instrumenting-with-mlflow-tracing, analyze-mlflow-trace, retrieving-mlflow-traces, querying-mlflow-metrics) that cover the generic MLflow GenAI evaluation workflow — mlflow.genai.evaluate(), scorers/judges, datasets, tracing setup, and the 5-step evaluation loop.
This skill layers Databricks-specific patterns on top of that workflow rather than restating it. Use this skill when you need any of:
- Unity Catalog trace ingestion — production traces written into UC tables, log-based monitoring (
patterns-trace-ingestion.md). - MemAlign judge alignment via UC SME labeling sessions — aligning custom judges against domain-expert feedback collected in Databricks (
patterns-judge-alignment.md). optimize_prompts()GEPA loop — Databricks' automated prompt-optimization driver running on a UC dataset (patterns-prompt-optimization.md).- Databricks-flavored scorer/dataset patterns — UC-table-backed datasets, tagging traces in the Databricks UI for inclusion (
patterns-datasets.md,patterns-scorers.md).
For everything else — generic mlflow.genai.evaluate() calls, scorer authoring patterns, dataset creation outside Databricks, MLflow tracing setup that isn't UC-table-bound — the upstream mlflow/skills/agent-evaluation skill is the canonical source and is kept current by the MLflow team.
Before Writing Any Code
- Read GOTCHAS.md - 15+ common mistakes that cause failures
- Read CRITICAL-interfaces.md - Exact API signatures and data schemas
End-to-End Workflows
Follow these workflows based on your goal. Each step indicates which reference files to read.
Workflow 1: First-Time Evaluation Setup
For users new to MLflow GenAI evaluation or setting up evaluation for a new agent.
| Step | Action | Reference Files |
|---|---|---|
| 1 | Understand what to evaluate | user-journeys.md (Journey 0: Strategy) |
| 2 | Learn API patterns | GOTCHAS.md + CRITICAL-interfaces.md |
| 3 | Build initial dataset | patterns-datasets.md (Patterns 1-4) |
| 4 | Choose/create scorers | patterns-scorers.md + CRITICAL-interfaces.md (built-in list) |
| 5 | Run evaluation | patterns-evaluation.md (Patterns 1-3) |
Workflow 2: Production Trace -> Evaluation Dataset
For building evaluation datasets from production traces.
| Step | Action | Reference Files |
|---|---|---|
| 1 | Search and filter traces | patterns-trace-analysis.md (MCP tools section) |
| 2 | Analyze trace quality | patterns-trace-analysis.md (Patterns 1-7) |
| 3 | Tag traces for inclusion | patterns-datasets.md (Patterns 16-17) |
| 4 | Build dataset from traces | patterns-datasets.md (Patterns 6-7) |
| 5 | Add expectations/ground truth | patterns-datasets.md (Pattern 2) |
Workflow 3: Performance Optimization
For debugging slow or expensive agent execution.
| Step | Action | Reference Files |
|---|---|---|
| 1 | Profile latency by span | patterns-trace-analysis.md (Patterns 4-6) |
| 2 | Analyze token usage | patterns-trace-analysis.md (Pattern 9) |
| 3 | Detect context issues | patterns-context-optimization.md (Section 5) |
| 4 | Apply optimizations | patterns-context-optimization.md (Sections 1-4, 6) |
| 5 | Re-evaluate to measure impact | patterns-evaluation.md (Pattern 6-7) |
Workflow 4: Regression Detection
For comparing agent versions and finding regressions.
| Step | Action | Reference Files |
|---|---|---|
| 1 | Establish baseline | patterns-evaluation.md (Pattern 4: named runs) |
| 2 | Run current version | patterns-evaluation.md (Pattern 1) |
| 3 | Compare metrics | patterns-evaluation.md (Patterns 6-7) |
| 4 | Analyze failing traces | patterns-trace-analysis.md (Pattern 7) |
| 5 | Debug specific failures | patterns-trace-analysis.md (Patterns 8-9) |
Workflow 5: Custom Scorer Development
For creating project-specific evaluation metrics.
| Step | Action | Reference Files |
|---|---|---|
| 1 | Understand scorer interface | CRITICAL-interfaces.md (Scorer section) |
| 2 | Choose scorer pattern | patterns-scorers.md (Patterns 4-11) |
| 3 | For multi-agent scorers | patterns-scorers.md (Patterns 13-16) |
| 4 | Test with evaluation | patterns-evaluation.md (Pattern 1) |
Workflow 6: Unity Catalog Trace Ingestion & Production Monitoring
For storing traces in Unity Catalog, instrumenting applications, and enabling continuous production monitoring.
| Step | Action | Reference Files |
|---|---|---|
| 1 | Link UC schema to experiment | patterns-trace-ingestion.md (Patterns 1-2) |
| 2 | Set trace destination | patterns-trace-ingestion.md (Patterns 3-4) |
| 3 | Instrument your application | patterns-trace-ingestion.md (Patterns 5-8) |
| 4 | Configure trace sources (Apps/Serving/OTEL) | patterns-trace-ingestion.md (Patterns 9-11) |
| 5 | Enable production monitoring | patterns-trace-ingestion.md (Patterns 12-13) |
| 6 | Query and analyze UC traces | patterns-trace-ingestion.md (Pattern 14) |
Workflow 7: Judge Alignment with MemAlign
For aligning an LLM judge to match domain expert preferences. A well-aligned judge improves every downstream use: evaluation accuracy, production monitoring signal, and prompt optimization quality. This workflow is valuable on its own, independent of prompt optimization.
| Step | Action | Reference Files |
|---|---|---|
| 1 | Design base judge with make_judge (any feedback type) |
patterns-judge-alignment.md (Pattern 1) |
| 2 | Run evaluate(), tag successful traces | patterns-judge-alignment.md (Pattern 2) |
| 3 | Build UC dataset + create SME labeling session | patterns-judge-alignment.md (Pattern 3) |
| 4 | Align judge with MemAlign after labeling completes | patterns-judge-alignment.md (Pattern 4) |
| 5 | Register aligned judge to experiment | patterns-judge-alignment.md (Pattern 5) |
| 6 | Re-evaluate with aligned judge (baseline) | patterns-judge-alignment.md (Pattern 6) |
Workflow 8: Automated Prompt Optimization with GEPA
For automatically improving a registered system prompt using optimize_prompts(). Works with any scorer, but paired with an aligned judge (Workflow 7) gives the most domain-accurate signal. For the full end-to-end loop combining alignment and optimization, see user-journeys.md Journey 10.
| Step | Action | Reference Files |
|---|---|---|
| 1 | Build optimization dataset (inputs + expectations) | patterns-prompt-optimization.md (Pattern 1) |
| 2 | Run optimize_prompts() with GEPA + scorer | patterns-prompt-optimization.md (Pattern 2) |
| 3 | Register new version, promote conditionally | patterns-prompt-optimization.md (Pattern 3) |
Reference Files Quick Lookup
| Reference | Purpose | When to Read |
|---|---|---|
GOTCHAS.md |
Common mistakes | Always read first before writing code |
CRITICAL-interfaces.md |
API signatures, schemas | When writing any evaluation code |
patterns-evaluation.md |
Running evals, comparing | When executing evaluations |
patterns-scorers.md |
Custom scorer creation | When built-in scorers aren't enough |
patterns-datasets.md |
Dataset building | When preparing evaluation data |
patterns-trace-analysis.md |
Trace debugging | When analyzing agent behavior |
patterns-context-optimization.md |
Token/latency fixes | When agent is slow or expensive |
patterns-trace-ingestion.md |
UC trace setup, monitoring | When setting up trace storage or production monitoring |
patterns-judge-alignment.md |
MemAlign judge alignment, labeling sessions, SME feedback | When aligning judges to domain expert preferences |
patterns-prompt-optimization.md |
GEPA optimization: build dataset, optimize_prompts(), promote | When running automated prompt improvement |
user-journeys.md |
High-level workflows, full domain-expert optimization loop | When starting a new evaluation project or running the full align + optimize cycle |
Critical API Facts
- Use:
mlflow.genai.evaluate()(NOTmlflow.evaluate()) - Data format:
{"inputs": {"query": "..."}}(nested structure required) - predict_fn: Receives
**unpacked kwargs(not a dict) - MemAlign: Scorer-agnostic (works with any
feedback_value_type-- float, bool, categorical); token-heavy on the embedding model so setembedding_modelexplicitly - Label schema name matching: The label schema
namein the labeling session MUST match the judgenameused inevaluate()foralign()to pair scores - Aligned judge scores: May be lower than unaligned judge scores -- this is expected and means the judge is now more accurate, not that the agent regressed
- GEPA optimization dataset: Must have both
inputsANDexpectationsper record (different from eval dataset) - Episodic memory: Lazily loaded --
get_scorer()results won't show episodic memory on print until the judge is first used - optimize_prompts: Requires MLflow >= 3.5.0
See GOTCHAS.md for complete list.
Related Skills
- databricks-docs - General Databricks documentation reference
- databricks-model-serving - Deploying models and agents to serving endpoints
- databricks-agent-bricks - Building agents that can be evaluated with this skill
- databricks-python-sdk - SDK patterns used alongside MLflow APIs
- databricks-unity-catalog - Unity Catalog tables for managed evaluation datasets
原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。