Define tus métricas de evaluación.

el 27 de septiembre de 2024.

El primer paso para evaluar tus modelos o aplicaciones generativos es identificar tu objetivo de evaluación y definir tus métricas de evaluación. En esta página, se proporciona una descripción general de los conceptos relacionados con la definición de métricas de evaluación para tu caso de uso.

Descripción general

Los modelos de IA generativa se pueden usar para crear aplicaciones para una amplia variedad de tareas, como resumir artículos de noticias, responder consultas de clientes o ayudar con la escritura de código. Gen AI Evaluation Service en Vertex AI te permite evaluar cualquier modelo con métricas explicables.

Por ejemplo, podrías estar desarrollando una aplicación para resumir artículos. Para evaluar el rendimiento de tu aplicación en esa tarea específica, considera los criterios que deseas medir y las métricas que usarías para calificarlos:

  • Criterios: Una o varias dimensiones que deseas evaluar, como conciseness, relevance, correctness o appropriate choice of words.

  • Métricas: Es una puntuación única que mide el resultado del modelo en función de criterios.

Gen AI Evaluation Service proporciona dos tipos principales de métricas:

  • Métricas basadas en modelos: Nuestras métricas basadas en modelos usan un modelo propietario de Google como juez. Puedes medir las métricas basadas en modelos por pares o por puntos:

    • Métricas puntuales: Permite que el modelo del juez evalúe el resultado del modelo candidato en función de los criterios de evaluación. Por ejemplo, la puntuación podría ser de 0 a 5, donde 0 significa que la respuesta no cumple con los criterios, mientras que 5 significa que la respuesta cumple bien con los criterios.

    • Métricas por pares: Permite que el modelo de juez compare las respuestas de dos modelos y elija el mejor. Esto se suele usar cuando se compara un modelo candidato con el modelo de referencia.

  • Métricas basadas en el procesamiento: Estas métricas se calculan con fórmulas matemáticas para comparar el resultado del modelo con una verdad fundamental o una referencia. Entre las métricas basadas en el procesamiento que se usan con frecuencia, se incluyen ROUGE y BLEU.

Puedes usar las métricas basadas en procesamiento de forma independiente o junto con las métricas basadas en modelos. Usa la siguiente tabla para decidir cuándo usar métricas basadas en modelos o en cálculos:

Enfoque de evaluación Datos Costo y velocidad
Métricas basadas en modelos Usa un modelo de juez para evaluar el rendimiento en función de criterios de evaluación descriptivos La verdad fundamental es opcional Son un poco más costosos y lentos.
Métricas basadas en procesamiento Usa fórmulas matemáticas para evaluar el rendimiento Por lo general, se requiere la verdad fundamental Bajo costo y rápido

Para comenzar, consulta Cómo preparar tu conjunto de datos y Cómo ejecutar la evaluación.

Define tus métricas basadas en modelos

La evaluación basada en modelos implica usar un modelo de lenguaje grande (LLM) como modelo de juez para evaluar los resultados del modelo candidato. Nuestros modelos de jueces se calibran con evaluadores humanos para garantizar su calidad. Se administran y están disponibles de inmediato. El proceso de evaluación basada en modelos varía según las métricas de evaluación que proporciones.

La evaluación basada en modelos sigue este proceso:

  1. Preparación de datos: Proporcionas datos de evaluación en forma de instrucciones de entrada. Los modelos candidatos reciben las instrucciones y generan las respuestas correspondientes.

  2. Evaluación: Las métricas de evaluación y las respuestas generadas se envían al modelo de juez. El modelo del juez evalúa cada respuesta de forma individual y proporciona una evaluación basada en filas.

  3. Agregación y explicación: El Gen AI Evaluation Service agrega estas evaluaciones individuales en una puntuación general. El resultado también incluye explicaciones de cadena de pensamiento para cada juicio, en las que se describe la lógica detrás de la selección.

Gen AI Evaluation Service ofrece las siguientes opciones para configurar tus métricas basadas en modelos con el SDK de Vertex AI:

