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


Справочник по оценке агента ИИ Мозаики

Внимание

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

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

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

Судьи реагирования

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

В целом, LLM дал точный ответ?

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

Входные данные, необходимые для correctness

Нужна земля правда expected_response .

Входной набор вычислений должен иметь следующие столбцы:

  • request
  • expected_response

Кроме того, если аргумент не используется model в вызове mlflow.evaluate(), необходимо также указать response или trace.

Внимание

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

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

Выходные данные для correctness

Для каждого вопроса вычисляются следующие метрики:

Поле данных Тип Описание
response/llm_judged/correctness/rating string yes или no. yes указывает, что созданный ответ очень точный и семантически похож на истину земли. Незначительные упущения или неточности, которые по-прежнему захватывают намерение правды земли приемлемы. no указывает, что ответ не соответствует критериям.
response/llm_judged/correctness/rationale string Письменное обоснование LLM или yes no.
response/llm_judged/correctness/error_message string Если произошла ошибка при вычислении этой метрики, подробные сведения об ошибке приведены здесь. Если ошибка отсутствует, это значение NULL.

Для всего оценочного набора вычисляется следующая метрика:

Имя метрики Тип Описание
response/llm_judged/correctness/rating/percentage float, [0, 1] По всем вопросам процент, где правильность оценивается как yes.

Относится ли ответ к запросу?

Судья relevance_to_query LLM определяет, относится ли ответ к запросу ввода.

Входные данные, необходимые для relevance_to_query

Земля правда не требуется.

Входной набор оценки должен иметь следующий столбец:

  • request

Кроме того, если аргумент не используется model в вызове mlflow.evaluate(), необходимо также указать response или trace.

Выходные данные для relevance_to_query

Для каждого вопроса вычисляются следующие метрики:

Поле данных Тип Описание
response/llm_judged/relevance_to_query/rating string yes Значение , если ответ имеет отношение к запросу, no в противном случае.
response/llm_judged/relevance_to_query/rationale string Письменное обоснование LLM или yes no.
response/llm_judged/relevance_to_query/error_message string Если произошла ошибка при вычислении этой метрики, подробные сведения об ошибке приведены здесь. Если ошибка отсутствует, это значение NULL.

Для всего оценочного набора вычисляется следующая метрика:

Имя метрики Тип Описание
response/llm_judged/relevance_to_query/rating/percentage float, [0, 1] По всем вопросам процент, где relevance_to_query/rating судится.yes

Является ли ответ галлюцинацией или находится ли он в извлеченном контексте?

groundedness Судья LLM возвращает двоичную оценку и письменное обоснование о том, является ли созданный ответ фактически согласованным с извлеченным контекстом.

Входные данные, необходимые для groundedness

Земля правда не требуется.

Входной набор оценки должен иметь следующий столбец:

  • request

Кроме того, если аргумент не используется в вызовеmlflow.evaluate(), необходимо также указать либо trace или и то, и другоеretrieved_context[].contentresponse.model

Выходные данные для groundedness

Для каждого вопроса вычисляются следующие метрики:

Поле данных Тип Описание
response/llm_judged/groundedness/rating string yes Значение , если полученный контекст поддерживает все или почти все созданные ответы, no в противном случае.
response/llm_judged/groundedness/rationale string Письменное обоснование LLM или yes no.
response/llm_judged/groundedness/error_message string Если произошла ошибка при вычислении этой метрики, подробные сведения об ошибке приведены здесь. Если ошибка отсутствует, это значение NULL.

Для всего оценочного набора вычисляется следующая метрика:

Имя метрики Тип Описание
response/llm_judged/groundedness/rating/percentage float, [0, 1] На всех вопросов, что процент, где groundedness/rating оценивается как yes.

Есть ли вредное содержимое в ответе агента?

safety Судья LLM возвращает двоичный рейтинг и письменное обоснование о том, имеет ли созданный ответ вредное или токсическое содержимое.

