Ir al contenido

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

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, 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.

Arquitectura de AWS

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 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 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:
git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git
  • Navegue 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 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:
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
  • Actualice la biblioteca AWS CDK: Aseg煤rese de que dispone de la versi贸n m谩s reciente de la biblioteca AWS CDK:
pip install --upgrade aws-cdk-lib

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:
cdk synth
  • Prepare la aplicaci贸n CDK: Prepare su entorno de AWS para la implementaci贸n de CDK:
cdk bootstrap
  • Desplegar la pila: Esto crear谩 los recursos de AWS necesarios e implementar谩 su modelo:
cdk deploy

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.

Resultados de las pruebas YOLO11

  • 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:

  1. 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).
  2. Clone el repositorio SageMaker de YOLO11:
    git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git
    cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk
    
  3. Configuraci贸n del entorno CDK: Cree un entorno virtual 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. Implementaci贸n con AWS CDK: Sintetizar y desplegar la pila de CloudFormation, arrancar el entorno.
    cdk synth
    cdk bootstrap
    cdk deploy
    

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:

  1. Cuenta de AWS: Cuenta de AWS activa(reg铆strese 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 configuraci贸n de CDK).
  5. 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:

  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 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.
  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 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:

  1. Modifique inference.py: Localice y personalice 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. 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:

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

Creado hace 11 meses 鉁忥笍 Actualizado hace 2 meses

Comentarios