Guía para implementar YOLO26 en Amazon SageMaker Endpoints#
La implementación de modelos avanzados de visión por ordenador, como YOLO26 de Ultralytics, en Amazon SageMaker Endpoints abre un amplio abanico de posibilidades para diversas aplicaciones de aprendizaje automático. La clave para utilizar estos modelos de forma eficaz consiste en comprender sus procesos de configuración, preparación e implementación. YOLO26 se vuelve aún más potente al integrarse perfectamente con Amazon SageMaker, un servicio de aprendizaje automático robusto y escalable de AWS.
Esta guía te explicará paso a paso cómo implementar modelos PyTorch de YOLO26 en Amazon SageMaker Endpoints. Aprenderás los aspectos esenciales para preparar tu entorno de AWS, configurar correctamente el modelo y utilizar herramientas como AWS CloudFormation y el Kit de desarrollo en la nube de AWS (CDK) para la implementación.
Amazon SageMaker#
Amazon SageMaker es un servicio de aprendizaje automático de Amazon Web Services (AWS) que simplifica el proceso de creación, entrenamiento e implementación de modelos de aprendizaje automático. Proporciona una amplia gama de herramientas para gestionar distintos aspectos de los flujos de trabajo de aprendizaje automático. Esto incluye funciones automatizadas para ajustar modelos, opciones para entrenarlos a gran escala y métodos sencillos para implementarlos en producción. SageMaker es compatible con marcos de aprendizaje automático populares, lo que ofrece la flexibilidad necesaria para proyectos diversos. Sus funciones también abarcan el etiquetado de datos, la gestión de flujos de trabajo y el análisis del rendimiento.
Implementación de YOLO26 en Amazon SageMaker Endpoints#
Implementar YOLO26 en Amazon SageMaker te permite utilizar su entorno gestionado para realizar inferencias en tiempo real y aprovechar funciones como el escalado automático. Consulta la arquitectura de AWS que se muestra a continuación.
Paso 1: Configura tu entorno de AWS#
En primer lugar, asegúrate de disponer de los siguientes requisitos previos:
-
Una cuenta de AWS: si aún no tienes una, regístrate para obtener una cuenta de AWS.
-
Roles de IAM configurados: necesitarás un rol de IAM con los permisos necesarios para Amazon SageMaker, AWS CloudFormation y Amazon S3. Este rol debe tener políticas que le permitan acceder a estos servicios.
-
AWS CLI: si aún no está instalada, descarga e instala la Interfaz de línea de comandos de AWS (CLI) y configúrala con los datos de tu cuenta. Sigue las instrucciones de AWS CLI para instalarla.
-
AWS CDK: si aún no está instalado, instala el Kit de desarrollo en la nube de AWS (CDK), que se utilizará para crear scripts de implementación. Sigue las instrucciones de AWS CDK para instalarlo.
-
Cuota de servicio adecuada: confirma que tienes cuotas suficientes para dos recursos independientes de Amazon SageMaker: una para
ml.m5.4xlarge, destinada al uso de endpoints, y otra paraml.m5.4xlarge, destinada al uso de instancias de notebook. Cada uno de estos recursos requiere un valor de cuota mínimo de uno. Si tus cuotas actuales están por debajo de este requisito, es importante que solicites un aumento para cada una. Puedes solicitar un aumento de cuota siguiendo las instrucciones detalladas de la documentación de AWS Service Quotas.
Paso 2: Clona el repositorio de SageMaker de YOLO26#
El siguiente paso consiste en clonar el repositorio específico de AWS que contiene los recursos para implementar YOLO26 en SageMaker. Este repositorio, alojado en GitHub, incluye los scripts de CDK y los archivos de configuración necesarios.
-
Clona el repositorio de GitHub: ejecuta el siguiente comando en tu terminal para clonar el repositorio host-yolov8-on-sagemaker-endpoint:
git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git -
Accede al directorio clonado: cambia al directorio del repositorio clonado:
cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk
Paso 3: Configura el entorno de CDK#
Ahora que tienes el código necesario, configura tu entorno para realizar la implementación con AWS CDK.
-
Crea un entorno virtual de Python: esto aísla tu entorno de Python y sus dependencias. Ejecuta:
python3 -m venv .venv -
Activa el entorno virtual:
source .venv/bin/activate -
Instala las dependencias: instala las dependencias de Python necesarias para el proyecto:
pip3 install -r requirements.txt -
Actualiza la biblioteca de AWS CDK: asegúrate de tener la versión más reciente de la biblioteca de AWS CDK:
pip install --upgrade aws-cdk-lib
Paso 4: Crea la pila de AWS CloudFormation#
-
Sintetiza la aplicación de CDK: genera la plantilla de AWS CloudFormation a partir de tu código de CDK:
cdk synth -
Prepara la aplicación de CDK: prepara tu entorno de AWS para la implementación con CDK:
cdk bootstrap -
Implementa la pila: esto creará los recursos de AWS necesarios e implementará tu modelo:
cdk deploy
Paso 5: Implementa el modelo YOLO#
Antes de consultar las instrucciones de implementación, asegúrate de revisar la variedad de modelos YOLO26 que ofrece Ultralytics. Esto te ayudará a elegir el modelo más adecuado para los requisitos de tu proyecto.
Después de crear la pila de AWS CloudFormation, el siguiente paso es implementar YOLO26.
-
Abre la instancia de notebook: ve a la consola de AWS y accede al servicio Amazon SageMaker. Selecciona «Notebook Instances» en el panel y, a continuación, localiza la instancia de notebook que creó tu script de implementación de CDK. Abre la instancia de notebook para acceder al entorno de Jupyter.
-
Accede a inference.py y modifícalo: después de abrir la instancia de notebook de SageMaker en Jupyter, localiza el archivo inference.py. Edita la función output_fn de inference.py como se muestra a continuación y guarda los cambios en el script, asegurándote de que no haya errores de sintaxis.
import json def output_fn(prediction_output): """Formats model outputs as JSON string, extracting attributes like boxes, masks, keypoints.""" print("Executing output_fn from inference.py ...") infer = {} for result in prediction_output: if result.boxes is not None: infer["boxes"] = result.boxes.numpy().data.tolist() if result.masks is not None: infer["masks"] = result.masks.numpy().data.tolist() if result.keypoints is not None: infer["keypoints"] = result.keypoints.numpy().data.tolist() if result.obb is not None: infer["obb"] = result.obb.numpy().data.tolist() if result.probs is not None: infer["probs"] = result.probs.numpy().data.tolist() return json.dumps(infer) -
Implementa el endpoint mediante 1_DeployEndpoint.ipynb: en el entorno de Jupyter, abre el notebook 1_DeployEndpoint.ipynb, ubicado en el directorio sm-notebook. Sigue las instrucciones del notebook y ejecuta las celdas para descargar el modelo YOLO26, empaquetarlo con el código de inferencia actualizado y cargarlo en un bucket de Amazon S3. El notebook te guiará durante la creación e implementación de un endpoint de SageMaker para el modelo YOLO26.
Paso 6: Prueba tu implementación#
Ahora que tu modelo YOLO26 está implementado, es importante probar su rendimiento y funcionalidad.
-
Abre el notebook de prueba: en el mismo entorno de Jupyter, localiza y abre el notebook 2_TestEndpoint.ipynb, también situado en el directorio sm-notebook.
-
Ejecuta el notebook de prueba: sigue las instrucciones del notebook para probar el endpoint de SageMaker implementado. Esto incluye enviar una imagen al endpoint y ejecutar inferencias. A continuación, representarás gráficamente la salida para visualizar el rendimiento y la precisión del modelo, como se muestra abajo.
- Limpia los recursos: el notebook de prueba también te guiará durante el proceso de limpieza del endpoint y del modelo alojado. Este es un paso importante para gestionar los costes y los recursos de forma eficaz, especialmente si no tienes previsto utilizar inmediatamente el modelo implementado.
Paso 7: Supervisión y gestión#
Después de realizar las pruebas, es esencial supervisar y gestionar continuamente el modelo implementado.
-
Supervisa con Amazon CloudWatch: comprueba periódicamente el rendimiento y el estado de tu endpoint de SageMaker mediante Amazon CloudWatch.
-
Gestiona el endpoint: utiliza la consola de SageMaker para gestionar continuamente el endpoint. Esto incluye escalar, actualizar o volver a implementar el modelo según sea necesario.
Al completar estos pasos, habrás implementado y probado correctamente un modelo YOLO26 en Amazon SageMaker Endpoints. Este proceso no solo te proporciona experiencia práctica en el uso de servicios de AWS para implementar modelos de aprendizaje automático, sino que también sienta las bases para implementar otros modelos avanzados en el futuro.
Resumen#
Esta guía te ha explicado paso a paso cómo implementar YOLO26 en Amazon SageMaker Endpoints mediante AWS CloudFormation y el Kit de desarrollo en la nube de AWS (CDK). El proceso incluye clonar el repositorio de GitHub necesario, configurar el entorno de CDK, implementar el modelo mediante servicios de AWS y probar su rendimiento en SageMaker.
Para obtener más información técnica, consulta este artículo del blog de aprendizaje automático de AWS. También puedes consultar la documentación oficial de Amazon SageMaker para obtener más información sobre sus distintas funciones y características.
¿Te interesa obtener más información sobre las distintas integraciones de YOLO26? Visita la página de la guía de integraciones de Ultralytics para descubrir herramientas y capacidades adicionales que pueden mejorar tus proyectos de aprendizaje automático.
Preguntas frecuentes#
Para implementar el modelo YOLO26 de Ultralytics en Amazon SageMaker Endpoints, sigue estos pasos:
- Configura tu entorno de AWS: asegúrate de tener una cuenta de AWS, roles de IAM con los permisos necesarios y AWS CLI configurada. Instala AWS CDK si aún no lo has hecho (consulta las instrucciones de AWS CDK).
- Clona el repositorio de SageMaker de YOLO26:
git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk - Configura el entorno de CDK: crea un entorno virtual de Python, actívalo, instala las dependencias y actualiza la biblioteca de AWS CDK.
python3 -m venv .venv source .venv/bin/activate pip3 install -r requirements.txt pip install --upgrade aws-cdk-lib - Implementa mediante AWS CDK: sintetiza e implementa la pila de CloudFormation y prepara el entorno.
cdk synth cdk bootstrap cdk deploy
Para obtener más información, consulta la sección de documentación.
Para implementar YOLO26 en Amazon SageMaker, asegúrate de cumplir los siguientes requisitos previos:
- Cuenta de AWS: una cuenta de AWS activa (regístrate aquí).
- Roles de IAM: roles de IAM configurados con permisos para SageMaker, CloudFormation y Amazon S3.
- AWS CLI: Interfaz de línea de comandos de AWS instalada y configurada (guía de instalación de AWS CLI).
- AWS CDK: Kit de desarrollo en la nube de AWS instalado (guía de configuración de CDK).
- Cuotas de servicio: cuotas suficientes para instancias de
ml.m5.4xlargetanto para el uso de endpoints como de notebooks (solicita un aumento de cuota).
Para obtener información detallada sobre la configuración, consulta esta sección.
Utilizar Ultralytics YOLO26 en Amazon SageMaker ofrece varias ventajas:
- Escalabilidad y gestión: SageMaker proporciona un entorno gestionado con funciones como el escalado automático, que facilita las necesidades de inferencia en tiempo real.
- Integración con servicios de AWS: intégralo perfectamente con otros servicios de AWS, como S3 para el almacenamiento de datos, CloudFormation para la infraestructura como código y CloudWatch para la supervisión.
- Facilidad de implementación: configuración simplificada mediante scripts de AWS CDK y procesos de implementación optimizados.
- Rendimiento: aprovecha la infraestructura de alto rendimiento de Amazon SageMaker para ejecutar tareas de inferencia a gran escala de forma eficaz.
Descubre más información sobre las ventajas de utilizar SageMaker en la sección de introducción.
Sí, puedes personalizar la lógica de inferencia de YOLO26 en Amazon SageMaker:
-
Modifica
inference.py: localiza y personaliza la funciónoutput_fndel archivoinference.pypara adaptar los formatos de salida.import json def output_fn(prediction_output): """Formats model outputs as JSON string, extracting attributes like boxes, masks, keypoints.""" infer = {} for result in prediction_output: if result.boxes is not None: infer["boxes"] = result.boxes.numpy().data.tolist() # Add more processing logic if necessary return json.dumps(infer) -
Implementa el modelo actualizado: asegúrate de volver a implementar el modelo mediante los notebooks de Jupyter proporcionados (
1_DeployEndpoint.ipynb) para incluir estos cambios.
Consulta los pasos detallados para implementar el modelo modificado.
-
Para probar el modelo YOLO26 implementado en Amazon SageMaker:
- Abre el notebook de prueba: localiza el notebook
2_TestEndpoint.ipynben el entorno de Jupyter de SageMaker. - Ejecuta el notebook: sigue las instrucciones del notebook para enviar una imagen al endpoint, realizar la inferencia y mostrar los resultados.
- Visualiza los resultados: utiliza las funciones de representación gráfica integradas para visualizar las métricas de rendimiento, como los cuadros delimitadores alrededor de los objetos detectados.
Para consultar instrucciones completas sobre las pruebas, visita la sección de pruebas.
- Abre el notebook de prueba: localiza el notebook