Passer au contenu

Un guide pour déployer YOLO11 sur les points de terminaison Amazon SageMaker

Le déploiement de modèles avancés de vision par ordinateur tels que YOLO11 d'Ultralytics sur les points de terminaison Amazon SageMaker ouvre un large éventail de possibilités pour diverses applications d'apprentissage automatique. La clé pour utiliser efficacement ces modèles réside dans la compréhension de leur configuration, de leur configuration et de leurs processus de déploiement. YOLO11 devient encore plus puissant lorsqu'il est intégré de manière transparente à Amazon SageMaker, un service d'apprentissage automatique robuste et évolutif d'AWS.

Ce guide vous accompagnera étape par étape dans le processus de déploiement des modèles PyTorch YOLO11 sur Amazon SageMaker Endpoints. Vous apprendrez les bases de la préparation de votre environnement AWS, de la configuration appropriée du modèle et de l'utilisation d'outils tels que AWS CloudFormation et l'AWS Cloud Development Kit (CDK) pour le déploiement.

Amazon SageMaker

Présentation d'Amazon SageMaker

Amazon SageMaker est un service de machine learning d’Amazon Web Services (AWS) qui simplifie le processus de construction, d’entraînement et de déploiement de modèles de machine learning. Il fournit une large gamme d’outils pour gérer divers aspects des flux de travail de machine learning. Cela comprend des fonctionnalités automatisées pour le réglage des modèles, des options pour l’entraînement des modèles à l’échelle et des méthodes simples pour le déploiement des modèles en production. SageMaker prend en charge les frameworks de machine learning populaires, offrant la flexibilité nécessaire pour divers projets. Ses fonctionnalités couvrent également l’étiquetage des données, la gestion des flux de travail et l’analyse des performances.

Déploiement de YOLO11 sur les points de terminaison Amazon SageMaker

Le déploiement de YOLO11 sur Amazon SageMaker vous permet d'utiliser son environnement géré pour l'inférence en temps réel et de profiter de fonctionnalités telles que l'autoscaling. Jetez un coup d'œil à l'architecture AWS ci-dessous.

Architecture AWS

Étape 1 : Configurer votre environnement AWS

Tout d'abord, assurez-vous que les conditions préalables suivantes sont en place :

  • Un compte AWS : si vous n'en avez pas déjà un, inscrivez-vous pour un compte AWS.

  • Rôles IAM configurés : Vous aurez besoin d'un rôle IAM avec les permissions nécessaires pour Amazon SageMaker, AWS CloudFormation et Amazon S3. Ce rôle doit avoir des politiques qui lui permettent d'accéder à ces services.

  • AWS CLI : S'il n'est pas déjà installé, téléchargez et installez l'interface de ligne de commande AWS (CLI) et configurez-la avec les détails de votre compte. Suivez les instructions de l'AWS CLI pour l'installation.

  • AWS CDK : S'il n'est pas déjà installé, installez le kit de développement cloud AWS (CDK), qui sera utilisé pour scripter le déploiement. Suivez les instructions du CDK AWS pour l'installation.

  • Quota de service adéquat : confirmez que vous disposez de quotas suffisants pour deux ressources distinctes dans Amazon SageMaker : un pour ml.m5.4xlarge pour une utilisation en point de terminaison et un autre pour ml.m5.4xlarge pour l'utilisation d'une instance de notebook. Chacune d'elles nécessite une valeur de quota minimale. Si vos quotas actuels sont inférieurs à cette exigence, il est important de demander une augmentation pour chacun d'eux. Vous pouvez demander une augmentation de quota en suivant les instructions détaillées dans le Documentation sur les quotas de service AWS.

Étape 2 : Cloner le référentiel SageMaker YOLO11

L'étape suivante consiste à cloner le référentiel AWS spécifique qui contient les ressources nécessaires au déploiement de YOLO11 sur SageMaker. Ce référentiel, hébergé sur GitHub, comprend les scripts CDK et les fichiers de configuration nécessaires.

  • Clonez le référentiel GitHub : exécutez la commande suivante dans votre terminal pour cloner le référentiel host-yolov8-on-sagemaker-endpoint :

    git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git
    
  • Accédez au répertoire cloné : Déplacez-vous vers le répertoire du référentiel cloné :

    cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk
    

Étape 3 : Configurer l'environnement CDK

Maintenant que vous avez le code nécessaire, configurez votre environnement pour le déploiement avec AWS CDK.

  • Créer un environnement virtuel Python : Cela isole votre environnement Python et ses dépendances. Exécuter :

    python3 -m venv .venv
    
  • Activer l'environnement virtuel :

    source .venv/bin/activate
    
  • Installer les dépendances : installez les dépendances Python requises pour le projet :

    pip3 install -r requirements.txt
    
  • Mettre à niveau la bibliothèque AWS CDK : Assurez-vous d'avoir la dernière version de la bibliothèque AWS CDK :

    pip install --upgrade aws-cdk-lib
    

