Referência de juízes LLM de avaliação de agente de IA do Mosaic
Importante
Esse recurso está em uma versão prévia.
Este artigo aborda os detalhes de cada um dos juízes de LLM integrados ao Mosaic AI Agent Evaluation, incluindo as métricas de entrada e saída necessárias. Também abrange a saída produzida por juízes personalizados.
Para obter uma introdução aos juízes do LLM, consulte Como a qualidade, o custo e a latência são avaliados pela Avaliação do Agente.
Juízes de resposta
As métricas de qualidade de resposta avaliam quão bem o aplicativo responde à solicitação de um usuário. Essas métricas avaliam fatores como a precisão da resposta em comparação com a verdade básica, se a resposta está bem fundamentada dado o contexto recuperado (ou se o LLM está alucinando) e se a resposta é segura e livre de linguagem tóxica.
No geral, a LLM forneceu uma resposta precisa?
O avaliador de LLM correctness
faz uma avaliação binária e uma lógica escrita sobre se a resposta gerada pelo agente é factualmente precisa e semanticamente semelhante à resposta verdadeira fornecida.
Entrada obrigatória para correctness
A verdade básica expected_response
é obrigatória.
O conjunto de avaliação de entrada deve ter as seguintes colunas:
request
expected_response
Além disso, se você não usar o argumento model
na chamada para mlflow.evaluate()
, também deverá fornecer response
ou trace
.
Importante
A verdade básica expected_response
deve incluir apenas o conjunto mínimo de fatos necessários para uma resposta correta. Se você copiar uma resposta de outra fonte, edite a resposta para remover qualquer texto que não seja necessário para que uma resposta seja considerada correta.
Incluir apenas as informações necessárias e deixar de fora as informações que não são estritamente exigidas na resposta permite que a Avaliação do Agente forneça um sinal mais robusto sobre a qualidade da saída.
Saída para correctness
As seguintes métricas são calculadas para cada pergunta:
Campo de dados | Tipo | Descrição |
---|---|---|
response/llm_judged/correctness/rating |
string |
yes ou no . yes : indica que a resposta gerada é altamente precisa e semanticamente semelhante à verdade básica. Pequenas omissões ou imprecisões que ainda captem a intenção da veracidade são aceitáveis. no indica que a resposta não atende aos critérios. |
response/llm_judged/correctness/rationale |
string |
A lógica escrita do LLM para yes ou no . |
response/llm_judged/correctness/error_message |
string |
Se houver um erro ao calcular essa métrica, os detalhes do erro estarão aqui. Se não houver erro, será NULL. |
A métrica a seguir é calculada para todo o conjunto de avaliação:
Nome da métrica | Tipo | Descrição |
---|---|---|
response/llm_judged/correctness/rating/percentage |
float, [0, 1] |
Em todas as perguntas, a porcentagem em que a correção é avaliada como yes . |
A resposta é relevante para a solicitação?
O avaliador de LLM relevance_to_query
determina se a resposta é relevante para a solicitação de entrada.
Entrada obrigatória para relevance_to_query
Verdade básica não é obrigatória.
O conjunto de avaliação de entrada deve ter a seguinte coluna:
request
Além disso, se você não usar o argumento model
na chamada para mlflow.evaluate()
, também deverá fornecer response
ou trace
.
Saída para relevance_to_query
As seguintes métricas são calculadas para cada pergunta:
Campo de dados | Tipo | Descrição |
---|---|---|
response/llm_judged/relevance_to_query/rating |
string |
yes se a resposta for avaliada como relevante para a solicitação, caso contrário no . |
response/llm_judged/relevance_to_query/rationale |
string |
A lógica escrita do LLM para yes ou no . |
response/llm_judged/relevance_to_query/error_message |
string |
Se houver um erro ao calcular essa métrica, os detalhes do erro estarão aqui. Se não houver erro, será NULL. |
A métrica a seguir é calculada para todo o conjunto de avaliação:
Nome da métrica | Tipo | Descrição |
---|---|---|
response/llm_judged/relevance_to_query/rating/percentage |
float, [0, 1] |
Em todas as perguntas, qual é a porcentagem em que relevance_to_query/rating é avaliada como yes . |
A resposta é uma alucinação ou está baseada no contexto recuperado?
O avaliador de LLM groundedness
retorna uma avaliação binária e uma lógica escrita sobre se a resposta gerada é factualmente consistente com o contexto recuperado.
Entrada obrigatória para groundedness
Verdade básica não é obrigatória.
O conjunto de avaliação de entrada deve ter a seguinte coluna:
request
Além disso, se você não usar o argumento model
na chamada para mlflow.evaluate()
, também deverá fornecer trace
ou ambos response
e retrieved_context[].content
.
Saída para groundedness
As seguintes métricas são calculadas para cada pergunta:
Campo de dados | Tipo | Descrição |
---|---|---|
response/llm_judged/groundedness/rating |
string |
yes se o contexto recuperado dá suporte a todas ou a quase todas as respostas, caso contrário no . |
response/llm_judged/groundedness/rationale |
string |
A lógica escrita do LLM para yes ou no . |
response/llm_judged/groundedness/error_message |
string |
Se houver um erro ao calcular essa métrica, os detalhes do erro estarão aqui. Se não houver erro, será NULL. |
A métrica a seguir é calculada para todo o conjunto de avaliação:
Nome da métrica | Tipo | Descrição |
---|---|---|
response/llm_judged/groundedness/rating/percentage |
float, [0, 1] |
Em todas as perguntas, qual é a porcentagem em que groundedness/rating é avaliada como yes . |
Há conteúdo prejudicial na resposta do agente?
O avaliador de LLM safety
retorna uma classificação binária e uma lógica escrita sobre se a resposta gerada tem conteúdo tóxico ou prejudicial.
Entrada obrigatória para safety
Verdade básica não é obrigatória.
O conjunto de avaliação de entrada deve ter a seguinte coluna:
request
Além disso, se você não usar o argumento model
na chamada para mlflow.evaluate()
, também deverá fornecer response
ou trace
.
Saída para safety
As seguintes métricas são calculadas para cada pergunta:
Campo de dados | Tipo | Descrição |
---|---|---|
response/llm_judged/safety/rating |
string |
yes se a resposta não tiver conteúdo tóxico ou prejudicial, caso contrário no . |
response/llm_judged/safety/rationale |
string |
A lógica escrita do LLM para yes ou no . |
response/llm_judged/safety/error_message |
string |
Se houver um erro ao calcular essa métrica, os detalhes do erro estarão aqui. Se não houver erro, será NULL. |
A métrica a seguir é calculada para todo o conjunto de avaliação:
Nome da métrica | Tipo | Descrição |
---|---|---|
response/llm_judged/safety/rating/average |
float, [0, 1] |
Qual porcentagem de todas as perguntas foi avaliada como yes ? |
Juízes de recuperação
As métricas de qualidade de recuperação avaliam o desempenho do recuperador na localização dos documentos relevantes para a solicitação de entrada. Essas métricas avaliam fatores como: O retriever encontrou os pedaços relevantes? Quantos dos documentos relevantes conhecidos ele encontrou? Os documentos encontrados foram suficientes para produzir a resposta esperada?
O recuperador encontrou partes relevantes?
O avaliador de LLM chunk-relevance-precision
determina se as partes retornadas pelo recuperador são relevantes para a solicitação de entrada. A precisão é calculada como o número de partes relevantes retornadas dividido pelo número total de partes retornadas. Por exemplo, se o recuperador retornar quatro partes e o avaliador de LLM determinar que três dos quatro documentos retornados são relevantes para a solicitação, então llm_judged/chunk_relevance/precision
será 0,75.
Entrada obrigatória para llm_judged/chunk_relevance
Verdade básica não é obrigatória.
O conjunto de avaliação de entrada deve ter a seguinte coluna:
request
Além disso, se você não usar o argumento model
na chamada para mlflow.evaluate()
, também deverá fornecer retrieved_context[].content
ou trace
.
Saída para llm_judged/chunk_relevance
As seguintes métricas são calculadas para cada pergunta:
Campo de dados | Tipo | Descrição |
---|---|---|
retrieval/llm_judged/chunk_relevance/ratings |
array[string] |
Para cada parte, yes ou no , indicando se a parte recuperada é relevante para a solicitação de entrada. |
retrieval/llm_judged/chunk_relevance/rationales |
array[string] |
Para cada parte, o raciocínio do LLM para a classificação correspondente |
retrieval/llm_judged/chunk_relevance/error_messages |
array[string] |
Para cada parte, se houve um erro ao calcular a classificação, os detalhes do erro estarão aqui e os outros valores de saída serão NULL. Se não houver erro, será NULL. |
retrieval/llm_judged/chunk_relevance/precision |
float, [0, 1] |
Calcula a porcentagem das partes relevantes entre todas as partes recuperadas. |
A métrica a seguir é relatada para todo o conjunto de avaliação:
Nome da métrica | Tipo | Descrição |
---|---|---|
retrieval/llm_judged/chunk_relevance/precision/average |
float, [0, 1] |
Valor médio de chunk_relevance/precision em todas as perguntas. |
Quantos dos documentos relevantes conhecidos o recuperador encontrou?
document_recall
é calculado como o número de documentos relevantes devolvidos dividido pelo número total de documentos relevantes com base na verdade básica. Por exemplo, suponha que dois documentos sejam relevantes com base na verdade básica. Se o recuperador retornar um desses documentos, document_recall
é 0,5. Essa métrica não é afetada pelo número total de documentos retornados.
Essa métrica é determinística e não usa um avaliador de LLM.
Entrada obrigatória para document_recall
Verdade básica é obrigatória.
O conjunto de avaliação de entrada deve ter a seguinte coluna:
expected_retrieved_context[].doc_uri
Além disso, se você não usar o argumento model
na chamada para mlflow.evaluate()
, também deverá fornecer retrieved_context[].doc_uri
ou trace
.
Saída para document_recall
A métrica a seguir é calculada para cada pergunta:
Campo de dados | Tipo | Descrição |
---|---|---|
retrieval/ground_truth/document_recall |
float, [0, 1] |
A porcentagem de doc_uris com base na veracidade presente nas partes recuperadas. |
A métrica a seguir é calculada para todo o conjunto de avaliação:
Nome da métrica | Tipo | Descrição |
---|---|---|
retrieval/ground_truth/document_recall/average |
float, [0, 1] |
Valor médio de document_recall em todas as perguntas. |
O recuperador encontrou documentos suficientes para produzir a resposta esperada?
O avaliador de LLM context_sufficiency
determina se o recuperador recuperou documentos suficientes para produzir a resposta esperada.
Entrada obrigatória para context_sufficiency
Verdade básica expected_response
é obrigatória.
O conjunto de avaliação de entrada deve ter as seguintes colunas:
request
expected_response
Além disso, se você não usar o argumento model
na chamada para mlflow.evaluate()
, também deverá fornecer retrieved_context[].content
ou trace
.
Saída para context_sufficiency
As seguintes métricas são calculadas para cada pergunta:
Campo de dados | Tipo | Descrição |
---|---|---|
retrieval/llm_judged/context_sufficiency/rating |
string |
yes ou no . yes indica que o contexto recuperado é suficiente para produzir a resposta esperada. no indica que a recuperação precisa ser ajustada para esta pergunta para que ela traga de volta as informações ausentes. A justificativa de saída deve mencionar quais informações estão faltando. |
retrieval/llm_judged/context_sufficiency/rationale |
string |
A lógica escrita do LLM para yes ou no . |
retrieval/llm_judged/context_sufficiency/error_message |
string |
Se houver um erro ao calcular essa métrica, os detalhes do erro estarão aqui. Se não houver erro, será NULL. |
A métrica a seguir é calculada para todo o conjunto de avaliação:
Nome da métrica | Tipo | Descrição |
---|---|---|
retrieval/llm_judged/context_sufficiency/rating/percentage |
float, [0, 1] |
Porcentagem em que a suficiência do contexto é avaliada como yes . |
Métricas personalizadas do avaliador
Você pode criar um avaliador personalizado para realizar avaliações específicas para seu caso de uso. Para obter detalhes, consulte Criar avaliadores de LLM.
A saída produzida por um avaliador personalizado depende de seu assessment_type
, ANSWER
ou RETRIEVAL
.
Avaliador de LLM personalizado para avaliação de ANSWER
Um avaliador de LLM personalizado para avaliação de ANSWER avalia a resposta para cada pergunta.
Saídas fornecidas para cada avaliação:
Campo de dados | Tipo | Descrição |
---|---|---|
response/llm_judged/{assessment_name}/rating |
string |
yes ou no . |
response/llm_judged/{assessment_name}/rationale |
string |
A lógica escrita do LLM para yes ou no . |
response/llm_judged/{assessment_name}/error_message |
string |
Se houver um erro ao calcular essa métrica, os detalhes do erro estarão aqui. Se não houver erro, será NULL. |
A métrica a seguir é calculada para todo o conjunto de avaliação:
Nome da métrica | Tipo | Descrição |
---|---|---|
response/llm_judged/{assessment_name}/rating/percentage |
float, [0, 1] |
Em todas as perguntas, a porcentagem em que {assessment_name} é avaliado como yes . |
Avaliador de LLM personalizado para avaliação de RETRIEVAL
Um avaliador de LLM personalizado para avaliação de RETRIEVAL avalia cada parte recuperada em todas as perguntas.
Saídas fornecidas para cada avaliação:
Campo de dados | Tipo | Descrição |
---|---|---|
retrieval/llm_judged/{assessment_name}/ratings |
array[string] |
A avaliação do avaliador personalizado para cada parte, yes ou no . |
retrieval/llm_judged/{assessment_name}/rationales |
array[string] |
Para cada parte, a lógica escrita do LLM para yes ou no . |
retrieval/llm_judged/{assessment_name}/error_messages |
array[string] |
Para cada parte, se houver um erro ao calcular essa métrica, os detalhes do erro estarão aqui e os outros valores serão NULL. Se não houver erro, será NULL. |
retrieval/llm_judged/{assessment_name}/precision |
float, [0, 1] |
Porcentagem de todas as partes recuperadas que o avaliador personalizado avaliou como yes . |
Métricas relatadas para todo o conjunto de avaliação:
Nome da métrica | Tipo | Descrição |
---|---|---|
retrieval/llm_judged/{assessment_name}/precision/average |
float, [0, 1] |
Valor médio de {assessment_name}_precision em todas as perguntas. |