Saltar al contenido

A Guide to Deploying YOLO11 on Amazon SageMaker Endpoints

Deploying advanced computer vision models like Ultralytics' YOLO11 on Amazon SageMaker Endpoints opens up a wide range of possibilities for various machine learning applications. The key to effectively using these models lies in understanding their setup, configuration, and deployment processes. YOLO11 becomes even more powerful when integrated seamlessly with Amazon SageMaker, a robust and scalable machine learning service by AWS.

This guide will take you through the process of deploying YOLO11 PyTorch models on Amazon SageMaker Endpoints step by step. You'll learn the essentials of preparing your AWS environment, configuring the model appropriately, and using tools like AWS CloudFormation and the AWS Cloud Development Kit (CDK) for deployment.

Amazon SageMaker

Visi贸n general de Amazon 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 manejar 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 desplegar 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 funciones tambi茅n cubren el etiquetado de datos, la gesti贸n del flujo de trabajo y el an谩lisis del rendimiento.

Deploying YOLO11 on Amazon SageMaker Endpoints

Deploying YOLO11 on Amazon SageMaker lets you use its managed environment for real-time inference and take advantage of features like autoscaling. Take a look at the AWS architecture below.

Arquitectura AWS

Paso 1: Configura tu entorno AWS

En primer lugar, aseg煤rate de que re煤nes 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谩 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 la instalaci贸n.

  • AWS CDK: Si a煤n no est谩 instalado, instala el Kit de Desarrollo en la Nube de AWS (CDK), que se utilizar谩 para programar el despliegue. Sigue las instrucciones de instalaci贸n del CDK de AWS.

  • Cuota de servicio adecuada: Confirma que tienes cuotas suficientes para dos recursos separados en Amazon SageMaker: uno para ml.m5.4xlarge para el uso del punto final y otro para ml.m5.4xlarge para el uso de la instancia de port谩til. Cada una de ellas requiere un valor m铆nimo de cuota. Si tus cuotas actuales est谩n por debajo de este requisito, es importante que solicites un aumento para cada una de ellas. Puedes solicitar un aumento de cuota siguiendo las instrucciones detalladas en la secci贸n Documentaci贸n sobre las cuotas de servicio de AWS.

Step 2: Clone the YOLO11 SageMaker Repository

The next step is to clone the specific AWS repository that contains the resources for deploying YOLO11 on SageMaker. This repository, hosted on GitHub, includes the necessary CDK scripts and configuration files.

  • 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 hasta el directorio clonado: Cambia tu directorio al repositorio clonado:
cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk

Paso 3: Configurar el entorno CDK

Ahora que ya tienes el c贸digo necesario, configura tu entorno para el despliegue con AWS CDK.

  • Crea un Entorno Virtual Python : Esto a铆sla tu entorno Python y sus dependencias. Ejec煤talo:
python3 -m venv .venv
  • Activa el Entorno Virtual:
source .venv/bin/activate
  • Instalar dependencias: Instala las dependencias de Python necesarias para el proyecto:
pip3 install -r requirements.txt
  • Actualiza la biblioteca CDK de AWS: Aseg煤rate de que tienes la 煤ltima versi贸n de la biblioteca AWS CDK:
pip install --upgrade aws-cdk-lib

Paso 4: Crear 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
  • Prepara 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

Step 5: Deploy the YOLO Model

Before diving into the deployment instructions, be sure to check out the range of YOLO11 models offered by Ultralytics. This will help you choose the most appropriate model for your project requirements.

After creating the AWS CloudFormation Stack, the next step is to deploy YOLO11.

  • Abre la Instancia de Notebook: Ve a la consola de AWS y navega hasta el servicio Amazon SageMaker. Selecciona "Instancias de bloc de notas" en el panel de control y localiza la instancia de bloc de notas creada por tu script de despliegue del CDK. Abre la instancia de bloc de notas para acceder al entorno Jupyter.

  • Accede y modifica inference.py: Tras abrir la instancia del cuaderno SageMaker 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 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)
  • Deploy the Endpoint Using 1_DeployEndpoint.ipynb: In the Jupyter environment, open the 1_DeployEndpoint.ipynb notebook located in the sm-notebook directory. Follow the instructions in the notebook and run the cells to download the YOLO11 model, package it with the updated inference code, and upload it to an Amazon S3 bucket. The notebook will guide you through creating and deploying a SageMaker endpoint for the YOLO11 model.

Paso 6: Probar tu implantaci贸n

Now that your YOLO11 model is deployed, it's important to test its performance and functionality.

  • Abre el Cuaderno de Pruebas: En el mismo entorno Jupyter, localiza y abre el cuaderno 2_TestEndpoint.ipynb, tambi茅n en el directorio sm-notebook.

  • Run the Test Notebook: Follow the instructions within the notebook to test the deployed SageMaker endpoint. This includes sending an image to the endpoint and running inferences. Then, you'll plot the output to visualize the model's performance and accuracy, as shown below.

Testing Results YOLO11

  • Recursos de limpieza: El cuaderno de pruebas tambi茅n te guiar谩 en el proceso de limpieza del endpoint y del modelo alojado. 脡ste es un paso importante para gestionar eficazmente los costes y los recursos, sobre todo si no piensas utilizar inmediatamente el modelo desplegado.

