Haz una evaluación

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

Antes de empezar

Instalar el SDK de Vertex AI

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

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

Para obtener más información, consulta Instalar el SDK de Vertex AI para Python.

Autenticar 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 autenticarte con el SDK de Vertex AI si trabajas de forma local o en Colaboratory:

  • Si estás desarrollando de forma local, configura las credenciales predeterminadas de la aplicación (ADC) en tu entorno local:

    1. Instala la CLI de Google Cloud y, a continuación, inicialízala ejecutando el siguiente comando:

      gcloud init
      
    2. Crea credenciales de autenticación local para tu cuenta de Google:

      gcloud auth application-default login
      

      Se muestra una pantalla de inicio de sesión. Después de iniciar sesión, tus credenciales se almacenan en el archivo de credenciales local que usa ADC. Para obtener más información, consulta el artículo Configurar ADC en 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.

Comprender las cuentas de servicio

El servicio de evaluación de IA generativa usa la cuenta de servicio para obtener predicciones de la API 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 evaluación rápida 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 al agente de servicio de evaluación rápida son los siguientes:

Rol Permisos
Agente de servicio de evaluación rápida de Vertex AI (roles/aiplatform.rapidevalServiceAgent) aiplatform.endpoints.predict

Hacer una evaluación

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

  1. run_inference(): genera respuestas de tu modelo para un conjunto de peticiones determinado.

  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()

Revisar o reutilizar rúbricas generadas para evaluar

Para pregenerar rúbricas adaptativas y revisarlas antes de la evaluación, o bien para 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 emparejado con la métrica.

  • run_inference(): genera respuestas de tu modelo para un conjunto de peticiones determinado.

  • evaluate(): valida las respuestas en función de las rúbricas proporcionadas.

Evaluación asíncrona y a gran escala

En el caso de los conjuntos de datos grandes, el servicio de evaluación de la IA generativa proporciona un método de evaluación por lotes asíncrono de larga duración. Es ideal para situaciones en las que no necesitas resultados inmediatos y quieres delegar el cálculo.

El método batch_evaluate() devuelve un objeto de operación que puedes sondear para monitorizar 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
)

Evaluar modelos de terceros

Puedes usar el servicio de evaluación de IA generativa para evaluar y comparar modelos de proveedores como OpenAI. Para ello, debes pasar 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 definir la clave de API obligatoria como variable de entorno (por ejemplo, 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()

Siguientes pasos