Как регистрировать показатели из компонента с помощью спецификации YAML?

# #google-cloud-ml #kubeflow-pipelines #google-cloud-vertex-ai

Вопрос:

Мы используем kpf v2 в Google Clouds Vertex AI и хотим регистрировать показатели из компонента, построенного по спецификации yaml.

Мы можем сделать эту работу только из компонента на основе функций Python, с помощью которого мы можем напрямую вызывать mlpipeline-metrics (типа Output[Metrics] ) log_metrics(..) .

Документы в https://www.kubeflow.org/docs/components/pipelines/sdk/pipelines-metrics/ говорит, что вы можете записать свои метрики в json из контейнера в выходной путь с именем метрики MLPipeline. Но это не работает в 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?

Комментарии:

1. AFAIK нет способа проверить или отслеживать эти показатели из Vertex, показатели мониторинга для vertex немного ограничены в то время, я полагаю, что стоило бы повысить FR, это следует сделать с помощью отправки обратной связи в документации