AutoSxS

En esta página, se presenta cómo realizar una evaluación basada en modelos en pares mediante AutoSxS, que es una herramienta a través del servicio de canalización de evaluación. Explicamos cómo puedes usar AutoSxS a través de la API de Vertex AI o el SDK de Vertex AI para Python.

AutoSxS

La Evaluación automática en paralelo (AutoSxS) es una herramienta de evaluación basada en modelos por pares que se ejecuta a través del servicio de canalización de evaluación. AutoSxS se puede usar para evaluar el rendimiento de los modelos de IA generativa en Vertex AI Model Registry o las predicciones generadas con anterioridad, lo que le permite admitir modelos de base de Vertex AI, modelos de IA generativa ajustados y modelos de lenguaje de terceros. AutoSxS usa un evaluador automático para decidir qué modelo brinda una mejor respuesta a un mensaje. Está disponible a pedido y evalúa los modelos de lenguaje con un rendimiento comparable al de los evaluadores humanos.

El evaluador automático

En un nivel alto, en el diagrama se muestra cómo AutoSxS compara las predicciones de los modelos A y B con un tercer modelo, el evaluador automático.

Descripción general de cómo funciona AutoSxS

Los modelos A y B reciben mensajes de entrada, y cada modelo genera respuestas que se envían al evaluador automático. Al igual que un evaluador humano, un evaluador automático es un modelo de lenguaje que juzga la calidad de las respuestas del modelo según un mensaje de inferencia original. Con AutoSxS, el evaluador automático compara la calidad de dos respuestas del modelo dadas sus instrucciones de inferencia a través de un conjunto de criterios. Los criterios se usan para determinar qué modelo tuvo el mejor rendimiento a través de la comparación de los resultados del modelo A con los resultados del modelo B. El evaluador automático produce preferencias de respuesta como métricas agregadas y genera explicaciones de preferencia y puntuaciones de confianza para cada ejemplo. Para obtener más información, consulta la tabla de criterios.

Modelos compatibles

AutoSxS admite la evaluación de cualquier modelo cuando se proporcionan predicciones generadas con anterioridad. AutoSxS también admite la generación automática de respuestas para cualquier modelo en Vertex AI Model Registry que admita la predicción por lotes en Vertex AI.

Si tu modelo de texto no es compatible con Vertex AI Model Registry, AutoSxS también acepta predicciones generadas con anterioridad y almacenadas en JSONL en Cloud Storage. o una tabla de BigQuery. Para obtener información sobre los precios, consulta Generación de texto.

Tareas y criterios admitidos

AutoSxS admite la evaluación de modelos para tareas de resumen y búsqueda de respuestas. Los criterios de evaluación están predefinidos para cada tarea, lo que hace que la evaluación de lenguaje sea más objetiva y mejore la calidad de la respuesta.

Los criterios se enumeran por tarea.

Resúmenes

La tarea summarization tiene un límite de token de entrada de 4,096.

A continuación, figura la lista de criterios de evaluación para summarization:

Criterios
1. Sigue las instrucciones ¿En qué medida demuestra la respuesta del modelo comprensión de la instrucción del mensaje?
2. Con fundamento ¿Incluye la respuesta solo información del contexto de inferencia y de la instrucción de inferencia?
3. Amplia ¿En qué medida captura el modelo los detalles clave en el resumen?
4. Breve ¿Es el resumen detallado? ¿Incluye lenguaje florido? ¿Es demasiado conciso?

Respuesta a preguntas

La tarea question_answering tiene un límite de token de entrada de 4,096.

A continuación, figura la lista de criterios de evaluación para question_answering:

Criterios
1. Responde completamente la pregunta La respuesta responde a la pregunta por completo.
2. Con fundamento ¿Incluye la respuesta solo información del contexto de instrucción y de la instrucción de inferencia?
3. Relevancia ¿Se relaciona el contenido de la respuesta con la pregunta?
4. Amplia ¿En qué medida captura el modelo los detalles clave de la pregunta?

