运行评估

本页面介绍了如何使用 Gen AI Evaluation Service 为生成式语言模型和应用运行评估。

准备工作

安装 Vertex AI SDK

如需通过 Agent Platform SDK for Python 安装 Gen AI Evaluation 模块,请运行以下命令:

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

如需了解详情,请参阅 安装 Agent Platform SDK for Python

对 Vertex AI SDK 进行身份验证

安装 Agent Platform SDK for Python 后,您需要进行身份验证。以下主题介绍了在本地工作以及使用 Colaboratory 时如何向 Vertex AI SDK 进行身份验证:

  • 如果您是在本地开发,请在本地环境中设置应用默认凭证 (ADC)

    1. 安装 Google Cloud CLI,然后通过运行以下命令对其进行初始化

      gcloud init
      
    2. 为您的 Google 账号创建本地身份验证凭据:

      gcloud auth application-default login
      

      系统会显示登录屏幕。在您登录后,您的凭据会存储在 ADC 使用的本地凭据文件中。如需了解详情,请参阅为本地开发环境设置 ADC

  • 在 Colaboratory 中,在 Colab 单元中运行以下命令以进行身份验证:

    from google.colab import auth
    auth.authenticate_user()
    

    此命令将打开一个窗口,您可在其中完成身份验证。

了解服务账号

Gen AI Evaluation Service 使用服务账号Gemini Enterprise Agent Platform 中的 Gemini API获取基于模型的评估 指标的 预测结果。此服务帐号会在 Gen AI Evaluation Service 收到第一个请求时自动预配。

名称 说明 电子邮件地址 角色
Agent Platform Rapid Eval Service Agent 用于为基于模型的评估获取预测结果的服务帐号。 service-PROJECT_NUMBER@gcp-sa-vertex-eval.iam.gserviceaccount.com roles/aiplatform.rapidevalServiceAgent

与快速评估服务代理关联的权限包括:

角色 权限
Agent Platform Rapid Eval Service Agent (roles/aiplatform.rapidevalServiceAgent) aiplatform.endpoints.predict

运行评估

Gen AI Evaluation Service 使用以下基于客户端的流程来运行评估:

  1. run_inference():针对一组给定的提示,从模型生成回答。

  2. evaluate():对生成的回答计算指标。

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

如需在单次评估中分析多个 AI 模型或系统的性能,请为每个候选项生成回答,然后将这些回答以列表形式传递给 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()

查看生成的评分准则或重复使用这些准则进行评估

如需在评估前预先生成自适应评分准则并进行查看,或重复使用之前生成的评分准则,请使用以下代码:

# 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():通过与指标配对使用的预定义工作流生成评分准则。

  • run_inference():针对一组给定的提示,从模型生成回答。

  • evaluate():根据提供的评分准则验证回答。

异步大规模评估

对于大型数据集,Gen AI Evaluation Service 提供了一种长时间运行的异步批量评估方法。这非常适合不需要立即获得结果且想要分流计算的场景。

batch_evaluate() 方法返回一个操作对象,您可以轮询该对象来跟踪其进度。这些参数与 evaluate() 方法兼容。

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

inference_result_saved = client.evals.run_inference(
    model="gemini-2.5-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.FLUENCY,
        types.RubricMetric.COHERENCE,
        types.Metric(name='rouge_1'),
        types.Metric(name='bleu'),
    ],
   dest=GCS_DEST_BUCKET
)

评估第三方模型

您可以通过将模型名称字符串传递给 run_inference 方法,使用 Gen AI Evaluation Service 来评估和比较来自 OpenAI 等提供方的各种模型。Gen AI Evaluation Service 使用 litellm 库来调用模型 API。

请务必将所需的 API 密钥设置为环境变量(例如 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()

后续步骤