Переход на MLflow 3 из оценки агента: краткий справочник

В этом кратком справочнике приведены ключевые изменения для миграции с оценки агента и MLflow 2 на улучшенные API в MLflow 3. Полный справочник по миграции с "Оценка агента" на MLflow 3 см. здесь Миграция на MLflow 3.

Импорт обновлений

### Old imports ###
from mlflow import evaluate
from databricks.agents.evals import metric
from databricks.agents.evals import judges

from databricks.agents import review_app

### New imports ###
from mlflow.genai import evaluate
from mlflow.genai.scorers import scorer
from mlflow.genai import judges
# For predefined scorers:
from mlflow.genai.scorers import (
    Correctness, Guidelines, ExpectationsGuidelines,
    RelevanceToQuery, Safety, RetrievalGroundedness,
    RetrievalRelevance, RetrievalSufficiency
)

import mlflow.genai.labeling as labeling
import mlflow.genai.label_schemas as schemas

Функция оценки

MLflow 2.x MLflow 3.x
mlflow.evaluate() mlflow.genai.evaluate()
model=my_agent predict_fn=my_agent
model_type="databricks-agent" (не требуется)
extra_metrics=[...] scorers=[...]
evaluator_config={...} (конфигурация для оценщиков)

Выбор судьи

MLflow 2.x MLflow 3.x
Автоматически выполняет все применимые судьи на основе данных Необходимо явно указать, какие оценки следует использовать
Использование evaluator_config для ограничения судей Передача требуемых показателей в scorers параметре
global_guidelines в настройках Использовать инструмент Guidelines() для оценки
Судьи, выбранные на основе доступных полей данных Вы управляете тем, какие оценщики запускаются

Поля данных

Поле MLflow 2.x Поле MLflow 3.x Описание
request inputs Входные данные агента
response outputs Выходные данные агента
expected_response expectations Земля истина
retrieved_context Доступ через трассировки Контекст из трассировки
guidelines Часть конфигурации оценки Перемещен на уровень оценщика

Пользовательские метрики и оценки

MLflow 2.x MLflow 3.x Примечания.
декоратор @metric декоратор @scorer Новое имя
def my_metric(request, response, ...) def my_scorer(inputs, outputs, expectations, traces) Упрощенный
Несколько ожидаемых_параметров Один expectations параметр, представляющий собой словарь Консолидировано
custom_expected expectations Часть дикта Упрощенный
request параметр inputs параметр Согласованное именование
response параметр outputs параметр Согласованное именование

Доступ к результату

MLflow 2.x MLflow 3.x
results.tables['eval_results'] mlflow.search_traces(run_id=results.run_id)
Прямой доступ к DataFrame Выполнение итераций по трассировкам и оценкам

Судьи LLM

Вариант использования MLflow 2.x MLflow 3.x Рекомендуемый
Базовая проверка правильности judges.correctness() в @metric. Correctness() бомбардир или judges.is_correct() судья
Оценка безопасности judges.safety() в @metric. Safety() бомбардир или judges.is_safe() судья
Глобальные рекомендации judges.guideline_adherence() Guidelines() бомбардир или judges.meets_guidelines() судья
Рекомендации по строкам для каждого eval-set judges.guideline_adherence() с expected_* ExpectationsGuidelines() бомбардир или judges.meets_guidelines() судья
Проверка фактической поддержки judges.groundedness() judges.is_grounded() или RetrievalGroundedness() подсчитыватель
Проверка релевантности контекста judges.relevance_to_query() judges.is_context_relevant() или RelevanceToQuery() подсчитыватель
Проверка релевантности блоков контекста judges.chunk_relevance() judges.is_context_relevant() или RetrievalRelevance() подсчитыватель
Проверка полноты контекста judges.context_sufficiency() judges.is_context_sufficient() или RetrievalSufficiency() подсчитыватель
Сложная настраиваемая логика Прямой судья звонит в @metric Предопределенные бомбардиры или @scorer с вызовами судьи

Отзывы о людях

MLflow 2.x MLflow 3.x
databricks.agents.review_app mlflow.genai.labeling
databricks.agents.datasets mlflow.genai.datasets
review_app.label_schemas.* mlflow.genai.label_schemas.*
app.create_labeling_session() labeling.create_labeling_session()

Распространенные команды миграции

# Find old evaluate calls
grep -r "mlflow.evaluate" . --include="*.py"

# Find old metric decorators
grep -r "@metric" . --include="*.py"

# Find old data fields
grep -r '"request":\|"response":\|"expected_response":' . --include="*.py"

# Find old imports
grep -r "databricks.agents" . --include="*.py"

Дополнительные ресурсы

Дополнительные сведения о поддержке во время миграции см. в документации по MLflow или обратитесь к группе поддержки Databricks.