Prepara el conjunto de datos de evaluación para AutoSxS

En esta sección, se detallan los datos que debes proporcionar en el conjunto de datos de evaluación de AutoSxS y las prácticas recomendadas para la construcción de conjuntos de datos. Los ejemplos deben reflejar las entradas reales que tus modelos podrían encontrar en producción y contrastar mejor el comportamiento de tus modelos activos.

Formato del conjunto de datos

AutoSxS acepta un solo conjunto de datos de evaluación con un esquema flexible. El conjunto de datos puede ser una tabla de BigQuery o almacenarse como líneas JSON en Cloud Storage.

Cada fila del conjunto de datos de evaluación representa un solo ejemplo, y las columnas son una de las siguientes:

  • Columnas de ID: se usan para identificar cada ejemplo único.
  • Columnas de datos: se usan para completar las plantillas de mensajes. Consulta Parámetros de la instrucción.
  • Predicciones generadas con anterioridad: predicciones realizadas por el mismo modelo con el mismo mensaje. El uso de predicciones generadas con anterioridad ahorra tiempo y recursos.
  • Preferencias humanas de verdad fundamental: se usan para comparar AutoSxS con tus datos de preferencia de verdad fundamental cuando se proporcionan predicciones generadas con anterioridad para ambos modelos.

Este es un conjunto de datos de evaluación de ejemplo en el que context y question son columnas de datos, y model_b_response contiene predicciones generadas con anterioridad.

context question model_b_response
Algunos podrían pensar que el acero es el material más duro o el titanio, pero el diamante es en realidad el material más duro. ¿Cuál es el material más duro? El diamante es el material más duro. Es más duro que el acero o el titanio.

Para obtener más información sobre cómo llamar a AutoSxS, consulta Realiza la evaluación del modelo. Para obtener detalles sobre la longitud del token, consulta Tareas y criterios admitidos. Para subir los datos a Cloud Storage, consulta Sube un conjunto de datos de evaluación a Cloud Storage.

Parámetros de la instrucción

Muchos modelos de lenguaje toman parámetros de la instrucción como entradas en lugar de una sola cadena de instrucción. Por ejemplo, chat-bison toma varios parámetros de la instrucción (mensajes, ejemplos, contexto) que conforman partes la instrucción. Sin embargo, text-bison solo tiene un parámetro de la instrucción, llamado mensaje, que contiene toda la instrucción.

Describimos cómo puedes especificar de manera flexible los parámetros de la instrucción del modelo en el momento de la inferencia y la evaluación. AutoSxS te brinda la flexibilidad de llamar a modelos de lenguaje con diferentes entradas esperadas a través de los parámetros de la instrucción con plantillas.

Inferencia

Si alguno de los modelos no tiene predicciones generadas con anterioridad, AutoSxS usa la predicción por lotes de Vertex AI para generar respuestas. Se deben especificar los parámetros de la instrucción de cada modelo.

En AutoSxS, puedes proporcionar una sola columna en el conjunto de datos de evaluación como parámetro de la instrucción.

{'some_parameter': {'column': 'my_column'}}

De manera alternativa, puedes definir plantillas a través de columnas del conjunto de datos de evaluación como variables para especificar los parámetros de la instrucción:

{'some_parameter': {'template': 'Summarize the following: {{ my_column }}.'}}

Cuando se proporcionan parámetros de la instrucción del modelo para la inferencia, los usuarios pueden usar la palabra clave protegida default_instruction como argumento de plantilla, que se reemplaza por la instrucción de inferencia predeterminada para la tarea determinada:

model_prompt_parameters = {
        'prompt': {'template': '{{ default_instruction }}: {{ context }}'},
}

Si generas predicciones, proporciona parámetros de la instrucción del modelo y una columna de salida. Por ejemplo, text-bison usa "instrucción" para la entrada y "contenido" para la salida. Para ello, sigue estos pasos:

  1. Identifica las entradas y las salidas que necesitan los modelos que se evalúan.
  2. Define las entradas como parámetros de la instrucción del modelo.
  3. Pasa el resultado a la columna de respuesta.
