Как мне реализовать Kubeflow «Параметры запуска» с помощью TFX SDK, специализированного для GCP?

#tensorflow #machine-learning #google-cloud-platform #kubeflow-pipelines

#tensorflow #машинное обучение #google-облачная платформа #kubeflow-конвейеры

Вопрос:

В настоящее время я использую Kubeflow в качестве своего оркестратора. Оркестратор на самом деле является экземпляром конвейера платформы искусственного интеллекта, размещенного на GCP. Как мне создать параметры времени выполнения с помощью расширенного SDK Tensorflow? Я подозреваю, что это тот класс, который я должен использовать, однако документация не очень содержательна и не содержит каких-либо примеров. https://www.tensorflow.org/tfx/api_docs/python/tfx/orchestration/data_types/RuntimeParameter

Что-то вроде рисунка ниже. введите описание изображения здесь

Ответ №1:

Скажем, например, вы хотите добавить местоположение файла модуля в качестве параметра времени выполнения, который передается компоненту преобразования в вашем конвейере TFX.

Начните с настройки вашего setup_pipeline.py и определение параметра файла модуля:

 # setup_pipeline.py

from typing import Text
from tfx.orchestration import data_types, pipeline
from tfx.orchestration.kubeflow import kubeflow_dag_runner
from tfx.components import Transform

_module_file_param = data_types.RuntimeParameter(
    name='module-file',
    default=
    '/tfx-src/tfx/examples/iris/iris_utils_native_keras.py',
    ptype=Text,
)
  

Затем определите функцию, которая определяет компоненты, используемые в вашем конвейере, и передает параметр.

 def create_pipeline(..., module_file):
    # setup components:
    ...

    transform = Transform(
         ...
         module_file=module_file
      )
     ...

    components = [..., transform, ...]

    return pipeline.Pipeline(
          ...,
          components=components
    )
  

Наконец, настройте модуль Kubeflow DAG runner так, чтобы он передавал параметр create_pipeline функции. Смотрите Здесь более полный пример.

 if __name__ == "__main__":

    # instantiate a kfp_runner
    ...

    kfp_runner = kubeflow_dag_runner.KubeflowDagRunner(
        ...
    )

    kfp_runner.run(
        create_pipeline(..., module_file=_module_file_param
      ))
  

Затем вы можете запустить, python -m setup_pipeline который создаст файл yaml, который определяет конфигурацию конвейера, который затем можно загрузить в интерфейс Kubeflow GCP.