Ir al contenido

Una Guía para Desplegar YOLO26 en Amazon SageMaker Endpoints

El despliegue de modelos avanzados de visión por computadora como Ultralytics' YOLO26 en Amazon SageMaker Endpoints 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 configuración, ajuste y despliegue. YOLO26 se vuelve aún más potente cuando se integra sin problemas con Amazon SageMaker, un servicio de aprendizaje automático robusto y escalable de AWS.

Esta guía le llevará paso a paso a través del proceso de despliegue de modelos YOLO26 PyTorch en Amazon SageMaker Endpoints. Aprenderá los elementos esenciales para preparar su entorno AWS, configurar el modelo de forma adecuada y utilizar herramientas como AWS CloudFormation y AWS Cloud Development Kit (CDK) para el despliegue.

Amazon SageMaker

Arquitectura de la plataforma de aprendizaje automático 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.

Despliegue de YOLO26 en Amazon SageMaker Endpoints

Desplegar YOLO26 en Amazon SageMaker le permite utilizar su entorno gestionado para inferencia en tiempo real y aprovechar características como el autoescalado. Eche un vistazo a la arquitectura de AWS a continuación.

Arquitectura de YOLO de AWS SageMaker

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 para ml.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: Clonar el repositorio YOLO26 SageMaker

El siguiente paso es clonar el repositorio específico de AWS que contiene los recursos para desplegar YOLO26 en SageMaker. Este repositorio, alojado en GitHub, incluye los scripts CDK y los archivos de configuración 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 sumergirse en las instrucciones de despliegue, asegúrese de consultar la gama de modelos YOLO26 ofrecidos por Ultralytics. Esto le ayudará a elegir el modelo más adecuado para los requisitos de su proyecto.

Después de crear la pila de AWS CloudFormation, el siguiente paso es desplegar YOLO26.

  • 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)
    
  • Desplegar el Endpoint usando 1_DeployEndpoint.ipynb: En el entorno Jupyter, abra el notebook 1_DeployEndpoint.ipynb ubicado en el directorio sm-notebook. Siga las instrucciones del notebook y ejecute 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 le guiará a través de la creación y el despliegue de un endpoint de SageMaker para el modelo YOLO26.

Paso 6: Pruebas de su implementación

Ahora que su modelo YOLO26 está desplegado, 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.

Resultados de las pruebas YOLO26

  • 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á desplegado y probado con éxito un modelo YOLO26 en Amazon SageMaker Endpoints. Este proceso no solo le proporciona experiencia práctica en el uso de los servicios de AWS para el despliegue de aprendizaje automático, sino que también sienta las bases para el despliegue de otros modelos avanzados en el futuro.

Resumen

Esta guía le llevó paso a paso a través del despliegue de YOLO26 en Amazon SageMaker Endpoints 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 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.

¿Está interesado en aprender más sobre las diferentes integraciones de YOLO26? 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 despliego el modelo Ultralytics YOLO26 en Amazon SageMaker Endpoints?

Para desplegar el modelo Ultralytics YOLO26 en Amazon SageMaker Endpoints, siga estos pasos:

  1. 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).
  2. Clonar el repositorio YOLO26 SageMaker:
    git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git
    cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk
    
  3. 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
    
  4. 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 desplegar YOLO26 en Amazon SageMaker?

Para desplegar YOLO26 en Amazon SageMaker, asegúrese de cumplir los siguientes requisitos previos:

  1. Cuenta de AWS: Cuenta activa de AWS (regístrese aquí).
  2. Roles IAM: Roles IAM configurados con permisos para SageMaker, CloudFormation y Amazon S3.
  3. AWS CLI: Interfaz de línea de comandos de AWS instalada y configurada (guía de instalación de AWS CLI).
  4. AWS CDK: AWS Cloud Development Kit instalado (guía de configuración de CDK).
  5. 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 YOLO26 en Amazon SageMaker?

El uso de Ultralytics YOLO26 en Amazon SageMaker ofrece varias ventajas:

  1. 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.
  2. 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.
  3. Facilidad de implementación: Configuración simplificada mediante scripts de AWS CDK y procesos de implementación optimizados.
  4. 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 YOLO26 en Amazon SageMaker?

Sí, puede personalizar la lógica de inferencia para YOLO26 en Amazon SageMaker:

  1. Modificar inference.py: Localice y personalice el output_fn función en el inference.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)
    
  2. 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 YOLO26 desplegado en Amazon SageMaker?

Para probar el modelo YOLO26 desplegado en Amazon SageMaker:

  1. Abrir el cuaderno de prueba: Localice el 2_TestEndpoint.ipynb notebook en el entorno SageMaker Jupyter.
  2. Ejecutar el Notebook: Siga las instrucciones del notebook para enviar una imagen al endpoint, realizar la inferencia y mostrar los resultados.
  3. 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.



📅 Creado hace 2 años ✏️ Actualizado hace 5 días
glenn-jocherLaughing-qUltralyticsAssistantRizwanMunawarambitious-octopussergiuwaxmannabirami-vina

Comentarios