Ejecuta una evaluación

En esta página, se muestra cómo ejecutar evaluaciones para tus modelos y aplicaciones de lenguaje generativo con el servicio de evaluación de IA generativa.

Antes de comenzar

Instala el SDK de Vertex AI

Para instalar el módulo de Gen AI Evaluation desde el SDK de Vertex AI para Python, ejecuta el siguiente comando:

!pip install -q google-cloud-aiplatform[evaluation]

Si quieres obtener más información, consulta Instala el SDK de Vertex AI para Python.

Autentica el SDK de Vertex AI

Después de instalar el SDK de Vertex AI para Python, debes autenticarte. En los siguientes temas, se explica cómo autenticar con el SDK de Vertex AI si trabajas de forma local y en Colaboratory:

  • Si desarrollas de manera local, configura las credenciales predeterminadas de la aplicación (ADC) en tu entorno local:

    1. Instala Google Cloud CLI y, luego, inicialízala a través de la ejecución del siguiente comando:

      gcloud init
      
    2. Crea credenciales de autenticación locales para tu Cuenta de Google:

      gcloud auth application-default login
      

      Se muestra una pantalla de acceso. Después de acceder, tus credenciales se almacenan en el archivo de credenciales local que usa ADC. Si deseas obtener más información, consulta Configura ADC para un entorno de desarrollo local.

  • Si trabajas en Colaboratory, ejecuta el siguiente comando en una celda de Colab para autenticarte:

    from google.colab import auth
    auth.authenticate_user()
    

    Este comando abre una ventana en la que puedes completar la autenticación.

Comprende las cuentas de servicio

El servicio de evaluación de IA generativa usa la cuenta de servicio para obtener predicciones de la API de Gemini en Vertex AI para las métricas de evaluación basadas en modelos. Esta cuenta de servicio se aprovisiona automáticamente en la primera solicitud al servicio de evaluación de IA generativa.

Nombre Descripción Dirección de correo electrónico Rol
Agente de servicio de Rapid Eval de Vertex AI La cuenta de servicio que se usa para obtener predicciones para la evaluación basada en modelos. service-PROJECT_NUMBER@gcp-sa-vertex-eval.iam.gserviceaccount.com roles/aiplatform.rapidevalServiceAgent

Los permisos asociados con el agente de servicio de evaluación rápida son los siguientes:

Rol Permisos
Agente de servicio de Rapid Eval de Vertex AI (roles/aiplatform.rapidevalServiceAgent) aiplatform.endpoints.predict

Ejecuta tu evaluación

El servicio de evaluación de IA generativa usa el siguiente proceso basado en el cliente para ejecutar evaluaciones:

  1. run_inference(): Genera respuestas a partir de tu modelo para un conjunto determinado de instrucciones.

  2. evaluate(): Calcula métricas sobre las respuestas generadas.

eval_dataset = client.evals.run_inference(
    model="gemini-2.5-flash",
src="gs://vertex-evaluation-llm-dataset-us-central1/genai_eval_sdk/test_prompts.jsonl",
)
eval_dataset.show()

eval_result = client.evals.evaluate(
    dataset=eval_dataset,
    metrics=[
        types.RubricMetric.TEXT_QUALITY,
        types.RubricMetric.QUESTION_ANSWERING_QUALITY,
        types.Metric(name='bleu'),
        types.Metric(name='rouge_1'),
    ]
)
eval_result.show()

Para analizar el rendimiento de varios modelos o sistemas de IA en una sola evaluación, genera una respuesta para cada candidato y pásalas en una lista al método evaluate():

inference_result_1 = client.evals.run_inference(
    model="gemini-2.0-flash",
    src=prompts_df,
)
inference_result_2 = client.evals.run_inference(
    model="gemini-2.5-flash",
    src=prompts_df,
)

# Compare the responses against each other
comparison_result = client.evals.evaluate(
    dataset=[inference_result_1, inference_result_2],
    metrics=[
        types.RubricMetric.TEXT_QUALITY,
        types.RubricMetric.INSTRUCTION_FOLLOWING,
    ]
)

comparison_result.show()

Revisa o reutiliza las rúbricas generadas para la evaluación

Para generar previamente rúbricas adaptativas y revisarlas antes de la evaluación, o bien reutilizar rúbricas generadas anteriormente, usa el siguiente código:

# Step 1. Generate rubrics
# Rubrics would be saved in a group named "general_quality_rubrics".
data_with_rubrics = client.evals.generate_rubrics(
    src=prompts_df,
    rubric_group_name="general_quality_rubrics",
    predefined_spec_name=types.RubricMetric.GENERAL_QUALITY,
)

# Step 2. Run Inference
eval_dataset = client.evals.run_inference(
    model=inference_model,
    src=data_with_rubrics,
)

# Step 3. Evaluate with provided rubrics
# The group of rubric named "general_quality_rubrics" will be used for evaluation.
eval_result = client.evals.evaluate(
    dataset=eval_dataset,
    metrics=[types.RubricMetric.GENERAL_QUALITY(
      rubric_group_name="general_quality_rubrics",
    )],
)
  • generate_rubrics(): Genera rúbricas con un flujo de trabajo predefinido asociado a la métrica.

  • run_inference(): Genera respuestas a partir de tu modelo para un conjunto determinado de instrucciones.

  • evaluate(): Valida las respuestas según las rúbricas proporcionadas.

Evaluación asíncrona y a gran escala

Para conjuntos de datos grandes, el servicio de evaluación de IA generativa proporciona un método de evaluación por lotes asíncrono de larga duración. Esto es ideal para situaciones en las que no necesitas resultados inmediatos y deseas descargar el procesamiento.

El método batch_evaluate() devuelve un objeto de operación que puedes sondear para hacer un seguimiento de su progreso. Los parámetros son compatibles con el método evaluate().

GCS_DEST_BUCKET = "gs://your-gcs-bucket/batch_eval_results/"

inference_result_saved = client.evals.run_inference(
    model="gemini-2.0-flash",
    src=prompts_df,
    config={'dest': GCS_DEST_BUCKET}
)
print(f"Eval dataset uploaded to: {inference_result_saved.gcs_source}")

batch_eval_job  = client.evals.batch_evaluate(
   dataset = inference_result_saved,
   metrics = [
        types.RubricMetric.TEXT_QUALITY,
        types.RubricMetric.INSTRUCTION_FOLLOWING,
        types.RubricMetric.FLUENCY,
        types.Metric(name='bleu'),
    ],
   dest=GCS_DEST_BUCKET
)

Cómo evaluar modelos de terceros

Puedes usar el servicio de evaluación de IA generativa para evaluar y comparar modelos de proveedores como OpenAI pasando la cadena del nombre del modelo al método run_inference. El servicio de evaluación de IA generativa usa la biblioteca litellm para llamar a la API del modelo.

Asegúrate de establecer la clave de API requerida como una variable de entorno (como OPENAI_API_KEY):

import os

# Set your third-party model API key
os.environ['OPENAI_API_KEY'] = 'YOUR_OPENAI_API_KEY'

# Run inference on an OpenAI model
gpt_response = client.evals.run_inference(
    model='gpt-4o',
    src=prompt_df
)

# You can now evaluate the responses
eval_result = client.evals.evaluate(
    dataset=gpt_response,
    metrics=[types.RubricMetric.TEXT_QUALITY]
)

eval_result.show()

¿Qué sigue?