En este artículo vamos a realizar un análisis paso a paso de Autopilot, la nueva herramienta de AutoML desarrollada por AWS e integrada con SageMaker, su solución 360 para desarrollo y productivización de Machine Learning.

Analizaremos la evolución de la herramienta y desglosaremos en detalle alguna de las nuevas características que incorpora Autopilot y que van a posicionarlo como una de las herramientas más potentes e innovadoras en el área de Machine Learning.

Evolución SageMaker

SageMaker fue presentado por AWS a finales de 2017 en su convención anual re:Invent en Las Vegas. Este nuevo servicio prometía simplificar la manera en la que los desarrolladores del mundo tendrían acceso al desarrollo de proyectos de Machine Learning, igual que las compañías más grandes del planeta, pero de una manera sencilla.

Inicialmente surgió como un servicio principalmente orientado a simplificar la gestión de notebooks y entornos de trabajo para científicos de datos, pero a lo largo del tiempo AWS le ha ido añadiendo funcionalidades muy potentes y novedosas que lo hacen uno de los servicios más interesantes y con perspectivas de futuro del ecosistema de AWS.

En este artículo vamos a hacer zoom en una de las características que han sido añadidas a finales de 2019: Autopilot.

SageMaker Studio

Realmente Autopilot se enmarca como una de las funcionalidades disponibles en el nuevo SageMaker Studio. Realmente Autopilot se enmarca como una de las funcionalidades disponibles en el nuevo SageMaker Studio. Además, desde finales de abril, SageMaker Studio está disponible en Generally Available.

SageMaker Studio nos ofrece un entorno integrado de trabajo para Data Science que nos permite tener en un único punto la gestión centralizada de notebooks, integración con repositorio de Git, autenticación, tracking de experimentos, AutoML con Autopilot, depuración, despliegue y monitorización. Todo esto con una interfaz de usuario basada en JupyterLab, familiar para los científicos de datos.

AutoML

Autopilot se enmarca dentro de una nueva tendencia que está surgiendo en el mundo del Machine Learning: se trata de las técnicas de AutoML. En este artículo de finales de 2019 ya analizábamos este tipo de técnicas que diferentes proveedores están incorporando en sus productos y que permiten acelerar el desarrollo de modelos de Machine Learning y ser una respuesta a la falta de científicos de datos en el mercado.

Autopilot viene a ser la respuesta de AWS a esta necesidad, con un enfoque muy particular y un nivel de granularidad muy diferente al de otras soluciones.

Autopilot

Una de las principales diferencias de Autopilot respecto a otras herramientas de AutoML es pedirle que, en lugar de ejecutar todo el proceso de análisis de datos, selección del modelo y tunning, nos genere el código intermedio y podamos usarlo como base para nuestros desarrollos de ML o ajustes más finos.

Para crear un experimento de Autopilot deberemos crear una sesión de SageMaker Studio desde la consola de AWS y una vez se haya creado entrar en la misma. A día de hoy existen varios métodos de autenticación con los que podemos crear nuestra instancia de SageMaker Studio: IAM, SSO o usuarios individuales. Si queremos probar el servicio probablemente lo más rápido y sencillo sea crearnos un usuario individual.

Una vez estemos dentro de SageMaker Studio nos encontraremos con un Jupyter Lab pero con algunas funcionalidades extendidas. Para lanzar un experimento de Autopilot debemos de ir a la sección de experimentos haciendo click en el icono con forma de matraz, que encontraremos en el menú de la izquierda, y entonces nos aparecerá la opción de crear un nuevo experimento.

Para crear un nuevo experimento de Autopilot será necesario que rellenemos un pequeño formulario con la siguiente información:

Una vez completados todos estos datos, podemos lanzar nuestro experimento. El experimento se compone de cuatro etapas, la ejecución de cada una de las etapas puede llevar varios minutos, siempre dependiendo de las características de los datos de entrada y la tipología de problema:

