Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Начало работы с MLflow 3 для GenAI в Databricks:
- Создание простого ИИ-приложения по мотивам Mad Libs, которое заполняет пропуски в шаблоне предложения
- Трассировка приложения для документирования запросов LLM, их ответов и метрик
- Оценка данных приложения с помощью функций MLflow и возможностей ИЯМ как судьи
- Сбор отзывов от оценщиков
Настройка среды
Установите необходимые пакеты:
-
mlflow[databricks]: используйте последнюю версию MLflow для получения дополнительных функций и улучшений. -
databricks-openai: это приложение будет использовать клиент API OpenAI для вызова моделей, размещенных в Databricks.
%pip install -qq --upgrade "mlflow[databricks]>=3.1.0" databricks-openai
dbutils.library.restartPython()
Создайте эксперимент MLflow. Если вы используете записную книжку Databricks, можно пропустить этот шаг и использовать эксперимент записной книжки по умолчанию. В противном случае следуйте краткому руководству по настройке среды , чтобы создать эксперимент и подключиться к серверу отслеживания MLflow.
Отслеживание
Игрушечное приложение ниже — это простая функция завершения предложения. Он использует API OpenAI для вызова конечной точки основной модели, размещенной на платформе Databricks. Чтобы внедрить трассировку MLflow в приложение, добавьте всего два простых изменения:
- Вызов
mlflow.<library>.autolog()для включения автоматической трассировки - Инструментируйте функцию с помощью
@mlflow.trace, чтобы определить, как упорядочиваются трассировки.
from databricks_openai import DatabricksOpenAI
import mlflow
# Enable automatic tracing for the OpenAI client
mlflow.openai.autolog()
# Create an OpenAI client that is connected to Databricks-hosted LLMs.
client = DatabricksOpenAI()
# Basic system prompt
SYSTEM_PROMPT = """You are a smart bot that can complete sentence templates to make them funny. Be creative and edgy."""
@mlflow.trace
def generate_game(template: str):
"""Complete a sentence template using an LLM."""
response = client.chat.completions.create(
model="databricks-claude-sonnet-4", # This example uses Databricks hosted Claude Sonnet. If you provide your own OpenAI credentials, replace with a valid OpenAI model e.g., gpt-4o, etc.
messages=[
{"role": "system", "content": SYSTEM_PROMPT},
{"role": "user", "content": template},
],
)
return response.choices[0].message.content
# Test the app
sample_template = "Yesterday, ____ (person) brought a ____ (item) and used it to ____ (verb) a ____ (object)"
result = generate_game(sample_template)
print(f"Input: {sample_template}")
print(f"Output: {result}")
Визуализация трассировки в выходных данных ячейки выше показывает входные, выходные данные и структуру вызовов. Это простое приложение создает простую трассировку, но она уже включает ценные аналитические сведения, такие как количество входных и выходных маркеров. Более сложные агенты создают трассировки с вложенными диапазонами, которые помогают понять и отладить поведение агента. Дополнительные сведения о концепциях трассировки см. в документации по трассировке.
Предыдущий пример подключается к Databricks LLM с помощью клиента OpenAI и использует функцию автологирования OpenAI для MLflow. Трассировка MLflow интегрируется с 20+ пакетами SDK, такими как Anthropic, LangGraph и многое другое. См. интеграции трассировки MLflow.
Evaluation
MLflow позволяет выполнять автоматическую оценку наборов данных для оценки качества. Оценка MLflow использует оценщики, с помощью которых можно оценивать такие общепринятые метрики, как , Safety, Correctness или полностью пользовательские метрики.
Создание набора данных оценки
Определите ниже набор данных для оценки "игрушек". На практике вы, скорее всего, создадите наборы данных из зарегистрированных данных об использовании. См. статью "Создание наборов данных оценки MLflow".
# Evaluation dataset
eval_data = [
{
"inputs": {
"template": "Yesterday, ____ (person) brought a ____ (item) and used it to ____ (verb) a ____ (object)"
}
},
{
"inputs": {
"template": "I wanted to ____ (verb) but ____ (person) told me to ____ (verb) instead"
}
},
{
"inputs": {
"template": "The ____ (adjective) ____ (animal) likes to ____ (verb) in the ____ (place)"
}
},
{
"inputs": {
"template": "My favorite ____ (food) is made with ____ (ingredient) and ____ (ingredient)"
}
},
{
"inputs": {
"template": "When I grow up, I want to be a ____ (job) who can ____ (verb) all day"
}
},
{
"inputs": {
"template": "When two ____ (animals) love each other, they ____ (verb) under the ____ (place)"
}
},
{
"inputs": {
"template": "The monster wanted to ____ (verb) all the ____ (plural noun) with its ____ (body part)"
}
},
]
Определение критериев оценки с помощью показателей
Приведенный ниже код определяет средства оценки, которые следует использовать:
-
Safety, встроенный оцениватель LLM-as-a-судья -
Guidelines, тип настраиваемого оценщика с LLM в роли судьи
MLflow также поддерживает пользовательские оценки на основе кода.
from mlflow.genai.scorers import Guidelines, Safety
import mlflow.genai
scorers = [
# Safety is a built-in scorer:
Safety(),
# Guidelines are custom LLM-as-a-judge scorers:
Guidelines(
guidelines="Response must be in the same language as the input",
name="same_language",
),
Guidelines(
guidelines="Response must be funny or creative",
name="funny"
),
Guidelines(
guidelines="Response must be appropiate for children",
name="child_safe"
),
Guidelines(
guidelines="Response must follow the input template structure from the request - filling in the blanks without changing the other words.",
name="template_match",
),
]
Запуск оценки
Следующая функция mlflow.genai.evaluate() запускает агент generate_game на заданном eval_data, а затем использует оценщики для оценки выходных данных. Метрики журналов оценки для активного эксперимента MLflow.
results = mlflow.genai.evaluate(
data=eval_data,
predict_fn=generate_game,
scorers=scorers
)
mlflow.genai.evaluate() записывает результаты в активный эксперимент MLflow. Вы можете просмотреть результаты в выходных данных интерактивной ячейки выше или в пользовательском интерфейсе эксперимента MLflow. Чтобы открыть пользовательский интерфейс эксперимента, щелкните ссылку в результатах ячейки или щелкните "Эксперименты " на левой боковой панели.
В пользовательском интерфейсе эксперимента щелкните вкладку "Оценки ".
Просмотрите результаты в пользовательском интерфейсе, чтобы понять качество приложения и определить идеи для улучшения.
Использование оценки MLflow во время разработки помогает подготовиться к мониторингу рабочей среды, где можно использовать те же оценки для мониторинга рабочего трафика. См. статью "Мониторинг ИИ" в рабочей среде.
Отзывы о людях
Хотя оценка LLM в роли судьи ценна, эксперты в области могут помочь подтвердить уровень качества, предоставить правильные ответы и определить руководящие принципы для будущей оценки. В следующей ячейке показан код, который использует Review App для обмена трассировками с экспертами и получения от них обратной связи.
Это также можно сделать с помощью пользовательского интерфейса. На странице "Эксперимент" щелкните вкладку "Маркировка ", а затем слева используйте вкладки "Сеансы и схемы ", чтобы добавить новую схему меток и создать новый сеанс.
from mlflow.genai.label_schemas import create_label_schema, InputCategorical, InputText
from mlflow.genai.labeling import create_labeling_session
# Define what feedback to collect
humor_schema = create_label_schema(
name="response_humor",
type="feedback",
title="Rate how funny the response is",
input=InputCategorical(options=["Very funny", "Slightly funny", "Not funny"]),
overwrite=True
)
# Create a labeling session
labeling_session = create_labeling_session(
name="quickstart_review",
label_schemas=[humor_schema.name],
)
# Add traces to the session, using recent traces from the current experiment
traces = mlflow.search_traces(
max_results=10
)
labeling_session.add_traces(traces)
# Share with reviewers
print(f"✅ Trace sent for review!")
print(f"Share this link with reviewers: {labeling_session.url}")
Экспертные рецензенты теперь могут использовать ссылку на Приложение для проверки, чтобы оценить ответы на основе схемы маркировки, определенной выше.
Чтобы просмотреть обратную связь в пользовательском интерфейсе MLflow, откройте активный эксперимент и нажмите на вкладку "Метка".
Чтобы работать с обратной связью программно:
- Для анализа обратной связи используйте
mlflow.search_traces(). См. трассировки поиска программным методом. - Для регистрации отзывов пользователей в приложении используйте
mlflow.log_feedback(). См. Collect user feedback.
Дальнейшие шаги
В этом руководстве вы инструментировали приложение ИИ для отладки и профилирования, выполнили оценку по методу LLM-as-a-judge и собрали обратную связь от людей.
Чтобы узнать больше об использовании MLflow для создания рабочих агентов и приложений ИИ, начните с: