Guide de déploiement de YOLO11 sur les terminaux Amazon SageMaker
Le déploiement de modèles de vision artificielle avancés tels que Ultralytics' YOLO11 sur les terminaux Amazon SageMaker ouvre un large éventail de possibilités pour diverses applications d' apprentissage automatique. La clé d'une utilisation efficace de ces modèles réside dans la compréhension de leurs processus d'installation, de configuration et 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 guidera pas à pas dans le processus de déploiement de modèles sur Amazon SageMaker Endpoints. YOLO11 PyTorch 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 AWS Cloud Development Kit (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 de modèles d'apprentissage automatique. Il fournit une large gamme d'outils pour gérer divers aspects des flux de travail d'apprentissage automatique. Il s'agit notamment de fonctions automatisées pour le réglage des modèles, d'options pour l'entraînement des modèles à l'échelle et de méthodes simples pour le déploiement des modèles en production. SageMaker prend en charge les frameworks d'apprentissage automatique les plus courants, offrant ainsi la flexibilité nécessaire à la réalisation de 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 terminaux 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 tirer parti de fonctionnalités telles que l'autoscaling. Jetez un coup d'œil à l'architecture AWS ci-dessous.
Étape 1 : Configuration de l'environnement AWS
Tout d'abord, assurez-vous que les conditions préalables suivantes sont réunies :
-
Un compte AWS : Si vous n'en avez pas encore, ouvrez 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 disposer de stratégies lui permettant d'accéder à ces services.
-
AWS CLI: Si elle n'est pas déjà installée, 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 d'AWS CLI pour l'installation.
-
AWS CDK : si ce n'est pas déjà fait, installez le kit de développement AWS Cloud (CDK), qui sera utilisé pour la création de scripts de déploiement. Suivez les instructions d' installation du CDK AWS.
-
Quota de service adéquat : Confirmez que vous disposez de quotas suffisants pour deux ressources distinctes dans Amazon SageMaker : une pour le service
ml.m5.4xlarge
pour l'utilisation des points d'accès et un autre pour l'utilisation desml.m5.4xlarge
pour l'utilisation de l'instance de l'ordinateur portable. Chacun d'entre eux nécessite un minimum d'une valeur de quota. Si vos quotas actuels sont inférieurs à cette exigence, il est important de demander une augmentation pour chacun d'entre eux. Vous pouvez demander une augmentation de quota en suivant les instructions détaillées dans le document Documentation sur les quotas de service AWS.
Etape 2 : Cloner le dépôt SageMaker YOLO11
L'étape suivante consiste à cloner le dépôt AWS spécifique qui contient les ressources nécessaires au déploiement de YOLO11 sur SageMaker. Ce dépôt, hébergé sur GitHub, comprend les scripts CDK et les fichiers de configuration nécessaires.
- Cloner le dépôt GitHub : Exécutez la commande suivante dans votre terminal pour cloner le dépôt host-yolov8-on-sagemaker-endpoint :
- Naviguez jusqu'au répertoire cloné : Changez votre répertoire pour le référentiel cloné :
Étape 3 : Configuration de l'environnement CDK
Maintenant que vous disposez du code nécessaire, configurez votre environnement pour le déployer avec AWS CDK.
- Créez un environnement virtuel Python : Cette opération permet d'isoler l'environnement et les dépendances de Python . Exécutez :
- Activer l'environnement virtuel :
- Installer les dépendances : Installer les dépendances Python requises pour le projet :
- Mettre à jour la bibliothèque AWS CDK : Assurez-vous que vous disposez de la dernière version de la bibliothèque AWS CDK :
Étape 4 : Créer la pile AWS CloudFormation
- Synthétiser l'application CDK : Générez le modèle AWS CloudFormation à partir de votre code CDK :
- Amorcez l'application CDK : Préparez votre environnement AWS pour le déploiement du CDK :
- Déployer la pile : Cette étape permet de créer les ressources AWS nécessaires et de déployer votre modèle :
Étape 5 : Déployer le modèle YOLO
Avant de vous plonger dans les instructions de déploiement, n'oubliez pas de consulter la gamme de modèlesYOLO11 proposés par Ultralytics. Cela vous aidera à choisir le modèle le plus approprié aux exigences de votre projet.
Après avoir créé la pile AWS CloudFormation, l'étape suivante consiste à déployer YOLO11.
-
Ouvrez l'Instance Notebook : Accédez à la console AWS et naviguez jusqu'au service Amazon SageMaker. Sélectionnez "Notebook Instances" 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 à inference.py et le modifier : Après avoir ouvert l'instance du notebook 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 final à 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 carnet et exécutez les cellules pour télécharger le modèle YOLO11 , l'empaqueter avec le code d'inférence mis à jour et le télécharger dans un seau Amazon S3. Le notebook vous guidera dans la création et le déploiement d'un point de terminaison SageMaker pour le modèle YOLO11 .
Étape 6 : Test du déploiement
Maintenant que votre modèle YOLO11 est déployé, il est important de tester ses performances et ses fonctionnalités.
-
Ouvrez le carnet de test : Dans le même environnement Jupyter, localisez et ouvrez le carnet 2_TestEndpoint.ipynb, également dans le répertoire sm-notebook.
-
Exécutez le carnet de test : Suivez les instructions du carnet pour tester le terminal SageMaker déployé. Il s'agit notamment d'envoyer une image au point de terminaison et d'exécuter des inférences. Ensuite, vous tracerez la sortie pour visualiser les performances et la précision du modèle, comme illustré ci-dessous.
- Ressources de nettoyage : Le cahier de test vous guidera également dans le processus de nettoyage du point final et du modèle hébergé. Il s'agit d'une étape importante pour gérer efficacement les coûts et les ressources, en particulier si vous ne prévoyez pas d'utiliser immédiatement le modèle déployé.
Étape 7 : Suivi et gestion
Après les tests, il est essentiel d'assurer un suivi et une gestion continus du modèle déployé.
-
Surveillez avec Amazon CloudWatch : Vérifiez régulièrement les performances et l'état de santé de votre point de terminaison SageMaker à l'aide d'Amazon CloudWatch.
-
Gérer le point d'accès : Utilisez la console SageMaker pour la gestion continue du 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, vous aurez déployé et testé avec succès un modèle YOLO11 sur Amazon SageMaker Endpoints. Ce processus vous 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 jeter les bases du déploiement d'autres modèles avancés à l'avenir.
Résumé
Ce guide vous a guidé pas à pas dans le déploiement de YOLO11 sur Amazon SageMaker Endpoints à l'aide d'AWS CloudFormation et d'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, consultez cet article sur le blog AWS Machine Learning. Vous pouvez également consulter la documentation officielle d'Amazon SageMaker pour en savoir plus sur les différentes caractéristiques et fonctionnalités.
Vous souhaitez en savoir plus sur les différentes intégrations de YOLO11 ? Visitez la page du guide des intégrationsUltralytics pour découvrir des outils et des capacités supplémentaires qui peuvent améliorer vos projets d'apprentissage automatique.
FAQ
Comment déployer le modèle Ultralytics YOLO11 sur Amazon SageMaker Endpoints ?
Pour déployer le modèle Ultralytics YOLO11 sur Amazon SageMaker Endpoints, procédez comme suit :
- Configurez votre environnement AWS: Assurez-vous que vous disposez d'un compte AWS, de rôles IAM avec les autorisations nécessaires et que le site AWS CLI est configuré. Installez le CDK AWS si ce n'est pas déjà fait (voir les instructions du CDK AWS).
- Cloner le dépôt SageMaker YOLO11:
- Configuration de 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 avec AWS CDK: Synthétiser et déployer la pile CloudFormation, amorcer l'environnement.
Pour plus de détails, consultez la section 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 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 du cloud AWS installé(guide d'installation du CDK).
- Quotas de services: Des quotas suffisants pour
ml.m5.4xlarge
pour l'utilisation des terminaux et des ordinateurs portables (demander une augmentation de quota).
Pour une configuration détaillée, voir cette section.
Pourquoi utiliser Ultralytics YOLO11 sur Amazon SageMaker ?
L'utilisation de Ultralytics YOLO11 sur Amazon SageMaker offre plusieurs avantages :
- Évolutivité et gestion: SageMaker fournit un environnement géré avec des fonctionnalités telles que l'autoscaling, qui permet de répondre aux besoins d'inférence en temps réel.
- Intégration avec les services AWS: Intégration transparente avec 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: Tirez parti de l'infrastructure haute performance d'Amazon SageMaker pour exécuter efficacement des tâches d'inférence à grande échelle.
DĂ©couvrez les avantages de l'utilisation de SageMaker dans la section 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 :
-
Modifier
inference.py
: Localisez et personnalisez 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éployer le modèle mis à jour: Assurez-vous de redéployer le modèle en utilisant les carnets Jupyter fournis (
1_DeployEndpoint.ipynb
) pour inclure ces changements.
Reportez-vous aux étapes détaillées du déploiement du 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 :
- Ouvrir le cahier de test: Localisez le
2_TestEndpoint.ipynb
dans l'environnement Jupyter de SageMaker. - Exécutez le carnet: Suivez 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: Utilisez 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, consultez la section consacrée aux tests.