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 : Tu auras 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, content_type):
"""Formats model outputs as JSON string according to content_type, 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.
-
Lance le carnet de test : Suis les instructions du carnet 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, tu traceras 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.