Оценка агента (MLflow 2)

Important

Databricks рекомендует использовать MLflow 3 для оценки и мониторинга приложений ИИ. На этой странице описывается оценка агента MLflow 2.

В этой статье представлен обзор работы с оценкой агента на основе 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

На основе этих входных данных оценка агента создает два типа выходных данных:

  1. Результаты оценки (на строку): Для каждой строки, предоставленной в качестве входных данных, оценка агента создает соответствующую выходную строку, содержащую подробную оценку качества, стоимости и задержки агента.
    • Судьи LLM проверяют различные аспекты качества, такие как правильность или обоснованность, выставляя оценку да/нет и давая письменное обоснование этой оценки. Дополнительные сведения см. в разделе оценки качества, стоимости и задержки с помощью оценки агента (MLflow 2).
    • Оценки судей LLM объединяются для создания общей оценки, указывающей, является ли строка "проходит" (является высоким качеством) или "сбоем" (имеет проблему качества).
      • Для любых неудачных строк определяется первопричина. Каждая основная причина соответствует определенной оценке судьи LLM, что позволяет использовать обоснование судьи для выявления потенциальных исправлений.
    • Затраты и задержки извлекаются из трассировки MLflow. Дополнительные сведения см. в разделе о оценке затрат и задержки.
  2. Метрики (агрегированные оценки): агрегированные оценки, которые суммируют качество, стоимость и задержку вашего агента для всех входных строк. К ним относятся такие метрики, как процент правильных ответов, среднее число маркеров, средняя задержка и многое другое. Дополнительные сведения см. в разделе Оценка затрат и задержки и Агрегация метрик на уровне запуска MLflow для затрат, качества и задержки.

Разработка (оффлайн оценка) и производство (онлайн-мониторинг)

Оценка агента предназначена для обеспечения согласованности между средой разработки (автономной) и рабочей средой (онлайн). Эта конструкция позволяет плавно переходить от разработки к рабочей среде, что позволяет быстро итерировать, оценивать, развертывать и отслеживать высококачественные агентические приложения.

Основное различие между разработкой и производством заключается в том, что в производстве у вас нет истинных меток, в то время как в разработке вы можете при необходимости использовать истинные метки. Использование эталонных меток позволяет оценке агента вычислять дополнительные метрики качества.

Разработка (в автономном режиме)

В процессе разработки requests и expected_responses поступают из оценочного набора. Оценочный набор — это коллекция репрезентативных входных данных, которые агент должен иметь возможность точно обрабатывать. Дополнительные сведения о оценочных наборах см. в разделе "Оценочные наборы" (MLflow 2).

Чтобы получить response и trace, Оценка агента может вызвать код вашего агента для создания этих выходных данных для каждой строки в наборе оценки. Кроме того, вы можете самостоятельно создать эти выходные данные и передать их в оценку агента. Дополнительные сведения см. в статье "Как предоставить входные данные для выполнения оценки".

Производственная среда (онлайн)

Сведения о мониторинге в рабочей среде см. в разделе "Мониторинг приложений GenAI" в рабочей среде. Эта функция MLflow 3 совместима с экспериментами MLflow 2. Чтобы включить мониторинг в эксперименте MLflow 2, используйте пакет SDK MLflow 3, устанавливая mlflow>=3.1.

Установите стандарт качества с помощью набора для оценки

Чтобы оценить качество приложения ИИ в разработке (в оффлайн режиме), необходимо определить оценочный набор, то есть набор репрезентативных вопросов и эталонные ответы. Если приложение включает в себя шаг извлечения, например в рабочих процессах RAG, то при необходимости можно предоставить вспомогательные документы, на которые вы ожидаете, что ответ будет основан.

Запуск процесса оценки

Дополнительные сведения о выполнении оценки см. в статье "Запуск оценки" и просмотр результатов (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.

Примеры записных книжек

В следующих записных книжках показано, как использовать оценку агента.

Записная книжка краткого руководства по оценке агента

Получите ноутбук

Блокнот для оценки агентов с пользовательскими метриками, рекомендациями и метками экспертов по домену

Получите ноутбук