Referencia de los jueces llm de evaluación del agente de AI de Mosaico
Importante
Esta característica está en versión preliminar pública.
En este artículo se describen los detalles de cada uno de los jueces de LLM integrados en la evaluación del agente de IA de Mosaico, incluidas las entradas necesarias y las métricas de salida. También abarca la salida producida por jueces personalizados.
Para obtener una introducción a los jueces de LLM, consulte Cómo la evaluación del agente evalúa la calidad, el costo y la latencia.
Jueces de respuesta
Las métricas de calidad de la respuesta evalúan la eficacia de la aplicación al responder a la solicitud de un usuario. Estas métricas evalúan factores como la precisión de la respuesta en comparación con la verdad básica, si la respuesta está bien fundamentada según el contexto recuperado (o si el LLM es alucinante) y si la respuesta es segura y libre de idioma tóxico.
En general, ¿proporcionó el LLM una respuesta precisa?
El juez de LLM correctness
proporciona una evaluación binaria y una justificación escrita sobre si la respuesta generada del agente es objetivamente precisa y semánticamente similar a la respuesta de verdad básica proporcionada.
Entrada obligatoria para correctness
Es obligatoria la verdad básica expected_response
.
El conjunto de evaluación de entrada debe tener las columnas siguientes:
request
expected_response
Además, si no usa el argumento model
en la llamada a mlflow.evaluate()
, también debe proporcionar response
o trace
.
Importante
La verdad básica expected_response
debe incluir solo el conjunto mínimo de hechos necesarios para una respuesta correcta. Si copia una respuesta de otro origen, edite la respuesta para quitar cualquier texto que no sea necesario para que una respuesta se considere correcta.
Incluir solo la información necesaria y dejar fuera la información que no es estrictamente necesaria en la respuesta, permite a la evaluación del agente proporcionar una señal más sólida sobre la calidad de la salida.
Salida para correctness
Las métricas siguientes se calculan para cada pregunta:
campo Datos | Tipo | Descripción |
---|---|---|
response/llm_judged/correctness/rating |
string |
yes o no . yes : indica que la respuesta generada es altamente precisa y semánticamente similar a la verdad básica. Se aceptan omisiones o imprecisiones que aun así capturen la intención de la verdad básica. no : indica que la respuesta no cumple los criterios. |
response/llm_judged/correctness/rationale |
string |
Razonamiento escrito del LLM para yes o no . |
response/llm_judged/correctness/error_message |
string |
Si se ha producido un error al calcular esta métrica, los detalles del error están aquí. Si no hay ningún error, es NULL. |
La métrica siguiente se calcula para todo el conjunto de evaluación:
Nombre de métrica | Tipo | Descripción |
---|---|---|
response/llm_judged/correctness/rating/percentage |
float, [0, 1] |
En todas las preguntas, el porcentaje en el que la corrección se considera yes . |
¿Es pertinente la respuesta para la solicitud?
El juez de LLM relevance_to_query
determina si la respuesta es pertinente para la solicitud de entrada..
Entrada obligatoria para relevance_to_query
No se necesita la verdad básica.
El conjunto de evaluación de entrada debe tener la columna siguiente:
request
Además, si no usa el argumento model
en la llamada a mlflow.evaluate()
, también debe proporcionar response
o trace
.
Salida para relevance_to_query
Las métricas siguientes se calculan para cada pregunta:
campo Datos | Tipo | Descripción |
---|---|---|
response/llm_judged/relevance_to_query/rating |
string |
yes si la respuesta se considera pertinente para la solicitud; en caso contrario, no . |
response/llm_judged/relevance_to_query/rationale |
string |
Razonamiento escrito del LLM para yes o no . |
response/llm_judged/relevance_to_query/error_message |
string |
Si se ha producido un error al calcular esta métrica, los detalles del error están aquí. Si no hay ningún error, es NULL. |
La métrica siguiente se calcula para todo el conjunto de evaluación:
Nombre de métrica | Tipo | Descripción |
---|---|---|
response/llm_judged/relevance_to_query/rating/percentage |
float, [0, 1] |
En todas las preguntas, el porcentaje en el que relevance_to_query/rating se considera yes . |
¿Es la respuesta una alucinación o se basa en el contexto recuperado?
El juez de LLM groundedness
devuelve una evaluación binaria y una justificación escrita sobre si la respuesta generada es objetivamente coherente con el contexto recuperado.
Entrada obligatoria para groundedness
No se necesita la verdad básica.
El conjunto de evaluación de entrada debe tener la columna siguiente:
request
Además, si no usa el argumento model
en la llamada a mlflow.evaluate()
, también debe proporcionar trace
, o bien response
y retrieved_context[].content
.
Salida para groundedness
Las métricas siguientes se calculan para cada pregunta:
campo Datos | Tipo | Descripción |
---|---|---|
response/llm_judged/groundedness/rating |
string |
yes si el contexto recuperado admite todas o casi todas las respuestas generadas, no en caso contrario. |
response/llm_judged/groundedness/rationale |
string |
Razonamiento escrito del LLM para yes o no . |
response/llm_judged/groundedness/error_message |
string |
Si se ha producido un error al calcular esta métrica, los detalles del error están aquí. Si no hay ningún error, es NULL. |
La métrica siguiente se calcula para todo el conjunto de evaluación:
Nombre de métrica | Tipo | Descripción |
---|---|---|
response/llm_judged/groundedness/rating/percentage |
float, [0, 1] |
En todas las preguntas, ¿cuál es el porcentaje en el que groundedness/rating se considera yes ? |
¿Hay contenido dañino en la respuesta del agente?
El juez de LLM safety
devuelve una clasificación binaria y una justificación escrita sobre si la respuesta generada tiene contenido dañino o tóxico.
Entrada obligatoria para safety
No se necesita la verdad básica.
El conjunto de evaluación de entrada debe tener la columna siguiente:
request
Además, si no usa el argumento model
en la llamada a mlflow.evaluate()
, también debe proporcionar response
o trace
.
Salida para safety
Las métricas siguientes se calculan para cada pregunta:
campo Datos | Tipo | Descripción |
---|---|---|
response/llm_judged/safety/rating |
string |
yes si la respuesta generada no tiene contenido dañino o tóxico; en caso contrario, no . |
response/llm_judged/safety/rationale |
string |
Razonamiento escrito del LLM para yes o no . |
response/llm_judged/safety/error_message |
string |
Si se ha producido un error al calcular esta métrica, los detalles del error están aquí. Si no hay ningún error, es NULL. |
La métrica siguiente se calcula para todo el conjunto de evaluación:
Nombre de métrica | Tipo | Descripción |
---|---|---|
response/llm_judged/safety/rating/average |
float, [0, 1] |
Porcentaje de todas las preguntas que se han considerado yes . |
Jueces de recuperación
Las métricas de calidad de recuperación evalúan el rendimiento del recuperador al buscar los documentos que son relevantes para la solicitud de entrada. Estas métricas evalúan factores como: ¿el recuperador encontró los fragmentos pertinentes? ¿Cuántos de los documentos relevantes conocidos encontraron? ¿Se encontraron los documentos suficientes para generar la respuesta esperada?
¿Encontró el recuperador fragmentos pertinentes?
El juez de LLM chunk-relevance-precision
determina si los fragmentos devueltos por el recuperador son relevantes para la solicitud de entrada. La precisión se calcula como el número de fragmentos pertinentes devueltos dividido por el número total de fragmentos devueltos. Por ejemplo, si el recuperador devuelve cuatro fragmentos y el juez de LLM determina que tres de los cuatro documentos devueltos son pertinentes para la solicitud, entonces llm_judged/chunk_relevance/precision
es 0,75.
Entrada obligatoria para llm_judged/chunk_relevance
No se necesita la verdad básica.
El conjunto de evaluación de entrada debe tener la columna siguiente:
request
Además, si no usa el argumento model
en la llamada a mlflow.evaluate()
, también debe proporcionar retrieved_context[].content
o trace
.
Salida para llm_judged/chunk_relevance
Las métricas siguientes se calculan para cada pregunta:
campo Datos | Tipo | Descripción |
---|---|---|
retrieval/llm_judged/chunk_relevance/ratings |
array[string] |
Para cada fragmento, yes o no , que indica si el fragmento recuperado es relevante para la solicitud de entrada. |
retrieval/llm_judged/chunk_relevance/rationales |
array[string] |
Para cada fragmento, el razonamiento del LLM para la clasificación correspondiente. |
retrieval/llm_judged/chunk_relevance/error_messages |
array[string] |
Para cada fragmento, si se ha producido un error al calcular la clasificación, los detalles del error están aquí y otros valores de salida serán NULL. Si no hay ningún error, es NULL. |
retrieval/llm_judged/chunk_relevance/precision |
float, [0, 1] |
Calcula el porcentaje de fragmentos pertinentes entre todos los fragmentos recuperados. |
Se notifica la métrica siguiente para todo el conjunto de evaluación:
Nombre de métrica | Tipo | Descripción |
---|---|---|
retrieval/llm_judged/chunk_relevance/precision/average |
float, [0, 1] |
Valor medio de chunk_relevance/precision en todas las preguntas. |
¿Cuántos de los documentos pertinentes conocidos encontró el recuperador?
document_recall
se calcula como el número de documentos pertinentes devueltos dividido por el número total de documentos pertinentes en función de la verdad básica. Por ejemplo, imagine que dos documentos son relevantes en función de la verdad básica. Si el recuperador devuelve uno de esos documentos, document_recall
es 0,5. Esta métrica no se ve afectada por el número total de documentos devueltos.
Esta métrica es determinista y no usa un juez de LLM.
Entrada obligatoria para document_recall
La verdad básica es obligatoria.
El conjunto de evaluación de entrada debe tener la columna siguiente:
expected_retrieved_context[].doc_uri
Además, si no usa el argumento model
en la llamada a mlflow.evaluate()
, también debe proporcionar retrieved_context[].doc_uri
o trace
.
Salida para document_recall
La métrica siguiente se calcula para cada pregunta:
campo Datos | Tipo | Descripción |
---|---|---|
retrieval/ground_truth/document_recall |
float, [0, 1] |
Porcentaje de la verdad básica doc_uris presente en los fragmentos recuperados. |
La métrica siguiente se calcula para todo el conjunto de evaluación:
Nombre de métrica | Tipo | Descripción |
---|---|---|
retrieval/ground_truth/document_recall/average |
float, [0, 1] |
Valor medio de document_recall en todas las preguntas. |
¿El recuperador encontró documentos suficientes para generar la respuesta esperada?
El juez de LLM context_sufficiency
determina si el recuperador ha recuperado documentos suficientes para generar la respuesta esperada.
Entrada obligatoria para context_sufficiency
Se requiere la verdad básica expected_response
.
El conjunto de evaluación de entrada debe tener las columnas siguientes:
request
expected_response
Además, si no usa el argumento model
en la llamada a mlflow.evaluate()
, también debe proporcionar retrieved_context[].content
o trace
.
Salida para context_sufficiency
Las métricas siguientes se calculan para cada pregunta:
campo Datos | Tipo | Descripción |
---|---|---|
retrieval/llm_judged/context_sufficiency/rating |
string |
yes o no . yes indica que el contexto recuperado es suficiente para generar la respuesta esperada. no indica que la recuperación debe optimizarse para esta pregunta para que devuelva la información que falta. La justificación de la salida debe mencionar la información que falta. |
retrieval/llm_judged/context_sufficiency/rationale |
string |
Razonamiento escrito del LLM para yes o no . |
retrieval/llm_judged/context_sufficiency/error_message |
string |
Si se ha producido un error al calcular esta métrica, los detalles del error están aquí. Si no hay ningún error, es NULL. |
La métrica siguiente se calcula para todo el conjunto de evaluación:
Nombre de métrica | Tipo | Descripción |
---|---|---|
retrieval/llm_judged/context_sufficiency/rating/percentage |
float, [0, 1] |
Porcentaje en el que la suficiencia del contexto se juzga como yes . |
Métricas de juez personalizadas
Puede crear un juez personalizado para realizar evaluaciones específicas del caso de uso. Para más información, vea Creación de jueces de LLM personalizados.
La salida generada por un juez personalizado depende de su assessment_type
, ANSWER
o RETRIEVAL
.
Juez de LLM personalizado para la evaluación de RESPUESTA
Un juez de LLM personalizado para la evaluación de RESPUESTA evalúa la respuesta para cada pregunta.
Salidas proporcionadas para cada evaluación:
campo Datos | Tipo | Descripción |
---|---|---|
response/llm_judged/{assessment_name}/rating |
string |
yes o no . |
response/llm_judged/{assessment_name}/rationale |
string |
Razonamiento escrito del LLM para yes o no . |
response/llm_judged/{assessment_name}/error_message |
string |
Si se ha producido un error al calcular esta métrica, los detalles del error están aquí. Si no hay ningún error, es NULL. |
La métrica siguiente se calcula para todo el conjunto de evaluación:
Nombre de métrica | Tipo | Descripción |
---|---|---|
response/llm_judged/{assessment_name}/rating/percentage |
float, [0, 1] |
En todas las preguntas, el porcentaje en el que {nombre_de_evaluación} se juzga como yes . |
Juez de LLM personalizado para la evaluación de RECUPERACIÓN
Un juez de LLM personalizado para la evaluación de RECUPERACIÓN evalúa cada fragmento recuperado en todas las preguntas.
Salidas proporcionadas para cada evaluación:
campo Datos | Tipo | Descripción |
---|---|---|
retrieval/llm_judged/{assessment_name}/ratings |
array[string] |
Evaluación del juez personalizado para cada fragmento, yes o no . |
retrieval/llm_judged/{assessment_name}/rationales |
array[string] |
Para cada fragmento, el razonamiento escrito del LLM para yes o no . |
retrieval/llm_judged/{assessment_name}/error_messages |
array[string] |
Para cada fragmento, si se ha producido un error al calcular esta métrica, los detalles del error están aquí y otros valores son NULL. Si no hay ningún error, es NULL. |
retrieval/llm_judged/{assessment_name}/precision |
float, [0, 1] |
Porcentaje de todos los fragmentos recuperados que el juez personalizado ha evaluado como yes . |
Métricas notificadas para todo el conjunto de evaluación:
Nombre de métrica | Tipo | Descripción |
---|---|---|
retrieval/llm_judged/{assessment_name}/precision/average |
float, [0, 1] |
Valor medio de {assessment_name}_precision en todas las preguntas. |