Blog de Amazon Web Services (AWS)
Cómo Senior Sistemas creó una plataforma de aprendizaje automático sin código con AWS
Por André Ruas, Desenvolvedor en Senior Sistemas;
Paula Campigotto, Pesquisadora en Senior Sistemas;
Amanda Machado, Squad Leader en Senior Sistemas y
Felipe Brito, Arquiteto de Soluções en AWS
Senior Sistemas, socio de AWS, es una empresa brasileña que es una referencia nacional en tecnología de gestión, con una de las carteras más completas de gestión empresarial, logística, gestión de personas, relaciones con los clientes, supermercados y gestión de acceso y seguridad. En esta publicación, compartiremos cómo Senior Sistemas desarrolló su plataforma de aprendizaje automático sin código con AWS.
Introducción
Para satisfacer el resto de la demanda de aplicaciones que no son suministradas por la mano de obra que se ofrece en el mercado de la Tecnología de la Información (TI), varias empresas de tecnología ofrecen soluciones denominadas plataformas No-Code (NCP) y Low-Code (LCP). Estas plataformas, también denominadas plataformas de autoservicio, son aplicaciones que generalmente tienen una interfaz gráfica (en el caso de los NCP) o tienen paradigmas de programación de alto nivel (en el caso de las LCP). Su objetivo principal es facilitar la creación de aplicaciones para personas con poco o ningún conocimiento en el área de programación. Además, áreas como el aprendizaje automático, también llamado aprendizaje automático (ML), también tienen escasez de profesionales calificados, ya que son materias complejas que requieren calificación.
Sobre la base de estas premisas, se desarrolló un proyecto en el Laboratorio de Investigación Aplicada Senior (Senior Labs) que busca implementar un producto de aprendizaje automático sin código en la plataforma de innovación Senior X Platform.
La plataforma Senior X
X Platform es una plataforma de innovación de Senior Sistemas que tiene como objetivo ofrecer diferentes soluciones y productos personalizados a sus clientes. La figura 1 ilustra algunos de los productos que ofrece la plataforma X, como BPM, una herramienta que mapea, modela, ejecuta, optimiza y automatiza los procesos empresariales.
Figura 01 — Productos que ofrece la plataforma X
Retos
Para la creación del producto de aprendizaje automático sin código, se dio prioridad al desarrollo de una API alojada íntegramente en AWS, con el objetivo, además de la escalabilidad y la disponibilidad que ofrece la nube de AWS, de la flexibilidad necesaria para cambiar la arquitectura de acuerdo con la evolución del proyecto.
Para adaptarse al concepto No-Code, el propósito de la API es que pueda crear el modelo de aprendizaje automático a partir de un archivo con datos etiquetados y, luego, poner el uso de este modelo a disposición del usuario para clasificar los nuevos datos.
El mayor desafío al que se enfrentó fue el desarrollo de una arquitectura funcional y asertiva para brindar una mejor experiencia de usuario y, al mismo tiempo, minimizar los costos operativos.
Solución propuesta
La primera etapa del proyecto fue la definición de un marco AutoML, que se basó en un estudio comparativo realizado entre los marcos presentes en el mercado y los requisitos del proyecto. Sobre la base del estudio, se seleccionó AutoGluon-tabular, un marco AutoM de código abierto desarrollado por AWS y cuyos principios son la simplicidad, la solidez, la previsibilidad en el tiempo y la tolerancia a los fallos. Además de estos atributos, otros factores que guiaron la elección de AutoGluon para componer la plataforma No-Code fueron:
– Capacidad para identificar problemas entre la clasificación y la regresión;
– Llevar a cabo la etapa de preprocesamiento de datos;
– Posibilidad de automatizar la optimización de hiperparámetros.
Tras seleccionar el marco AutoML, comenzó el desarrollo de la arquitectura de la API, que se puede ver en su versión final en la figura 2.
Figura 02: Arquitectura final del producto de aprendizaje automático sin código.
La arquitectura final de la API se puede dividir en 5 flujos diferentes:
- Solicitud de carga de datos:
- Carga de datos
- Formación de modelos
- Inferencia de datos
- Consulta de los datos y estado de los modelos creados
El flujo 1 implica el uso de una función AWS Lambda que devuelve una URL prefirmada del bucket de S3. Otra función de Lambda, en el flujo 2, utiliza esta URL para cargar datos directamente al bucket de Amazon S3. La creación de este flujo era necesaria para permitir la recepción de datos almacenados en archivos de gran tamaño, así como para evitar que los datos se enviaran directamente a través de Amazon API Gateway. Para minimizar la replicación de recursos, los Lambda que compartían requisitos se contenerizaron junto con sus dependencias en un
El flujo 3, que incluye la formación de modelos, representó un gran desafío, ya que era necesario identificar la mejor estrategia para usar AutoGluon en AWS. Dado que este flujo estaba destinado únicamente a entrenar el modelo, se decidió utilizar la API de Amazon SageMaker junto con el algoritmo AutoGluon obtenido por la ruta de registro de Docker, que proporciona Amazon SageMaker. Por lo tanto, para cada conjunto de datos que recibe la API, se inicia un evento de trabajo de capacitación asincrónico y, tan pronto como finaliza la creación del modelo, los resultados se guardan en Amazon S3.
La creación del modelo en S3 actúa como activador de una función de Lambda que mueve los archivos de S3 al Amazon Elastic File System, al que se monta y se accede mediante una aplicación Flask, alojada en un contenedor administrado por Amazon Elastic Container Service. (ECS), junto con AWS Fargate. En cuanto a la aplicación, es responsabilidad de acceder a los modelos del sistema de archivos y devolver el resultado de las inferencias.
Luego, para hacer las inferencias (flujo 4), se utilizó una función Lambda que recibe los datos enviados por el usuario para su clasificación y se comunica con la aplicación Flask mencionada anteriormente.
Por último, para el flujo 5, utilizamos los servicios API Gateway, Lambda y Amazon DynamoDB para proporcionar al usuario final toda la información relativa a los modelos.
Consideraciones finales
El desarrollo de la API de aprendizaje automático sin código permitió la inserción de la inteligencia artificial en varios proyectos y sectores de la empresa. La arquitectura desarrollada facilitó el consumo de la API y generó mayores posibilidades de integración con la solución.
Los siguientes pasos incluyen monitorear la API para monitorear su uso y los costos operativos.
Para minimizar la duplicidad de recursos, los Lambda que compartían requisitos se contenerizaron junto con sus dependencias en un Amazon Elastic Container Registry (ECR).
Este artículo fue traducido del Blog de AWS en Inglés
Acerca de los autores
André Ruas es desarrollador en Senior Sistemas y también trabaja en el área de investigación de software. Está interesado en los campos de la arquitectura sin servidores y la inteligencia artificial.
Paula Campigotto es investigadora de Senior Sistemas y desarrolla aplicaciones mediante el aprendizaje automático, la computación en la nube, la arquitectura sin servidores y otras tecnologías en expansión. Además, es estudiante de maestría en la Universidad Federal de Paraná en el área de Computación Bioinspirada.
Amanda Machado es líder de equipo en Senior Systems y estudiante de maestría en la Universidad Federal de Santa Catarina (UFSC) en el área de optimización de algoritmos. Tiene experiencia en el área de la ciencia de datos, el aprendizaje automático y el desarrollo de aplicaciones, con un enfoque en la investigación y la innovación.
Felipe Brito es arquitecto de soluciones en AWS y guía a los clientes sobre las mejores prácticas de arquitectura de nube. Tiene experiencia en proyectos de desarrollo de software y análisis.
Revisora
Andreza Cruz es arquitecta de soluciones en Amazon Web Services (AWS). Trabaja creando soluciones y ayudando a los clientes en su viaje a la nube. Se ha especializado en inteligencia artificial y aprendizaje automático (AI/ML).
Armando Barrales es arquitecto de soluciones en Amazon Web Services (AWS). Ayuda a sus clientes recomendando mejores practicas para adoptar la nube y para lograr metas estratégicas mediando um balance entre costos y rendimento.