Guide pour le déploiement de YOLOv8 sur les terminaux Amazon SageMaker
Le déploiement de modèles avancés de vision par ordinateur tels que Ultralytics' YOLOv8 sur les terminaux 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 leurs processus d'installation, de configuration et de déploiement. YOLOv8 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 te guidera pas à pas dans le processus de déploiement des modèles YOLOv8 PyTorch sur Amazon SageMaker Endpoints. Tu apprendras l'essentiel pour préparer ton environnement AWS, configurer le modèle de manière appropriée et utiliser des outils comme AWS CloudFormation et le kit de développement AWS Cloud (CDK) pour le déploiement.
Amazon SageMaker
Amazon SageMaker est un service d'apprentissage automatique d'Amazon Web Services (AWS) qui simplifie le processus de construction, d'entraînement et de déploiement des modèles d'apprentissage automatique. Il fournit une large gamme d'outils pour gérer divers aspects des flux de travail d'apprentissage automatique. Cela comprend des fonctions 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 déployer les modèles en production. SageMaker prend en charge les frameworks d'apprentissage automatique les plus répandus, offrant ainsi la flexibilité nécessaire à 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 YOLOv8 sur les terminaux Amazon SageMaker
Le déploiement de YOLOv8 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 telles que l'autoscaling. Jette un coup d'œil à l'architecture AWS ci-dessous.
Étape 1 : Configurer ton environnement AWS
Tout d'abord, assure-toi que les conditions préalables suivantes sont réunies :
-
Un compte AWS : Si tu n'en as pas encore, inscris-toi Ă un compte AWS.
-
Rôles IAM configurés : vous aurez besoin d’un rôle IAM avec les autorisations 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: Si ce n'est pas déjà fait, télécharge et installe l'interface de ligne de commande AWS (CLI) et configure-la avec les détails de ton compte. Suis les instructions d'AWS CLI pour l'installation.
-
AWS CDK : s'il n'est pas déjà installé, installe le kit de développement AWS Cloud (CDK), qui sera utilisé pour la création de scripts pour le déploiement. Suis les instructions d' installation du CDK AWS.
-
Quota de service adéquat : Confirme que tu disposes de quotas suffisants pour deux ressources distinctes dans Amazon SageMaker : l'une pour
ml.m5.4xlarge
pour l'utilisation des points d'extrémité et une autre pourml.m5.4xlarge
pour l'utilisation de l'instance de notebook. Chacun d'entre eux nécessite un minimum d'une valeur de quota. Si tes quotas actuels sont inférieurs à cette exigence, il est important de demander une augmentation pour chacun d'entre eux. Tu peux demander une augmentation de quota en suivant les instructions détaillées dans la section Documentation sur les quotas de service AWS.
Étape 2 : Cloner le dépôt SageMaker YOLOv8
L'étape suivante consiste à cloner le dépôt AWS spécifique qui contient les ressources nécessaires au déploiement de YOLOv8 sur SageMaker. Ce dépôt, hébergé sur GitHub, comprend les scripts CDK et les fichiers de configuration nécessaires.
- Clone le dépôt GitHub : Exécute la commande suivante dans ton terminal pour cloner le dépôt host-yolov8-on-sagemaker-endpoint :
- Navigue jusqu'au répertoire cloné : Change ton répertoire pour le référentiel cloné :
Étape 3 : Configurer l'environnement CDK
Maintenant que tu as le code nécessaire, configure ton environnement pour le déploiement avec AWS CDK.
- Crée un environnement virtuel Python : Cela permet d'isoler ton environnement Python et ses dépendances. Exécute :
- Active l'environnement virtuel :
- Installer les dépendances : Installe les dépendances Python requises pour le projet :
- Mettre à jour la bibliothèque AWS CDK : Assure-toi d'avoir la dernière version de la bibliothèque AWS CDK :
Étape 4 : créer la pile AWS CloudFormation
- Synthétise l'application CDK : Génère le modèle AWS CloudFormation à partir de ton code CDK :
- Amorce l'application CDK : Prépare ton environnement AWS pour le déploiement du CDK :
- Déploie la pile : Cela permettra de créer les ressources AWS nécessaires et de déployer ton modèle :
Étape 5 : Déployer le modèle YOLOv8
Avant de te plonger dans les instructions de déploiement, n'oublie pas de consulter la gamme de modèlesYOLOv8 proposés par Ultralytics. Cela t'aidera à choisir le modèle le plus approprié aux exigences de ton projet.
Après avoir créé la pile AWS CloudFormation, l'étape suivante consiste à déployer YOLOv8.
-
Ouvre l'instance du carnet de notes : Va dans la console AWS et navigue jusqu'au service Amazon SageMaker. Sélectionne "Notebook Instances" dans le tableau de bord, puis localise l'instance de notebook qui a été créée par ton script de déploiement CDK. Ouvre l'instance de notebook pour accéder à l'environnement Jupyter.
-
Accède à inference.py et modifie-le : 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 et enregistre tes modifications dans le script, en veillant à ce qu'il n'y ait 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 final à l'aide de 1_DeployEndpoint.ipynb : Dans l'environnement Jupyter, ouvre le carnet 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 YOLOv8 , l'emballer avec le code d'inférence mis à jour et le télécharger dans un seau Amazon S3. Le notebook te guidera dans la création et le déploiement d'un point de terminaison SageMaker pour le modèle YOLOv8 .
Étape 6 : Test de ton déploiement
Maintenant que ton modèle YOLOv8 est déployé, il est important de tester ses performances et ses fonctionnalités.
-
Ouvre le carnet de test : Dans le même environnement Jupyter, localise et ouvre le carnet 2_TestEndpoint.ipynb, également dans le répertoire sm-notebook.
-
Exécuter le bloc-notes de test : suivez les instructions du bloc-notes pour tester le point de terminaison SageMaker déployé. Cela inclut 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 indiqué ci-dessous.
- Ressources de nettoyage : Le carnet de test te guidera également dans le processus de nettoyage du point d'extrémité et du modèle hébergé. C'est 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 : Suivi et gestion
Après les tests, la surveillance et la gestion continues de ton modèle déployé sont essentielles.
-
Surveille avec Amazon CloudWatch : Vérifie régulièrement les performances et la santé de ton point de terminaison SageMaker à l'aide d'Amazon CloudWatch.
-
Gérer le point d'accès : Utilise 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 terminant ces étapes, tu auras réussi à déployer et à tester un modèle YOLOv8 sur Amazon SageMaker Endpoints. Ce processus te permet non seulement d'acquérir une expérience pratique de l'utilisation des services AWS pour le déploiement de l'apprentissage automatique, mais aussi de poser les bases pour le déploiement d'autres modèles avancés à l'avenir.
Résumé
Ce guide t'a accompagné pas à pas dans le déploiement de YOLOv8 sur Amazon SageMaker Endpoints à l'aide d'AWS CloudFormation et de 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 à l'aide des services AWS et le test de ses performances sur SageMaker.
Pour plus de détails techniques, reporte-toi à cet article sur le blog AWS Machine Learning. Tu peux aussi consulter la documentation officielle d'Amazon SageMaker pour en savoir plus sur les différentes caractéristiques et fonctionnalités.
Tu souhaites en savoir plus sur les différentes intégrations de YOLOv8 ? Visite la page du guide des intégrationsUltralytics pour découvrir des outils et des capacités supplémentaires qui peuvent améliorer tes projets d'apprentissage automatique.
FAQ
Comment déployer le modèle Ultralytics YOLOv8 sur Amazon SageMaker Endpoints ?
Pour déployer le modèle Ultralytics YOLOv8 sur Amazon SageMaker Endpoints, suis les étapes suivantes :
- Configure ton environnement AWS: Assure-toi d'avoir un compte AWS, des rôles IAM avec les permissions nécessaires et l'AWS CLI configuré. Installe le CDK AWS si ce n'est pas déjà fait (voir les instructions du CDK AWS).
- Clone le dépôt SageMaker YOLOv8:
- Configurer l'environnement CDK: Créer un environnement virtuel Python , l'activer, installer les dépendances et mettre à jour la bibliothèque AWS CDK.
- Déployer à l'aide de AWS CDK: Synthétise et déploie la pile CloudFormation, démarre l'environnement.
Pour plus de détails, consulte la section documentation.
Quelles sont les conditions préalables au déploiement de YOLOv8 sur Amazon SageMaker ?
Pour déployer YOLOv8 sur Amazon SageMaker, assure-toi d'avoir les prérequis suivants :
- Compte AWS: Compte AWS actif(s'inscrire ici).
- Rôles IAM: Rôles IAM configurés avec des autorisations pour SageMaker, CloudFormation et Amazon S3.
- AWS CLI: Installation et configuration de l'interface de ligne de commande AWS(guide d'installation AWS CLI ).
- AWS CDK: Kit de développement cloud AWS installé(guide d'installation du CDK).
- Quotas de service: Des quotas suffisants pour
ml.m5.4xlarge
pour l'utilisation des terminaux et des ordinateurs portables (demande une augmentation de quota).
Pour une configuration détaillée, reporte-toi à cette section.
Pourquoi devrais-je utiliser Ultralytics YOLOv8 sur Amazon SageMaker ?
L'utilisation de Ultralytics YOLOv8 sur Amazon SageMaker offre plusieurs avantages :
- Évolutivité et gestion: SageMaker fournit un environnement géré avec des fonctions telles que l'autoscaling, qui aide à répondre aux besoins d'inférence en temps réel.
- Intégration avec les services AWS: Intègre de manière transparente d'autres services AWS, tels que S3 pour le stockage des données, CloudFormation pour l'infrastructure en tant que code et CloudWatch pour la surveillance.
- Facilité de déploiement: Configuration simplifiée à l'aide de scripts AWS CDK et processus de déploiement rationalisés.
- Performance: Tire parti de l'infrastructure haute performance d'Amazon SageMaker pour exécuter efficacement des tâches d'inférence à grande échelle.
Explore davantage les avantages de l'utilisation de SageMaker dans la section d'introduction.
Puis-je personnaliser la logique d'inférence pour YOLOv8 sur Amazon SageMaker ?
Oui, tu peux personnaliser la logique d'inférence pour YOLOv8 sur Amazon SageMaker :
-
Modifier
inference.py
: Localise et personnalise leoutput_fn
dans la fonctioninference.py
pour 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)
-
Déploie le modèle mis à jour: Assure-toi de redéployer le modèle en utilisant les carnets Jupyter fournis (
1_DeployEndpoint.ipynb
) pour inclure ces changements.
Reporte-toi aux étapes détaillées pour déployer le modèle modifié.
Comment puis-je tester le modèle YOLOv8 déployé sur Amazon SageMaker ?
Pour tester le modèle YOLOv8 déployé sur Amazon SageMaker :
- Ouvre le cahier de test: Localise le
2_TestEndpoint.ipynb
notebook dans l'environnement Jupyter de SageMaker. - Exécute le carnet: Suis les instructions du carnet pour envoyer une image au point de terminaison, effectuer une inférence et afficher les résultats.
- Visualiser les résultats: Utilise les fonctionnalités de traçage intégrées pour visualiser les mesures de performance, telles que les boîtes de délimitation autour des objets détectés.
Pour obtenir des instructions complètes sur les tests, visite la section des tests.