Создание конвейеров TFX

Использование класса Pipeline

Конвейеры TFX определяются с помощью класса Pipeline . В следующем примере показано, как использовать класс Pipeline .

pipeline.Pipeline(
    pipeline_name=pipeline-name,
    pipeline_root=pipeline-root,
    components=components,
    enable_cache=enable-cache,
    metadata_connection_config=metadata-connection-config,
)

Замените следующее:

  • pipeline-name : имя этого конвейера. Имя конвейера должно быть уникальным.

    TFX использует имя конвейера при запросе метаданных ML для входных артефактов компонента. Повторное использование имени конвейера может привести к неожиданному поведению.

  • pipeline-root : корневой путь выходных данных этого конвейера. Корневой путь должен быть полным путем к каталогу, к которому у вашего оркестратора есть доступ на чтение и запись. Во время выполнения TFX использует корень конвейера для создания путей вывода артефактов компонентов. Этот каталог может быть локальным или находиться в поддерживаемой распределенной файловой системе, например Google Cloud Storage или HDFS.

  • components : список экземпляров компонентов, составляющих рабочий процесс этого конвейера.

  • enable-cache : (Необязательно.) Логическое значение, указывающее, использует ли этот конвейер кэширование для ускорения выполнения конвейера.

  • metadata-connection-config : (Необязательно.) Конфигурация соединения для метаданных ML.

Определение графа выполнения компонента

Экземпляры компонентов создают артефакты в качестве выходных данных и обычно зависят от артефактов, создаваемых вышестоящими экземплярами компонентов в качестве входных данных. Последовательность выполнения экземпляров компонентов определяется путем создания направленного ациклического графа (DAG) зависимостей артефактов.

Например, стандартный компонент ExampleGen может принимать данные из файла CSV и выводить сериализованные примеры записей. Стандартный StatisticsGen принимает эти примеры записей в качестве входных данных и создает статистику набора данных. В этом примере StatisticsGen должен следовать за ExampleGen , поскольку SchemaGen зависит от выходных данных ExampleGen .

Зависимости на основе задач

Вы также можете определить зависимости на основе задач, используя методы add_upstream_node и add_downstream_node вашего компонента. add_upstream_node позволяет указать, что текущий компонент должен выполняться после указанного компонента. add_downstream_node позволяет указать, что текущий компонент должен выполняться перед указанным компонентом.

Шаблоны конвейеров

Самый простой способ быстро настроить конвейер и увидеть, как все его части сочетаются друг с другом, — использовать шаблон. Использование шаблонов описано в разделе Создание локального конвейера TFX .

Кэширование

Кэширование конвейера TFX позволяет вашему конвейеру пропускать компоненты, которые были выполнены с тем же набором входных данных в предыдущем запуске конвейера. Если кэширование включено, конвейер пытается сопоставить подпись каждого компонента, компонента и набора входных данных, с одним из предыдущих исполнений компонента этого конвейера. Если совпадение есть, конвейер использует выходные данные компонента из предыдущего запуска. Если совпадения нет, компонент выполняется.

Не используйте кэширование, если в вашем конвейере используются недетерминированные компоненты. Например, если вы создаете компонент для создания случайного числа для вашего конвейера, включение кэша приведет к однократному выполнению этого компонента. В этом примере последующие запуски используют случайное число первого запуска вместо генерации случайного числа.