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

Comprensión de las canalizaciones TFX

MLOps es la práctica de aplicar prácticas de DevOps para ayudar a automatizar, administrar y auditar los flujos de trabajo de aprendizaje automático (ML). Los flujos de trabajo de AA incluyen pasos para:

  • Prepare, analice y transforme datos.
  • Entrenar y evaluar un modelo.
  • Implemente modelos entrenados en producción.
  • Realice un seguimiento de los artefactos de AA y comprenda sus dependencias.

La gestión de estos pasos de manera ad-hoc puede resultar difícil y llevar mucho tiempo.

TFX facilita la implementación de MLOps al proporcionar un conjunto de herramientas que lo ayuda a orquestar su proceso de ML en varios orquestadores, como: Apache Airflow, Apache Beam y Kubeflow Pipelines. Al implementar su flujo de trabajo como una canalización TFX, puede:

  • Automatice su proceso de aprendizaje automático, lo que le permite volver a capacitar, evaluar e implementar su modelo con regularidad.
  • Utilice recursos informáticos distribuidos para procesar grandes conjuntos de datos y cargas de trabajo.
  • Aumente la velocidad de la experimentación ejecutando una canalización con diferentes conjuntos de hiperparámetros.

Esta guía describe los conceptos básicos necesarios para comprender las canalizaciones TFX.

Artefacto

Los resultados de los pasos en una canalización TFX se denominan artefactos . Los pasos posteriores en su flujo de trabajo pueden usar estos artefactos como entradas. De esta manera, TFX le permite transferir datos entre los pasos del flujo de trabajo.

Por ejemplo, el componente estándar ExampleGen emite ejemplos serializados, que componentes como el componente estándar StatisticsGen utilizan como entradas.

Los artefactos deben estar fuertemente tipados con un tipo de artefacto registrado en el almacén de metadatos de ML . Obtenga más información sobre los conceptos utilizados en los metadatos de AA .

Los tipos de artefactos tienen un nombre y definen un esquema de sus propiedades. Los nombres de los tipos de artefactos deben ser únicos en su almacén de metadatos de AA. TFX proporciona varios tipos de artefactos estándar que describen tipos de datos complejos y tipos de valores, como: cadena, entero y flotante. Puede reutilizar estos tipos de artefactos o definir tipos de artefactos personalizados que se deriven de Artifact .

Parámetro

Los parámetros son entradas a las canalizaciones que se conocen antes de que se ejecute la canalización. Los parámetros le permiten cambiar el comportamiento de una canalización, o una parte de una canalización, a través de la configuración en lugar del código.

Por ejemplo, puede usar parámetros para ejecutar una canalización con diferentes conjuntos de hiperparámetros sin cambiar el código de la canalización.

El uso de parámetros le permite aumentar la velocidad de la experimentación al facilitar la ejecución de su canalización con diferentes conjuntos de parámetros.

Obtenga más información sobre la clase RuntimeParameter .

Componente

Un componente es una implementación de una tarea de AA que puede usar como un paso en su canalización TFX. Los componentes se componen de:

  • Una especificación de componente, que define los artefactos de entrada y salida del componente, y los parámetros requeridos del componente.
  • Un ejecutor, que implementa el código para realizar un paso en su flujo de trabajo de AA, como ingerir y transformar datos o entrenar y evaluar un modelo.
  • Una interfaz de componente, que empaqueta la especificación y el ejecutor del componente para su uso en una canalización.

TFX proporciona varios componentes estándar que puede utilizar en sus canalizaciones. Si estos componentes no satisfacen sus necesidades, puede crear componentes personalizados. Obtenga más información sobre los componentes personalizados .

Tubería

Una canalización TFX es una implementación portátil de un flujo de trabajo de ML que se puede ejecutar en varios orquestadores, como Apache Airflow, Apache Beam y Kubeflow Pipelines. Una canalización se compone de instancias de componentes y parámetros de entrada.

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 creando un gráfico acíclico dirigido de las dependencias de artefactos.

Por ejemplo, considere una canalización que hace lo siguiente:

  • Ingesta datos directamente de un sistema propietario mediante un componente personalizado.
  • Calcula estadísticas para los datos de entrenamiento utilizando el componente estándar StatisticsGen.
  • Crea un esquema de datos utilizando el componente estándar SchemaGen.
  • Comprueba los datos de entrenamiento en busca de anomalías mediante el componente estándar ExampleValidator.
  • Realiza ingeniería de características en el conjunto de datos utilizando el componente estándar Transformar.
  • Entrena un modelo utilizando el componente estándar Trainer.
  • Evalúa el modelo entrenado utilizando el componente Evaluador.
  • Si el modelo pasa su evaluación, la canalización pone en cola el modelo entrenado en un sistema de implementación propietario mediante un componente personalizado.

Para determinar la secuencia de ejecución de las instancias de componentes, TFX analiza las dependencias de artefactos.

  • El componente de ingestión de datos no tiene dependencias de artefactos, por lo que puede ser el primer nodo del gráfico.
  • StatisticsGen depende de los ejemplos producidos por la ingestión de datos, por lo que debe ejecutarse después de la ingestión de datos.
  • SchemaGen depende de las estadísticas creadas por StatisticsGen, por lo que debe ejecutarse después de StatisticsGen.
  • ExampleValidator depende de las estadísticas creadas por StatisticsGen y del esquema creado por SchemaGen, por lo que debe ejecutarse después de StatisticsGen y SchemaGen.
  • La transformación depende de los ejemplos producidos por la ingestión de datos y del esquema creado por SchemaGen, por lo que debe ejecutarse después de la ingestión de datos y SchemaGen.
  • Trainer depende de los ejemplos producidos por la ingesta de datos, el esquema creado por SchemaGen y el modelo guardado producido por Transform. El Entrenador se puede ejecutar solo después de la ingestión de datos, SchemaGen y Transform.
  • El evaluador depende de los ejemplos producidos por la ingesta de datos y del modelo guardado producido por el entrenador, por lo que debe ejecutarse después de la ingesta de datos y el entrenador.
  • El implementador personalizado depende del modelo guardado producido por el Instructor y los resultados del análisis creados por el Evaluador, por lo que el implementador debe ejecutarse después del Instructor y el Evaluador.

Según este análisis, un orquestador ejecuta:

  • La ingesta de datos, StatisticsGen, instancias del componente SchemaGen secuencialmente.
  • Los componentes ExampleValidator y Transform pueden ejecutarse en paralelo, ya que comparten dependencias de artefactos de entrada y no dependen de la salida de cada uno.
  • Una vez que se completa el componente Transformar, las instancias del componente Entrenador, Evaluador y del implementador personalizado se ejecutan secuencialmente.

Obtenga más información sobre cómo crear una canalización TFX .

Plantilla de canalización TFX

Las plantillas de canalización TFX facilitan el inicio del desarrollo de canalizaciones al proporcionar una canalización prediseñada que puede personalizar para su caso de uso.

Obtenga más información sobre cómo personalizar una plantilla de canalización TFX .

Ejecución de canalización

Una ejecución es una ejecución única de una canalización.

Orquestador

Un orquestador es un sistema en el que puede ejecutar ejecuciones de canalizaciones. TFX admite orquestadores como Apache Airflow , Apache Beam y Kubeflow Pipelines . TFX también usa el término DagRunner para referirse a una implementación que admite un orquestador.