Поделиться через


Что такое оценка агента ИИ Мозаики?

Внимание

Эта функция предоставляется в режиме общедоступной предварительной версии.

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

Оценка агента интегрирует расширенные методы оценки, поддерживаемые исследованиями, в удобный для пользователя пакет SDK и пользовательский интерфейс, интегрированный с lakehouse, MLflow и другими компонентами Платформы аналитики данных Databricks. Разработанная в сотрудничестве с исследованиями ИИ в Мозаике, эта частная технология предлагает комплексный подход к анализу и повышению производительности агента.

Схема LLMOps с отображением оценки

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

Разделы справки использовать оценку агента?

В следующем коде показано, как вызвать и проверить оценку агента на ранее созданных выходных данных. Он возвращает кадр данных с оценками, вычисляемыми судьями LLM, которые являются частью оценки агента.

Вы можете скопировать и вставить следующие данные в существующую записную книжку Databricks:

%pip install mlflow databricks-agents
dbutils.library.restartPython()

import mlflow
import pandas as pd

examples =  {
    "request": [
      {
      # Recommended `messages` format
        "messages": [{
          "role": "user",
          "content": "Spark is a data analytics framework."
        }],
      },
      # Primitive string format
      # Note: Using a primitive string is discouraged. The string will be wrapped in the
      # OpenAI messages format before being passed to your agent.
      "How do I convert a Spark DataFrame to Pandas?"
    ],
    "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.",
    ]
}

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 Mosaic AI Agent Evaluation
)

# Review the evaluation results in the MLFLow UI (see console output), or access them in place:
display(result.tables['eval_results'])

Кроме того, вы можете импортировать и запустить следующую записную книжку в рабочей области Databricks:

Пример записной книжки для оценки агента ИИ Мозаики

Получить записную книжку

Входные и выходные данные оценки агента

На следующей схеме показаны общие сведения о входных данных, принятых при оценке агента, и соответствующих выходных данных, созданных оценкой агента.

agent_eval_data_flows

Входные данные

Дополнительные сведения о ожидаемых входных данных для оценки агента, включая имена полей и типы данных, см. в схеме ввода. Ниже приведены некоторые поля.

  • Запрос пользователя (request): входные данные агента (вопрос или запрос пользователя). Например, "Что такое RAG?".
  • Ответ агента (response): ответ, созданный агентом. Например, "Получение дополненного поколения ..."
  • Ожидаемый ответ (): (expected_responseНеобязательно) Ответ на землю (правильно).
  • Трассировка MLflow (traceнеобязательно) Трассировка MLflow агента, из которой оценка агента извлекает промежуточные выходные данные, такие как извлеченный контекст или вызовы инструментов. Кроме того, эти промежуточные выходные данные можно предоставить напрямую.

Выходные данные

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

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

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

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

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

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

agent_eval_overview_dev

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

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

Рабочая среда (онлайн)

agent_eval_overview_prod

В рабочей среде все входные данные для оценки агента приходят из рабочих журналов.

Если для развертывания приложения ИИ используется платформа агента ИИ, вы можете настроить оценку агента для автоматического сбора этих входных данных из таблиц вывода с расширенными ходом агента и постоянно обновлять панель мониторинга. Дополнительные сведения см. в статье "Мониторинг качества агента на рабочем трафике".

Если вы развертываете агент за пределами Azure Databricks, вы можете отправить журналы в необходимую схему входных данных и аналогично настроить панель мониторинга.

Создание теста качества с помощью набора оценки

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

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

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

Дополнительные сведения о выполнении оценки см. в разделе "Как запустить оценку" и просмотреть результаты. Оценка агента поддерживает два варианта предоставления выходных данных из цепочки:

  • Приложение можно запустить в рамках выполнения оценки. Приложение создает результаты для каждого входного значения в оценочном наборе.
  • Вы можете предоставить выходные данные из предыдущего запуска приложения.

Подробные сведения о том, когда следует использовать каждый параметр, см. в разделе "Как предоставить входные данные для выполнения оценки".

Получение отзывов о качестве приложения GenAI

Приложение для проверки Databricks упрощает сбор отзывов о качестве приложения ИИ от рецензентов. Дополнительные сведения см. в статье "Получение отзывов о качестве агентического приложения".

Геодоступность функций Помощника

Оценка агента ИИ Мозаики — это назначенная служба , которая использует геослужебия для управления расположением данных при обработке содержимого клиента. Дополнительные сведения о доступности оценки агента в разных географических областях см. в статье Databricks Designated Services.

Цены

Сведения о ценах см. в разделе "Оценка агента ИИ Мозаики".

Ограничение

Оценка агента недоступна в рабочих областях с поддержкой HIPAA.

Сведения о моделях, которые могут использовать судьи LLM

  • Судьи LLM могут использовать сторонние службы для оценки приложений GenAI, включая Azure OpenAI, управляемых корпорацией Майкрософт.
  • Для Azure OpenAI Databricks отказался от мониторинга злоупотреблений, поэтому запросы или ответы не хранятся в Azure OpenAI.
  • Для рабочих областей Европейского союза (ЕС) судьи LLM используют модели, размещенные в ЕС. Все остальные регионы используют модели, размещенные в США.
  • Отключение вспомогательных функций ИИ на основе искусственного интеллекта Azure запрещает судье LLM вызывать модели, на основе ИИ Azure.
  • Данные, отправленные судье LLM, не используются для обучения модели.
  • Судьи LLM предназначены для того, чтобы помочь клиентам оценить свои приложения RAG, и выходные данные судьи LLM не должны использоваться для обучения, улучшения или точной настройки LLM.