¡Únase a la comunidad de SIG TFX-Addons y ayude a que TFX sea aún mejor! Únase a SIG TFX-Addons

Construcción de tuberías TFX

Usando la clase Pipeline

Las canalizaciones TFX se definen mediante 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,
)

Reemplazar lo siguiente:

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

    TFX usa el nombre de la canalización cuando consulta los metadatos de ML para detectar 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 esta tubería. 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 la canalización para generar rutas de salida para los artefactos de los componentes. Este directorio puede ser local o en un sistema de archivos distribuido compatible, como Google Cloud Storage o HDFS.

  • components : una lista de instancias de componentes que componen 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 ML Metadata.

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 para instancias de componentes se determina mediante la creación de un gráfico acíclico dirigido (DAG) de las dependencias de 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 su componente. add_upstream_node permite especificar que el componente actual debe ejecutarse después del componente especificado. add_downstream_node 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 canalización y de 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 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 las salidas del componente 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 la 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.