运行评估

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

准备工作

安装 Vertex AI SDK

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

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

如需了解详情,请参阅安装 Python 版 Vertex AI SDK

对 Vertex AI SDK 进行身份验证

安装 Python 版 Vertex AI SDK 后,您需要进行身份验证。以下主题介绍了在本地工作以及使用 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 使用服务账号Vertex AI 中的 Gemini API 获取基于模型的评估指标的预测结果。此服务账号会在 Gen AI Evaluation Service 收到第一个请求时自动预配。

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

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

角色 权限
Vertex AI 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.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
)

评估第三方模型

您可以使用 Gen AI Evaluation Service 来评估和比较来自 OpenAI 等提供商的各种模型,只需将模型名称字符串传递给 run_inference 方法即可。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()

后续步骤