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 ML incluyen pasos para:
- Preparar, analizar y transformar datos.
- Entrenar y evaluar un modelo.
- Implementar modelos entrenados en producción.
- Realice un seguimiento de los artefactos de ML y comprenda sus dependencias.
Gestionar 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 organizar su proceso de aprendizaje automático 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 entrenar, 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
Las salidas de los pasos en una canalización TFX se denominan artefactos . Los pasos posteriores de su flujo de trabajo pueden utilizar estos artefactos como entradas. De esta manera, TFX le permite transferir datos entre 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 tener un tipo fuerte con un tipo de artefacto registrado en el almacén de metadatos de ML . Obtenga más información sobre los conceptos utilizados en ML Metadata .
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 aprendizaje automático. TFX proporciona varios tipos de artefactos estándar que describen tipos de datos y tipos de valores complejos, 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 parte de una canalización, mediante configuración en lugar de código.
Por ejemplo, puede utilizar 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 ML que puede utilizar como paso en su proceso de TFX. Los componentes están compuestos por:
- 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 aprendizaje automático, como la ingesta y transformación de datos o el entrenamiento y evaluación de un modelo.
- Una interfaz de componente, que empaqueta la especificación del componente y el ejecutor 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 aprendizaje automático 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 de las instancias de componentes se determina mediante la creación de un gráfico acíclico dirigido de las dependencias de los artefactos.
Por ejemplo, considere una canalización que hace lo siguiente:
- Ingiere datos directamente desde un sistema propietario utilizando 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 utilizando el componente estándar EjemploValidator.
- 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 utilizando un componente personalizado.
Para determinar la secuencia de ejecución de las instancias de los componentes, TFX analiza las dependencias de los artefactos.
- El componente de ingesta 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 ingesta de datos, por lo que debe ejecutarse después de la ingesta de datos.
- SchemaGen depende de las estadísticas creadas por StatisticsGen, por lo que debe ejecutarse después de StatisticsGen.
- EjemploValidator 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 ingesta de datos y el esquema creado por SchemaGen, por lo que debe ejecutarse después de la ingesta 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 solo se puede ejecutar después de la ingestión de datos, SchemaGen y Transform.
- El evaluador depende de los ejemplos producidos por la ingesta de datos y el 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 Entrenador y los resultados del análisis creados por el Evaluador, por lo que el implementador debe ejecutarse después del Entrenador y el Evaluador.
Según este análisis, un orquestador ejecuta:
- Las instancias de los componentes de ingesta de datos, StatisticsGen y SchemaGen de forma secuencial.
- 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 completado 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ñadas que puede personalizar según su caso de uso.
Obtenga más información sobre cómo personalizar una plantilla de canalización TFX .
Ejecución de tubería
Una ejecución es una ejecución única de una canalización.
orquestador
Un Orchestrator es un sistema donde 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.