В этом кратком справочнике приведены ключевые изменения для миграции с оценки агента и 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.