Ultralytics YOLO27:
Get Started

Guía para implementar YOLO26 en los endpoints de Amazon SageMaker#

La implementación de modelos avanzados de visión artificial, como YOLO26 de Ultralytics, en los endpoints de Amazon SageMaker abre un amplio abanico de posibilidades para diversas aplicaciones de aprendizaje automático. Para utilizar estos modelos de forma eficaz, es fundamental comprender los procesos de configuración e implementación. YOLO26 ofrece aún más posibilidades cuando se integra a la perfección 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 YOLO26 de PyTorch en los endpoints de Amazon SageMaker. Aprenderás los aspectos esenciales para preparar tu entorno de AWS, configurar el modelo correctamente y utilizar herramientas como AWS CloudFormation y el kit de desarrollo de AWS (CDK) para la implementación.

Amazon SageMaker#

Amazon SageMaker ML platform architecture

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. Ofrece una amplia variedad de herramientas para gestionar distintos aspectos de los flujos de trabajo de aprendizaje automático. Entre ellas se incluyen 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 trabajo populares de aprendizaje automático y 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 los endpoints de Amazon SageMaker#

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. Echa un vistazo a la arquitectura de AWS que aparece a continuación.

AWS SageMaker YOLO training architecture

Paso 1: Configura tu entorno de AWS#

En primer lugar, asegúrate de tener preparados 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 de la nube de AWS (CDK), que se utilizará para crear los scripts de implementación. Sigue las instrucciones de AWS CDK para instalarlo.

  • Cuota de servicio suficiente: Confirma que tienes cuotas suficientes para dos recursos distintos de Amazon SageMaker: una para ml.m5.4xlarge, destinada al uso de endpoints, y otra para ml.m5.4xlarge, destinada al uso de instancias de cuaderno. Cada una requiere un valor de cuota mínimo de uno. Si tus cuotas actuales no alcanzan 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 cuotas de servicio de AWS.

Paso 2: Clona el repositorio de YOLO26 para SageMaker#

El siguiente paso es 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 el terminal para clonar el repositorio host-yolov8-on-sagemaker-endpoint:

    git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git
  • Ve 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 implementar con AWS CDK.

  • Crea un entorno virtual de Python: Así aislarás el 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 del 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 empezar con las instrucciones de implementación, echa un vistazo a la variedad de modelos YOLO26 que ofrece Ultralytics. Así podrás elegir el modelo más adecuado para los requisitos de tu proyecto.

