Passer au contenu

Ultralytics YOLOv5 🚀 sur l’instance d’apprentissage profond AWS : Votre guide complet

La mise en place d'un environnement de deep learning haute performance peut sembler intimidante, surtout pour les nouveaux venus. Mais n'ayez crainte ! 🛠️ Ce guide fournit une procédure pas à pas pour faire fonctionner Ultralytics YOLOv5 sur une instance AWS Deep Learning. En tirant parti de la puissance d'Amazon Web Services (AWS), même ceux qui débutent dans le machine learning (ML) peuvent démarrer rapidement et à moindre coût. La scalabilité de la plateforme AWS la rend idéale pour l'expérimentation et le déploiement en production.

Les autres options de démarrage rapide pour YOLOv5 incluent notre Google Colab Notebook Ouvrir dans Colab, Environnements Kaggle Ouvrir dans Kaggle, VM Deep Learning GCP, et notre image Docker pré-construite disponible sur Docker Hub Pull Docker.

Étape 1 : Se connecter à la console AWS

Commencez par créer un compte ou vous connecter à AWS Management Console. Une fois connecté, accédez au tableau de bord du service EC2, où vous pouvez gérer vos serveurs virtuels (instances).

Connexion à la console AWS

Étape 2 : Lancer votre instance

Depuis le tableau de bord EC2, cliquez sur le bouton Lancer une instance. Cela lance le processus de création d'un nouveau serveur virtuel adapté à vos besoins.

Bouton de lancement d'instance

Sélection de l'image machine Amazon (AMI) appropriée

Il est essentiel de choisir la bonne AMI. Cela détermine le système d'exploitation et les logiciels préinstallés pour votre instance. Dans la barre de recherche, tapez 'Deep Learning' et sélectionnez la dernière AMI Deep Learning basée sur Ubuntu (sauf si vous avez des exigences spécifiques pour un autre système d'exploitation). Les AMI Deep Learning d'Amazon sont préconfigurées avec des frameworks de deep learning populaires (comme PyTorch, utilisé par YOLOv5) et les pilotes GPU nécessaires, ce qui rationalise considérablement le processus de configuration.

Choisir une AMI

Choisir un type d'instance

Pour les tâches exigeantes comme l'entraînement de modèles d'apprentissage profond, il est fortement recommandé de sélectionner un type d'instance accéléré par GPU. Les GPU peuvent réduire considérablement le temps nécessaire à l'entraînement du modèle par rapport aux CPU. Lors du choix d'une taille d'instance, assurez-vous que sa capacité de mémoire (RAM) est suffisante pour votre modèle et votre ensemble de données.

Remarque : La taille de votre modèle et de votre ensemble de données sont des facteurs essentiels. Si votre tâche de ML nécessite plus de mémoire que l’instance sélectionnée n’en fournit, vous devrez choisir un type d’instance plus grand afin d’éviter les problèmes de performance ou les erreurs.

Explorez les types d'instances GPU disponibles sur la page des types d'instances EC2, en particulier dans la catégorie Calcul accéléré.

Choisir le type d'instance

Pour des informations détaillées sur la surveillance et l'optimisation de l'utilisation du GPU, consultez le guide AWS sur la surveillance et l'optimisation du GPU. Comparez les coûts en utilisant la tarification à la demande et explorez les économies potentielles avec la tarification des instances Spot.

Configuration de votre instance

Pensez à utiliser les instances Spot Amazon EC2 pour une approche plus rentable. Les instances Spot vous permettent d’enchérir sur la capacité EC2 inutilisée, souvent à un prix considérablement réduit par rapport aux prix à la demande. Pour les tâches qui nécessitent une persistance (sauvegarde des données même si l’instance Spot est interrompue), choisissez une demande persistante. Cela garantit la persistance de votre volume de stockage.

Configuration de la demande ponctuelle

