[ Web Proxy ]
URL:
Viewing: https://cloud.google.com/gemini-enterprise-agent-platform/models/computation-based-eval-pipeline [Back]  [Original]

Run a computation-based evaluation pipeline  |  Gemini Enterprise Agent Platform  |  Google Cloud Documentation Skip to main content
Google Cloud Documentation [Google Cloud Documentation]
Send feedback

Run a computation-based evaluation pipeline Stay organized with collections Save and categorize content based on your preferences.

Note: For the most updated computation-based evaluation features, see Define your metrics.

You can evaluate the performance of foundation models and your tuned generative AI models on Gemini Enterprise Agent Platform. The models are evaluated using a set of metrics against an evaluation dataset that you provide. This page explains how computation-based model evaluation through the evaluation pipeline service works, how to create and format the evaluation dataset, and how to perform the evaluation using the Google Cloud console, Agent Platform API, or the Agent Platform SDK for Python.

How computation-based model evaluation works

To evaluate the performance of a model, you first create an evaluation dataset that contains prompt and ground truth pairs. For each pair, the prompt is the input that you want to evaluate, and the ground truth is the ideal response for that prompt. During evaluation, the prompt in each pair of the evaluation dataset is passed to the model to produce an output. The output generated by the model and the ground truth from the evaluation dataset are used to compute the evaluation metrics.

The type of metrics used for evaluation depends on the task that you are evaluating. The following table shows the supported tasks and the metrics used to evaluate each task:

Task Metric
Classification Micro-F1, Macro-F1, Per class F1
Summarization ROUGE-L
Question answering Exact Match
Text generation BLEU, ROUGE-L

Supported models

Model evaluation is supported for the following models:

Prepare evaluation dataset

The evaluation dataset that's used for model evaluation includes prompt and ground truth pairs that align with the task that you want to evaluate. Your dataset must include a minimum of 1 prompt and ground truth pair and at least 10 pairs for meaningful metrics. The more examples you give, the more meaningful the results.

Dataset format

Your evaluation dataset must be in JSON Lines (JSONL) format where each line contains a single prompt and ground truth pair specified in the input_text and output_text fields, respectively. The input_text field contains the prompt that you want to evaluate, and the output_text field contains the ideal response for the prompt.

The maximum token length for input_text is 8,192, and the maximum token length for output_text is 1,024.

Upload evaluation dataset to Cloud Storage

You can either create a new Cloud Storage bucket or use an existing one to store your dataset file. The bucket must be in the same region as the model.

After your bucket is ready, upload your dataset file to the bucket.

Perform model evaluation

You can evaluate models by using the REST API or the Google Cloud console.

Permissions required for this task

To perform this task, you must grant Identity and Access Management (IAM) roles to each of the following service accounts:

Service account Default principal Description Roles
Agent Platform Service Agent service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com The Agent Platform Service Agent is automatically provisioned for your project and granted a predefined role. However, if an org policy modifies the default permissions of the Agent Platform Service Agent, you must manually grant the role to the service agent. Agent Platform Service Agent (roles/aiplatform.serviceAgent)
Agent Platform Pipelines Service Account PROJECT_NUMBER-compute@developer.gserviceaccount.com The service account that runs the pipeline. The default service account used is the Compute Engine default service account. Optionally, you can use a custom service account instead of the default service account.

Depending on your input and output data sources, you may also need to grant the Agent Platform Pipelines Service Account additional roles:

Data source Role Where to grant the role
Standard BigQuery table BigQuery Data Editor Project that runs the pipeline
BigQuery Data Viewer Project that the table belongs to
BigQuery view of a standard BigQuery table BigQuery Data Editor Project that runs the pipeline
BigQuery Data Viewer Project that the view belongs to
BigQuery Data Viewer Project that the table belongs to
BigQuery external table that has a source Cloud Storage file BigQuery Data Editor Project that runs the pipeline
BigQuery Data Viewer Project that the external table belongs to
Storage Object Viewer Project that the source file belongs to
BigQuery view of a BigQuery external table that has a source Cloud Storage file BigQuery Data Editor Project that runs the pipeline
BigQuery Data Viewer Project that the view belongs to
BigQuery Data Viewer Project that the external table belongs to
Storage Object Viewer Project that the source file belongs to
Cloud Storage file BigQuery Data Viewer Project that runs the pipeline

