Ultralytics YOLOv5 🚀 auf einer AWS Deep Learning Instance: Dein vollständiger Leitfaden

Das Einrichten einer leistungsstarken Deep Learning-Umgebung kann gerade für Einsteiger entmutigend wirken. Aber keine Sorge! 🛠️ Dieser Leitfaden bietet eine Schritt-für-Schritt-Anleitung, um Ultralytics YOLOv5 auf einer AWS Deep Learning Instance zum Laufen zu bringen. Durch die Nutzung der Leistungsfähigkeit von Amazon Web Services (AWS) können selbst Neulinge im Bereich Machine Learning (ML) schnell und kosteneffizient starten. Die Skalierbarkeit der AWS-Plattform macht sie ideal sowohl für Experimente als auch für die Bereitstellung in der Produktion.

Weitere Quickstart-Optionen für YOLOv5 umfassen unser Google Colab Notebook Open In Colab, Kaggle-Umgebungen Open In Kaggle, GCP Deep Learning VM und unser vorkonfiguriertes Docker-Image, das auf Docker Hub verfügbar ist Docker Pulls.

Schritt 1: Anmeldung bei der AWS-Konsole

Erstelle zunächst ein Konto oder melde dich bei der AWS Management Console an. Navigiere nach dem Login zum Dashboard des EC2-Dienstes, wo du deine virtuellen Server (Instances) verwalten kannst.

Anmeldeseite der AWS Management Console

Schritt 2: Starte deine Instance

Klicke im EC2-Dashboard auf die Schaltfläche Launch Instance (Instance starten). Dies leitet den Prozess zur Erstellung eines neuen virtuellen Servers ein, der genau auf deine Anforderungen zugeschnitten ist.

Schaltfläche "Launch Instance"

Auswahl des richtigen Amazon Machine Image (AMI)

Die Wahl des richtigen AMI ist entscheidend. Es bestimmt das Betriebssystem und die vorinstallierte Software für deine Instance. Gib in die Suchleiste 'Deep Learning' ein und wähle das neueste Ubuntu-basierte Deep Learning AMI (sofern du keine spezifischen Anforderungen an ein anderes Betriebssystem hast). Die Deep Learning AMIs von Amazon sind vorkonfiguriert mit gängigen Deep Learning Frameworks (wie PyTorch, das von YOLOv5 verwendet wird) und den erforderlichen GPU-Treibern, was den Einrichtungsprozess erheblich vereinfacht.

Auswahl des AWS EC2 Deep Learning AMI

Wahl eines Instance-Typs

Für anspruchsvolle Aufgaben wie das Training von Deep-Learning-Modellen ist die Wahl eines GPU-beschleunigten Instance-Typs sehr empfehlenswert. GPUs können die für das Modelltraining benötigte Zeit im Vergleich zu CPUs drastisch reduzieren. Achte bei der Wahl der Instance-Größe darauf, dass die Speicherkapazität (RAM) für dein Modell und deinen Datensatz ausreicht.

Hinweis: Die Größe deines Modells und Datensatzes sind kritische Faktoren. Wenn deine ML-Aufgabe mehr Arbeitsspeicher erfordert, als die gewählte Instance bietet, musst du einen größeren Instance-Typ wählen, um Leistungsprobleme oder Fehler zu vermeiden.

Entdecke die verfügbaren GPU-Instance-Typen auf der EC2 Instance Types-Seite, insbesondere in der Kategorie Accelerated Computing.

Auswahl des AWS EC2 GPU-Instance-Typs

Ausführliche Informationen zur Überwachung und Optimierung der GPU-Auslastung findest du im AWS-Leitfaden zu GPU Monitoring and Optimization. Vergleiche die Kosten mithilfe der On-Demand Pricing und entdecke potenzielle Einsparungen mit Spot Instance Pricing.

Konfiguration deiner Instance

Erwäge die Nutzung von Amazon EC2 Spot Instances für einen kosteneffizienteren Ansatz. Spot Instances ermöglichen es dir, auf ungenutzte EC2-Kapazitäten zu bieten, oft mit einem erheblichen Rabatt gegenüber den On-Demand-Preisen. Für Aufgaben, die Persistenz erfordern (Speicherung von Daten, auch wenn die Spot Instance unterbrochen wird), wähle eine persistent request. Dies stellt sicher, dass dein Speichervolumen erhalten bleibt.

Konfiguration der Spot-Anfrage

Gehe die Schritte 4-7 des Instance-Startassistenten durch, um den Speicher zu konfigurieren, Tags hinzuzufügen, Sicherheitsgruppen einzurichten (stelle sicher, dass der SSH-Port 22 für deine IP geöffnet ist) und deine Einstellungen zu überprüfen, bevor du auf Launch klickst. Du musst außerdem ein Schlüsselpaar erstellen oder ein vorhandenes für den sicheren SSH-Zugriff auswählen.

Schritt 3: Verbindung zu deiner Instance herstellen

Sobald der Status deiner Instance 'running' anzeigt, wähle sie im EC2-Dashboard aus. Klicke auf die Schaltfläche Connect (Verbinden), um Verbindungsoptionen anzuzeigen. Verwende den bereitgestellten SSH-Befehl in deinem lokalen Terminal (z. B. Terminal unter macOS/Linux oder PuTTY/WSL unter Windows), um eine sichere Verbindung herzustellen. Du benötigst die private Schlüsseldatei (.pem), die du während des Starts erstellt oder ausgewählt hast.

SSH-Verbindungsoptionen für die AWS EC2-Instance

Schritt 4: Ausführen von Ultralytics YOLOv5

Jetzt, da du per SSH verbunden bist, kannst du YOLOv5 einrichten und ausführen. Klonen zuerst das offizielle YOLOv5-Repository von GitHub und navigiere in das Verzeichnis. Installiere anschließend die erforderlichen Abhängigkeiten mit pip. Es wird empfohlen, eine Python-Umgebung ab Version 3.8 zu verwenden. Die notwendigen Modelle und Datensätze werden automatisch aus dem neuesten YOLOv5-Release heruntergeladen, sobald du Befehle wie Training oder Erkennung ausführst.

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

# Install required packages
pip install -r requirements.txt

Sobald die Umgebung bereit ist, kannst du YOLOv5 für verschiedene Aufgaben verwenden:

# 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

Weitere detaillierte Anleitungen zu Training, Validation, Prediction (Inference) und Exporting findest du in der Ultralytics-Dokumentation.

Optionale Extras: Swap-Speicher erhöhen

Wenn du mit sehr großen Datensätzen arbeitest oder während des Trainings auf Speichergrenzen stößt, kann die Erhöhung des Swap-Speichers auf deiner Instance manchmal hilfreich sein. Der Swap-Bereich ermöglicht es dem System, Festplattenspeicher als virtuellen Arbeitsspeicher zu nutzen.

# 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

Herzlichen Glückwunsch! 🎉 Du hast erfolgreich eine AWS Deep Learning Instance eingerichtet, Ultralytics YOLOv5 installiert und bist bereit, Objekterkennungs-Aufgaben durchzuführen. Egal, ob du mit vortrainierten Modellen experimentierst oder auf deinen eigenen Daten trainierst – dieses leistungsstarke Setup bietet ein skalierbares Fundament für deine Projekte im Bereich Computer Vision. Solltest du auf Probleme stoßen, konsultiere die umfangreiche AWS-Dokumentation sowie die hilfreichen Ressourcen der Ultralytics-Community, wie z. B. die FAQ. Viel Erfolg beim Erkennen!

Kommentare