Cree flujos de trabajo de aprendizaje automático de extremo a extremo con Amazon SageMaker y Apache Airflow

Los flujos de trabajo de aprendizaje automático (ML) organizan y automatizan secuencias de tareas de ML al permitir la recopilación y transformación de datos. A esto le sigue la capacitación, las pruebas y la evaluación de un modelo de LD para lograr un resultado. Por ejemplo, es posible que desee realizar una consulta en Amazon Athena o agregar y preparar datos en AWS Glue antes de entrenar un modelo en Amazon SageMaker e implementar el modelo en el entorno de producción para realizar llamadas de inferencia. Automatizar estas tareas y organizarlas en múltiples servicios ayuda a construir flujos de trabajo ML repetibles y reproducibles. Estos flujos de trabajo se pueden compartir entre los ingenieros de datos y los científicos de datos.

Introducción

Los flujos de trabajo de ML consisten en tareas que a menudo son cíclicas e iterativas para mejorar la precisión del modelo y lograr mejores resultados. Recientemente anunciamos nuevas integraciones con Amazon SageMaker que le permiten crear y administrar estos flujos de trabajo:

  1. AWS Step Functions automatiza y organiza las tareas relacionadas de Amazon SageMaker en un flujo de trabajo de extremo a extremo. Puede automatizar la publicación de conjuntos de datos en Amazon S3, entrenar un modelo de ML en sus datos con Amazon SageMaker y desplegar su modelo para la predicción. AWS Step Functions monitoreará Amazon SageMaker y otros trabajos hasta que tengan éxito o falle, y pasará al siguiente paso del flujo de trabajo o reintentará el trabajo. Incluye manejo de errores integrado, paso de parámetros, administración de estado y una consola visual que le permite monitorear sus flujos de trabajo ML mientras se ejecutan.
  2. Muchos clientes actualmente usan Apache Airflow, un popular marco de código abierto para la creación, programación y Monitoreo de flujos de trabajo de múltiples etapas. Con esta integración, múltiples operadores de Amazon SageMaker están disponibles con Airflow que incluyen capacitación de modelos, ajuste de hiperparámetros, implementación de modelos y transformación por lotes. Esto le permite usar la misma herramienta de organización para administrar flujos de trabajo de ML con tareas que se ejecutan en Amazon SageMaker.

Esta publicación de blog muestra cómo puede crear y administrar flujos de trabajo de ML utilizando Amazon Sagemaker y Apache Airflow. Construiremos un sistema de recomendación para predecir la calificación de un cliente para un determinado video en función de las calificaciones históricas de videos similares de los clientes, así como el comportamiento de otros clientes similares. Usaremos clasificaciones históricas de estrellas de más de 2 millones de clientes de Amazon en más de 160,000 videos digitales. Los detalles sobre este conjunto de datos se pueden encontrar en su AWS Open Data page .

Solución de alto nivel

Comenzaremos por explorar los datos, transformar los datos y capacitar a un modelo sobre los datos. . Ajustaremos el modelo ML utilizando un grupo de entrenamiento administrado por Amazon SageMaker. Luego realizaremos la implementación en un punto final para realizar predicciones por lotes en el conjunto de datos de prueba. Todas estas tareas se integrarán en un flujo de trabajo que se puede organizar y automatizar a través de la integración de Apache Airflow con Amazon SageMaker.

El siguiente diagrama muestra el flujo de trabajo ML que implementaremos para desarrollar el sistema de recomendaciones.