Passez les étapes 4 à 7 de l'assistant de lancement d'instance pour configurer le stockage, ajouter des balises, configurer des groupes de sécurité (assurez-vous que le port SSH 22 est ouvert depuis votre adresse IP) et vérifiez vos paramètres avant de cliquer sur Launch. Vous devrez également créer ou sélectionner une paire de clés existante pour un accès SSH sécurisé.

Étape 3 : Se connecter à votre instance

Une fois que l'état de votre instance indique « en cours d'exécution », sélectionnez-la dans le tableau de bord EC2. Cliquez sur le Se connecter bouton pour afficher les options de connexion. Utilisez l'exemple de commande SSH fourni dans votre terminal local (comme Terminal sur macOS/Linux ou PuTTY/WSL sur Windows) pour établir une connexion sécurisée. Vous aurez besoin du fichier de clé privée (.pem) que vous avez créé ou sélectionné lors du lancement.

Se connecter à l’instance

Étape 4 : Exécution d'Ultralytics YOLOv5

Maintenant que vous êtes connecté via SSH, vous pouvez configurer et exécuter YOLOv5. Tout d'abord, clonez le référentiel officiel YOLOv5 de GitHub et naviguez dans le répertoire. Ensuite, installez les dépendances requises en utilisant pip. Il est recommandé d'utiliser un Python environnement 3.8 ou version ultérieure. Les modèles et ensembles de données nécessaires seront téléchargés automatiquement à partir de la dernière version de YOLOv5 version lorsque vous exécutez des commandes telles que l'entraînement ou la détection.

# Clone the YOLOv5 repository
git clone https://github.com/ultralytics/yolov5
cd yolov5

# Install required packages
pip install -r requirements.txt

Une fois l'environnement prêt, vous pouvez commencer à utiliser YOLOv5 pour diverses tâches :

# Train a YOLOv5 model on a custom dataset (e.g., coco128.yaml)
python train.py --data coco128.yaml --weights yolov5s.pt --img 640

# Validate the performance (Precision, Recall, mAP) of a trained model (e.g., yolov5s.pt)
python val.py --weights yolov5s.pt --data coco128.yaml --img 640

# Run inference (object detection) on images or videos using a trained model
python detect.py --weights yolov5s.pt --source path/to/your/images_or_videos/ --img 640

# Export the trained model to various formats like ONNX, CoreML, TFLite for deployment
# See https://docs.ultralytics.com/modes/export/ for more details
python export.py --weights yolov5s.pt --include onnx coreml tflite --img 640

Consultez la documentation Ultralytics pour obtenir des guides détaillés sur l'entraînement, la validation, la prédiction (inférence) et l'exportation.

Extras optionnels : Augmenter la mémoire d'échange

Si vous travaillez avec de très grands ensembles de données ou si vous rencontrez des limitations de mémoire pendant l'entraînement, l'augmentation de la mémoire swap sur votre instance peut parfois être utile. L'espace d'échange permet au système d'utiliser l'espace disque comme RAM virtuelle.

# Allocate a 64GB swap file (adjust size as needed)
sudo fallocate -l 64G /swapfile

# Set correct permissions
sudo chmod 600 /swapfile

# Set up the file as a Linux swap area
sudo mkswap /swapfile

# Enable the swap file
sudo swapon /swapfile

# Verify the swap memory is active
free -h

Félicitations ! 🎉 Vous avez correctement configuré une instance AWS Deep Learning, installé Ultralytics YOLOv5 et vous êtes prêt à effectuer des tâches de détection d’objets. Que vous expérimentiez avec des modèles pré-entraînés ou que vous réalisiez un entraînement sur vos propres données, cette configuration puissante fournit une base évolutive pour vos projets de vision par ordinateur. Si vous rencontrez des problèmes, consultez la documentation AWS complète et les ressources utiles de la communauté Ultralytics, comme la FAQ. Bonne détection !



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

Commentaires