Ultralytics YOLOv5 🚀 sur une instance AWS Deep Learning : ton guide complet#
Configurer un environnement de deep learning haute performance peut sembler intimidant, surtout si tu débutes. Mais pas d’inquiétude ! 🛠️ Ce guide te présente étape par étape la mise en route d’Ultralytics YOLOv5 sur une instance AWS Deep Learning. En tirant parti de la puissance des services web d’Amazon (AWS), même les personnes qui débutent en apprentissage automatique (ML) peuvent démarrer rapidement et à moindre coût. La scalabilité de la plateforme AWS la rend idéale aussi bien pour l’expérimentation que pour le déploiement en production.
Les autres options de démarrage rapide pour YOLOv5 incluent notre Notebook Google Colab , les environnements Kaggle
, GCP Deep Learning VM et notre image Docker préconfigurée disponible sur Docker Hub
.
Étape 1 : connexion à la console AWS#
Commence par créer un compte ou connecte-toi à la console de gestion AWS. Une fois connecté, accède au tableau de bord du service EC2, où tu peux gérer tes serveurs virtuels (instances).

Étape 2 : lancer ton instance#
Depuis 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.

Sélectionner la bonne Amazon Machine Image (AMI)#
Choisir la bonne AMI est essentiel. Elle détermine le système d’exploitation et les logiciels préinstallés sur ton instance. Dans la barre de recherche, saisis 'Deep Learning' et 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, ainsi qu’avec les pilotes GPU nécessaires, ce qui simplifie considérablement la configuration.

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 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 des modèles par rapport aux CPU. Lorsque tu choisis la taille d’une instance, vérifie que sa capacité 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 un facteur déterminant. 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, notamment dans la catégorie Accelerated Computing.

Pour obtenir des informations détaillées sur la surveillance et l’optimisation de l’utilisation des GPU, consulte le guide AWS consacré à la surveillance et à l’optimisation des GPU. Compare les coûts à l’aide de la tarification à la demande et découvre les économies potentielles grâce à la tarification des instances Spot.
Configurer ton instance#
Envisage d'utiliser des instances Spot Amazon EC2 pour une approche plus économique. Les instances Spot te permettent d'enchérir sur la capacité EC2 inutilisée, souvent à prix réduit par rapport aux tarifs On-Demand. Pour un entraînement qui doit survivre à une interruption, choisis une requête persistante et définis le comportement d'interruption sur stop plutôt que sur terminate, de sorte que le volume EBS et tes résultats d'entraînement soient conservés et que l'instance redémarre lorsque la capacité revient.

Poursuis avec les étapes 4 à 7 de l’assistant de lancement d’instance 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 existante pour sécuriser l’accès SSH.
Étape 3 : te connecter à ton instance#
Une fois que l’état de ton instance indique « running », sélectionne-la dans le tableau de bord EC2. Clique sur le bouton Connect pour afficher les options de connexion. Utilise l’exemple de commande SSH fourni dans ton terminal local (comme Terminal sur macOS/Linux ou PuTTY/WSL sur Windows) afin d’établir une connexion sécurisée. Tu auras besoin du fichier de clé privée (.pem) que tu as créé ou sélectionné lors du lancement.

Étape 4 : exécuter 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. Ensuite, installe les dépendances requises à l’aide de pip. Il est recommandé d’utiliser un environnement Python 3.8 ou version ultérieure. Les modèles et jeux de données nécessaires seront téléchargés automatiquement depuis la dernière version de YOLOv5 lorsque tu exécutes des commandes d’entraînement ou de détection.
# Clone the YOLOv5 repository
git clone https://github.com/ultralytics/yolov5
cd yolov5
# Install required packages
pip install -r requirements.txtUne fois l’environnement prêt, tu peux commencer à 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 640Consulte les tutoriels Entraînement de données personnalisées et Exportation de modèles pour des guides détaillés.
Options supplémentaires : augmenter la mémoire swap#
Si tu travailles avec de très grands jeux de données ou si tu rencontres des limitations de mémoire pendant l’entraînement, augmenter la mémoire swap de ton instance peut parfois aider. L’espace swap permet au système d’utiliser l’espace disque comme mémoire 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 -hFélicitations ! 🎉 Tu as configuré avec succès 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 tes propres données, cette configuration puissante fournit une base évolutive pour tes projets de vision par ordinateur. Si tu rencontres des problèmes, consulte la vaste documentation AWS ainsi que les ressources utiles de la communauté Ultralytics, comme la FAQ. Bonne détection !
FAQ#
Choisis la dernière AMI Deep Learning d'AWS basée sur Ubuntu. Elle est livrée avec des pilotes NVIDIA, CUDA et PyTorch préinstallés, de sorte que la seule configuration restante consiste à 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,g5oup3. Choisis suffisamment de mémoire GPU pour ta taille de lot et ta taille d'image, et utilise--batch-size -1pour laisser YOLOv5 choisir le plus grand lot qui rentre.Utilise une requête Spot persistante avec le comportement d'interruption défini sur stop afin que le volume EBS soit conservé, puis reprends l'exécution à partir de son dernier point de contrôle avec
python train.py --resumeune fois que l'instance redémarre. Copielast.ptetbest.ptvers S3 périodiquement si tu ne peux pas te permettre de perdre ta progression.
Utilise
scpavec ta clé.pempour les petits transferts, ou prépare les données dans Amazon S3 et copie-les avecaws s3 sync. Les résultats d'entraînement atterrissent dansruns/train/, et les poids se trouvent dansruns/train/exp/weights/.