El flujo de trabajo realiza las siguientes tareas:

  1. Preprocesamiento de datos: Extraiga y preprime datos de Amazon S3 para preparar los datos de entrenamiento.
  2. Prepare datos de entrenamiento: Para construir el sistema de recomendación, usaremos el algoritmo incorporado de Amazon SageMaker, Máquinas de factorización . El algoritmo espera datos de entrenamiento solo en formato recordIO-protobuf con tensores Float32. En esta tarea, los datos preprocesados ​​se transformarán al formato RecordIO Protobuf.
  3. Capacitación del modelo: Forme el modelo de máquina de factorización incorporado de Amazon SageMaker con los datos de capacitación y genere artefactos de modelo. El trabajo de capacitación será iniciado por el operador de Airflow Amazon SageMaker.
  4. Ajuste los hiperparámetros del modelo: Una tarea condicional / opcional para ajustar los hiperparámetros de la máquina de factorización para encontrar el mejor modelo. El operador de flujo de aire de Amazon SageMaker iniciará el trabajo de ajuste del hiperparámetro.
  5. Inferencia de lote: Usando el modelo entrenado, obtenga inferencias sobre el conjunto de datos de prueba almacenado en Amazon S3 usando el operador de flujo de aire Amazon SageMaker. [19659006] Nota: Puede clonar GitHub repo para los scripts, las plantillas y el cuaderno mencionados en esta publicación del blog.

    Conceptos y configuración del flujo de aire

    Antes de implementar la solución, Vamos a familiarizarnos con los conceptos de Airflow. Si ya está familiarizado con los conceptos de Airflow, vaya a la sección

    Apache Airflow es una herramienta de código abierto para organizar flujos de trabajo y canalizaciones de procesamiento de datos. El flujo de aire le permite configurar, programar y monitorear las tuberías de datos mediante programación en Python para definir todas las etapas del ciclo de vida de una administración de flujo de trabajo típica.

    Nomenclatura de flujo de aire

    • DAG (Directed Acyclic Graph): Los DAG describen cómo para ejecutar un flujo de trabajo definiendo la canalización en Python, que es la configuración como código. Las tuberías están diseñadas como un gráfico acíclico dirigido al dividir una tubería en tareas que pueden ejecutarse de forma independiente. Luego estas tareas se combinan lógicamente como un gráfico.
    • Operadores: Los operadores son componentes atómicos en un DAG que describe una sola tarea en tramitación. Determinan qué se hace en esa tarea cuando se ejecuta un DAG. El flujo de aire proporciona a los operadores para tareas comunes. Es extensible, por lo que puede definir operadores personalizados. Flujo de aire Los operadores de Amazon SageMaker son uno de estos operadores personalizados contribuidos por AWS para integrar Airflow con Amazon SageMaker.
    • Tarea: Después de que se crea una instancia del operador, se lo denomina “tarea”. [19659005] Instancia de tarea: Una instancia de tarea representa una ejecución específica de una tarea caracterizada por un DAG, una tarea y un punto en el tiempo.
    • Programación: [19659022] Los DAG y las tareas se pueden ejecutar a pedido o se pueden programar para ejecutarse a una cierta frecuencia definida como una expresión cron en el DAG.

    Arquitectura de flujo de aire

    El siguiente diagrama muestra los componentes típicos de la arquitectura de Flujo de aire.

    • Programador: El programador es un servicio persistente que controla los DAG y las tareas, y activa las instancias de tareas cuyas dependencias se han cumplido. El programador es responsable de invocar el ejecutor definido en la configuración del flujo de aire.
    • Ejecutor: Los ejecutores son el mecanismo por el cual las instancias de tarea se ejecutan. El flujo de aire por defecto proporciona diferentes tipos de ejecutores y puede definir ejecutores personalizados, como un ejecutor Kubernetes.
    • Broker: El broker pone en cola los mensajes (las solicitudes de tarea se ejecutan) y actúa como un comunicador entre el ejecutor y los trabajadores.
    • Trabajadores: Los nodos reales donde se ejecutan las tareas y que devuelven el resultado de la tarea.
    • Servidor web : Un servidor web para representar la IU de flujo de aire.
    • Archivo de configuración: Configure ajustes como el ejecutor a utilizar, las conexiones de la base de datos de metadatos del flujo de aire, el DAG y la ubicación del repositorio. También puede definir límites de concurrencia y paralelismo, etc.
    • Base de datos de metadatos: Base de datos para almacenar todos los metadatos relacionados con DAGS, ejecuciones, tareas, variables y conexiones de DAG.

    Flujo de aire Los operadores de Amazon SageMaker

    Los operadores de Amazon SageMaker son operadores personalizados disponibles con la instalación de Airflow, lo que permite a Airflow hablar con Amazon SageMaker y realizar las siguientes tareas de ML:

    • SageMakerTrainingOperator : Crea un trabajo de capacitación en Amazon SageMaker.
    • SageMakerTuningOperator : crea un trabajo de ajuste de hiperparámetros de AmazonSageMaker.
    • SageMakerTransformOperator.
    • SageMakerEndpointConfigOperator : Crea una configuración de punto final de Amazon SageMaker.
    • SageMakerEndpointOperator : Crea un n El punto final de Amazon SageMaker para realizar inferencias.

    Revisaremos el uso de los operadores en la sección

Dejá un comentario