Справочник по оценке агента ИИ Мозаики
Внимание
Эта функция предоставляется в режиме общедоступной предварительной версии.
В этой статье рассматриваются сведения о каждом из судей 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[].content
response
.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_type
ANSWER
или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 всех вопросов. |