Link to this sectionGuía para desplegar YOLO26 en endpoints de Amazon SageMaker#
Desplegar modelos avanzados de visión artificial como YOLO26 de Ultralytics en endpoints de Amazon SageMaker abre un amplio abanico de posibilidades para diversas aplicaciones de aprendizaje automático. La clave para utilizar estos modelos de forma eficaz reside en entender sus procesos de configuración, ajuste y despliegue. YOLO26 se vuelve aún más potente cuando se integra perfectamente con Amazon SageMaker, un servicio de aprendizaje automático robusto y escalable de AWS.
Esta guía te llevará paso a paso por el proceso de despliegue de modelos YOLO26 de PyTorch en endpoints de Amazon SageMaker. Aprenderás lo esencial sobre la preparación de tu entorno AWS, la configuración adecuada del modelo y el uso de herramientas como AWS CloudFormation y AWS Cloud Development Kit (CDK) para el despliegue.
Link to this sectionAmazon SageMaker#
Amazon SageMaker es un servicio de aprendizaje automático de Amazon Web Services (AWS) que simplifica el proceso de creación, entrenamiento y despliegue de modelos de aprendizaje automático. Proporciona una amplia gama de herramientas para gestionar varios aspectos de los flujos de trabajo de aprendizaje automático. Esto incluye funciones automatizadas para ajustar modelos, opciones para entrenar modelos a gran escala y métodos sencillos para desplegar modelos en producción. SageMaker es compatible con marcos de aprendizaje automático populares, ofreciendo la flexibilidad necesaria para proyectos diversos. Sus características también cubren el etiquetado de datos, la gestión de flujos de trabajo y el análisis de rendimiento.
Link to this sectionDespliegue de YOLO26 en endpoints de Amazon SageMaker#
Desplegar YOLO26 en Amazon SageMaker te permite utilizar su entorno gestionado para inferencias en tiempo real y aprovechar funciones como el escalado automático. Echa un vistazo a la arquitectura de AWS a continuación.
Link to this sectionPaso 1: Configura tu entorno AWS#
Primero, asegúrate de cumplir 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 no está instalado, descarga e instala la interfaz de línea de comandos de AWS (CLI) y configúrala con los detalles de tu cuenta. Sigue las instrucciones de AWS CLI para la instalación.
-
AWS CDK: Si no está instalado, instala el AWS Cloud Development Kit (CDK), que se utilizará para programar el despliegue. Sigue las instrucciones de AWS CDK para la instalación.
-
Cuota de servicio adecuada: Confirma que tienes cuotas suficientes para dos recursos separados en Amazon SageMaker: uno para
ml.m5.4xlargepara uso de endpoints y otro paraml.m5.4xlargepara uso de instancias de notebook. Cada uno de ellos requiere un valor de cuota mínimo de uno. Si tus cuotas actuales son inferiores a este requisito, es importante solicitar un aumento para cada una. Puedes solicitar un aumento de cuota siguiendo las instrucciones detalladas en la documentación de AWS Service Quotas.
Link to this sectionPaso 2: Clona el repositorio de YOLO26 SageMaker#
El siguiente paso es clonar el repositorio de AWS específico que contiene los recursos para desplegar YOLO26 en SageMaker. Este repositorio, alojado en GitHub, incluye los scripts de CDK necesarios y los archivos de configuración.
-
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 -
Navega al directorio clonado: Cambia tu directorio al repositorio clonado:
cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk
Link to this sectionPaso 3: Configura el entorno CDK#
Ahora que tienes el código necesario, configura tu entorno para el despliegue 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 última versión de la biblioteca de AWS CDK:
pip install --upgrade aws-cdk-lib
Link to this sectionPaso 4: Crea la pila de AWS CloudFormation#
-
Sintetiza la aplicación CDK: Genera la plantilla de AWS CloudFormation a partir de tu código CDK:
cdk synth -
Arranca (bootstrap) la aplicación CDK: Prepara tu entorno AWS para el despliegue de CDK:
cdk bootstrap -
Despliega la pila: Esto creará los recursos de AWS necesarios y desplegará tu modelo:
cdk deploy
Link to this sectionPaso 5: Despliega el modelo YOLO#
Antes de profundizar en las instrucciones de despliegue, asegúrate de revisar la gama 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 desplegar YOLO26.
-
Abre la instancia de Notebook: Ve a la consola de AWS y navega al servicio Amazon SageMaker. Selecciona "Notebook Instances" en el panel de control y luego localiza la instancia de notebook que fue creada por tu script de despliegue de CDK. Abre la instancia de notebook para acceder al entorno Jupyter.
-
Accede y modifica inference.py: Después de abrir la instancia de SageMaker notebook en Jupyter, localiza el archivo inference.py. Edita la función output_fn en 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) -
Despliega el endpoint usando 1_DeployEndpoint.ipynb: En el entorno 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 subirlo a un bucket de Amazon S3. El notebook te guiará a través de la creación y despliegue de un endpoint de SageMaker para el modelo YOLO26.
Link to this sectionPaso 6: Prueba de tu despliegue#
Ahora que tu modelo YOLO26 está desplegado, es importante probar su rendimiento y funcionalidad.
-
Abre el notebook de prueba: En el mismo entorno Jupyter, localiza y abre el notebook 2_TestEndpoint.ipynb, también en el directorio sm-notebook.
-
Ejecuta el notebook de prueba: Sigue las instrucciones dentro del notebook para probar el endpoint de SageMaker desplegado. Esto incluye enviar una imagen al endpoint y ejecutar inferencias. Luego, trazarás el resultado para visualizar el rendimiento y la precisión del modelo, como se muestra a continuación.
- Limpia los recursos: El notebook de prueba también te guiará a través del 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 planeas utilizar el modelo desplegado inmediatamente.
Link to this sectionPaso 7: Monitorización y gestión#
Después de las pruebas, es esencial una monitorización y gestión continuas de tu modelo desplegado.
-
Monitoriza con Amazon CloudWatch: Comprueba regularmente el rendimiento y el estado de tu endpoint de SageMaker utilizando Amazon CloudWatch.
-
Gestiona el endpoint: Utiliza la consola de SageMaker para la gestión continua del endpoint. Esto incluye el escalado, la actualización o el nuevo despliegue del modelo según sea necesario.
Al completar estos pasos, habrás desplegado y probado con éxito un modelo YOLO26 en endpoints de Amazon SageMaker. Este proceso no solo te proporciona experiencia práctica en el uso de servicios de AWS para el despliegue de aprendizaje automático, sino que también sienta las bases para desplegar otros modelos avanzados en el futuro.
Link to this sectionResumen#
Esta guía te ha llevado paso a paso a través del despliegue de YOLO26 en endpoints de Amazon SageMaker utilizando AWS CloudFormation y AWS Cloud Development Kit (CDK). El proceso incluye la clonación del repositorio de GitHub necesario, la configuración del entorno CDK, el despliegue del modelo utilizando servicios de AWS y la prueba de su rendimiento en SageMaker.
Para obtener más detalles técnicos, consulta este artículo en el 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 diversas características y funcionalidades.
¿Te interesa saber más sobre diferentes 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.
Link to this sectionFAQ#
Link to this section¿Cómo despliego el modelo YOLO26 de Ultralytics en los endpoints de Amazon SageMaker?#
Para desplegar el modelo YOLO26 de Ultralytics en los endpoints de Amazon SageMaker, sigue estos pasos:
- Configura tu entorno AWS: Asegúrate de tener una cuenta de AWS, roles de IAM con los permisos necesarios y la AWS CLI configurada. Instala AWS CDK si no lo has hecho (consulta las instrucciones de AWS CDK).
- Clona el repositorio de YOLO26 SageMaker:
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 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 - Despliega usando AWS CDK: Sintetiza y despliega la pila de CloudFormation, arranca el entorno.
cdk synth cdk bootstrap cdk deploy
Para más detalles, revisa la sección de documentación.
Link to this section¿Cuáles son los requisitos previos para desplegar YOLO26 en Amazon SageMaker?#
Para desplegar YOLO26 en Amazon SageMaker, asegúrate de contar con los siguientes requisitos previos:
- Cuenta de AWS: 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: AWS Cloud Development Kit instalado (guía de configuración de CDK).
- Cuotas de servicio: Cuotas suficientes para instancias
ml.m5.4xlargetanto para el endpoint como para el uso de notebooks (solicita un aumento de cuota).
Para una configuración detallada, consulta esta sección.
Link to this section¿Por qué debería usar YOLO26 de Ultralytics en Amazon SageMaker?#
Usar YOLO26 de Ultralytics en Amazon SageMaker ofrece varias ventajas:
- Escalabilidad y gestión: SageMaker proporciona un entorno gestionado con funciones como el escalado automático, que ayuda en las necesidades de inferencia en tiempo real.
- Integración con servicios de AWS: Se integra perfectamente con otros servicios de AWS, como S3 para el almacenamiento de datos, CloudFormation para infraestructura como código y CloudWatch para la monitorización.
- Facilidad de despliegue: Configuración simplificada mediante scripts de AWS CDK y procesos de despliegue optimizados.
- Rendimiento: Aprovecha la infraestructura de alto rendimiento de Amazon SageMaker para ejecutar tareas de inferencia a gran escala de manera eficiente.
Explora más sobre las ventajas de usar SageMaker en la sección de introducción.
Link to this section¿Puedo personalizar la lógica de inferencia para YOLO26 en Amazon SageMaker?#
Sí, puedes personalizar la lógica de inferencia para YOLO26 en Amazon SageMaker:
-
Modifica
inference.py: Localiza y personaliza la funciónoutput_fnen el 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) -
Despliega el modelo actualizado: Asegúrate de volver a desplegar el modelo utilizando los notebooks de Jupyter proporcionados (
1_DeployEndpoint.ipynb) para incluir estos cambios.
Consulta los pasos detallados para desplegar el modelo modificado.
Link to this section¿Cómo puedo probar el modelo YOLO26 desplegado en Amazon SageMaker?#
Para probar el modelo YOLO26 desplegado en Amazon SageMaker:
- Abre el notebook de prueba: Localiza el notebook
2_TestEndpoint.ipynben el entorno 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 funcionalidades de trazado integradas para visualizar las métricas de rendimiento, como los cuadros delimitadores alrededor de los objetos detectados.
Para obtener instrucciones de prueba completas, visita la sección de pruebas.