model_a_prompt_parameters={
    'prompt': {
        'template': {
            'Answer the following question from the point of view of a college professor: {{ context }}\n{{ question }}'
        },
    },
},
response_column_a='content',  # Column in Model A response.
response_column_b='model_b_response',  # Column in eval dataset.

Evaluación

Así como debes proporcionar parámetros de la instrucción para la inferencia, también debes proporcionar parámetros de la instrucción para la evaluación. El evaluador automático requiere los siguientes parámetros de la instrucción:

Parámetro de la instrucción del evaluador automático ¿Puede configurarlo el usuario? Descripción Ejemplo
Instrucción del evaluador automático No. Una instrucción calibrada que describe los criterios que el evaluador automático debe usar para evaluar las respuestas dadas. Elige la respuesta que responda la pregunta y siga mejor las instrucciones.
Instrucción de la inferencia Una descripción de la tarea que debe realizar cada modelo candidato Responde la pregunta con precisión: ¿cuál es el material más duro?
Contexto de inferencia Contexto adicional para la tarea que se está realizando. Si bien el titanio y el diamante son más duros que el cobre, el diamante tiene una calificación de dureza de 98 y el titanio de 36. Una calificación más alta significa mayor dureza.
Respuestas No1 Un par de respuestas para evaluar, una de cada modelo candidato. Diamante

1 Solo puedes configurar el parámetro de la instrucción a través de respuestas generadas con anterioridad.

Código de muestra con los parámetros:

autorater_prompt_parameters={
    'inference_instruction': {
        'template': 'Answer the following question from the point of view of a college professor: {{ question }}.'
    },
    'inference_context': {
        'column': 'context'
    }
}

Los modelos A y B pueden tener instrucciones de inferencia y contexto con un formato diferente, sin importar si se proporciona o no la misma información. Esto significa que el evaluador automático toma una instrucción y un contexto de inferencia independientes, pero únicos.

Ejemplo de conjunto de datos de evaluación

En esta sección, se proporciona un ejemplo de un conjunto de datos de evaluación de tareas de respuesta a preguntas, incluidas las predicciones generadas con anterioridad para el modelo B. En este ejemplo, AutoSxS realiza la inferencia solo para el modelo A. Proporcionamos una columna id para diferenciar los ejemplos con la misma pregunta y el mismo contexto.

{
 "id": 1,
 "question": "What is the hardest material?",
  "context": "Some might think that steel is the hardest material, or even titanium. However, diamond is actually the hardest material.",
  "model_b_response": "Diamond is the hardest material. It is harder than steel or titanium."
}
{
  "id": 2,
  "question": "What is the highest mountain in the world?",
  "context": "K2 and Everest are the two tallest mountains, with K2 being just over 28k feet and Everest being 29k feet tall.",
  "model_b_response": "Mount Everest is the tallest mountain, with a height of 29k feet."
}
{
  "id": 3,
  "question": "Who directed The Godfather?",
  "context": "Mario Puzo and Francis Ford Coppola co-wrote the screenplay for The Godfather, and the latter directed it as well.",
  "model_b_response": "Francis Ford Coppola directed The Godfather."
}
{
  "id": 4,
  "question": "Who directed The Godfather?",
  "context": "Mario Puzo and Francis Ford Coppola co-wrote the screenplay for The Godfather, and the latter directed it as well.",
  "model_b_response": "John Smith."
}

prácticas recomendadas

