Construcción de canalizaciones TFX

Usando la clase Pipeline

Las canalizaciones TFX se definen mediante la clase Pipeline . El siguiente ejemplo muestra cómo usar 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 canalización debe ser único.

    TFX usa el nombre de canalización cuando consulta metadatos de ML para artefactos de entrada de componentes. La reutilización de un nombre de canalización puede generar comportamientos inesperados.

  • pipeline-root : la ruta raíz de las salidas de esta canalización. 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 usa la raíz de canalización para generar rutas de salida para artefactos de 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 del componente

Las instancias de componentes producen artefactos como salidas y normalmente dependen de artefactos producidos por instancias de componentes aguas arriba como entradas. La secuencia de ejecución de las instancias de los 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 de conjuntos de datos. En este ejemplo, la instancia de StatisticsGen debe seguir a 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 fácil de configurar rápidamente una tubería y ver cómo encajan todas las piezas es usar una plantilla. El uso de plantillas se trata en Creación de una canalización de TFX localmente .

almacenamiento en caché

El almacenamiento en caché de la canalización de TFX permite que la canalización omita los componentes que se han ejecutado con el mismo conjunto de entradas en una ejecución de canalización anterior. 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 de componentes anteriores de esta canalización. Si hay una coincidencia, la canalización utiliza los resultados del componente de la ejecución anterior. Si no hay una 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.