Étape 4 : Créer la pile AWS CloudFormation

  • Synthétiser l'application CDK : générer le modèle AWS CloudFormation à partir de votre code CDK :

    cdk synth
    
  • Amorcez l'application CDK : préparez votre environnement AWS pour le déploiement de CDK :

    cdk bootstrap
    
  • Déployer la pile : cela créera les ressources AWS nécessaires et déploiera votre modèle :

    cdk deploy
    

Étape 5 : Déployer le modèle YOLO

Avant de plonger dans les instructions de déploiement, assurez-vous de consulter la gamme de modèles YOLO11 proposés par Ultralytics. Cela vous aidera à choisir le modèle le plus approprié pour les exigences de votre projet.

Après avoir créé la pile AWS CloudFormation, l'étape suivante consiste à déployer YOLO11.

  • Ouvrir l'instance de notebook : Accédez à la console AWS et naviguez jusqu'au service Amazon SageMaker. Sélectionnez « Notebook Instances » (Instances de notebook) dans le tableau de bord, puis localisez l'instance de notebook qui a été créée par votre script de déploiement CDK. Ouvrez l'instance de notebook pour accéder à l'environnement Jupyter.

  • Accéder et modifier inference.py : après avoir ouvert l'instance de bloc-notes SageMaker dans Jupyter, localisez le fichier inference.py. Modifiez la fonction output_fn dans inference.py comme indiqué ci-dessous et enregistrez vos modifications dans le script, en vous assurant qu'il n'y a pas d'erreurs de syntaxe.

    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)
    
  • Déployer le point de terminaison à l'aide de 1_DeployEndpoint.ipynb : dans l'environnement Jupyter, ouvrez le bloc-notes 1_DeployEndpoint.ipynb situé dans le répertoire sm-notebook. Suivez les instructions du bloc-notes et exécutez les cellules pour télécharger le modèle YOLO11, emballez-le avec le code d'inférence mis à jour et téléchargez-le dans un compartiment Amazon S3. Le bloc-notes vous guidera dans la création et le déploiement d'un point de terminaison SageMaker pour le modèle YOLO11.

Étape 6 : Tester votre déploiement

Maintenant que votre modèle YOLO11 est déployé, il est important de tester ses performances et ses fonctionnalités.

  • Ouvrir le notebook de test : Dans le même environnement Jupyter, localisez et ouvrez le notebook 2_TestEndpoint.ipynb, également dans le répertoire sm-notebook.

  • Exécutez le notebook de test : suivez les instructions du notebook pour tester le point de terminaison SageMaker déployé. Cela comprend l'envoi d'une image au point de terminaison et l'exécution d'inférences. Ensuite, vous tracerez la sortie pour visualiser les performances et la précision du modèle, comme illustré ci-dessous.

Résultats des tests YOLO11

  • Nettoyage des ressources : le notebook de test vous guidera également dans le processus de nettoyage du point de terminaison et du modèle hébergé. Il s'agit d'une étape importante pour gérer efficacement les coûts et les ressources, surtout si vous ne prévoyez pas d'utiliser le modèle déployé immédiatement.

Étape 7 : Surveillance et gestion

Après les tests, une surveillance et une gestion continues de votre modèle déployé sont essentielles.

  • Surveiller avec Amazon CloudWatch : Vérifiez régulièrement les performances et l'état de santé de votre endpoint SageMaker en utilisant Amazon CloudWatch.

  • Gérer le point de terminaison : Utilisez la console SageMaker pour la gestion continue du point de terminaison. Cela comprend la mise à l'échelle, la mise à jour ou le redéploiement du modèle selon les besoins.

En effectuant ces étapes, vous aurez déployé et testé avec succès un modèle YOLO11 sur Amazon SageMaker Endpoints. Ce processus vous fournit non seulement une expérience pratique dans l'utilisation des services AWS pour le déploiement de l'apprentissage machine, mais jette également les bases du déploiement d'autres modèles avancés à l'avenir.

Résumé

Ce guide vous a accompagné étape par étape dans le déploiement de YOLO11 sur Amazon SageMaker Endpoints en utilisant AWS CloudFormation et l'AWS Cloud Development Kit (CDK). Le processus comprend le clonage du dépôt GitHub nécessaire, la configuration de l'environnement CDK, le déploiement du modèle en utilisant les services AWS, et le test de ses performances sur SageMaker.

Pour plus de détails techniques, consultez cet article sur le blog AWS Machine Learning. Vous pouvez également consulter la documentation officielle d'Amazon SageMaker pour plus d'informations sur les différentes caractéristiques et fonctionnalités.