Sigue estas prácticas recomendadas cuando definas el conjunto de datos de evaluación:

  • Proporciona ejemplos que representen los tipos de entradas, que tus modelos procesan en producción.
  • Tu conjunto de datos debe incluir un mínimo de un ejemplo de evaluación. Recomendamos alrededor de 100 ejemplos para garantizar métricas agregadas de alta calidad. La tasa de mejoras de la calidad de las métricas agregadas suele disminuir cuando se proporcionan más de 400 ejemplos.
  • Si deseas obtener una guía para escribir instrucciones, consulta Diseña instrucciones de texto.
  • Si usas predicciones generadas con anterioridad para cualquiera de los modelos, inclúyelas en una columna del conjunto de datos de evaluación. Proporcionar predicciones generadas con anterioridad es útil, ya que te permite comparar el resultado de los modelos que no están en Vertex Model Registry y te permite reutilizar las respuestas.

Realiza la evaluación del modelo

Puedes evaluar los modelos a través de la API de REST o el SDK de Vertex AI para Python.

Usa esta sintaxis para especificar la ruta de acceso a tu modelo:

  • Modelo de publicador: publishers/PUBLISHER/models/MODEL Ejemplo: publishers/google/models/text-bison
  • Modelo ajustado: projects/PROJECT_NUMBER/locations/LOCATION/models/MODEL@VERSION Ejemplo: projects/123456789012/locations/us-central1/models/1234567890123456789

REST

Para crear un trabajo de evaluaci´n de modelo, envía una solicitud POST a través del método pipelineJobs.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PIPELINEJOB_DISPLAYNAME: nombre visible de pipelineJob.
  • PROJECT_ID: proyecto de Google Cloud que ejecuta los componentes de canalización.
  • LOCATION: región en la que se ejecutarán los componentes de canalización. Se admite us-central1.
  • OUTPUT_DIR: el URI de Cloud Storage para almacenar el resultado de la evaluación.
  • EVALUATION_DATASET: tabla de BigQuery o una lista separada por comas de rutas de acceso de Cloud Storage a un conjunto de datos JSONL que contiene ejemplos de evaluación.
  • TASK: Tarea de evaluación, que puede ser una de [summarization, question_answering].
  • ID_COLUMNS: columnas que distinguen ejemplos de evaluación únicos.
  • AUTORATER_PROMPT_PARAMETERS: parámetros de la instrucción del evaluador automático asignados a columnas o plantillas. Los parámetros esperados son: inference_instruction (detalles sobre cómo realizar una tarea) y inference_context (contenido al que se hace referencia para realizar la tarea). Como ejemplo, {'inference_context': {'column': 'my_prompt'}} usa la columna `my_prompt` del conjunto de datos de evaluación para el contexto del evaluador automático.
  • RESPONSE_COLUMN_A: el nombre de una columna en el conjunto de datos de evaluación que contiene predicciones predefinidas con anterioridad o el nombre de la columna en el resultado del modelo A que contiene predicciones. Si no se proporciona ningún valor, se intentará inferir el nombre correcto de la columna de resultado del modelo.
  • RESPONSE_COLUMN_B: el nombre de una columna en el conjunto de datos de evaluación que contiene predicciones predefinidas con anterioridad o el nombre de la columna en el resultado del modelo B que contiene predicciones. Si no se proporciona ningún valor, se intentará inferir el nombre correcto de la columna de resultado del modelo.
  • MODEL_A (opcional): un nombre del recurso de modelo completamente calificado (projects/{project}/locations/{location}/models/{model}@{version}) o un nombre del recurso de modelo del publicador (publishers/{publisher}/models/{model}). Si se especifican respuestas del modelo A, no se debe proporcionar este parámetro.
  • MODEL_B (opcional): un nombre del recurso de modelo completamente calificado (projects/{project}/locations/{location}/models/{model}@{version}) o un nombre del recurso de modelo del publicador (publishers/{publisher}/models/{model}). Si se especifican respuestas del modelo B, no se debe proporcionar este parámetro.
  • MODEL_A_PROMPT_PARAMETERS (opcional): los parámetros de plantilla de la instrucción del modelo A que se asignan a columnas o plantillas. Si las respuestas del modelo A están predefinidas, no se debe proporcionar este parámetro. Ejemplo: {'prompt': {'column': 'my_prompt'}} usa la columna my_prompt del conjunto de datos de evaluación para el parámetro de la instrucción llamado prompt.
  • MODEL_B_PROMPT_PARAMETERS (opcional): los parámetros de plantilla de la instrucción del modelo B que se asignan a columnas o plantillas. Si las respuestas del modelo B están predefinidas, no se debe proporcionar este parámetro. Ejemplo: {'prompt': {'column': 'my_prompt'}} usa la columna my_prompt del conjunto de datos de evaluación para el parámetro de la instrucción llamado prompt.

