Ultralytics YOLO27 :
Get Started

Ultralytics YOLOv5 🚀 sur une instance AWS Deep Learning : guide complet#

La configuration d'un environnement de deep learning performant peut sembler intimidante, surtout si tu débutes. Mais pas d'inquiétude ! 🛠️ Ce guide détaille la mise en route d'Ultralytics YOLOv5 sur une instance AWS Deep Learning. En tirant parti de la puissance d'Amazon Web Services (AWS), même les personnes qui découvrent l'apprentissage automatique (ML) peuvent se lancer rapidement et à moindre coût. L'évolutivité de la plateforme AWS en fait une solution idéale pour l'expérimentation comme pour le déploiement en production.

Parmi les autres options de démarrage rapide avec YOLOv5, tu trouveras notre notebook Google Colab Open In Colab, les environnements Kaggle Open In Kaggle, la VM Deep Learning de GCP et notre image Docker préconfigurée disponible sur Docker Hub Docker Pulls.

Étape 1 : connexion à la console AWS#

Commence par créer un compte ou te connecter à l'AWS Management Console. Une fois connecté, accède au tableau de bord du service EC2, où tu peux gérer tes serveurs virtuels (instances).

Page de connexion à l'AWS Management Console

Étape 2 : lancement de ton instance#

Dans le tableau de bord EC2, clique sur le bouton Launch Instance. Cela lance le processus de création d'un nouveau serveur virtuel adapté à tes besoins.

Bouton de lancement d'instance

Choisir la bonne Amazon Machine Image (AMI)#

Le choix de l'AMI appropriée est essentiel. Elle détermine le système d'exploitation et les logiciels préinstallés de ton instance. Dans la barre de recherche, saisis « Deep Learning », puis sélectionne la dernière AMI Deep Learning basée sur Ubuntu (sauf si tu as des exigences particulières concernant 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 simplifie considérablement la configuration.

Sélection de l'AMI AWS EC2 Deep Learning

Choisir un type d'instance#

Pour les tâches exigeantes, comme l'entraînement de modèles de deep learning, il est vivement recommandé de choisir un type d'instance accéléré par GPU. Les GPU peuvent réduire considérablement le temps d'entraînement des modèles par rapport aux CPU. Lorsque tu choisis une taille d'instance, vérifie que sa mémoire (RAM) est suffisante pour ton modèle et ton jeu de données.

Remarque : la taille de ton modèle et de ton jeu de données est déterminante. Si ta tâche de ML nécessite plus de mémoire que celle fournie par l'instance sélectionnée, tu devras choisir un type d'instance plus grand afin d'éviter les problèmes de performances ou les erreurs.

Consulte les types d'instances GPU disponibles sur la page des types d'instances EC2, en particulier dans la catégorie Accelerated Computing.

Sélection d'un type d'instance GPU AWS EC2

Pour en savoir plus sur la surveillance et l'optimisation de l'utilisation des GPU, consulte le guide AWS sur la surveillance et l'optimisation des GPU. Compare les coûts avec la tarification à la demande et découvre les économies possibles grâce à la tarification des instances Spot.

Configurer ton instance#

Envisage d'utiliser les instances Spot Amazon EC2 pour réduire les coûts. Les instances Spot te permettent d'utiliser la capacité EC2 inutilisée, souvent à un tarif nettement inférieur à celui des instances à la demande. Pour un entraînement qui doit résister aux interruptions, choisis une demande persistante et configure le comportement en cas d'interruption sur stop plutôt que sur « terminate », afin de conserver le volume EBS et les résultats de l'entraînement. L'instance redémarrera lorsque la capacité sera de nouveau disponible.

Configuration d'une demande Spot

Continue dans les paramètres de lancement pour configurer le stockage, ajouter des balises, configurer les groupes de sécurité (vérifie que le port SSH 22 est ouvert depuis ton adresse IP) et contrôler tes paramètres avant de cliquer sur Launch. Tu devras également créer ou sélectionner une paire de clés pour accéder à l'instance de manière sécurisée via SSH.

Étape 3 : connexion à ton instance#

Lorsque l'état de ton instance indique « running », sélectionne-la dans le tableau de bord EC2. Clique sur Connect pour afficher les options de connexion. Dans ton terminal local (par exemple Terminal sur macOS/Linux ou PuTTY/WSL sur Windows), utilise l'exemple de commande SSH fourni pour établir une connexion sécurisée. Tu auras besoin du fichier de clé privée (.pem) créé ou sélectionné lors du lancement.

Options de connexion SSH à une instance AWS EC2

Étape 4 : exécution d'Ultralytics YOLOv5#

Maintenant que tu es connecté via SSH, tu peux configurer et exécuter YOLOv5. Commence par cloner le dépôt officiel YOLOv5 depuis GitHub, puis accède au répertoire. Installe ensuite les dépendances requises avec pip. Il est recommandé d'utiliser un environnement Python 3.8 ou une version ultérieure. Lorsque tu exécutes des commandes d'entraînement ou de détection, les modèles et les jeux de données nécessaires sont téléchargés automatiquement depuis la dernière version de YOLOv5.

# 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, tu peux utiliser YOLOv5 pour différentes 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
python export.py --weights yolov5s.pt --include onnx coreml tflite --img 640

Consulte les tutoriels Entraîner sur des données personnalisées et Exporter un modèle pour obtenir des guides détaillés.

En option : augmenter la mémoire d'échange#

Si tu travailles avec de très grands jeux de données ou que tu rencontres des limites de mémoire pendant l'entraînement, augmenter la mémoire d'échange de ton instance peut parfois aider. L'espace d'échange permet au système d'utiliser l'espace disque comme mémoire vive 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 ! 🎉 Tu as configuré une instance AWS Deep Learning, installé Ultralytics YOLOv5 et tu es prêt à effectuer des tâches de détection d'objets. Que tu expérimentes avec des modèles préentraînés ou que tu entraînes un modèle sur tes propres données, cette configuration performante offre une base évolutive pour tes projets de vision par ordinateur. Si tu rencontres des problèmes, consulte la documentation complète d'AWS et les ressources utiles de la communauté Ultralytics, comme la FAQ. Bonne détection !

FAQ#

  • Choisis la dernière AMI AWS Deep Learning basée sur Ubuntu. Elle inclut les pilotes NVIDIA, CUDA et PyTorch préinstallés. Il ne te reste donc qu'à cloner le dépôt et à installer requirements.txt.

  • N'importe quelle instance GPU de la famille Accelerated Computing convient, par exemple les instances g4dn, g5 ou p3. Choisis une mémoire GPU suffisante pour ta taille de lot et la taille de tes images, et utilise --batch-size -1 pour laisser YOLOv5 sélectionner le lot le plus grand possible.

  • Pour les petits transferts, utilise scp avec ta clé .pem, ou stocke temporairement les données dans Amazon S3 et copie-les avec aws s3 sync. Les résultats de l'entraînement sont enregistrés dans runs/train/, et les poids dans runs/train/exp/weights/.

  • Utilise une demande Spot persistante avec le comportement en cas d'interruption défini sur stop pour conserver le volume EBS. Reprends ensuite l'exécution depuis son dernier point de contrôle avec python train.py --resume lorsque l'instance redémarre. Si tu ne peux pas te permettre de perdre ta progression, copie régulièrement last.pt et best.pt vers S3.

Commentaires