Cómo crear imágenes personalizadas para análisis geoespacial con Amazon SageMaker Distribution en Amazon SageMaker Studio

Elena Digital López

Amazon ha lanzado una nueva plataforma avanzada para el desarrollo de entornos integrados de aprendizaje automático (ML) mediante SageMaker Studio. Esta innovadora herramienta incluye funcionalidades como JupyterLab, un editor de código basado en Code-OSS, y RStudio, permitiendo a los usuarios gestionar el ciclo completo del desarrollo de ML, desde la preparación de los datos hasta la implementación de los mismos. Una de las promesas de SageMaker Studio es su capacidad para configurar un entorno de JupyterLab preconfigurado en cuestión de segundos, lo que facilita la codificación eficiente y la configuración de flujos de trabajo de ML con una interfaz flexible y un asistente de codificación impulsado por inteligencia artificial (IA).

Uno de los aspectos más destacados de SageMaker Studio es su capacidad para manejar datos geoespaciales, tales como imágenes satelitales, trazas de coordenadas y mapas aéreos. Estas capacidades son de vital importancia en sectores como la monitorización ambiental, la planificación urbana, la agricultura, la respuesta a desastres, el transporte y la salud pública. Para aprovechar al máximo la vasta cantidad de información contenida en estos conjuntos de datos geoespaciales, es crucial contar con las herramientas adecuadas. Los datos geoespaciales suelen estar en formatos especializados como Cloud Optimized GeoTIFF (COG), archivos Zarr, GeoJSON y GeoParquet, los cuales requieren software y bibliotecas específicas para su manipulación.

SageMaker Studio responde a estas necesidades específicamente al permitir la extensión de Amazon SageMaker Distribution con dependencias adicionales, creando 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 entorno de JupyterLab preconfigurado, facilitando su uso tanto en la interfaz de SageMaker Studio como en flujos de trabajo no interactivos como el procesamiento o el entrenamiento.

Amazon ha proporcionado una guía detallada sobre cómo construir y utilizar estas imágenes de contenedor personalizadas en SageMaker Studio. En particular, se muestra cómo personalizar la distribución de SageMaker para flujos de trabajo geoespaciales extendiéndola con bibliotecas geoespaciales de código abierto en Python. El proceso incluye construir y desplegar la imagen en AWS mediante herramientas de integración y entrega continuas (CI/CD), haciéndola accesible en SageMaker Studio. Todo el código necesario, incluyendo archivos Dockerfile y plantillas de infraestructura como código (IaC) para una rápida implementación, está disponible en un repositorio de GitHub.

El proceso 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 provisto ilustra la arquitectura de la solución, utilizando AWS CodeBuild para compilar y enviar una nueva imagen de contenedor desde un Dockerfile. CodeBuild soporta 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 de ML más especializado, facilitando tanto el trabajo interactivo en notebooks de JupyterLab como tareas de procesamiento altamente paralelizadas 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 una guía detallada sobre ambos enfoques, se puede consultar el repositorio de GitHub asociado. Al final del proceso, es esencial detener la aplicación de JupyterLab en SageMaker Studio para evitar costos innecesarios y limpiar la infraestructura adicional desplegada utilizando el AWS CDK si fue utilizado en la implementación inicial.

Esta guía detallada proporciona 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.

Scroll al inicio