evento
Junte-se a nós na FabCon Vegas
31/03, 23 - 2/04, 23
O melhor evento liderado pela comunidade Microsoft Fabric, Power BI, SQL e AI. 31 de março a 2 de abril de 2025.
Registe-se hoje mesmoEste browser já não é suportado.
Atualize para o Microsoft Edge para tirar partido das mais recentes funcionalidades, atualizações de segurança e de suporte técnico.
Importante
Esta funcionalidade está em Pré-visualização Pública.
Este artigo aborda os detalhes de cada um dos juízes de LLM incorporados ao Mosaic AI Agent Evaluation, incluindo as métricas de entrada e saída necessárias. Também abrange a produção produzida por juízes personalizados.
Para obter uma introdução aos juízes de LLM, consulte Como a qualidade, o custo e a latência são avaliados pela Avaliação do agente.
Nota
Para conversas com vários turnos, os juízes do LLM avaliam apenas a última entrada da conversa.
A lista seguinte table contém os juízes predefinidos:
Nome do juiz | Passo | Aspeto de qualidade que o juiz avalia |
---|---|---|
relevance_to_query |
Resposta | O endereço de resposta (é relevante para) o pedido do utilizador? |
groundedness |
Resposta | A resposta gerada está fundamentada no contexto recuperado (não alucinante)? |
safety |
Resposta | Existe conteúdo nocivo ou tóxico na resposta? |
correctness |
Resposta | A resposta gerada é precisa (em comparação com a verdade básica)? |
guideline_adherence |
Resposta | A resposta gerada segue as orientações fornecidas? |
chunk_relevance |
Recuperação | O recuperador encontrou partes que são úteis (relevantes) para responder ao pedido do utilizador? |
document_recall |
Recuperação | Quantos dos documentos relevantes conhecidos o recuperador encontrou? |
context_sufficiency |
Recuperação | O recuperador encontrou documentos com informações suficientes para produzir a resposta esperada? |
As métricas de qualidade de resposta avaliam o 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 do solo, 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.
O correctness
juiz LLM dá uma avaliação binária e uma fundamentação escrita sobre se a resposta gerada pelo agente é factualmente precisa e semanticamente semelhante à resposta de verdade-base fornecida.
A verdade expected_response
fundamental é necessária.
A avaliação de entrada set deve ter o seguinte columns:
request
expected_response
Além disso, se você não usar o model
argumento na chamada para mlflow.evaluate()
, você também deve fornecer um response
ou trace
.
Importante
A verdade fundamental expected_response
deve incluir apenas o set mínimo de fatos que é necessário para uma resposta correta. Se você copiar uma resposta de outra fonte, edite-a para remove 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 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.
As seguintes métricas são calculadas para cada pergunta:
Campo de dados | Tipo | Description |
---|---|---|
response/llm_judged/correctness/rating |
string |
yes ou no .
yes indica que a resposta gerada é altamente precisa e semanticamente semelhante à verdade básica. São aceitáveis pequenas omissões ou imprecisões que ainda captam a intenção da verdade fundamental.
no indica que a resposta não cumpre os critérios. |
response/llm_judged/correctness/rationale |
string |
Raciocínio escrito de LLM para yes ou no . |
response/llm_judged/correctness/error_message |
string |
Se houve um erro ao calcular essa métrica, os detalhes do erro estão aqui. Se nenhum erro, isso é NULL. |
A seguinte métrica é calculada para toda a avaliação set:
Nome da métrica | Tipo | Description |
---|---|---|
response/llm_judged/correctness/rating/percentage |
float, [0, 1] |
A porcentagem de acerto where em todas as perguntas é avaliada como yes . |
O relevance_to_query
juiz LLM determina se a resposta é relevante para o pedido de entrada.
A verdade fundamental não é necessária.
A avaliação de entrada set deve ter o seguinte column:
request
Além disso, se você não usar o model
argumento na chamada para mlflow.evaluate()
, você também deve fornecer um response
ou trace
.
As seguintes métricas são calculadas para cada pergunta:
Campo de dados | Tipo | Description |
---|---|---|
response/llm_judged/relevance_to_query/rating |
string |
yes se a resposta for considerada relevante para o pedido, no caso contrário. |
response/llm_judged/relevance_to_query/rationale |
string |
Raciocínio escrito de LLM para yes ou no . |
response/llm_judged/relevance_to_query/error_message |
string |
Se houve um erro ao calcular essa métrica, os detalhes do erro estão aqui. Se nenhum erro, isso é NULL. |
A seguinte métrica é calculada para a avaliação completa set:
Nome da métrica | Tipo | Description |
---|---|---|
response/llm_judged/relevance_to_query/rating/percentage |
float, [0, 1] |
Em todas as perguntas, a percentagem whererelevance_to_query/rating é considerada yes . |
O groundedness
juiz LLM retorna uma avaliação binária e um raciocínio escrito sobre se a resposta gerada é factualmente consistente com o contexto recuperado.
A verdade fundamental não é necessária.
A avaliação de entrada set deve ter o seguinte column:
request
Além disso, se você não usar o model
argumento na chamada para mlflow.evaluate()
, você também deve fornecer um trace
ou ambos de response
e retrieved_context[].content
.
As seguintes métricas são calculadas para cada pergunta:
Campo de dados | Tipo | Description |
---|---|---|
response/llm_judged/groundedness/rating |
string |
yes se o contexto recuperado suportar todas ou quase todas as respostas geradas, no caso contrário. |
response/llm_judged/groundedness/rationale |
string |
Raciocínio escrito de LLM para yes ou no . |
response/llm_judged/groundedness/error_message |
string |
Se houve um erro ao calcular essa métrica, os detalhes do erro estão aqui. Se nenhum erro, isso é NULL. |
A seguinte métrica é calculada para toda a avaliação set:
Nome da métrica | Tipo | Description |
---|---|---|
response/llm_judged/groundedness/rating/percentage |
float, [0, 1] |
Em todas as perguntas, qual é a porcentagem wheregroundedness/rating é julgada como yes . |
O juiz guideline_adherence
LLM emite uma avaliação binária e uma justificação escrita sobre se a resposta gerada está de acordo com o guidelines
.
A verdade fundamental não é necessária.
A avaliação de entrada set deve ter os seguintes columns:
request
guidelines
Além disso, se você não usar o model
argumento na chamada para mlflow.evaluate()
, você também deve fornecer um trace
ou response
. Algumas diretrizes podem ser aplicadas globalmente à sua avaliação set. Em vez de copiar estas diretrizes para cada avaliação, pode especificar global_guidelines
na configuração do avaliador da seguinte forma:
eval_set = [
{
"request": "What is the difference between reduceByKey and groupByKey in Spark?",
"response": "reduceByKey aggregates data before shuffling, whereas groupByKey shuffles all data, making reduceByKey more efficient.",
"guidelines": [
"The response must be in English",
"The response must be clear, coherent, and concise",
]
}
]
mlflow.evaluate(
data=pd.DataFrame(eval_set),
model_type="databricks-agent",
evaluator_config={
"databricks-agent": {
"global_guidelines": [
"The response must be in English",
"The response must be clear, coherent, and concise",
],
}
}
)
As seguintes métricas são calculadas para cada pergunta:
Campo de dados | Tipo | Description |
---|---|---|
response/llm_judged/guideline_adherence/rating |
string |
yes se a resposta seguir todas as diretrizes, no o contrário. |
response/llm_judged/guideline_adherence/rationale |
string |
Raciocínio escrito de LLM para yes ou no . |
response/llm_judged/guideline_adherence/error_message |
string |
Se houve um erro ao calcular essa métrica, os detalhes do erro estão aqui. Se nenhum erro, isso é NULL. |
response/llm_judged/global_guideline_adherence/rating |
string |
yes se a resposta seguir todas as diretrizes globais, no caso contrário. |
response/llm_judged/global_guideline_adherence/rationale |
string |
Raciocínio escrito de LLM para yes ou no . |
response/llm_judged/global_guideline_adherence/error_message |
string |
Se houve um erro ao calcular essa métrica, os detalhes do erro estão aqui. Se nenhum erro, isso é NULL. |
A seguinte métrica é calculada para toda a avaliação set:
| Nome da métrica | Tipo | Descrição | |—–|—–|—–| | response/llm_judged/guideline_adherence/rating/percentage
| float, [0, 1]
| Para todas as perguntas, qual é a percentagem em que whereguideline_adherence/rating
é avaliada como yes
.
|
response/llm_judged/global_guideline_adherence/rating/percentage
|
float, [0, 1]
| Em todas as perguntas, qual é a porcentagem whereglobal_guideline_adherence/rating
é julgada como yes
.
O safety
juiz LLM retorna uma classificação binária e uma justificativa escrita sobre se a resposta gerada tem conteúdo nocivo ou tóxico.
A verdade fundamental não é necessária.
A avaliação de entrada set deve ter as seguintes column:
request
Além disso, se você não usar o model
argumento na chamada para mlflow.evaluate()
, você também deve fornecer um response
ou trace
.
As seguintes métricas são calculadas para cada pergunta:
Campo de dados | Tipo | Description |
---|---|---|
response/llm_judged/safety/rating |
string |
yes se a resposta não tiver conteúdo nocivo ou tóxico, no caso contrário. |
response/llm_judged/safety/rationale |
string |
Raciocínio escrito de LLM para yes ou no . |
response/llm_judged/safety/error_message |
string |
Se houve um erro ao calcular essa métrica, os detalhes do erro estão aqui. Se nenhum erro, isso é NULL. |
A seguinte métrica é calculada para toda a avaliação set:
Nome da métrica | Tipo | Description |
---|---|---|
response/llm_judged/safety/rating/average |
float, [0, 1] |
Percentagem de todas as perguntas que foram julgadas como .yes |
As métricas de qualidade de recuperação avaliam o desempenho do recuperador na localização dos documentos que são 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 encontrou? Os documentos que considerou foram suficientes para produzir a resposta esperada?
O chunk-relevance-precision
juiz LLM determina se as partes devolvidas pelo recuperador são relevantes para a solicitação de entrada. A precisão é calculada como o número de blocos relevantes devolvidos dividido pelo número total de blocos devolvidos. Por exemplo, se o recuperador retornar quatro partes, e o juiz LLM determinar que três dos quatro documentos devolvidos são relevantes para a solicitação, então llm_judged/chunk_relevance/precision
é 0,75.
A verdade fundamental não é necessária.
A avaliação de entrada set deve ter os seguintes requisitos column:
request
Além disso, se você não usar o model
argumento na chamada para mlflow.evaluate()
, você também deve fornecer um retrieved_context[].content
ou trace
.
As seguintes métricas são calculadas para cada pergunta:
Campo de dados | Tipo | Description |
---|---|---|
retrieval/llm_judged/chunk_relevance/ratings |
array[string] |
Para cada bloco, yes ou no , indicando se o bloco recuperado é 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 bloco, se houve um erro ao calcular a avaliação, os detalhes do erro estão aqui, e os outros dados de saída values serão NULL. Se nenhum erro, isso é NULL. |
retrieval/llm_judged/chunk_relevance/precision |
float, [0, 1] |
Calcula a porcentagem de partes relevantes entre todas as partes recuperadas. |
A seguinte métrica é relatada para toda a avaliação set.
Nome da métrica | Tipo | Description |
---|---|---|
retrieval/llm_judged/chunk_relevance/precision/average |
float, [0, 1] |
Valor médio de chunk_relevance/precision todas as perguntas. |
document_recall
é calculado como o número de documentos relevantes devolvidos dividido pelo número total de documentos relevantes com base na verdade dos fundamentos. Por exemplo, suponha que dois documentos são relevantes com base na verdade fundamental. Se o recuperador devolver um desses documentos, document_recall
é 0,5. Essa métrica não é afetada pelo número total de documentos retornados.
Esta métrica é determinística e não usa um juiz LLM.
A verdade fundamental é necessária.
A avaliação de entrada set deve ter o seguinte column
expected_retrieved_context[].doc_uri
Além disso, se você não usar o model
argumento na chamada para mlflow.evaluate()
, você também deve fornecer um retrieved_context[].doc_uri
ou trace
.
A seguinte métrica é calculada para cada pergunta:
Campo de dados | Tipo | Description |
---|---|---|
retrieval/ground_truth/document_recall |
float, [0, 1] |
A porcentagem de verdade doc_uris do solo presente nos pedaços recuperados. |
A seguinte métrica é calculada para toda a avaliação set:
Nome da métrica | Tipo | Description |
---|---|---|
retrieval/ground_truth/document_recall/average |
float, [0, 1] |
Valor médio de document_recall todas as perguntas. |
O context_sufficiency
juiz LLM determina se o recuperador recuperou documentos suficientes para produzir a resposta esperada.
A verdade expected_response
fundamental é necessária.
A avaliação de entrada set deve ter o seguinte columns:
request
expected_response
Além disso, se você não usar o model
argumento na chamada para mlflow.evaluate()
, você também deve fornecer um retrieved_context[].content
ou trace
.
As seguintes métricas são calculadas para cada pergunta:
Campo de dados | Tipo | Description |
---|---|---|
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 essa pergunta para que ela traga de volta as informações faltantes. A fundamentação dos resultados deve mencionar as informações em falta. |
retrieval/llm_judged/context_sufficiency/rationale |
string |
Raciocínio escrito de LLM para yes ou no . |
retrieval/llm_judged/context_sufficiency/error_message |
string |
Se houve um erro ao calcular essa métrica, os detalhes do erro estão aqui. Se nenhum erro, isso é NULL. |
A seguinte métrica é calculada para toda a avaliação set:
Nome da métrica | Tipo | Description |
---|---|---|
retrieval/llm_judged/context_sufficiency/rating/percentage |
float, [0, 1] |
A percentagem de suficiência do contexto where é julgada como yes . |
Você pode criar um juiz personalizado para realizar avaliações específicas para seu caso de uso. Para obter detalhes, consulte Criar juízes LLM personalizados.
A saída produzida por um juiz aduaneiro depende do seu assessment_type
, ANSWER
ou RETRIEVAL
.
Um juiz LLM personalizado para avaliação ANSWER avalia a resposta para cada pergunta.
Resultados fornecidos para cada avaliação:
Campo de dados | Tipo | Description |
---|---|---|
response/llm_judged/{assessment_name}/rating |
string |
yes ou no . |
response/llm_judged/{assessment_name}/rationale |
string |
Raciocínio escrito de LLM para yes ou no . |
response/llm_judged/{assessment_name}/error_message |
string |
Se houve um erro ao calcular essa métrica, os detalhes do erro estão aqui. Se nenhum erro, isso é NULL. |
A seguinte métrica é calculada para a totalidade da avaliação set:
Nome da métrica | Tipo | Description |
---|---|---|
response/llm_judged/{assessment_name}/rating/percentage |
float, [0, 1] |
Em todas as perguntas, a porcentagem where {assessment_name} é julgada como yes . |
Um juiz LLM personalizado para avaliação RETRIEVAL avalia cada parte recuperada em todas as perguntas.
Resultados fornecidos para cada avaliação:
Campo de dados | Tipo | Description |
---|---|---|
retrieval/llm_judged/{assessment_name}/ratings |
array[string] |
Avaliação do juiz personalizado para cada parte,yes ou no . |
retrieval/llm_judged/{assessment_name}/rationales |
array[string] |
Para cada pedaço, o raciocínio escrito de LLM para yes ou no . |
retrieval/llm_judged/{assessment_name}/error_messages |
array[string] |
Para cada segmento, se houve um erro ao calcular esta métrica, os detalhes do erro estão aqui, e os outros values estão NULL. Se nenhum erro, isso é NULL. |
retrieval/llm_judged/{assessment_name}/precision |
float, [0, 1] |
Porcentagem de todos os pedaços recuperados que o juiz personalizado avaliou como yes . |
Métricas reportadas para toda a avaliação set:
Nome da métrica | Tipo | Description |
---|---|---|
retrieval/llm_judged/{assessment_name}/precision/average |
float, [0, 1] |
Valor médio de {assessment_name}_precision todas as perguntas. |
evento
Junte-se a nós na FabCon Vegas
31/03, 23 - 2/04, 23
O melhor evento liderado pela comunidade Microsoft Fabric, Power BI, SQL e AI. 31 de março a 2 de abril de 2025.
Registe-se hoje mesmo