Amazon ha lanzado una plataforma avanzada de entornos de desarrollo integrados (IDEs) para el aprendizaje automático (ML) a través de SageMaker Studio. Esta plataforma incluye herramientas como JupyterLab, un editor de código basado en Code-OSS, y RStudio, permitiendo a los usuarios gestionar todo el ciclo de desarrollo de ML, desde la preparación de datos hasta la implementación. SageMaker Studio promete lanzar un entorno de JupyterLab preconfigurado en segundos, facilitando la codificación eficiente y la configuración del flujo de trabajo de ML con una interfaz flexible y un asistente de codificación impulsado por inteligencia artificial (IA).
Uno de los aspectos destacados de SageMaker Studio es su capacidad para manejar datos geoespaciales, como imágenes satelitales, trazas de coordenadas o mapas aéreos. Estas capacidades se vuelven cruciales en campos como la monitorización ambiental, la planificación urbana, la agricultura, la respuesta a desastres, la transportación y la salud pública.
Para aprovechar al máximo la riqueza de información contenida en estos conjuntos de datos geoespaciales para ML y análisis, es fundamental acceder a las herramientas adecuadas. Los datos geoespaciales suelen estar en formatos de archivo especializados como Cloud Optimized GeoTIFF (COG), archivos Zarr, GeoJSON y GeoParquet, que requieren software y bibliotecas dedicadas para trabajar con ellos.
SageMaker Studio aborda estas necesidades específicas al permitir la extensión de Amazon SageMaker Distribution con dependencias adicionales para crear una imagen de contenedor personalizada adaptada al análisis geoespacial. Las imágenes de distribución de SageMaker son imágenes de Docker con paquetes de ciencia de datos preinstalados y un IDE de JupyterLab preconfigurado, permitiendo su uso tanto en la interfaz de SageMaker Studio como en flujos de trabajo no interactivos como el procesamiento o el entrenamiento.
El artículo proporciona una guía paso a paso sobre cómo construir y utilizar imágenes de contenedor personalizadas en SageMaker Studio. Específicamente, se demuestra cómo se puede personalizar la distribución de SageMaker para flujos de trabajo geoespaciales extendiéndola con bibliotecas geoespaciales de Python de código abierto. Se explica cómo construir y desplegar la imagen en AWS utilizando herramientas de integración y entrega continuas (CI/CD), haciéndola accesible en SageMaker Studio. Todo el código utilizado, incluidos los archivos Dockerfile y las plantillas de infraestructura como código (IaC) para una implementación rápida, está disponible en un repositorio de GitHub.
La solución para construir y usar una imagen de contenedor personalizada en SageMaker Studio incluye los siguientes pasos:
1. Crear un Dockerfile que incluya las bibliotecas y herramientas adicionales de Python.
2. Construir una imagen de contenedor personalizada desde el Dockerfile.
3. Enviar la imagen de contenedor personalizada a un repositorio privado en Amazon Elastic Container Registry (Amazon ECR).
4. Adjuntar la imagen al dominio de Amazon SageMaker Studio.
5. Acceder a la imagen desde el espacio de JupyterLab.
El diagrama proporcionado ilustra la arquitectura de la solución utilizando AWS CodeBuild para compilar y enviar una nueva imagen de contenedor desde un Dockerfile. CodeBuild admite una amplia selección de fuentes de control de versiones git y el proyecto de este ejemplo aloja los archivos de compilación en Amazon Simple Storage Service (Amazon S3).
Este enfoque de extender SageMaker Distribution permite un desarrollo ML más especializado, facilitando tanto el trabajo interactivo en notebooks de JupyterLab como trabajos de procesamiento altamente paralelizados con SageMaker. La reutilización de la imagen interactiva para el procesamiento por lotes asíncrono ofrece ventajas considerables, permitiendo mantener una única imagen para múltiples aplicaciones.
Para ejemplos prácticos y manos a la obra con ambos enfoques, se puede consultar el repositorio de GitHub asociado. Al final del proceso, es importante detener la aplicación de JupyterLab en SageMaker Studio para evitar costos innecesarios y limpiar la infraestructura adicional desplegada utilizando el AWS CDK si se utilizó para la implementación inicial.
Esta guía detallada establece una base sólida para que los desarrolladores construyan sus propias imágenes personalizadas, incrementando la eficiencia y personalización del entorno de desarrollo en SageMaker Studio.