REST

To create a model evaluation job, send a POST request by using the pipelineJobs method.

Before using any of the request data, make the following replacements:

HTTP method and URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/pipelineJobs

Request JSON body:

{
  "displayName": "PIPELINEJOB_DISPLAYNAME",
  "runtimeConfig": {
    "gcsOutputDirectory": "gs://OUTPUT_DIR",
    "parameterValues": {
      "project": "PROJECT_ID",
      "location": "LOCATION",
      "batch_predict_gcs_source_uris": ["gs://DATASET_URI"],
      "batch_predict_gcs_destination_output_uri": "gs://OUTPUT_DIR",
      "model_name": "MODEL_NAME",
      "evaluation_task": "EVALUATION_TASK",
      "batch_predict_instances_format": "INSTANCES_FORMAT",
      "batch_predict_predictions_format: "PREDICTIONS_FORMAT",
      "machine_type": "MACHINE_TYPE",
      "service_account": "SERVICE_ACCOUNT",
      "network": "NETWORK",
      "encryption_spec_key_name": "KEY_NAME"
    }
  },
  "templateUri": "https://us-kfp.pkg.dev/vertex-evaluation/pipeline-templates/evaluation-llm-text-generation-pipeline/1.0.1"
}

To send your request, choose one of these options:

curl

Note: The following command assumes that you have logged in to the gcloud CLI with your user account by running gcloud init or gcloud auth login , or by using Cloud Shell, which automatically logs you into the gcloud CLI . You can check the currently active account by running gcloud auth list.

Save the request body in a file named request.json, and execute the following command:

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"

PowerShell

Note: The following command assumes that you have logged in to the gcloud CLI with your user account by running gcloud init or gcloud auth login . You can check the currently active account by running gcloud auth list.

Save the request body in a file named request.json, and execute the following command:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/pipelineJobs" | Select-Object -Expand Content

You should receive a JSON response similar to the following. Note that pipelineSpec has been truncated to save space.

Response

......
.....
 "state": "PIPELINE_STATE_PENDING",
  "labels": {
    "vertex-ai-pipelines-run-billing-id": "1234567890123456789"
  },
  "runtimeConfig": {
    "gcsOutputDirectory": "gs://my-evaluation-bucket/output",
    "parameterValues": {
      "project": "my-project",
      "location": "us-central1",
      "batch_predict_gcs_source_uris": [
        "gs://my-evaluation-bucket/reference-datasets/eval_data.jsonl"
      ],
      "batch_predict_gcs_destination_output_uri": "gs://my-evaluation-bucket/output",
      "model_name": "publishers/google/models/text-bison@002"
    }
  },
  "serviceAccount": "123456789012-compute@developer.gserviceaccount.com",
  "templateUri": "https://us-kfp.pkg.dev/vertex-evaluation/pipeline-templates/evaluation-llm-text-generation-pipeline/1.0.1",
  "templateMetadata": {
    "version": "sha256:d4c0d665533f6b360eb474111aa5e00f000fb8eac298d367e831f3520b21cb1a"
  }
}

Example curl command

PROJECT_ID=myproject
REGION=us-central1
MODEL_NAME=publishers/google/models/text-bison@002
TEST_DATASET_URI=gs://my-gcs-bucket-uri/dataset.jsonl
OUTPUT_DIR=gs://my-gcs-bucket-uri/output

curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
"https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/pipelineJobs" -d \
$'{
  "displayName": "evaluation-llm-text-generation-pipeline",
  "runtimeConfig": {
    "gcsOutputDirectory": "'${OUTPUT_DIR}'",
    "parameterValues": {
      "project": "'${PROJECT_ID}'",
      "location": "'${REGION}'",
      "batch_predict_gcs_source_uris": ["'${TEST_DATASET_URI}'"],
      "batch_predict_gcs_destination_output_uri": "'${OUTPUT_DIR}'",
      "model_name": "'${MODEL_NAME}'",
    }
  },
  "templateUri": "https://us-kfp.pkg.dev/vertex-evaluation/pipeline-templates/evaluation-llm-text-generation-pipeline/1.0.1"
}'

Python

Before trying this sample, follow the Python setup instructions in the Agent Platform quickstart using client libraries.

To authenticate to Agent Platform, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.

import os

import vertexai
from vertexai.evaluation import EvalResult, EvalTask

# TODO (Developer) Set environment variables
PROJECT_ID = os.getenv("GOOGLE_CLOUD_PROJECT")
LOCATION_ID = os.getenv("LOCATION_ID", "us-central1")
MODEL_NAME = os.getenv("MODEL_NAME", "gemini-2.5-flash")


def evaluate_model() -> EvalResult:
    """Evaluate the performance of a generative AI model."""

    vertexai.init(project=PROJECT_ID, location=LOCATION_ID)

    # Dataset URI containing input prompts and ground truth labels
    dataset_uri = "gs://cloud-samples-data/ai-platform/generative_ai/llm_classification_bp_input_prompts_with_ground_truth.jsonl"

    metric_column_mapping = {"reference": "ground_truth"}

    # Define evaluation task
    eval_task = EvalTask(
        dataset=dataset_uri,
        metrics=["exact_match"],
        experiment="gemini-classification-eval",
        metric_column_mapping=metric_column_mapping,
    )

    # Define a prompt template so the generative Gemini model produces formatted labels
    prompt_template = (
        "Classify the following text into exactly one category from "
        "[nature, news, sports, health, startups]. Return only the category name:\n\n{prompt}"
    )

    # Evaluate using a modern Gemini model
    eval_result = eval_task.evaluate(
        model=MODEL_NAME,
        prompt_template=prompt_template,
    )

    print("=== SUMMARY METRICS ===")
    print(eval_result.summary_metrics)

    print("\n=== METRICS TABLE SAMPLE ===")
    print(eval_result.metrics_table.head())

    return eval_result

Console

To create a model evaluation job by using the Google Cloud console, perform the following steps:

  1. In the Google Cloud console, go to the Gemini Enterprise Agent Platform Model Registry page.

    Go to Gemini Enterprise Agent Platform Model Registry

  2. Click the name of the model that you want to evaluate.
  3. In the Evaluate tab, click Create evaluation and configure as follows:
    • Objective: Select the task that you want to evaluate.
    • Target column or field: (Classification only) Enter the target column for prediction. Example: ground_truth.
    • Source path: Enter or select the URI of your evaluation dataset.
    • Output format: Enter the format of the evaluation output. Currently, only jsonl is supported.
    • Cloud Storage path: Enter or select the URI to store evaluation output.
    • Class names: (Classification only) Enter the list of possible class names.
    • Number of compute nodes: Enter the number of compute nodes to run the evaluation job.
    • Machine type: Select a machine type to use for running the evaluation job.
  4. Click Start evaluation

View evaluation results

You can find the evaluation results in the Cloud Storage output directory that you specified when creating the evaluation job. The file is named evaluation_metrics.json.

For tuned models, you can also view evaluation results in the Google Cloud console:

  1. In the Agent Platform section of the Google Cloud console, go to the Gemini Enterprise Agent Platform Model Registry page.

    Go to Gemini Enterprise Agent Platform Model Registry

  2. Click the name of the model to view its evaluation metrics.

  3. In the Evaluate tab, click the name of the evaluation run that you want to view.

What's next

Send feedback

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2026-08-19 UTC.

Need to tell us more? [[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2026-08-19 UTC."],[],[]]

Web Proxy Viewer  |  New URL  |  Original Page