Opción Descripción Ideal para
Usa un ejemplo existente Para comenzar, usa una plantilla de instrucción de métrica precompilada. Casos de uso comunes y ahorro de tiempo
Define métricas con nuestra interfaz de plantillas Obtén asistencia guiada para definir tus métricas. Nuestra interfaz con plantillas proporciona estructura y sugerencias. Personalización con asistencia
Define métricas desde cero Tener control total sobre las definiciones de tus métricas Ideal para casos de uso muy específicos. Requiere más experiencia técnica y una inversión de tiempo.

Por ejemplo, es posible que quieras desarrollar una aplicación de IA generativa que devuelva respuestas fluidas y entretenidas. Para esta aplicación, puedes definir dos criterios de evaluación con la interfaz de plantillas:

  • Fluidez: Las oraciones fluyen sin problemas y evitan frases incómodas o frases extensas. Las ideas y las oraciones se conectan de forma lógica y se usan transiciones de manera eficaz cuando es necesario.

  • Entretenimiento: Texto breve y divertido que incorpora emojis, exclamaciones y preguntas para transmitir comunicación y diversión rápidas y espontáneas.

Para convertir esos dos criterios en una métrica, deseas obtener una puntuación general que oscile entre -1 y 1, llamada custom_text_quality. Puedes definir una métrica de la siguiente manera:

# Define a pointwise metric with two criteria: Fluency and Entertaining.
custom_text_quality = PointwiseMetric(
    metric="custom_text_quality",
    metric_prompt_template=PointwiseMetricPromptTemplate(
        criteria={
            "fluency": (
                "Sentences flow smoothly and are easy to read, avoiding awkward"
                " phrasing or run-on sentences. Ideas and sentences connect"
                " logically, using transitions effectively where needed."
            ),
            "entertaining": (
                "Short, amusing text that incorporates emojis, exclamations and"
                " questions to convey quick and spontaneous communication and"
                " diversion."
            ),
        },
        rating_rubric={
            "1": "The response performs well on both criteria.",
            "0": "The response is somewhat aligned with both criteria",
            "-1": "The response falls short on both criteria",
        },
    ),
)

Para obtener una lista completa de las plantillas de instrucciones de métricas, consulta Plantillas de instrucciones de métricas para la evaluación.

Elige entre la evaluación por puntos o por pares

Usa la siguiente tabla para decidir cuándo deseas usar la evaluación por puntos o por pares:

Definición Cuándo usar Ejemplos de casos de uso
Evaluación por puntos Evalúa un modelo y genera puntuaciones según los criterios
  • Cuando necesitas una puntuación para cada modelo que se evalúa.
  • Cuando no es difícil definir la rúbrica para cada puntuación.
  • Comprende cómo se comporta tu modelo en producción:
  • Explora las fortalezas y debilidades de un solo modelo.
  • Identificar en qué comportamientos debes enfocarte cuando se realizan ajustes.
  • Obtén el rendimiento de referencia de un modelo.
Evaluación por pares Comparar dos modelos entre sí y generar una preferencia en función de los criterios
  • Cuando deseas comparar dos modelos y no es necesario obtener una puntuación.
  • Cuando la rúbrica de puntuación por punto es difícil de definir. Por ejemplo, puede ser difícil definir la rúbrica de 1 a 5 para la calidad del texto puntual, pero no es tan difícil comparar dos modelos y generar una preferencia directamente.
  • Determina qué modelo poner en producción:
  • Elige entre los tipos de modelo. Por ejemplo, Gemini-Pro en comparación con Claude 3.
  • Elige entre diferentes mensajes.
  • Determina si el ajuste hizo mejoras en un modelo de referencia.

Métricas basadas en procesamiento

Las métricas basadas en procesamiento comparan si los resultados generados por LLM son coherentes con un conjunto de datos de verdad fundamental de pares de entrada y salida. Las métricas de uso frecuente se pueden clasificar en los siguientes grupos:

  • Métricas basadas en lexicón: Usa cálculos matemáticos para calcular las similitudes de cadenas entre los resultados generados por LLM y la verdad fundamental, como Exact Match y ROUGE.
  • Métricas basadas en el recuento: Agrupa la cantidad de filas que coinciden o no con ciertas etiquetas de verdad fundamental, como F1-score, Accuracy y Tool Name Match.
  • Métricas basadas en incorporaciones: Calcula la distancia entre los resultados generados por LLM y la verdad fundamental en el espacio de embedding, lo que refleja su nivel de similitud.