Cuerpo JSON de la solicitud

  {
    "displayName": "PIPELINEJOB_DISPLAYNAME",
    "runtimeConfig": {
        "gcsOutputDirectory": "gs://OUTPUT_DIR",
        "parameterValues": {
            "evaluation_dataset": "EVALUATION_DATASET",
            "id_columns": ["ID_COLUMNS"],
            "task": "TASK",
            "autorater_prompt_parameters": AUTORATER_PROMPT_PARAMETERS,
            "response_column_a": "RESPONSE_COLUMN_A",
            "response_column_b": "RESPONSE_COLUMN_B",
            "model_a": "MODEL_A",
            "model_a_prompt_parameters": MODEL_A_PROMPT_PARAMETERS,
            "model_b": "MODEL_B",
            "model_b_prompt_parameters": MODEL_B_PROMPT_PARAMETERS,
        },
    },
    "templateUri": "https://us-kfp.pkg.dev/ml-pipeline/google-cloud-registry/autosxs-template/default"
  }

Usa curl para enviar tu solicitud.

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/pipelineJobs"

Respuesta

  "state": "PIPELINE_STATE_PENDING",
  "labels": {
    "vertex-ai-pipelines-run-billing-id": "1234567890123456789"
  },
  "runtimeConfig": {
    "gcsOutputDirectory": "gs://my-evaluation-bucket/output",
    "parameterValues": {
      "evaluation_dataset": "gs://my-evaluation-bucket/output/data.json",
      "id_columns": [
        "context"
      ],
      "task": "question_answering",
      "autorater_prompt_parameters": {
        "inference_instruction": {
          "template": "Answer the following question: {{ question }} }."
        },
        "inference_context": {
          "column": "context"
        }
      },
      "response_column_a": "",
      "response_column_b": "response_b",
      "model_a": "publishers/google/models/text-bison@001",
      "model_a_prompt_parameters": {
        "prompt": {
          "template": "Answer the following question from the point of view of a college professor: {{ question }}\n{{ context }} }"
        }
      },
      "model_b": "",
      "model_b_prompt_parameters": {}
    }
  },
  "serviceAccount": "123456789012-compute@developer.gserviceaccount.com",
  "templateUri": "https://us-kfp.pkg.dev/ml-pipeline/google-cloud-registry/autosxs-template/default",
  "templateMetadata": {
    "version": "sha256:7366b784205551ed28f2c076e841c0dbeec4111b6df16743fc5605daa2da8f8a"
  }
}

SDK de Vertex AI para Python

Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información sobre la API de Python, consulta SDK de Vertex AI para la API de Python.

