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


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

Внимание

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

В этой статье объясняется входная схема, необходимая для оценки качества, стоимости и задержки приложения.

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

Входная схема идентична как для онлайн-, так и для автономных вычислений.

Общие сведения об наборах вычислений см. в разделе "Наборы вычислений".

Схема входных данных оценки

В следующей таблице показана входная схема оценки агента. Последние два столбца таблицы ссылаются на способ предоставления входных данных вызову mlflow.evaluate() . Дополнительные сведения см. в разделе "Как предоставить входные данные для выполнения оценки".

Column Тип данных Description Приложение, переданное в качестве входного аргумента Предоставленные ранее созданные выходные данные
request_id строка Уникальный идентификатор запроса. Необязательно Необязательно
запрос См . схему запроса. Входные данные в приложение для оценки, вопроса или запроса пользователя. Например, {'messages': [{"role": "user", "content": "What is RAG"}]} или "Что такое RAG?". Когда request он предоставляется в виде строки, он будет преобразован в messages файл перед передачей агенту. Обязательное поле Обязательное поле
Отклик строка Ответ, созданный вычисляемым приложением. Создано с помощью оценки агента Необязательно. Если он не указан, производный от трассировки. trace Либо response требуется.
expected_facts Массив строк Список фактов, ожидаемых в выходных данных модели. См . expected_facts рекомендации. Необязательно Необязательно
expected_response строка Правильный ответ на входной запрос. Ознакомьтесь с рекомендациями expected_response. Необязательно Необязательно
expected_retrieved_context array Массив объектов, содержащих ожидаемый контекст для запроса (если приложение включает шаг извлечения). Схема массива Необязательно Необязательно
retrieved_context array Результаты извлечения, созданные извлекаемым в приложении. Если в приложении находятся несколько шагов извлечения, это результаты извлечения из последнего шага (хронологически в трассировке). Схема массива Создано с помощью оценки агента Необязательно. Если он не указан, производный от предоставленной трассировки.
трассировка Строка JSON трассировки MLflow Трассировка MLflow для выполнения приложения в соответствующем запросе. Создано с помощью оценки агента Необязательно. trace Либо response требуется.

expected_facts Руководящие принципы

Поле expected_facts указывает список фактов, которые должны отображаться в любом правильном ответе модели для конкретного входного запроса. То есть ответ модели считается правильным, если он содержит эти факты, независимо от того, как ответ выражен.

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

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

expected_response Руководящие принципы

Поле expected_response содержит полностью сформированный ответ, представляющий ссылку на правильные ответы модели. То есть, ответ модели считается правильным, если он соответствует содержимому информации в expected_response. Напротив, expected_facts перечисляет только факты, которые должны отображаться в правильном ответе и не являются полностью сформированным ответом на ссылку.

expected_factsАналогично , expected_response должен содержать только минимальный набор фактов, необходимых для правильного ответа. В том числе только необходимые сведения и вывод сведений, которые не являются строго обязательными в ответе, позволяют оценке агента обеспечить более надежный сигнал о качестве выходных данных.

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

Схема запроса

Схема запроса может быть одной из следующих:

  • Схема завершения чата OpenAI. Схема завершения чата OpenAI должна иметь массив объектов в качестве messages параметра. Поле messages может закодировать всю беседу.
  • Если агент поддерживает схему завершения чата OpenAI, можно передать обычную строку. Этот формат поддерживает только одноключные беседы. Обычные строки преобразуются messages в формат перед "role": "user" передачей агенту. Например, обычная строка "What is MLflow?" преобразуется в {"messages": [{"role": "user", "content": "What is MLflow?"}]} перед передачей агенту.
  • SplitChatMessagesRequest. query Строковое поле для последнего запроса и необязательного history поля, которое кодирует предыдущие повороты беседы.

Для многоэтапных приложений чата используйте второй или третий вариант выше.

В следующем примере показаны все три параметра в одном request столбце набора данных оценки:

import pandas as pd

data = {
  "request": [

      # Plain string. Plain strings are transformed to the `messages` format before being passed to your agent.
      "What is the difference between reduceByKey and groupByKey in Spark?",

      # OpenAI chat completion schema. Use the `messages` field for a single- or multi-turn chat.
      {
          "messages": [
              {
                  "role": "user",
                  "content": "How can you minimize data shuffling in Spark?"
              }
          ]
      },

      # SplitChatMessagesRequest. Use the `query` and `history` fields for a single- or multi-turn chat.
      {
          "query": "Explain broadcast variables in Spark. How do they enhance performance?",
          "history": [
              {
                  "role": "user",
                  "content": "What are broadcast variables?"
              },
              {
                  "role": "assistant",
                  "content": "Broadcast variables allow the programmer to keep a read-only variable cached on each machine."
              }
          ]
      }
  ],

  "expected_response": [
    "expected response for first question",
    "expected response for second question",
    "expected response for third question"
  ]
}

eval_dataset = pd.DataFrame(data)

Схема массивов в входных данных оценки

Схема массивов expected_retrieved_context и retrieved_context показана в следующей таблице:

Column Тип данных Description Приложение, переданное в качестве входного аргумента Предоставленные ранее созданные выходные данные
content строка Содержимое извлеченного контекста. Строка в любом формате, например HTML, обычный текст или Markdown. Необязательно Необязательно
doc_uri строка Уникальный идентификатор (URI) родительского документа, из которого поступил блок. Обязательное поле Обязательное поле

Вычисляемая метрика

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

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

Вычисляемые метрики request request и expected_response. request, expected_response и expected_retrieved_context request и expected_retrieved_context.
response/llm_judged/relevance_to_query/rating
response/llm_judged/safety/rating
response/llm_judged/groundedness/rating
retrieval/llm_judged/chunk_relevance_precision
agent/total_token_count
agent/input_token_count
agent/output_token_count
response/llm_judged/correctness/rating
retrieval/llm_judged/context_sufficiency/rating
retrieval/ground_truth/document_recall