Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Important
Databricks рекомендует использовать MLflow 3 для оценки и мониторинга приложений ИИ. На этой странице описывается оценка агента MLflow 2.
- Общие сведения об оценке и мониторинге MLflow 3 см. в разделе "Оценка и мониторинг агентов".
- Сведения о миграции на MLflow 3 см. в разделе "Миграция на MLflow 3 из раздела 'Оценка агента'".
- Сведения об MLflow 3 см. в разделе "Оценка и мониторинг агентов".
В этой статье представлен обзор работы с оценкой агента на основе MLflow 2.
Как я могу использовать оценку агента?
В следующем коде показано, как вызвать и проверить оценку агента на ранее созданных выходных данных. Он возвращает фрейм данных с оценками, вычисляемыми судьями LLM, которые являются частью оценки агентом. Примеры записных книжек для быстрого запуска, содержащие аналогичный код, который вы можете выполнить в своей рабочей области Azure Databricks.
Вы можете скопировать и вставить следующие данные в существующую записную книжку Azure Databricks:
%pip install mlflow==2.21.0 databricks-agents==0.16.0
dbutils.library.restartPython()
import mlflow
import pandas as pd
examples = {
"request": [
{
# Recommended `messages` format
"messages": [{
"role": "user",
"content": "Spark is a data analytics framework."
}],
},
# SplitChatMessagesRequest format
{
"query": "How do I convert a Spark DataFrame to Pandas?",
"history": [
{"role": "user", "content": "What is Spark?"},
{"role": "assistant", "content": "Spark is a data processing engine."},
],
}
# Note: Using a primitive string is discouraged. The string will be wrapped in the
# OpenAI messages format before being passed to your agent.
],
"response": [
"Spark is a data analytics framework.",
"This is not possible as Spark is not a panda.",
],
"retrieved_context": [ # Optional, needed for judging groundedness.
[{"doc_uri": "doc1.txt", "content": "In 2013, Spark, a data analytics framework, was open sourced by UC Berkeley's AMPLab."}],
[{"doc_uri": "doc2.txt", "content": "To convert a Spark DataFrame to Pandas, you can use toPandas()"}],
],
"expected_response": [ # Optional, needed for judging correctness.
"Spark is a data analytics framework.",
"To convert a Spark DataFrame to Pandas, you can use the toPandas() method.",
]
}
global_guidelines = {
"english": ["The response must be in English"],
"clarity": ["The response must be clear, coherent, and concise"],
}
result = mlflow.evaluate(
data=pd.DataFrame(examples), # Your evaluation set
# model=logged_model.model_uri, # If you have an MLFlow model. `retrieved_context` and `response` will be obtained from calling the model.
model_type="databricks-agent", # Enable Agent Evaluation
evaluator_config={
"databricks-agent": {"global_guidelines": global_guidelines}
}
)
# Review the evaluation results in the MLFLow UI (see console output), or access them in place:
display(result.tables['eval_results'])
Входные и выходные данные оценки агента
Входные данные
Дополнительные сведения о ожидаемых входных данных для оценки агента, включая имена полей и типы данных, см. в схеме ввода. Ниже приведены некоторые поля.
-
Запрос пользователя (
request): входные данные агента (вопрос или запрос пользователя). Например, "Что такое RAG?". -
Ответ агента (
response): ответ , созданный агентом. Например, "Генерация с дополнением извлечением данных ..." -
Ожидаемый ответ (
expected_response): (Необязательно) Эталонный (правильный) ответ. - Трассировка MLflow (
trace): (необязательно) Трассировка MLflow агента, из которой оценка агента извлекает промежуточные выходные данные, такие как извлеченный контекст или вызовы инструментов. Кроме того, эти промежуточные выходные данные можно предоставить напрямую. -
Рекомендации (): (
guidelinesнеобязательно) Список рекомендаций или именованных рекомендаций, которые, как ожидается, будут соответствовать выходным данным модели.
Outputs
На основе этих входных данных оценка агента создает два типа выходных данных:
-
Результаты оценки (на строку): Для каждой строки, предоставленной в качестве входных данных, оценка агента создает соответствующую выходную строку, содержащую подробную оценку качества, стоимости и задержки агента.
- Судьи LLM проверяют различные аспекты качества, такие как правильность или обоснованность, выставляя оценку да/нет и давая письменное обоснование этой оценки. Дополнительные сведения см. в разделе оценки качества, стоимости и задержки с помощью оценки агента (MLflow 2).
- Оценки судей LLM объединяются для создания общей оценки, указывающей, является ли строка "проходит" (является высоким качеством) или "сбоем" (имеет проблему качества).
- Для любых неудачных строк определяется первопричина. Каждая основная причина соответствует определенной оценке судьи LLM, что позволяет использовать обоснование судьи для выявления потенциальных исправлений.
- Затраты и задержки извлекаются из трассировки MLflow. Дополнительные сведения см. в разделе о оценке затрат и задержки.
- Метрики (агрегированные оценки): агрегированные оценки, которые суммируют качество, стоимость и задержку вашего агента для всех входных строк. К ним относятся такие метрики, как процент правильных ответов, среднее число маркеров, средняя задержка и многое другое. Дополнительные сведения см. в разделе Оценка затрат и задержки и Агрегация метрик на уровне запуска MLflow для затрат, качества и задержки.
Разработка (оффлайн оценка) и производство (онлайн-мониторинг)
Оценка агента предназначена для обеспечения согласованности между средой разработки (автономной) и рабочей средой (онлайн). Эта конструкция позволяет плавно переходить от разработки к рабочей среде, что позволяет быстро итерировать, оценивать, развертывать и отслеживать высококачественные агентические приложения.
Основное различие между разработкой и производством заключается в том, что в производстве у вас нет истинных меток, в то время как в разработке вы можете при необходимости использовать истинные метки. Использование эталонных меток позволяет оценке агента вычислять дополнительные метрики качества.
Разработка (в автономном режиме)
В процессе разработки requests и expected_responses поступают из оценочного набора. Оценочный набор — это коллекция репрезентативных входных данных, которые агент должен иметь возможность точно обрабатывать. Дополнительные сведения о оценочных наборах см. в разделе "Оценочные наборы" (MLflow 2).
Чтобы получить response и trace, Оценка агента может вызвать код вашего агента для создания этих выходных данных для каждой строки в наборе оценки. Кроме того, вы можете самостоятельно создать эти выходные данные и передать их в оценку агента. Дополнительные сведения см. в статье "Как предоставить входные данные для выполнения оценки".
Производственная среда (онлайн)
Сведения о мониторинге в рабочей среде см. в разделе "Мониторинг приложений GenAI" в рабочей среде. Эта функция MLflow 3 совместима с экспериментами MLflow 2. Чтобы включить мониторинг в эксперименте MLflow 2, используйте пакет SDK MLflow 3, устанавливая mlflow>=3.1.
Установите стандарт качества с помощью набора для оценки
Чтобы оценить качество приложения ИИ в разработке (в оффлайн режиме), необходимо определить оценочный набор, то есть набор репрезентативных вопросов и эталонные ответы. Если приложение включает в себя шаг извлечения, например в рабочих процессах RAG, то при необходимости можно предоставить вспомогательные документы, на которые вы ожидаете, что ответ будет основан.
- Дополнительные сведения о оценочных наборах, включая зависимости метрик и наилучшие методы, см. в Оценочные наборы (MLflow 2).
- Для требуемой схемы см. схему входных данных для оценки агента (MLflow 2).
- Сведения о том, как искусственно генерировать высококачественный оценочный набор, см. в разделе Синтезирование наборов оценки.
Запуск процесса оценки
Дополнительные сведения о выполнении оценки см. в статье "Запуск оценки" и просмотр результатов (MLflow 2). Оценка агента поддерживает два варианта предоставления результатов из цепочки:
- Приложение можно запустить в рамках выполнения оценки. Приложение создает результаты для каждого входного значения в оценочном наборе.
- Вы можете предоставить выходные данные из предыдущего запуска приложения.
Дополнительные сведения и пояснения о том, когда следует использовать каждый параметр, см. в разделе Предоставление входных данных для выполнения оценки.
Получение отзывов о качестве приложения искусственного интеллекта
Приложение для проверки Databricks упрощает сбор отзывов о качестве приложения ИИ от рецензентов. Дополнительные сведения см. в статье Использование приложения для проверки человеком приложения ИИ (MLflow 2).
Географическая доступность оценки агента
Оценка агента — это назначенная служба, которая использует Гео-данные для управления данными при обработке данных клиента. Дополнительные сведения о доступности оценки агента в разных географических областях см. в статье Databricks Designated Services.
Pricing
Сведения о ценах см. в разделе «Цены на оценку агента».
Сведения о моделях, использующихся для работы судей LLM
- Судьи LLM могут использовать сторонние службы для оценки приложений ИИ, включая Azure OpenAI, управляемые Microsoft.
- Для Azure OpenAI Databricks отказался от мониторинга злоупотреблений, поэтому запросы или ответы не хранятся в Azure OpenAI.
- Если межгеографическая обработка отключена, LLM-оценщики обрабатывают содержимое в Databricks Geo рабочей области. Если подходящая модель in-Geo недоступна, модуль оценки возвращает ошибку географического ограничения. Если включена межгеографическая обработка, LLM-оценщики могут обрабатывать контент из других географических регионов.
- Отключение функций ИИ на основе партнерских технологий запрещает судье LLM вызывать модели на основе партнерских технологий. Вы по-прежнему можете использовать судьи LLM, предоставив собственную модель.
- LLM-оценщики предназначены для того, чтобы помогать клиентам оценивать свои ИИ-агенты и приложения, и результаты работы LLM-оценщика не должны использоваться для обучения, улучшения или тонкой настройки LLM.
Примеры записных книжек
В следующих записных книжках показано, как использовать оценку агента.