Использование класса 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 позволяет вашему конвейеру пропускать компоненты, которые были выполнены с тем же набором входных данных в предыдущем запуске конвейера. Если кэширование включено, конвейер пытается сопоставить подпись каждого компонента, компонента и набора входных данных, с одним из предыдущих исполнений компонента этого конвейера. Если совпадение есть, конвейер использует выходные данные компонента из предыдущего запуска. Если совпадения нет, компонент выполняется.
Не используйте кэширование, если в вашем конвейере используются недетерминированные компоненты. Например, если вы создаете компонент для создания случайного числа для вашего конвейера, включение кэша приведет к однократному выполнению этого компонента. В этом примере последующие запуски используют случайное число первого запуска вместо генерации случайного числа.