Para obtener más información sobre los parámetros de canalización, consulta Documentación de referencia de componentes de canalización de Google Cloud.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PIPELINEJOB_DISPLAYNAME: nombre visible de pipelineJob.
  • PROJECT_ID: proyecto de Google Cloud que ejecuta los componentes de canalización.
  • LOCATION: región en la que se ejecutarán los componentes de canalización. Se admite us-central1.
  • OUTPUT_DIR: el URI de Cloud Storage para almacenar el resultado de la evaluación.
  • EVALUATION_DATASET: tabla de BigQuery o una lista separada por comas de rutas de acceso de Cloud Storage a un conjunto de datos JSONL que contiene ejemplos de evaluación.
  • TASK: Tarea de evaluación, que puede ser una de [summarization, question_answering].
  • ID_COLUMNS: columnas que distinguen ejemplos de evaluación únicos.
  • AUTORATER_PROMPT_PARAMETERS: parámetros de la instrucción del evaluador automático asignados a columnas o plantillas. Los parámetros esperados son: inference_instruction (detalles sobre cómo realizar una tarea) y inference_context (contenido al que se hace referencia para realizar la tarea). Como ejemplo, {'inference_context': {'column': 'my_prompt'}} usa la columna `my_prompt` del conjunto de datos de evaluación para el contexto del evaluador automático.
  • RESPONSE_COLUMN_A: el nombre de una columna en el conjunto de datos de evaluación que contiene predicciones predefinidas con anterioridad o el nombre de la columna en el resultado del modelo A que contiene predicciones. Si no se proporciona ningún valor, se intentará inferir el nombre correcto de la columna de resultado del modelo.
  • RESPONSE_COLUMN_B: el nombre de una columna en el conjunto de datos de evaluación que contiene predicciones predefinidas con anterioridad o el nombre de la columna en el resultado del modelo B que contiene predicciones. Si no se proporciona ningún valor, se intentará inferir el nombre correcto de la columna de resultado del modelo.
  • MODEL_A (opcional): un nombre del recurso de modelo completamente calificado (projects/{project}/locations/{location}/models/{model}@{version}) o un nombre del recurso de modelo del publicador (publishers/{publisher}/models/{model}). Si se especifican respuestas del modelo A, no se debe proporcionar este parámetro.
  • MODEL_B (opcional): un nombre del recurso de modelo completamente calificado (projects/{project}/locations/{location}/models/{model}@{version}) o un nombre del recurso de modelo del publicador (publishers/{publisher}/models/{model}). Si se especifican respuestas del modelo B, no se debe proporcionar este parámetro.
  • MODEL_A_PROMPT_PARAMETERS (opcional): los parámetros de plantilla de la instrucción del modelo A que se asignan a columnas o plantillas. Si las respuestas del modelo A están predefinidas, no se debe proporcionar este parámetro. Ejemplo: {'prompt': {'column': 'my_prompt'}} usa la columna my_prompt del conjunto de datos de evaluación para el parámetro de la instrucción llamado prompt.
  • MODEL_B_PROMPT_PARAMETERS (opcional): los parámetros de plantilla de la instrucción del modelo B que se asignan a columnas o plantillas. Si las respuestas del modelo B están predefinidas, no se debe proporcionar este parámetro. Ejemplo: {'prompt': {'column': 'my_prompt'}} usa la columna my_prompt del conjunto de datos de evaluación para el parámetro de la instrucción llamado prompt.
import os
from google.cloud import aiplatform
parameters = {
    'evaluation_dataset': 'EVALUATION_DATASET',
    'id_columns': ['ID_COLUMNS'],
    'task': 'TASK',
    'autorater_prompt_parameters': AUTORATER_PROMPT_PARAMETERS,
    'response_column_a': 'RESPONSE_COLUMN_A',
    'response_column_b': 'RESPONSE_COLUMN_B',
    'model_a': 'MODEL_A',
    'model_a_prompt_parameters': MODEL_A_PROMPT_PARAMETERS,
    'model_b': 'MODEL_B',
    'model_b_prompt_parameters': MODEL_B_PROMPT_PARAMETERS,
}
aiplatform.init(project='PROJECT_ID', location='LOCATION', staging_bucket='gs://OUTPUT_DIR')
aiplatform.PipelineJob(
    display_name='PIPELINEJOB_DISPLAYNAME',
    pipeline_root=os.path.join('gs://OUTPUT_DIR', 'PIPELINEJOB_DISPLAYNAME'),
    template_path=(
      'https://us-kfp.pkg.dev/ml-pipeline/google-cloud-registry/autosxs-template/default'),
    parameter_values=parameters,
).run()

Visualiza los resultados de la evaluación

Puedes encontrar los resultados de la evaluación en Vertex AI Pipelines si inspeccionas los siguientes artefactos que produce la canalización de AutoSxS:

Criterios

