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


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

Внимание

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

В этой статье приводится обзор работы с оценкой агента ИИ Mosaic. Оценка агента помогает разработчикам оценивать качество, стоимость и задержку агентивных ИИ-приложений, включая приложения и цепочки 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."
        }],
      },
      # 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 Mosaic AI 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'])

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

Пример тетради для оценки агента "Mosaic AI"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

agent_eval_overview_dev

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

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

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

agent_eval_overview_prod

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

Если для развертывания приложения ИИ используется фреймворк агента Mosaic AI, то оценку агента можно настроить так, чтобы она автоматически собирала эти входные данные от агентов Monitor, развернутых, и постоянно обновляла мониторинговую таблицу. См. Как мониторить ваше приложение на основе генеративного ИИдля получения дополнительных сведений.

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

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

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

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

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

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

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

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

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

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

Географическая доступность оценки ИИ агента Mosaic

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

Цены

Сведения о ценах можно найти в разделе "Цены на оценку агента Mosaic AI".

Сведения о моделях, использующихся для работы судей LLM

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