Una guía para implementar YOLO11 en los puntos de conexión de Amazon SageMaker
Implementar modelos avanzados de visión artificial como YOLO11 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 reside en comprender su configuración y sus procesos de 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 guiará a través del proceso de implementación de modelos PyTorch YOLO11 en Amazon SageMaker Endpoints paso a paso. Aprenderá los aspectos esenciales de la preparación de su entorno AWS, la configuración adecuada del modelo y el uso de herramientas como AWS CloudFormation y el AWS Cloud Development Kit (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 construcción, entrenamiento e implementación de modelos de aprendizaje automático. Proporciona una amplia gama de herramientas para manejar varios 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 frameworks 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 del flujo de trabajo y el análisis del rendimiento.
Implementación de YOLO11 en Amazon SageMaker Endpoints
La implementación de YOLO11 en Amazon SageMaker le permite utilizar su entorno gestionado para la inferencia en tiempo real y aprovechar funciones como el autoescalado. Eche un vistazo a la arquitectura de AWS que se muestra a continuación.
Paso 1: Configure Su Entorno de AWS
Primero, asegúrese de tener 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á 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á instalado, descarga e instala la AWS Command Line Interface (CLI) y configúrala con los detalles de tu cuenta. Sigue las instrucciones de AWS CLI para la instalación.
-
AWS CDK: Si aún no está instalado, instala el AWS Cloud Development Kit (CDK), que se utilizará para crear scripts de la implementación. Sigue las instrucciones de AWS CDK para la instalación.
-
Cuota de servicio adecuada: Confirme que tiene cuotas suficientes para dos recursos separados en Amazon SageMaker: uno para
ml.m5.4xlarge
para el uso de endpoints y otro paraml.m5.4xlarge
para el uso de instancias de notebook. Cada uno de estos requiere un valor de cuota mínimo. Si tus cuotas actuales están por debajo de este requisito, es importante solicitar un aumento para cada uno. Puedes solicitar un aumento de cuota siguiendo las instrucciones detalladas en el Documentación de cuotas de servicio de AWS.
Paso 2: Clone el Repositorio SageMaker de 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 y archivos de configuración CDK necesarios.
-
Clonar el repositorio de GitHub: Ejecute el siguiente comando en su terminal para clonar el repositorio host-yolov8-on-sagemaker-endpoint:
git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git
-
Navegue al directorio clonado: Cambie su directorio al repositorio clonado:
cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk
Paso 3: Configure el entorno CDK
Ahora que tiene el código necesario, configure su entorno para la implementación con AWS CDK.
-
Crear un entorno virtual de Python: Esto aísla su entorno y dependencias de Python. Ejecute:
python3 -m venv .venv
-
Active el entorno virtual:
source .venv/bin/activate
-
Instalar dependencias: Instale las dependencias de python necesarias para el proyecto:
pip3 install -r requirements.txt
-
Actualizar la biblioteca AWS CDK: Asegúrese de tener la última versión de la biblioteca AWS CDK:
pip install --upgrade aws-cdk-lib
Paso 4: Cree 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
-
Inicializa la aplicación CDK: Prepara tu entorno de AWS para la implementación de CDK:
cdk bootstrap
-
Implementar la pila: Esto creará los recursos de AWS necesarios e implementará su modelo:
cdk deploy
Paso 5: Implemente el modelo YOLO
Antes de sumergirte en las instrucciones de implementación, asegúrate de consultar la gama de modelos YOLO11 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 YOLO11.
-
Abrir la instancia de Notebook: Ve a la consola de AWS y navega al servicio de Amazon SageMaker. Selecciona "Notebook Instances" en el panel de control, luego localiza la instancia de notebook que fue creada por tu script de implementación de CDK. Abre la instancia de notebook para acceder al entorno de Jupyter.
-
Acceda y modifique inference.py: Después de abrir la instancia del notebook de 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 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)
-
Implemente el punto final usando 1_DeployEndpoint.ipynb: En el entorno de 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 cárguelo en un bucket de Amazon S3. El cuaderno le guiará a través de la creación e implementación de un punto final de SageMaker para el modelo YOLO11.
Paso 6: Pruebas de su implementación
Ahora que su modelo YOLO11 está implementado, es importante probar su rendimiento y funcionalidad.
-
Abrir el cuaderno de prueba: En el mismo entorno de Jupyter, localice y abra el cuaderno 2_TestEndpoint.ipynb, también en el directorio sm-notebook.
-
Ejecute el cuaderno de prueba: Siga las instrucciones dentro del cuaderno para probar el punto final de SageMaker implementado. Esto incluye el envío de una imagen al punto final y la ejecución de inferencias. Luego, trazará la salida para visualizar el rendimiento y la precisión del modelo, como se muestra a continuación.
- Limpieza de recursos: El notebook de prueba 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 inmediatamente.
Paso 7: Monitoreo y gestión
Después de las pruebas, la supervisión y la gestión continuas de tu modelo implementado son esenciales.
-
Supervisa con Amazon CloudWatch: Comprueba regularmente el rendimiento y el estado de tu endpoint de SageMaker utilizando Amazon CloudWatch.
-
Administrar el punto de conexión: Utilice la consola de SageMaker para la gestión continua del punto de conexión. Esto incluye escalar, actualizar o volver a implementar el modelo según sea necesario.
Al completar estos pasos, habrás implementado y probado con éxito un modelo YOLO11 en Amazon SageMaker Endpoints. Este proceso no solo te 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 la implementación de otros modelos avanzados en el futuro.
Resumen
Esta guía le llevó paso a paso a través de la implementación de YOLO11 en Amazon SageMaker Endpoints utilizando AWS CloudFormation y el AWS Cloud Development Kit (CDK). El proceso incluye la clonación del repositorio GitHub necesario, la configuración del entorno CDK, la implementación del modelo utilizando los 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 AWS Machine Learning. También puedes consultar la Documentación oficial de Amazon SageMaker para obtener más información sobre diversas características y funcionalidades.
¿Le interesa obtener más información sobre las diferentes integraciones de YOLO11? Visite la página de la guía de integraciones de Ultralytics para descubrir herramientas y capacidades adicionales que pueden mejorar sus proyectos de aprendizaje automático.
Preguntas frecuentes
¿Cómo puedo implementar el modelo Ultralytics YOLO11 en Amazon SageMaker Endpoints?
Para implementar el modelo Ultralytics YOLO11 en Amazon SageMaker Endpoints, siga estos pasos:
- Configurar su entorno de AWS: Asegúrese de tener una cuenta de AWS, roles de IAM con los permisos necesarios y la CLI de AWS configurada. Instale AWS CDK si aún no lo ha hecho (consulte las instrucciones de AWS CDK).
- Clonar el repositorio YOLO11 SageMaker:
git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk
- Configurar el entorno CDK: Cree un entorno virtual de python, actívelo, instale las dependencias y actualice la biblioteca AWS CDK.
python3 -m venv .venv source .venv/bin/activate pip3 install -r requirements.txt pip install --upgrade aws-cdk-lib
- Implementar usando AWS CDK: Sintetice e implemente la pila de CloudFormation, inicialice el entorno.
cdk synth cdk bootstrap cdk deploy
Para obtener más detalles, revise 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 tener los siguientes requisitos previos:
- Cuenta de AWS: Cuenta activa de AWS (regístrese aquí).
- Roles IAM: Roles 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
ml.m5.4xlarge
instancias tanto para el uso de endpoints como de notebooks (solicitar un aumento de cuota).
Para obtener una configuración detallada, consulta esta sección.
¿Por qué debería usar 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 los servicios de AWS: Intégrese sin problemas 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: Aproveche la infraestructura de alto rendimiento de Amazon SageMaker para ejecutar tareas de inferencia a gran escala de forma eficiente.
Explore más sobre las ventajas de usar SageMaker en la sección de introducción.
¿Puedo personalizar la lógica de inferencia para YOLO11 en Amazon SageMaker?
Sí, puedes personalizar la lógica de inferencia para YOLO11 en Amazon SageMaker:
-
Modificar
inference.py
: Localice y personalice eloutput_fn
función en elinference.py
archivo 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)
-
Implementar modelo actualizado: Asegúrese de volver a implementar el modelo utilizando los cuadernos Jupyter proporcionados (
1_DeployEndpoint.ipynb
) para incluir estos cambios.
Consulte los pasos detallados para implementar 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 prueba: Localice el
2_TestEndpoint.ipynb
notebook en el entorno SageMaker Jupyter. - Ejecutar el Notebook: Siga las instrucciones del notebook para enviar una imagen al endpoint, realizar la inferencia y mostrar los resultados.
- Visualizar resultados: Utilice 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 exhaustivas, visita la sección de pruebas.