0

我们在 Google Clouds Vertex AI 中使用 kpf v2,并希望从由 yaml 规范构建的组件中记录指标。

mlpipeline-metrics如果我们可以直接调用(of type Output[Metrics]),我们只能通过基于 Python 函数的组件来完成这项工作log_metrics(..)

https://www.kubeflow.org/docs/components/pipelines/sdk/pipelines-metrics/上的文档说,您可以将 json 中的指标从容器内部写入名为 MLPipeline Metrics 的 OutputPath。但这在 Vertex AI 中不起作用,因为 metr8cs 没有显示在控制台中。

我们的组件是这样设置的:

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}

像这样编写度量文件:

parser = ArgumentParser()
parser.add_argument('-m', '--metrics', default='/mlpipeline-metrics.json')
opts = parser.parse_args()

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

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

我们也尝试设置

    fileOutputs:
      mlpipeline-metrics: /mlpipeline-metrics.json

在组件中,这似乎是更早的方法,但这似乎也不起作用。

我在写出指标时是否遗漏了任何细节,或者这根本不起作用,或者在 Vertex AI 中不受支持?

4

0 回答 0