You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Vertex AI中实现含自定义指标的自定义Evaluation job

在Vertex AI中实现自定义模型评估(针对MMD/KL散度等定制指标)

你的思路方向完全正确,基于Docker容器+CustomJob的方案是Vertex AI支持自定义评估的标准路径,下面是具体落地的详细步骤:

一、构建自定义评估的Docker镜像

  • 编写评估代码:实现定制化指标计算逻辑(比如MMD、KL散度),同时处理输入数据读取(从GCS或Vertex AI数据集)、结果输出(到GCS)。示例Python代码片段:
import numpy as np
from scipy.spatial.distance import pdist
from google.cloud import storage

def compute_mmd(x, y):
    # RBF核MMD计算实现
    xx = pdist(x, 'sqeuclidean').mean()
    yy = pdist(y, 'sqeuclidean').mean()
    xy = pdist(np.vstack([x, y]), 'sqeuclidean')[:len(x)*len(y)].mean()
    return xx + yy - 2*xy

# 读取GCS测试数据
storage_client = storage.Client()
bucket = storage_client.bucket("your-bucket-name")
blob = bucket.blob("test-data/samples.npz")
blob.download_to_filename("samples.npz")
data = np.load("samples.npz")
x, y = data["preds"], data["labels"]

# 计算指标
mmd_score = compute_mmd(x, y)

# 将结果写入GCS
result_blob = bucket.blob("eval-results/mmd_score.json")
result_blob.upload_from_string(f'{{"mmd_score": {mmd_score}}}')
  • 编写Dockerfile:打包代码和依赖,确保镜像包含所有必要库(如numpy、scipy、google-cloud-storage等)。示例Dockerfile:
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY eval_script.py .
CMD ["python", "eval_script.py"]
  • 构建并推送镜像到Artifact Registry:使用gcloud命令行完成打包上传:
gcloud builds submit --tag us-central1-docker.pkg.dev/你的项目ID/你的仓库名/custom-eval:v1 .

二、创建CustomJob运行评估任务

可以通过Python SDK或Vertex AI控制台创建任务:

  • Python SDK示例:
from google.cloud import aiplatform

aiplatform.init(project="你的项目ID", region="us-central1")

custom_job = aiplatform.CustomJob(
    display_name="custom-mmd-evaluation",
    container_uri="us-central1-docker.pkg.dev/你的项目ID/你的仓库名/custom-eval:v1",
    args=["--input-bucket", "your-bucket-name/test-data/", "--output-bucket", "your-bucket-name/eval-results/"],
    machine_type="n1-standard-4",
)

custom_job.submit()
  • 控制台操作:进入Vertex AI控制台 → 自定义训练 → 创建自定义任务,选择已推送的镜像,配置机器资源和参数后启动任务。

三、评估产物处理与可选集成

  • 结果存储:评估代码中直接将指标数值(JSON格式)、可视化图表(如Matplotlib生成的PNG)上传到指定GCS路径,方便后续查看或分析。
  • 模型注册表集成(可选):如果模型已注册到Vertex AI,可通过API将自定义评估结果关联到对应模型版本,实现统一管理:
from google.cloud import aiplatform

model = aiplatform.Model(model_name="你的模型资源名称")
model.add_evaluation(
    evaluation_id="mmd-evaluation-v1",
    metrics={"mmd_score": 0.03, "kl_divergence": 0.12},
)

注意事项

  • 权限配置:确保CustomJob使用的服务账号拥有GCS读写、Artifact Registry访问权限。
  • 日志监控:在Vertex AI控制台的CustomJob详情页查看运行日志,快速排查问题。
  • 资源适配:根据评估任务的计算量选择合适的机器类型,涉及大规模数据计算时可启用GPU加速。

内容的提问来源于stack exchange,提问作者Shengy90

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 19:17:40