AutoSxS genera criterios (métricas a nivel de ejemplo) que ayudan a los usuarios a comprender el rendimiento del modelo a nivel de ejemplo. Los criterios incluyen la siguiente información:

  • Instrucciones de inferencia
  • Respuestas del modelo
  • Decisiones del evaluador automático
  • Explicaciones de calificaciones
  • Puntuaciones de confianza

Los criterios se pueden escribir en Cloud Storage en formato JSONL o en una tabla de BigQuery con estas columnas:

Columna Descripción
Columnas de ID Columnas que distinguen ejemplos de evaluación únicos.
inference_instruction Instrucciones que se usan para generar respuestas de modelos.
inference_context Contexto que se usa para generar respuestas de modelos.
response_a Respuesta del modelo A según la instrucción y el contexto de inferencia.
response_b Respuesta del modelo B según la instrucción y el contexto de inferencia.
choice El modelo con la mejor respuesta Los valores posibles son Model A, Model B o Error. Error significa que un error impidió al evaluador automático determinar si la respuesta del modelo A o la respuesta del modelo B era la mejor.
confidence Una puntuación entre 0 y 1, que indica el grado de confianza del evaluador automático en su elección.
explanation El motivo del evaluador automático para su elección.

Métricas agregadas

AutoSxS calcula las métricas agregadas (tasa de éxito) con la tabla de criterios. Si no se proporcionan datos de preferencias humanas, se generan las siguientes métricas agregadas:

Métrica Descripción
Tasa de éxito del modelo A del evaluador automático El porcentaje de veces que el evaluador automático decidió que el modelo A tenía la mejor respuesta.
Tasa de éxito del modelo B del evaluador automático El porcentaje de veces que el evaluador automático decidió que el modelo B tenía la mejor respuesta.

Para comprender mejor la tasa de éxito, consulta los resultados basados en filas y las explicaciones del evaluador automático para determinar si los resultados y las explicaciones se alinean con tus expectativas.

Métricas de alineación de preferencia humana

Si se proporcionan datos de preferencias humanas, AutoSxS genera las siguientes métricas:

Métrica Descripción
Tasa de éxito del modelo A del evaluador automático El porcentaje de veces que el evaluador automático decidió que el modelo A tenía la mejor respuesta.
Tasa de éxito del modelo B del evaluador automático El porcentaje de veces que el evaluador automático decidió que el modelo B tenía la mejor respuesta.
Tasa de éxito del modelo de preferencia humana A Porcentaje de tiempo en que los humanos decidieron que el modelo A tenía la mejor respuesta.
Tasa de éxito del modelo de preferencia humana B Porcentaje de tiempo en que los humanos decidieron que el modelo B tenía la mejor respuesta.
VP Cantidad de ejemplos en los que tanto el evaluador automático como las preferencias humanas señalaron que el modelo A tenía la mejor respuesta.
FP Cantidad de ejemplos en los que el evaluador automático eligió el modelo A como la mejor respuesta, pero la preferencia humana fue que el modelo B tenía la mejor respuesta.
VN Cantidad de ejemplos en los que tanto el evaluador automático como las preferencias humanas señalaron que el modelo B tenía la mejor respuesta.
FN Cantidad de ejemplos en los que el evaluador automático eligió el modelo B como la mejor respuesta, pero la preferencia humana fue que el modelo A tenía la mejor respuesta.
Exactitud Porcentaje de tiempo en el que el evaluador automático coincidió con los evaluadores humanos.
Precisión Porcentaje de tiempo en el que el evaluador automático y los humanos pensaron que el Modelo A tenía una mejor respuesta, de todos los casos en los que el evaluador automático pensó que el Modelo A tenía una mejor respuesta.
Recuperación Porcentaje de tiempo en el que el evaluador automático y los humanos pensaron que el Modelo A tenía una mejor respuesta, de todos los casos en los que los humanos pensaron que el modelo A tuvo una mejor respuesta.
F1 Media armónica de precisión y recuperación.
Kappa de Cohen Es una medición de la coincidencia entre el evaluador automático y los evaluadores humanos que tiene en cuenta la probabilidad de coincidencia aleatoria. Cohen sugiere la siguiente interpretación:
-1.0 - 0.0Acuerdo peor que o equivalente a la probabilidad aleatoria
0.0 - 0.2Leve acuerdo
0.2 - 0.4Acuerdo justo
0.4 - 0.6Acuerdo moderado
0.6 - 0.8Acuerdo sustancial
0.8 - 1.0Acuerdo casi perfecto
1.0Acuerdo perfecto

