Construyendo tuberías TFX

Usando la clase Pipeline

Las canalizaciones TFX se definen utilizando la clase Pipeline . El siguiente ejemplo demuestra cómo utilizar la clase Pipeline .

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

Reemplace lo siguiente:

  • pipeline-name : el nombre de esta canalización. El nombre de la canalización debe ser único.

    TFX utiliza el nombre de la canalización al consultar los metadatos de ML en busca de artefactos de entrada de componentes. La reutilización de un nombre de canalización puede provocar comportamientos inesperados.

  • pipeline-root : la ruta raíz de las salidas de este pipeline. La ruta raíz debe ser la ruta completa a un directorio al que su orquestador tenga acceso de lectura y escritura. En tiempo de ejecución, TFX utiliza la raíz de la canalización para generar rutas de salida para los artefactos de los componentes. Este directorio puede ser local o estar en un sistema de archivos distribuido compatible, como Google Cloud Storage o HDFS.

  • components : una lista de instancias de componentes que conforman el flujo de trabajo de esta canalización.

  • enable-cache : (opcional). Un valor booleano que indica si esta canalización utiliza el almacenamiento en caché para acelerar la ejecución de la canalización.

  • metadata-connection-config : (Opcional.) Una configuración de conexión para metadatos de ML.

Definición del gráfico de ejecución de componentes

Las instancias de componentes producen artefactos como salidas y normalmente dependen de los artefactos producidos por instancias de componentes ascendentes como entradas. La secuencia de ejecución de las instancias de componentes se determina mediante la creación de un gráfico acíclico dirigido (DAG) de las dependencias de los artefactos.

Por ejemplo, el componente estándar ExampleGen puede ingerir datos de un archivo CSV y generar registros de ejemplo serializados. El componente estándar StatisticsGen acepta estos registros de ejemplo como entrada y produce estadísticas del conjunto de datos. En este ejemplo, la instancia de StatisticsGen debe seguir ExampleGen porque SchemaGen depende de la salida de ExampleGen .

Dependencias basadas en tareas

También puede definir dependencias basadas en tareas utilizando los métodos add_upstream_node y add_downstream_node de su componente. add_upstream_node le permite especificar que el componente actual debe ejecutarse después del componente especificado. add_downstream_node le permite especificar que el componente actual debe ejecutarse antes que el componente especificado.

Plantillas de canalización

La forma más sencilla de configurar rápidamente una tubería y ver cómo encajan todas las piezas es utilizar una plantilla. El uso de plantillas se trata en Creación de una canalización TFX localmente .

Almacenamiento en caché

El almacenamiento en caché de la canalización TFX permite que la canalización omita los componentes que se ejecutaron con el mismo conjunto de entradas en una ejecución anterior de la canalización. Si el almacenamiento en caché está habilitado, la canalización intenta hacer coincidir la firma de cada componente, el componente y el conjunto de entradas, con una de las ejecuciones anteriores de componentes de esta canalización. Si hay una coincidencia, la canalización utiliza las salidas de los componentes de la ejecución anterior. Si no hay coincidencia, se ejecuta el componente.

No utilice el almacenamiento en caché si su canalización utiliza componentes no deterministas. Por ejemplo, si crea un componente para crear un número aleatorio para su canalización, habilitar el caché hace que este componente se ejecute una vez. En este ejemplo, las ejecuciones posteriores utilizan el número aleatorio de la primera ejecución en lugar de generar un número aleatorio.