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

如何在Google Cloud Vertex AI中通过YAML规范记录KFP v2组件的指标

问题修复方案

你当前的配置存在三个可直接修复的问题,修正后即可在Vertex AI控制台正常展示YAML组件输出的指标:

  1. 代码变量名错误
    你通过命令行参数解析得到的指标输出路径存放在opts.metrics变量中,但写入文件时调用了未定义的metrics_path变量,导致指标根本没有写入到组件传入的正确路径。
  2. 旧版本配置冲突
    你添加的fileOutputs是KFP v1版本的指标配置规则,在KFP v2中已被废弃。该配置会强制运行时从固定路径/mlpipeline-metrics.json读取指标,但你实际写入的是组件动态生成的输出路径,二者不一致导致运行时无法找到指标文件。
  3. 输出命名不规范
    Vertex AI对Metrics类型输出的识别有严格要求,带空格的输出名MLPipeline Metrics会导致路径解析异常,建议使用标准的下划线命名格式。

修正后的配置示例

组件YAML

name: a component
outputs:
- name: mlpipeline_metrics
  type: Metrics
implementation:
  container:
    image: eu.gcr.io/project/knark/base:latest
    command:
    - python3
    - -m
    - module.foo
    - --metrics
    - {outputPath: mlpipeline_metrics}

指标写入代码

import json
from argparse import ArgumentParser

parser = ArgumentParser()
# 去掉默认值,避免错误路径 fallback 导致异常
parser.add_argument('-m', '--metrics', required=True)
opts = parser.parse_args()

metrics = {'cluster-entropy': .5, 'inertia': 100.}

with open(opts.metrics, 'w') as f:
    json.dump({
        'metrics': [
            {'name': m, 'value': v, 'format': 'RAW'} 
            for m, v in metrics.items()
        ]
    }, f)

额外注意事项

  • 指标名称仅可使用小写字母、数字、横杠、斜杠,不要使用大写、下划线或其他特殊字符,避免Vertex AI无法识别
  • 上传流水线到Vertex AI时,确保使用KFP v2编译模式,不要启用v1兼容配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 11:06:04