Casos de uso de AutoSxS

Puedes explorar cómo usar AutoSxS con tres situaciones de caso de uso.

Comparar modelos

Evalúa un modelo de origen (1p) ajustado en comparación con un modelo 1p de referencia.

Puedes especificar que la inferencia se ejecute en ambos modelos de forma simultánea.

Figura 2. Se ejecutan ambos modelos de inferencia

En esta muestra de código, se evalúa un modelo ajustado de Vertex Model Registry en comparación con un modelo de referencia del mismo registro.

# Evaluation dataset schema:
#   my_question: str
#   my_context: str
parameters = {
    'evaluation_dataset': DATASET,
    'id_columns': ['my_context'],
    'task': 'question_answering',
    'autorater_prompt_parameters': {
      'inference_instruction': {'column': 'my_question'},
      'inference_context': {'column': 'my_context'},
  },
    'model_a': 'publishers/google/models/text-bison@001',
    'model_a_prompt_parameters': {QUESTION: {'template': '{{my_question}}\nCONTEXT: {{my_context}}'}},
  'response_column_a': 'content',
    'model_b': 'projects/abc/locations/abc/models/tuned_bison',
    'model_b_prompt_parameters': {'prompt': {'template': '{{my_context}}\n{{my_question}}'}},
  'response_column_b': 'content',
}

Compara predicciones

Evalúa un modelo de terceros (3p) ajustado en comparación con un modelo 3p de referencia.

Puedes omitir la inferencia si proporcionas directamente las respuestas del modelo.

Figura 3. Solo se ejecuta un modelo de inferencia

En esta muestra de código, se evalúa un modelo 3p ajustado en comparación con un modelo 3p de referencia.

# Evaluation dataset schema:
#   my_question: str
#   my_context: str
#   response_b: str

parameters = {
    'evaluation_dataset': DATASET,
    'id_columns': ['my_context'],
    'task': 'question_answering',
    'autorater_prompt_parameters':
        'inference_instruction': {'column': 'my_question'},
        'inference_context': {'column': 'my_context'},
    },
    'response_column_a': 'content',
    'response_column_b': 'response_b',
}

Comprueba la alineación

Se compararon todas las tareas admitidas a través de datos de evaluadores humanos para garantizar que las respuestas de los evaluadores automáticos estén alineadas con las preferencias humanas. Si deseas comparar AutoSxS para tus casos de uso, proporciona datos de preferencias humanas directamente a AutoSxS, lo que genera estadísticas agregadas de alineación.

Para verificar la alineación con un conjunto de datos de preferencias humanas, puedes especificar ambos resultados (resultados de predicción) en el evaluador automático. También puedes proporcionar tus resultados de inferencia.

Figura 4. Resultados de ambos modelos proporcionados al evaluador automático

En esta muestra de código, se verifica que los resultados y las explicaciones del evaluador automático se alineen con tus expectativas.

# Evaluation dataset schema:
#  my_question: str
#  my_context: str
#   response_a: str
#   response_b: str
#   actual: str
parameters = {
    'evaluation_dataset': DATASET,
    'id_columns': ['my_context'],
    'task': 'question_answering',
    'autorater_prompt_parameters': {
      'inference_instruction': {'column': 'my_question'},
      'inference_context': {'column': 'my_context'},
  },
  'response_column_a': 'response_a',
  'response_column_b': 'response_b',
  'human_preference_column': 'actual',
}

¿Qué sigue?