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 , Environnements Kaggle
, VM Deep Learning GCP, et notre image Docker pré-construite disponible sur Docker Hub
.
É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).
É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.
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 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é.
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.
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.
É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 !