Guía para implementar YOLO11 en los puntos finales de Amazon SageMaker
La implementación de modelos avanzados de visión informática como Ultralytics' YOLO11 en puntos de enlace de Amazon SageMaker abre un amplio abanico de posibilidades para diversas aplicaciones de aprendizaje automático. La clave para utilizar eficazmente estos modelos reside en comprender sus procesos de instalación, configuración e implementación. YOLO11 se vuelve aún más potente cuando se integra a la perfección con Amazon SageMaker, un servicio de aprendizaje automático robusto y escalable de AWS.
Esta guía le llevará a través del proceso de despliegue de YOLO11 PyTorch en Amazon SageMaker Endpoints paso a paso. Aprenderá lo esencial para preparar su entorno de AWS, configurar el modelo adecuadamente 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, capacitación e implementación de modelos de aprendizaje automático. Ofrece una amplia gama de herramientas para gestionar diversos aspectos de los flujos de trabajo de aprendizaje automático. Esto incluye funciones automatizadas para ajustar modelos, opciones para entrenar modelos a escala y métodos sencillos para implementar modelos en producción. SageMaker es compatible con los marcos de aprendizaje automático más populares, ofreciendo la flexibilidad necesaria para diversos proyectos. Sus características también cubren el etiquetado de datos, la gestión de flujos de trabajo y el análisis de rendimiento.
Implementación de YOLO11 en los puntos finales de Amazon SageMaker
La implementación de YOLO11 en Amazon SageMaker le permite utilizar su entorno administrado para la inferencia en tiempo real y aprovechar características como el autoescalado. Eche un vistazo a la arquitectura de AWS a continuación.
Paso 1: Configure su entorno de AWS
En primer lugar, 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 IAM configurados: Necesitará 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, descargue e instale la interfaz de línea de comandos de AWS (CLI) y configúrela con los datos de su cuenta. Siga las instrucciones de AWS CLI para la instalación.
-
AWS CDK: si aún no está instalado, instale el kit de desarrollo en la nube de AWS (CDK), que se utilizará para programar la implementación. Siga las instrucciones de instalación de AWS CDK.
-
Cuota de servicio adecuada: Confirme que dispone de cuotas suficientes para dos recursos independientes en Amazon SageMaker: uno para
ml.m5.4xlarge
para el uso de terminales y otro paraml.m5.4xlarge
para el uso de la instancia de portátil. Cada una de ellas requiere un valor mínimo de cuota. Si sus cuotas actuales están por debajo de este requisito, es importante que solicite un aumento para cada una de ellas. Puede solicitar un aumento de cuota siguiendo las instrucciones detalladas en la sección Documentación sobre cuotas de servicio de AWS.
Paso 2: Clonar el repositorio de SageMaker YOLO11
El siguiente paso es clonar el repositorio específico de AWS que contiene los recursos para implementar YOLO11 en SageMaker. Este repositorio, alojado en GitHub, incluye los scripts 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:
- Navegue hasta el directorio clonado: Cambia tu directorio al repositorio clonado:
Paso 3: Configurar el entorno CDK
Ahora que tiene el código necesario, configure su entorno para la implementación con AWS CDK.
- Cree un entorno virtual Python : Esto aísla su entorno Python y dependencias. Ejecutar:
- Active el Entorno Virtual:
- Instalar dependencias: Instale las dependencias de Python necesarias para el proyecto:
- Actualice la biblioteca AWS CDK: Asegúrese de que dispone de la versión más reciente de la biblioteca AWS CDK:
Paso 4: Crear la pila de AWS CloudFormation
- Sintetice la aplicación CDK: Genere la plantilla de AWS CloudFormation a partir de su código CDK:
- Prepare la aplicación CDK: Prepare su entorno de AWS para la implementación de CDK:
- Desplegar la pila: Esto creará los recursos de AWS necesarios e implementará su modelo:
Paso 5: Implantar el modelo YOLO
Antes de sumergirse en las instrucciones de despliegue, asegúrese de consultar la gama de modelos deYOLO11 que ofrece Ultralytics. Esto le ayudará a elegir el modelo más apropiado para los requisitos de su proyecto.
Después de crear la pila de AWS CloudFormation, el siguiente paso es implementar YOLO11.
-
Abra la Instancia de Notebook: Vaya a la consola de AWS y navegue hasta el servicio Amazon SageMaker. Seleccione "Notebook Instances" en el panel y, a continuación, localice la instancia de bloc de notas creada por el script de implementación de CDK. Abra la instancia de cuaderno para acceder al entorno Jupyter.
-
Acceder y Modificar inference.py: Después de abrir la instancia del cuaderno SageMaker en Jupyter, localice el archivo inference.py. Edite la función output_fn en inference.py como se muestra a continuación y guarde los cambios en el script, asegurándose de que no hay 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)
- Despliegue del Endpoint utilizando 1_DeployEndpoint.ipynb: En el entorno Jupyter, abra el cuaderno 1_DeployEndpoint.ipynb ubicado en el directorio sm-notebook. Siga las instrucciones del cuaderno y ejecute las celdas para descargar el modelo YOLO11 , empaquetarlo con el código de inferencia actualizado y cargarlo en un bucket de Amazon S3. El cuaderno le guiará a través de la creación y despliegue de un endpoint SageMaker para el modelo YOLO11 .
Paso 6: Probar la implantación
Ahora que su modelo YOLO11 está desplegado, es importante probar su rendimiento y funcionalidad.
-
Abra el cuaderno de pruebas: En el mismo entorno Jupyter, localice y abra el cuaderno 2_TestEndpoint.ipynb, también en el directorio sm-notebook.
-
Ejecute el cuaderno de pruebas: Siga las instrucciones del cuaderno para probar el endpoint de SageMaker desplegado. Esto incluye enviar una imagen al endpoint y ejecutar inferencias. A continuación, trazará el resultado para visualizar el rendimiento y la precisión del modelo, como se muestra a continuación.
- Recursos de limpieza: El cuaderno de pruebas también le 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 tiene previsto utilizar el modelo desplegado de forma inmediata.
Paso 7: Seguimiento y gestión
Después de las pruebas, son esenciales la supervisión y la gestión continuas del modelo implantado.
-
Monitorice con Amazon CloudWatch: Compruebe regularmente el rendimiento y el estado de su punto final de SageMaker con Amazon CloudWatch.
-
Gestionar el Endpoint: Utilice la consola de SageMaker para la gestión continua del endpoint. Esto incluye la ampliación, actualización o redistribución del modelo según sea necesario.
Al completar estos pasos, habrá implementado y probado correctamente un modelo YOLO11 en Amazon SageMaker Endpoints. Este proceso no solo le proporciona experiencia práctica en el uso de los servicios de AWS para la implementación del aprendizaje automático, sino que también sienta las bases para implementar otros modelos avanzados en el futuro.
Resumen
En esta guía se explica paso a paso cómo implementar YOLO11 en los puntos finales de Amazon SageMaker mediante AWS CloudFormation y el kit de desarrollo en la nube de AWS (CDK). El proceso incluye la clonación del repositorio de GitHub necesario, la configuración del entorno CDK, la implementación del modelo mediante los servicios de AWS y la prueba de su desempeño en SageMaker.
Para obtener más detalles técnicos, consulte este artículo del blog de aprendizaje automático de AWS. También puede consultar la documentación oficial de Amazon SageMaker para obtener más información sobre varias características y funcionalidades.
¿Le interesa saber más sobre las diferentes integraciones de YOLO11 ? Visite la página de la guía de integraciones deUltralytics para descubrir herramientas y capacidades adicionales que pueden mejorar sus proyectos de aprendizaje automático.
PREGUNTAS FRECUENTES
¿Cómo despliego el modelo Ultralytics YOLO11 en los puntos finales de Amazon SageMaker?
Para implementar el modelo Ultralytics YOLO11 en los puntos finales de Amazon SageMaker, siga estos pasos:
- Configure su entorno de AWS: Asegúrese de que tiene una cuenta de AWS, roles de IAM con los permisos necesarios y AWS CLI configurado. Instale AWS CDK si aún no lo ha hecho (consulte las instrucciones de AWS CDK).
- Clone el repositorio SageMaker de YOLO11:
- Configuración del entorno CDK: Cree un entorno virtual Python , actívelo, instale las dependencias y actualice la biblioteca AWS CDK.
- Implementación con AWS CDK: Sintetizar y desplegar la pila de CloudFormation, arrancar el entorno.
Para más detalles, consulte la sección de documentación.
¿Cuáles son los requisitos previos para implementar YOLO11 en Amazon SageMaker?
Para implementar YOLO11 en Amazon SageMaker, asegúrese de que dispone de los siguientes requisitos previos:
- Cuenta de AWS: Cuenta de AWS activa(regístrese aquí).
- Roles IAM: Roles IAM configurados con permisos para SageMaker, CloudFormation y Amazon S3.
- AWS CLI: Instalada y configurada la interfaz de línea de comandos de AWS(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
ml.m5.4xlarge
tanto para el uso de terminales como de portátiles (solicitar un aumento de cuota).
Para una configuración detallada, consulte esta sección.
¿Por qué debería utilizar Ultralytics YOLO11 en Amazon SageMaker?
El uso de Ultralytics YOLO11 en Amazon SageMaker ofrece varias ventajas:
- Escalabilidad y Gestión: SageMaker proporciona un entorno gestionado con características como el autoescalado, que ayuda en las necesidades de inferencia en tiempo real.
- Integración con servicios de AWS: Integración perfecta con otros servicios de AWS, como S3 para el almacenamiento de datos, CloudFormation para la infraestructura como código y CloudWatch para la monitorización.
- Facilidad de implementación: Configuración simplificada mediante scripts de AWS CDK y procesos de implementación optimizados.
- Rendimiento: Aproveche la infraestructura de alto rendimiento de Amazon SageMaker para ejecutar tareas de inferencia a gran escala de manera eficiente.
Obtenga más información sobre las ventajas de utilizar SageMaker en la sección de introducción.
¿Puedo personalizar la lógica de inferencia para YOLO11 en Amazon SageMaker?
Sí, puede personalizar la lógica de inferencia para YOLO11 en Amazon SageMaker:
-
Modifique
inference.py
: Localice y personalice eloutput_fn
en la funcióninference.py
para 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)
-
Implantar el modelo actualizado: Asegúrese de volver a desplegar el modelo utilizando los cuadernos Jupyter proporcionados (
1_DeployEndpoint.ipynb
) para incluir estos cambios.
Consulte los pasos detallados para desplegar el modelo modificado.
¿Cómo puedo probar el modelo YOLO11 desplegado en Amazon SageMaker?
Para probar el modelo YOLO11 desplegado en Amazon SageMaker:
- Abrir el Cuaderno de Pruebas: Localice el
2_TestEndpoint.ipynb
en el entorno Jupyter de SageMaker. - Ejecute el Cuaderno: Siga las instrucciones del cuaderno para enviar una imagen al endpoint, realizar la inferencia y mostrar los resultados.
- Visualización de resultados: Utilice las funciones de trazado integradas para visualizar las métricas de rendimiento, como los cuadros delimitadores alrededor de los objetos detectados.
Para obtener instrucciones completas sobre las pruebas, visite la sección de pruebas.