Una vez creada la pila de AWS CloudFormation, el siguiente paso es implementar YOLO26.

  • Abre la instancia de cuaderno: Ve a la consola de AWS y accede al servicio Amazon SageMaker. Selecciona «Notebook Instances» en el panel y, a continuación, busca la instancia de cuaderno que creó el script de implementación de CDK. Abre la instancia de cuaderno para acceder al entorno de Jupyter.

  • Accede a inference.py y modifícalo: Después de abrir la instancia de cuaderno de SageMaker en Jupyter, busca 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, content_type):
        """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 con 1_DeployEndpoint.ipynb: En el entorno de Jupyter, abre el cuaderno 1_DeployEndpoint.ipynb, ubicado en el directorio sm-notebook. Sigue las instrucciones del cuaderno 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 cuaderno te guiará para crear e implementar un endpoint de SageMaker para el modelo YOLO26.

Paso 6: Prueba la implementación#

Ahora que has implementado el modelo YOLO26, es importante probar su rendimiento y funcionalidad.

  • Abre el cuaderno de pruebas: En el mismo entorno de Jupyter, busca y abre el cuaderno 2_TestEndpoint.ipynb, también ubicado en el directorio sm-notebook.

  • Ejecuta el cuaderno de pruebas: Sigue las instrucciones del cuaderno para probar el endpoint de SageMaker implementado. Esto incluye enviar una imagen al endpoint y ejecutar inferencias. Después, representarás la salida gráficamente para visualizar el rendimiento y la precisión del modelo, como se muestra a continuación.

Testing Results YOLO26

  • Limpia los recursos: El cuaderno de pruebas también te guiará por el proceso de eliminar el endpoint y el modelo alojado. Este paso es importante para gestionar eficazmente los costes y los recursos, sobre todo si no tienes previsto utilizar el modelo implementado de inmediato.

Paso 7: Supervisión y gestión#

Después de las pruebas, es fundamental supervisar y gestionar continuamente el modelo implementado.

  • Supervisa con Amazon CloudWatch: Comprueba periódicamente el rendimiento y el estado del endpoint de SageMaker mediante Amazon CloudWatch.

  • Gestiona el endpoint: Utiliza la consola de SageMaker para gestionar el endpoint de forma continua. Esto incluye escalar, actualizar o volver a implementar el modelo según sea necesario.

Al completar estos pasos, habrás desplegado y probado correctamente un modelo YOLO26 en Amazon SageMaker Endpoints. Este proceso no solo te proporciona experiencia práctica en el uso de los servicios de AWS para desplegar modelos de aprendizaje automático, sino que también sienta las bases para desplegar otros modelos avanzados en el futuro.

Resumen#

Esta guía te ha explicado paso a paso cómo desplegar 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, desplegar el modelo mediante los servicios de AWS y probar 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 conocer mejor sus distintas características y funcionalidades.

¿Te interesa saber más sobre las distintas integraciones de YOLO26? Visita la página de la guía de integraciones de Ultralytics para descubrir más herramientas y funciones que pueden mejorar tus proyectos de aprendizaje automático.

Preguntas frecuentes#

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

    1. Configura tu entorno de AWS: Asegúrate de tener una cuenta de AWS, roles de IAM con los permisos necesarios y AWS CLI configurado. Instala AWS CDK si aún no lo has hecho (consulta las instrucciones de AWS CDK).
    2. Clona el repositorio de YOLO26 para SageMaker:
      git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git
      cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk
    3. 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
    4. Despliega mediante AWS CDK: Sintetiza y despliega la pila de CloudFormation, e inicializa el entorno.
      cdk synth
      cdk bootstrap
      cdk deploy

    Para obtener más información, consulta la sección de documentación.

  • Para desplegar YOLO26 en Amazon SageMaker, asegúrate de cumplir estos requisitos previos:

    1. Cuenta de AWS: Una cuenta de AWS activa (regístrate aquí).
    2. Roles de IAM: Roles de 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: Kit de desarrollo en la nube de AWS instalado (guía de configuración de CDK).
    5. Cuotas de servicio: Cuotas suficientes para las instancias ml.m5.4xlarge tanto para los endpoints como para los notebooks (solicita un aumento de cuota).

    Para obtener instrucciones detalladas de configuración, consulta esta sección.

  • Usar Ultralytics YOLO26 en Amazon SageMaker ofrece varias ventajas:

    1. Escalabilidad y gestión: SageMaker proporciona un entorno gestionado con funciones como el escalado automático, que ayuda a satisfacer las necesidades de inferencia en tiempo real.
    2. Integración con los servicios de AWS: Intégralo sin problemas con otros servicios de AWS, como S3 para almacenar datos, CloudFormation para gestionar la infraestructura como código y CloudWatch para la supervisión.
    3. Facilidad de despliegue: Configuración simplificada mediante scripts de AWS CDK y procesos de despliegue optimizados.
    4. Rendimiento: Aprovecha la infraestructura de alto rendimiento de Amazon SageMaker para ejecutar tareas de inferencia a gran escala de forma eficiente.

    Descubre más ventajas de usar SageMaker en la sección de introducción.

  • Sí, puedes personalizar la lógica de inferencia de YOLO26 en Amazon SageMaker:

    1. Modifica inference.py: Busca y personaliza la función output_fn en el archivo inference.py para adaptar los formatos de salida.

      import json
      
      def output_fn(prediction_output, content_type):
          """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()
              # Añade más lógica de procesamiento si es necesario
          return json.dumps(infer)
    2. Despliega el modelo actualizado: Asegúrate de volver a desplegar el modelo usando los notebooks de Jupyter proporcionados (1_DeployEndpoint.ipynb) para incluir estos cambios.

    Consulta los pasos detallados para desplegar el modelo modificado.

  • Para probar el modelo YOLO26 desplegado en Amazon SageMaker:

    1. Abre el notebook de prueba: Busca el notebook 2_TestEndpoint.ipynb en el entorno Jupyter de SageMaker.
    2. Ejecuta el notebook: Sigue sus instrucciones para enviar una imagen al endpoint, realizar la inferencia y mostrar los resultados.
    3. Visualiza los resultados: Usa las funciones de trazado integradas para visualizar 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.

Comentarios