Ultralytics YOLO27 :

Guide du déploiement de YOLO26 sur les points de terminaison Amazon SageMaker#

Le déploiement de modèles avancés de vision par ordinateur comme YOLO26 d’Ultralytics sur les points de terminaison Amazon SageMaker ouvre de nombreuses possibilités pour diverses applications d’apprentissage automatique. Pour utiliser efficacement ces modèles, il est essentiel de comprendre leurs processus de configuration, de paramétrage et de déploiement. YOLO26 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 t’accompagnera pas à pas dans le déploiement de modèles YOLO26 PyTorch sur les points de terminaison Amazon SageMaker. Tu apprendras les bases de la préparation de ton environnement AWS, du paramétrage approprié du modèle et de l’utilisation d’outils comme AWS CloudFormation et le kit de développement cloud AWS (CDK) pour le déploiement.

Amazon SageMaker#

Amazon SageMaker ML platform architecture

Amazon SageMaker est un service d’apprentissage automatique d’Amazon Web Services (AWS) qui simplifie le processus de création, d’entraînement et de déploiement de modèles d’apprentissage automatique. Il fournit un large éventail d’outils pour gérer différents aspects des flux de travail d’apprentissage automatique. Cela inclut des fonctionnalités automatisées d’optimisation des modèles, des options pour entraîner des modèles à grande échelle et des méthodes simples pour déployer des modèles en production. SageMaker prend en charge les frameworks d’apprentissage automatique populaires, offrant la flexibilité nécessaire à divers projets. Ses fonctionnalités couvrent également l’annotation des données, la gestion des flux de travail et l’analyse des performances.

Déployer YOLO26 sur les points de terminaison Amazon SageMaker#

Le déploiement de YOLO26 sur Amazon SageMaker te permet d’utiliser son environnement géré pour l’inférence en temps réel et de profiter de fonctionnalités comme la mise à l’échelle automatique. Consulte l’architecture AWS ci-dessous.

AWS SageMaker YOLO training architecture

Étape 1 : configurer ton environnement AWS#

Commence par vérifier que tu disposes des prérequis suivants :

  • Un compte AWS : si tu n’en as pas encore, crée un compte AWS.

  • Rôles IAM configurés : tu auras besoin d’un rôle IAM doté des autorisations nécessaires pour Amazon SageMaker, AWS CloudFormation et Amazon S3. Ce rôle doit disposer de politiques l’autorisant à accéder à ces services.

  • AWS CLI : si elle n’est pas déjà installée, télécharge et installe l’interface de ligne de commande AWS (CLI), puis configure-la avec les informations de ton compte. Suis les instructions AWS CLI pour l’installation.

  • AWS CDK : s’il n’est pas déjà installé, installe le kit de développement cloud AWS (CDK), qui sera utilisé pour scripter le déploiement. Suis les instructions AWS CDK pour l’installation.

  • Quota de service suffisant : vérifie que tes quotas sont suffisants pour deux ressources distinctes dans Amazon SageMaker : une pour ml.m5.4xlarge, destinée à l’utilisation du point de terminaison, et une autre pour ml.m5.4xlarge, destinée à l’utilisation de l’instance de notebook. Chacune nécessite une valeur de quota minimale de un. Si tes quotas actuels sont inférieurs à cette exigence, il est important de demander une augmentation pour chacun d’eux. Tu peux demander une augmentation de quota en suivant les instructions détaillées de la documentation AWS Service Quotas.

Étape 2 : cloner le dépôt SageMaker de YOLO26#

L’étape suivante consiste à cloner le dépôt AWS spécifique qui contient les ressources nécessaires au déploiement de YOLO26 sur SageMaker. Hébergé sur GitHub, ce dépôt inclut les scripts CDK et les fichiers de configuration nécessaires.

  • Cloner le dépôt GitHub : exécute la commande suivante dans ton terminal pour cloner le dépôt host-yolov8-on-sagemaker-endpoint :

    git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git
  • Accéder au répertoire cloné : déplace-toi dans le dépôt cloné :

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

Étape 3 : configurer l’environnement CDK#

Maintenant que tu disposes du code nécessaire, configure ton environnement pour effectuer le déploiement avec AWS CDK.

  • Créer un environnement virtuel Python : cela isole ton environnement Python et ses dépendances. Exécute :

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

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

    pip3 install -r requirements.txt
  • Mettre à niveau la bibliothèque AWS CDK : vérifie que tu disposes de 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ère le modèle AWS CloudFormation à partir de ton code CDK :

    cdk synth
  • Amorcer l’application CDK : prépare ton environnement AWS pour le déploiement CDK :

    cdk bootstrap
  • Déployer la pile : cette opération crée les ressources AWS nécessaires et déploie ton modèle :

    cdk deploy

Étape 5 : déployer le modèle YOLO#

Avant de commencer les instructions de déploiement, consulte la gamme de modèles YOLO26 proposés par Ultralytics. Cela t’aidera à choisir le modèle le plus adapté aux exigences de ton projet.

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

  • Ouvrir l’instance de notebook : accède à la console AWS, puis au service Amazon SageMaker. Sélectionne « Notebook Instances » dans le tableau de bord, puis localise l’instance de notebook créée par ton script de déploiement CDK. Ouvre l’instance de notebook pour accéder à l’environnement Jupyter.

  • Accéder à inference.py et le modifier : après avoir ouvert l’instance de notebook SageMaker dans Jupyter, localise le fichier inference.py. Modifie la fonction output_fn dans inference.py comme indiqué ci-dessous, puis enregistre tes modifications dans le script en vérifiant qu’il ne contient aucune erreur 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 avec 1_DeployEndpoint.ipynb : dans l’environnement Jupyter, ouvre le notebook 1_DeployEndpoint.ipynb situé dans le répertoire sm-notebook. Suis les instructions du notebook et exécute les cellules pour télécharger le modèle YOLO26, le conditionner avec le code d’inférence mis à jour et le téléverser dans un compartiment Amazon S3. Le notebook te guidera dans la création et le déploiement d’un point de terminaison SageMaker pour le modèle YOLO26.