Входные данные, необходимые для safety

Земля правда не требуется.

Входной набор оценки должен иметь следующий столбец:

  • request

Кроме того, если аргумент не используется model в вызове mlflow.evaluate(), необходимо также указать response или trace.

Выходные данные для safety

Для каждого вопроса вычисляются следующие метрики:

Поле данных Тип Описание
response/llm_judged/safety/rating string yes Значение , если ответ не имеет вредного или токсического содержимого, no в противном случае.
response/llm_judged/safety/rationale string Письменное обоснование LLM или yes no.
response/llm_judged/safety/error_message string Если произошла ошибка при вычислении этой метрики, подробные сведения об ошибке приведены здесь. Если ошибка отсутствует, это значение NULL.

Для всего оценочного набора вычисляется следующая метрика:

Имя метрики Тип Описание
response/llm_judged/safety/rating/average float, [0, 1] Процент всех вопросов, которые были оценены yes.

Получение судей

Метрики качества извлечения оценивают производительность извлекателя при поиске документов, относящихся к запросу на входные данные. Эти метрики оценивают такие факторы, как: находит ли извлекатель соответствующие блоки? Сколько известных соответствующих документов он обнаружил? Были ли документы, которые он нашел достаточно, чтобы получить ожидаемый ответ?

Обнаружил ли извлекатель соответствующие блоки?

Судья chunk-relevance-precision LLM определяет, относятся ли блоки, возвращаемые извлекателями, для входного запроса. Точность вычисляется как количество соответствующих блоков, возвращаемых на общее количество возвращаемых блоков. Например, если извлекатель возвращает четыре блока, а судья LLM определяет, что три из четырех возвращенных документов относятся к запросу, то llm_judged/chunk_relevance/precision значение равно 0,75.

Входные данные, необходимые для llm_judged/chunk_relevance

Земля правда не требуется.

Входной набор оценки должен иметь следующий столбец:

  • request

Кроме того, если аргумент не используется model в вызове mlflow.evaluate(), необходимо также указать retrieved_context[].content или trace.

Выходные данные для llm_judged/chunk_relevance

Для каждого вопроса вычисляются следующие метрики:

Поле данных Тип Описание
retrieval/llm_judged/chunk_relevance/ratings array[string] Для каждого блока yes или no, указывающего, относится ли полученный блок к входной запросу.
retrieval/llm_judged/chunk_relevance/rationales array[string] Для каждого фрагмента причины LLM для соответствующего рейтинга.
retrieval/llm_judged/chunk_relevance/error_messages array[string] Для каждой блоки, если произошла ошибка вычисления рейтинга, сведения об ошибке приведены здесь, а другие выходные значения будут иметь значение NULL. Если ошибка отсутствует, это значение NULL.
retrieval/llm_judged/chunk_relevance/precision float, [0, 1] Вычисляет процент соответствующих блоков среди всех извлеченных блоков.

Для всего оценочного набора сообщается следующая метрика:

Имя метрики Тип Описание
retrieval/llm_judged/chunk_relevance/precision/average float, [0, 1] Среднее значение chunk_relevance/precision всех вопросов.

Сколько известных соответствующих документов обнаружил извлекатель?

document_recall вычисляется как количество соответствующих документов, возвращаемых на общее количество соответствующих документов на основе истины. Например, предположим, что два документа имеют отношение к действительности. Если извлекатель возвращает один из этих документов, document_recall значение равно 0,5. Эта метрика не влияет на общее количество возвращенных документов.

Эта метрика детерминирована и не использует судья LLM.

Входные данные, необходимые для document_recall

Нужна земля правда.

Входной набор оценки должен иметь следующий столбец:

  • expected_retrieved_context[].doc_uri

Кроме того, если аргумент не используется model в вызове mlflow.evaluate(), необходимо также указать retrieved_context[].doc_uri или trace.

Выходные данные для document_recall

Для каждого вопроса вычисляется следующая метрика:

Поле данных Тип Описание
retrieval/ground_truth/document_recall float, [0, 1] Процент правды doc_uris земли, присутствующих в извлеченных фрагментах.

Для всего оценочного набора вычисляется следующая метрика:

Имя метрики Тип Описание
retrieval/ground_truth/document_recall/average float, [0, 1] Среднее значение document_recall всех вопросов.

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

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

Входные данные, необходимые для context_sufficiency

Нужна земля правда expected_response .

Входной набор вычислений должен иметь следующие столбцы:

  • request
    • expected_response

Кроме того, если аргумент не используется model в вызове mlflow.evaluate(), необходимо также указать retrieved_context[].content или trace.

Выходные данные для context_sufficiency

Для каждого вопроса вычисляются следующие метрики:

Поле данных Тип Описание
retrieval/llm_judged/context_sufficiency/rating string yes или no. yes указывает, что извлекаемый контекст достаточно для получения ожидаемого ответа. no указывает, что извлечение должно быть настроено для этого вопроса таким образом, чтобы он вернул недостающую информацию. В выходных данных следует указать, какая информация отсутствует.
retrieval/llm_judged/context_sufficiency/rationale string Письменное обоснование LLM или yes no.
retrieval/llm_judged/context_sufficiency/error_message string Если произошла ошибка при вычислении этой метрики, подробные сведения об ошибке приведены здесь. Если ошибка отсутствует, это значение NULL.

Для всего оценочного набора вычисляется следующая метрика:

Имя метрики Тип Описание
retrieval/llm_judged/context_sufficiency/rating/percentage float, [0, 1] Процент, в котором достаточное количество контекстов оценивается как yes.

Метрики пользовательского судьи

Вы можете создать настраиваемого судью для выполнения оценок, относящихся к вашему варианту использования. Дополнительные сведения см. в разделе "Создание пользовательских судей LLM".

Выходные данные, созданные пользовательским судьей, зависят от его assessment_typeANSWER илиRETRIEVAL.

Пользовательский судья LLM для оценки ANSWER

Пользовательский судья LLM для оценки ANSWER оценивает ответ для каждого вопроса.

Выходные данные, предоставляемые для каждой оценки:

Поле данных Тип Описание
response/llm_judged/{assessment_name}/rating string yes или no.
response/llm_judged/{assessment_name}/rationale string Письменное обоснование LLM или yes no.
response/llm_judged/{assessment_name}/error_message string Если произошла ошибка при вычислении этой метрики, подробные сведения об ошибке приведены здесь. Если ошибка отсутствует, это значение NULL.

Для всего оценочного набора вычисляется следующая метрика:

Имя метрики Тип Описание
response/llm_judged/{assessment_name}/rating/percentage float, [0, 1] По всем вопросам процент, где {assessment_name} оценивается как yes.

Пользовательский судья LLM для оценки RETRIEVAL

Пользовательский судья LLM для оценки RETRIEVAL оценивает каждый извлеченный фрагмент по всем вопросам.

Выходные данные, предоставляемые для каждой оценки:

Поле данных Тип Описание
retrieval/llm_judged/{assessment_name}/ratings array[string] Оценка пользовательского судьи для каждого блокаyes или no.
retrieval/llm_judged/{assessment_name}/rationales array[string] Для каждого фрагмента написанная причина LLM или yes no.
retrieval/llm_judged/{assessment_name}/error_messages array[string] Для каждой блоки, если произошла ошибка вычислений этой метрики, сведения об ошибке приведены здесь, а другие значения — NULL. Если ошибка отсутствует, это значение NULL.
retrieval/llm_judged/{assessment_name}/precision float, [0, 1] Процент всех полученных блоков, которые пользователь оценил как yes.

Метрики, сообщаемые для всего набора вычислений:

Имя метрики Тип Описание
retrieval/llm_judged/{assessment_name}/precision/average float, [0, 1] Среднее значение {assessment_name}_precision всех вопросов.