Al lanzar nuestro experimento SageMaker nos abrirá una nueva pestaña donde podremos monitorizar el avance de Autopilot en cada una de estas 4 etapas.

Preparación de datos

Después de ejecutar la primera de etapa, Autopilot nos generará dos notebooks que podremos revisar y ejecutar. Un aspecto muy interesante de estos notebooks es que no solo se generará código a medida de nuestros datos y del problema, sino también anotaciones en Markdown con conclusiones y sugerencias también a medida del problema. Esto puede ser muy útil para dirigir los siguientes pasos del trabajo de los científicos de datos.

El primer notebook que debemos mirar es el llamado “Data Exploration Notebook”. En este notebook se hace un análisis exploratorio de los datos, donde podemos ver de forma sencilla aspectos como el porcentaje de valores vacíos o un análisis estadístico de los valores. Pero quizá lo más interesante de este es las recomendaciones o consejos que nos hace sobre cómo podemos limpiar o preparar mejor los datos antes de pasárselos al modelo.

Búsqueda del mejor candidato

El segundo notebook que se genera es el “Candidate Generation Notebook”. En este notebook vemos como Autopilot define tres elementos a medida de nuestros datos y problema:

A continuación configura y lanza un pipeline de ejecución en donde iremos entrenando sucesivos modelos y explorando las diferentes combinaciones posibles.

El objetivo es tratar de encontrar el modelo que maximiza la métrica escogida, y este se convertirá en nuestro “mejor candidato”.

Sagemaker ejecutará este proceso durante las fases de “Feature Engineering” y “Model Tuning” y obtendremos como resultado el mejor modelo. Siempre podremos volver al notebook si queremos ajustar alguna de las opciones por defecto, por ejemplo los rangos de los hiper parámetros y repetir la operación.

Cabe destacar que todos los modelos generados para cada combinación, así como los notebooks y las datos procesados con cada una de las estrategias se almacenan en la carpeta de S3 que indicamos en el momento de lanzar el experimento y siempre podremos recuperarlos de allí.

También podremos navegar desde el interfaz de SageMaker Studio por cada uno de los candidatos, analizar sus métricas y resultados o comparar las propiedades de varios candidatos.

Despliegue del modelo

Finalmente, ya sea desde el notebook o desde el listado de modelos candidatos,podemos desplegar cualquiera de ellos sobre Sagemaker de una forma bastante sencilla. Podremos elegir sobre qué tipo de instancia se ejecutará nuestro modelo contenerizado y configurar algunos parámetros avanzados como la VPC o pasarle variables de entorno a nuestro contenedor.

Esto nos creará un modelo y un endpoint en Sagemaker. Tras unos instantes podremos invocar a nuestro endpoint para realizar inferencias.

También podremos automáticamente trazar y analizar todos los logs relativos a la invocación del modelo gracias a la integración directa que que tiene SageMaker con Cloudwatch, la herramienta centralizada de logging en AWS.

Conclusión

En este artículo hemos hecho un repaso de las principales características de Autopilot y su integración en SageMaker Studio.

Sin duda, se trata de una nueva herramienta muy potente que va a acelerar de forma radical el desarrollo y productivización de modelos de Machine Learning.

Estamos convencidos de que Autopilot seguirá evolucionando e incorporando más funcionalidades en los próximos meses y será uno de los servicios más importantes de AWS en el área de Machine Learning, incorporando nuevas tipologías de problemas y métricas.

En cualquier caso, en este momento Autopilot se sitúa como un servicio diferencial y llamado a impulsar el uso de herramientas de AutoML en todos los sectores.

Cuéntanos qué te parece.

Los comentarios serán moderados. Serán visibles si aportan un argumento constructivo. Si no estás de acuerdo con algún punto, por favor, muestra tus opiniones de manera educada.

Suscríbete

Estamos comprometidos.

Tecnología, personas e impacto positivo.