Vous souhaitez en savoir plus sur les différentes intégrations de YOLO11 ? Consultez la page du guide d’intégration Ultralytics pour découvrir d’autres outils et fonctionnalités qui peuvent améliorer vos projets d’apprentissage automatique.

FAQ

Comment déployer le modèle Ultralytics YOLO11 sur les points de terminaison Amazon SageMaker ?

Pour déployer le modèle Ultralytics YOLO11 sur les points de terminaison Amazon SageMaker, suivez ces étapes :

  1. Configurer votre environnement AWS : Assurez-vous d'avoir un compte AWS, des rôles IAM avec les autorisations nécessaires et l'AWS CLI configuré. Installez AWS CDK si ce n'est pas déjà fait (reportez-vous aux instructions AWS CDK).
  2. Cloner le référentiel YOLO11 SageMaker:
    git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git
    cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk
    
  3. Configurer l'environnement CDK: Créez un environnement virtuel python, activez-le, installez les dépendances et mettez à niveau la bibliothèque AWS CDK.
    python3 -m venv .venv
    source .venv/bin/activate
    pip3 install -r requirements.txt
    pip install --upgrade aws-cdk-lib
    
  4. Déployer à l'aide d'AWS CDK: Synthétiser et déployer la pile CloudFormation, amorcer l'environnement.
    cdk synth
    cdk bootstrap
    cdk deploy
    

Pour plus de détails, consultez la section de la documentation.

Quels sont les prérequis pour déployer YOLO11 sur Amazon SageMaker ?

Pour déployer YOLO11 sur Amazon SageMaker, assurez-vous d’avoir les conditions préalables suivantes :

  1. Compte AWS : Compte AWS actif (inscrivez-vous ici).
  2. Rôles IAM : Rôles IAM configurés avec des permissions pour SageMaker, CloudFormation et Amazon S3.
  3. AWS CLI : Interface de ligne de commande AWS installée et configurée (guide d'installation AWS CLI).
  4. AWS CDK : AWS Cloud Development Kit installé (guide de configuration CDK).
  5. Quotas de service: Quotas suffisants pour ml.m5.4xlarge instances pour une utilisation avec endpoint et notebook (demander une augmentation de quota).

Pour une configuration détaillée, consultez cette section.

Pourquoi devrais-je utiliser Ultralytics YOLO11 sur Amazon SageMaker ?

L'utilisation d'Ultralytics YOLO11 sur Amazon SageMaker offre plusieurs avantages :

  1. Évolutivité et gestion : SageMaker fournit un environnement géré avec des fonctionnalités telles que la mise à l'échelle automatique, ce qui est utile pour les besoins d'inférence en temps réel.
  2. Intégration aux services AWS : Intégrez-vous de manière transparente à d’autres services AWS, tels que S3 pour le stockage de données, CloudFormation pour l’infrastructure en tant que code et CloudWatch pour la surveillance.
  3. Facilité de déploiement : Configuration simplifiée à l'aide de scripts AWS CDK et processus de déploiement rationalisés.
  4. Performance : Tirez parti de l'infrastructure haute performance d'Amazon SageMaker pour exécuter efficacement des tâches d'inférence à grande échelle.

Découvrez plus d'informations sur les avantages de l'utilisation de SageMaker dans la section d'introduction.

Puis-je personnaliser la logique d'inférence pour YOLO11 sur Amazon SageMaker ?

Oui, vous pouvez personnaliser la logique d'inférence pour YOLO11 sur Amazon SageMaker :

  1. Modifier inference.py: Localisez et personnalisez le output_fn fonction dans le inference.py fichier pour personnaliser les formats de sortie.

    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. Déployer le modèle mis à jour: Assurez-vous de redéployer le modèle à l'aide des notebooks Jupyter fournis (1_DeployEndpoint.ipynb) pour inclure ces modifications.

Consultez les étapes détaillées pour déployer le modèle modifié.

Comment puis-je tester le modèle YOLO11 déployé sur Amazon SageMaker ?

Pour tester le modèle YOLO11 déployé sur Amazon SageMaker :

  1. Ouvrir le notebook de test: Localisez le 2_TestEndpoint.ipynb notebook dans l'environnement SageMaker Jupyter.
  2. Exécuter le bloc-notes : Suivez les instructions du bloc-notes pour envoyer une image au point de terminaison, effectuer l'inférence et afficher les résultats.
  3. Visualiser les résultats : Utilisez les fonctionnalités de traçage intégrées pour visualiser les mesures de performance, telles que les cadres de délimitation autour des objets détectés.

Pour des instructions de test complètes, consultez la section de test.



📅 Créé il y a 1 an ✏️ Mis à jour il y a 2 mois

Commentaires