Paso 7: Seguimiento y gesti贸n

Despu茅s de las pruebas, son esenciales la supervisi贸n y la gesti贸n continuas de tu modelo desplegado.

  • Monitoriza con Amazon CloudWatch: Comprueba regularmente el rendimiento y la salud de tu endpoint de SageMaker utilizando Amazon CloudWatch.

  • Gestionar el Endpoint: Utiliza la consola de SageMaker para la gesti贸n continua del endpoint. Esto incluye escalar, actualizar o volver a desplegar el modelo seg煤n sea necesario.

By completing these steps, you will have successfully deployed and tested a YOLO11 model on Amazon SageMaker Endpoints. This process not only equips you with practical experience in using AWS services for machine learning deployment but also lays the foundation for deploying other advanced models in the future.

Resumen

This guide took you step by step through deploying YOLO11 on Amazon SageMaker Endpoints using AWS CloudFormation and the AWS Cloud Development Kit (CDK). The process includes cloning the necessary GitHub repository, setting up the CDK environment, deploying the model using AWS services, and testing its performance on SageMaker.

Para obtener m谩s detalles t茅cnicos, consulta este art铆culo del 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.

Are you interested in learning more about different YOLO11 integrations? Visit the Ultralytics integrations guide page to discover additional tools and capabilities that can enhance your machine-learning projects.

PREGUNTAS FRECUENTES

How do I deploy the Ultralytics YOLO11 model on Amazon SageMaker Endpoints?

To deploy the Ultralytics YOLO11 model on Amazon SageMaker Endpoints, follow these steps:

  1. Configura tu entorno de AWS: Aseg煤rate de que tienes una cuenta de AWS, roles 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. Clone the YOLO11 SageMaker Repository:
    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: Crea un entorno virtual Python , act铆valo, instala las dependencias y actualiza 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 con AWS CDK: Sintetiza y despliega la pila de CloudFormation, arranca el entorno.
    cdk synth
    cdk bootstrap
    cdk deploy
    

Para m谩s detalles, consulta la secci贸n de documentaci贸n.

What are the prerequisites for deploying YOLO11 on Amazon SageMaker?

To deploy YOLO11 on Amazon SageMaker, ensure you have the following prerequisites:

  1. Cuenta AWS: Cuenta AWS activa(reg铆strate aqu铆).
  2. Roles IAM: Roles IAM configurados con permisos para SageMaker, CloudFormation y Amazon S3.
  3. AWS CLI: Instalada y configurada la interfaz de l铆nea de comandos de AWS(gu铆a de instalaci贸n de AWS CLI ).
  4. AWS CDK: Kit de desarrollo en la nube de AWS instalado(gu铆a de instalaci贸n del CDK).
  5. Cuotas de servicio: Cuotas suficientes para ml.m5.4xlarge tanto para el uso del punto final como del cuaderno (solicitar un aumento de cuota).

Para una configuraci贸n detallada, consulta esta secci贸n.

Why should I use Ultralytics YOLO11 on Amazon SageMaker?

Using Ultralytics YOLO11 on Amazon SageMaker offers several advantages:

  1. Escalabilidad y gesti贸n: SageMaker proporciona un entorno gestionado con funciones como el autoescalado, que ayuda en las necesidades de inferencia en tiempo real.
  2. Integraci贸n con los servicios de AWS: Se integra perfectamente con otros servicios de AWS, como S3 para almacenamiento de datos, CloudFormation para infraestructura como c贸digo y CloudWatch para monitorizaci贸n.
  3. Facilidad de implementaci贸n: Configuraci贸n simplificada mediante scripts AWS CDK y procesos de despliegue agilizados.
  4. Rendimiento: Aprovecha la infraestructura de alto rendimiento de Amazon SageMaker para ejecutar eficientemente tareas de inferencia a gran escala.

Explora m谩s sobre las ventajas de utilizar SageMaker en la secci贸n de introducci贸n.

Can I customize the inference logic for YOLO11 on Amazon SageMaker?

Yes, you can customize the inference logic for YOLO11 on Amazon SageMaker:

  1. Modifica inference.py: Localiza y personaliza el output_fn en la funci贸n inference.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)
    
  2. Despliega el modelo actualizado: Aseg煤rate de que vuelves a desplegar el modelo utilizando los cuadernos Jupyter proporcionados (1_DeployEndpoint.ipynb) para incluir estos cambios.

Consulta los pasos detallados para desplegar el modelo modificado.

How can I test the deployed YOLO11 model on Amazon SageMaker?

To test the deployed YOLO11 model on Amazon SageMaker:

  1. Abre el Cuaderno de Pruebas: Localiza el 2_TestEndpoint.ipynb en el entorno Jupyter de SageMaker.
  2. Ejecuta el Cuaderno: Sigue las instrucciones del cuaderno para enviar una imagen al endpoint, realizar la inferencia y mostrar los resultados.
  3. Visualiza los resultados: Utiliza 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, visita la secci贸n de pruebas.


馃搮C reado hace 9 meses 鉁忥笍 Actualizado hace 6 d铆as

Comentarios