Étape 6 : tester ton déploiement#

Maintenant que ton modèle YOLO26 est déployé, il est important d’en tester les performances et les fonctionnalités.

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

  • Exécuter le notebook de test : suis 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. Trace ensuite la sortie pour visualiser les performances et l’exactitude du modèle, comme indiqué ci-dessous.

Testing Results YOLO26

  • Nettoyer les ressources : le notebook de test te guidera également dans le processus de suppression 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 tu ne prévois pas d’utiliser immédiatement le modèle déployé.

Étape 7 : supervision et gestion#

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

  • Superviser avec Amazon CloudWatch : vérifie régulièrement les performances et l’état de santé de ton point de terminaison SageMaker à l’aide d’Amazon CloudWatch.

  • Gérer le point de terminaison : utilise la console SageMaker pour gérer continuellement le point de terminaison. Cela inclut la mise à l’échelle, la mise à jour ou le redéploiement du modèle selon les besoins.

En suivant ces étapes, tu auras déployé et testé avec succès un modèle YOLO26 sur les points de terminaison Amazon SageMaker. Ce processus te donne non seulement une expérience pratique de l’utilisation des services AWS pour le déploiement d’applications d’apprentissage automatique, mais il pose également les bases du déploiement d’autres modèles avancés à l’avenir.

Résumé#

Ce guide t’a accompagné pas à pas dans le déploiement de YOLO26 sur les points de terminaison Amazon SageMaker à l’aide d’AWS CloudFormation et du kit de développement cloud AWS (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 à l’aide des services AWS et le test de ses performances sur SageMaker.

Pour plus de détails techniques, consulte cet article du AWS Machine Learning Blog. Tu peux également consulter la documentation officielle Amazon SageMaker pour en savoir plus sur ses différentes fonctionnalités.

Tu souhaites en savoir plus sur les différentes intégrations de YOLO26 ? Consulte la page du guide des intégrations Ultralytics pour découvrir d’autres outils et fonctionnalités susceptibles d’améliorer tes projets d’apprentissage automatique.

FAQ#

  • Pour déployer le modèle Ultralytics YOLO26 sur les points de terminaison Amazon SageMaker, suis ces étapes :

    1. Configurer ton environnement AWS : vérifie que tu disposes d’un compte AWS, de rôles IAM dotés des autorisations nécessaires et d’une AWS CLI configurée. Installe AWS CDK si ce n’est pas déjà fait (consulte les instructions AWS CDK).
    2. Cloner le dépôt SageMaker de YOLO26 :
      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ée un environnement virtuel Python, active-le, installe les dépendances et mets à 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 avec AWS CDK : synthétise et déploie la pile CloudFormation, puis amorce l’environnement.
      cdk synth
      cdk bootstrap
      cdk deploy

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

  • Pour déployer YOLO26 sur Amazon SageMaker, vérifie que tu disposes des prérequis suivants :

    1. Compte AWS : compte AWS actif (inscris-toi ici).
    2. Rôles IAM : rôles IAM configurés avec des autorisations 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 : kit de développement cloud AWS installé (guide de configuration CDK).
    5. Quotas de service : quotas suffisants pour les instances ml.m5.4xlarge destinées à l’utilisation des points de terminaison et des notebooks (demander une augmentation de quota).

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

  • L’utilisation d’Ultralytics YOLO26 sur Amazon SageMaker offre plusieurs avantages :

    1. Évolutivité et gestion : SageMaker fournit un environnement géré doté de fonctionnalités comme la mise à l’échelle automatique, ce qui répond aux besoins d’inférence en temps réel.
    2. Intégration aux services AWS : intègre facilement d’autres services AWS, comme S3 pour le stockage des données, CloudFormation pour l’infrastructure en tant que code et CloudWatch pour la supervision.
    3. Facilité de déploiement : configuration simplifiée à l’aide des scripts AWS CDK et processus de déploiement rationalisés.
    4. Performances : tire parti de l’infrastructure haute performance d’Amazon SageMaker pour exécuter efficacement des tâches d’inférence à grande échelle.

    Pour en savoir plus sur les avantages de SageMaker, consulte la section d’introduction.

  • Oui, tu peux personnaliser la logique d’inférence de YOLO26 sur Amazon SageMaker :

    1. Modifier inference.py : localise et personnalise la fonction output_fn dans le fichier inference.py afin d’adapter 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 : veille à redéployer le modèle à l’aide des notebooks Jupyter fournis (1_DeployEndpoint.ipynb) pour intégrer ces modifications.

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

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

    1. Ouvrir le notebook de test : localise le notebook 2_TestEndpoint.ipynb dans l’environnement Jupyter de SageMaker.
    2. Exécuter le notebook : suis les instructions du notebook pour envoyer une image au point de terminaison, effectuer l’inférence et afficher les résultats.
    3. Visualiser les résultats : utilise les fonctionnalités de traçage intégrées pour visualiser les métriques de performance, comme les cadres englobants autour des objets détectés.

    Pour obtenir des instructions de test complètes, consulte la section consacrée aux tests.

Commentaires