Generación de texto general

Las siguientes métricas te ayudan a evaluar la capacidad del modelo para garantizar que las respuestas sean útiles, seguras y eficaces para tus usuarios.

Concordancia exacta

La métrica exact_match calcula si una respuesta del modelo coincide exactamente con una referencia.

  • Límite de tokens: Ninguno

Criterios de evaluación

No aplicable

Parámetros de entrada de métricas

Parámetro de entrada Descripción
response La respuesta de LLM.
reference La respuesta dorada de LLM como referencia.

Puntuaciones de salida

Valor Descripción
0 Sin coincidencias
1 Coincidente

BLEU

La métrica bleu (BiLingual Evaluation Understudy) contiene el resultado de un algoritmo para evaluar la calidad de la respuesta, que se tradujo de un lenguaje natural a otro. La calidad de la respuesta se considera la correspondencia entre un parámetro response y su parámetro reference.

  • Límite de tokens: Ninguno

Criterios de evaluación

No aplicable

Parámetros de entrada de métricas

Parámetro de entrada Descripción
response La respuesta de LLM.
reference La respuesta dorada del LLM para la referencia.

Puntuaciones de salida

Valor Descripción
Un número de punto flotante en el rango [0,1] Las puntuaciones más altas indican mejores traducciones. Una puntuación de 1 representa una coincidencia perfecta con el reference.

ROUGE

La métrica ROUGE se usa para comparar el parámetro response proporcionado con un parámetro reference. Todas las métricas de rouge muestran la puntuación F1. rouge-l-sum se calcula de forma predeterminada, pero puedes especificar la variante rouge que deseas usar.

  • Límite de tokens: Ninguno

Criterios de evaluación

No aplicable

Parámetros de entrada de métricas

Parámetro de entrada Descripción
response La respuesta de LLM.
reference La respuesta dorada del LLM para la referencia.

Puntuaciones de salida

Valor Descripción
Un número de punto flotante en el rango [0,1] Una puntuación más cercana a 0 significa una similitud baja entre response y reference. Una puntuación más cercana a 1 significa una gran similitud entre response y reference.

Uso de herramientas y llamada a función

Las siguientes métricas te ayudan a evaluar la capacidad del modelo para predecir una llamada a herramienta (función) válida.

Llamada válida

La métrica tool_call_valid describe la capacidad del modelo para predecir una llamada a la herramienta válida. Solo se inspecciona la primera llamada a la herramienta.

  • Límite de tokens: Ninguno

Criterios de evaluación

Criterio de evaluación Descripción
Validez El resultado del modelo contiene una llamada de herramienta válida.
Formato Un diccionario JSON contiene los campos name y arguments.

Parámetros de entrada de métricas

Parámetro de entrada Descripción
prediction El resultado del modelo candidato, que es una cadena serializada JSON que contiene las claves content y tool_calls. El valor content es la salida de texto del modelo. El valor tool_calls es una cadena serializada JSON de una lista de llamadas a las herramientas. Aquí tienes un ejemplo:

{"content": "", "tool_calls": [{"name": "book_tickets", "arguments": {"movie": "Mission Impossible Dead Reckoning Part 1", "theater":"Regal Edwards 14", "location": "Mountain View CA", "showtime": "7:30", "date": "2024-03-30","num_tix": "2"}}]}
reference La predicción de referencia de verdad fundamental, que sigue el mismo formato que prediction.

Puntuaciones de salida

Valor Descripción
0 Llamada a la herramienta no válida
1 Llamada a la herramienta válida

Coincidencia con el nombre

La métrica tool_name_match describe la capacidad del modelo para predecir una llamada a la herramienta con el nombre correcto de la herramienta. Solo se inspecciona la primera llamada a la herramienta.

  • Límite de tokens: Ninguno

Criterios de evaluación

Criterio de evaluación Descripción
Coincidencia de nombres La llamada a la herramienta predicha por el modelo coincide con el nombre de la llamada a la herramienta de referencia.

Parámetros de entrada de métricas

Parámetro de entrada Descripción
prediction El resultado del modelo candidato, que es una cadena serializada JSON que contiene las claves content y tool_calls. El valor content es la salida de texto del modelo. El valor tool_call es una cadena serializada JSON de una lista de llamadas a las herramientas. Aquí tienes un ejemplo:

{"content": "","tool_calls": [{"name": "book_tickets", "arguments": {"movie": "Mission Impossible Dead Reckoning Part 1", "theater":"Regal Edwards 14", "location": "Mountain View CA", "showtime": "7:30", "date": "2024-03-30","num_tix": "2"}}]}
reference La predicción de referencia de verdad fundamental, que sigue el mismo formato que el prediction.

Puntuaciones de salida

Valor Descripción
0 El nombre de la llamada a la herramienta no coincide con la referencia.
1 El nombre de la llamada a la herramienta coincide con la referencia.

Coincidencia de clave de parámetro

La métrica tool_parameter_key_match describe la capacidad del modelo de predecir una llamada a la herramienta con los nombres de parámetros correctos.

  • Límite de tokens: Ninguno

Criterios de evaluación

Criterio de evaluación Descripción
Proporción de coincidencia de parámetros The ratio between the number of predicted parameters that match the parameter names of the reference tool call and the total number of parameters.

Parámetros de entrada de métricas

Parámetro de entrada Descripción
prediction El resultado del modelo candidato, que es una cadena serializada JSON que contiene las claves content y tool_calls. El valor content es la salida de texto del modelo. El valor tool_call es una cadena serializada JSON de una lista de llamadas a las herramientas. Aquí tienes un ejemplo:

{"content": "", "tool_calls": [{"name": "book_tickets", "arguments": {"movie": "Mission Impossible Dead Reckoning Part 1", "theater":"Regal Edwards 14", "location": "Mountain View CA", "showtime": "7:30", "date": "2024-03-30","num_tix": "2"}}]}
reference La predicción del modelo de referencia de verdad fundamental, que sigue el mismo formato que prediction.

Puntuaciones de salida

Valor Descripción
Un número de punto flotante en el rango de [0,1] La puntuación más alta de 1 significa que más parámetros coinciden con los nombres de los parámetros reference.

Coincidencia de KV del parámetro

La métrica tool_parameter_kv_match describe la capacidad del modelo de predecir una llamada a la herramienta con los nombres de parámetros y los valores de clave correctos.

  • Límite de tokens: Ninguno

Criterios de evaluación

Criterio de evaluación Descripción
Proporción de coincidencia de parámetros La proporción entre la cantidad de parámetros previstos que coinciden con los nombres y los valores de los parámetros de la llamada a la herramienta de referencia y la cantidad total de parámetros.

Parámetros de entrada de métricas

Parámetro de entrada Descripción
prediction El resultado del modelo candidato, que es una cadena serializada JSON que contiene las claves content y tool_calls. El valor content es la salida de texto del modelo. El valor tool_call es una cadena serializada JSON de una lista de llamadas a las herramientas. Aquí tienes un ejemplo:

{"content": "", "tool_calls": [{"name": "book_tickets", "arguments": {"movie": "Mission Impossible Dead Reckoning Part 1", "theater":"Regal Edwards 14", "location": "Mountain View CA", "showtime": "7:30", "date": "2024-03-30","num_tix": "2"}}]}
reference La predicción de la referencia de verdad fundamental, que sigue el mismo formato que prediction

Puntuaciones de salida

Valor Descripción
Un número de punto flotante en el rango de [0,1] La puntuación más alta de 1 significa que más parámetros coinciden con los nombres y valores de los parámetros reference.

En el servicio de evaluación de IA generativa, puedes usar métricas basadas en el procesamiento a través del SDK de Vertex AI para Python.

Calidad de la evaluación del modelo de referencia para tareas generativas

Cuando evalúes el resultado de los modelos de IA generativa, ten en cuenta que el proceso de evaluación es inherentemente subjetivo y que la calidad de la evaluación puede variar según la tarea específica y los criterios de evaluación. Esta subjetividad también se aplica a los evaluadores humanos. Para obtener más información sobre los desafíos de lograr una evaluación coherente para los modelos de IA generativa, consulta Cómo juzgar LLM como juez con MT-Bench y Chatbot Arena y Cómo aprender a resumir a partir de comentarios humanos.

¿Qué sigue?