Ultralytics YOLO27:
Get Started

Ultralytics YOLOv5 🚀 auf einer AWS-Deep-Learning-Instanz: dein vollständiger Leitfaden#

Die Einrichtung einer leistungsstarken Umgebung für Deep Learning kann einschüchternd wirken, besonders wenn du noch keine Erfahrung hast. Aber keine Sorge! 🛠️ Dieser Leitfaden erklärt Schritt für Schritt, wie du Ultralytics YOLOv5 auf einer AWS-Deep-Learning-Instanz einrichtest und ausführst. Dank der Möglichkeiten von Amazon Web Services (AWS) können auch Einsteiger in maschinelles Lernen (ML) schnell und kostengünstig loslegen. Die Skalierbarkeit der AWS-Plattform macht sie ideal für Experimente und den Produktiveinsatz.

Weitere Schnellstartoptionen für YOLOv5 sind unser Google-Colab-Notebook Open In Colab, Kaggle-Umgebungen Open In Kaggle, die GCP-Deep-Learning-VM und unser vorgefertigtes Docker-Image auf Docker Hub Docker Pulls.

Schritt 1: Bei der AWS-Konsole anmelden#

Erstelle zunächst ein Konto oder melde dich bei der AWS Management Console an. Öffne nach der Anmeldung das Dashboard des Dienstes EC2, wo du deine virtuellen Server (Instanzen) verwalten kannst.

Anmeldeseite der AWS Management Console

Schritt 2: Starte deine Instanz#

Klicke im EC2-Dashboard auf Launch Instance. Dadurch wird der Vorgang zum Erstellen eines neuen virtuellen Servers gestartet, der auf deine Anforderungen zugeschnitten ist.

Schaltfläche „Launch Instance“

Das richtige Amazon Machine Image (AMI) auswählen#

Die Auswahl des richtigen AMI ist entscheidend. Sie legt das Betriebssystem und die vorinstallierte Software für deine Instanz fest. Gib in der Suchleiste „Deep Learning“ ein und wähle das neueste Ubuntu-basierte Deep-Learning-AMI aus (es sei denn, du benötigst ausdrücklich ein anderes Betriebssystem). Die Deep-Learning-AMIs von Amazon sind mit beliebten Deep-Learning-Frameworks (wie PyTorch, das YOLOv5 verwendet) und den erforderlichen GPU-Treibern vorkonfiguriert, was die Einrichtung erheblich vereinfacht.

Auswahl eines AWS-EC2-Deep-Learning-AMI

Den Instanztyp auswählen#

Für anspruchsvolle Aufgaben wie das Training von Deep-Learning-Modellen empfiehlt sich ein GPU-beschleunigter Instanztyp. GPUs können die benötigte Trainingszeit im Vergleich zu CPUs erheblich verkürzen. Achte bei der Auswahl einer Instanzgröße darauf, dass genügend Arbeitsspeicher (RAM) für dein Modell und deinen Datensatz verfügbar ist.

Hinweis: Die Größe deines Modells und Datensatzes sind entscheidende Faktoren. Wenn deine ML-Aufgabe mehr Arbeitsspeicher benötigt, als die ausgewählte Instanz bietet, musst du einen größeren Instanztyp wählen, um Leistungsprobleme oder Fehler zu vermeiden.

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

Auswahl eines AWS-EC2-GPU-Instanztyps

Ausführliche Informationen zur Überwachung und Optimierung der GPU-Nutzung findest du im AWS-Leitfaden zu GPU-Überwachung und -Optimierung. Vergleiche die Kosten mithilfe der On-Demand-Preise und informiere dich über mögliche Einsparungen mit den Spot-Instance-Preisen.

Deine Instanz konfigurieren#

Amazon-EC2-Spot-Instances können eine kostengünstigere Alternative sein. Mit Spot-Instances kannst du ungenutzte EC2-Kapazität verwenden, oft deutlich günstiger als zum On-Demand-Preis. Wenn dein Training eine Unterbrechung überstehen muss, wähle eine dauerhafte Anfrage und lege als Verhalten bei einer Unterbrechung stop statt „terminate“ fest. So bleiben das EBS-Volume und deine Trainingsergebnisse erhalten, und die Instanz startet neu, sobald wieder Kapazität verfügbar ist.

Konfiguration einer Spot-Anfrage

Fahre mit den restlichen Starteinstellungen fort, um den Speicher zu konfigurieren, Tags hinzuzufügen, Sicherheitsgruppen einzurichten (stelle sicher, dass SSH-Port 22 für deine IP-Adresse offen ist) und deine Einstellungen zu überprüfen, bevor du auf Launch klickst. Für den sicheren SSH-Zugriff musst du außerdem ein Schlüsselpaar erstellen oder ein vorhandenes auswählen.

Schritt 3: Verbinde dich mit deiner Instanz#

Sobald der Status deiner Instanz „running“ lautet, wähle sie im EC2-Dashboard aus. Klicke auf Connect, um die Verbindungsoptionen anzuzeigen. Stelle über dein lokales Terminal (zum Beispiel Terminal unter macOS/Linux oder PuTTY/WSL unter Windows) eine sichere Verbindung her, indem du den bereitgestellten SSH-Befehlsvorschlag verwendest. Dazu benötigst du die private Schlüsseldatei (.pem), die du beim Start erstellt oder ausgewählt hast.

Optionen für die SSH-Verbindung zu einer AWS-EC2-Instanz

Schritt 4: Ultralytics YOLOv5 ausführen#

Nachdem du nun per SSH verbunden bist, kannst du YOLOv5 einrichten und ausführen. Klone zuerst das offizielle YOLOv5-Repository von GitHub und wechsle in das Verzeichnis. Installiere anschließend die erforderlichen Abhängigkeiten mit pip. Es wird empfohlen, eine Python-3.8-Umgebung oder höher zu verwenden. Die erforderlichen Modelle und Datensätze werden automatisch aus der neuesten YOLOv5-Version heruntergeladen, wenn du Befehle zum Trainieren oder zur 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 einsetzen:

# 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

Ausführliche Anleitungen findest du in den Tutorials Benutzerdefinierte Daten trainieren und Modell exportieren.

Optionale Extras: Swap-Speicher vergrößern#

Wenn du mit sehr großen Datensätzen arbeitest oder beim Training an Speichergrenzen stößt, kann es manchmal helfen, den Swap-Speicher deiner Instanz zu vergrößern. Mit Swap-Speicher kann das System Festplattenspeicher als virtuellen RAM verwenden.

# 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

Glückwunsch! 🎉 Du hast erfolgreich eine AWS-Deep-Learning-Instanz eingerichtet, Ultralytics YOLOv5 installiert und kannst jetzt Aufgaben zur Objekterkennung ausführen. Ganz gleich, ob du mit vortrainierten Modellen experimentierst oder mit deinen eigenen Daten trainierst: Diese leistungsstarke Einrichtung bietet eine skalierbare Grundlage für deine Computer-Vision-Projekte. Falls Probleme auftreten, helfen dir die ausführliche AWS-Dokumentation und nützliche Ressourcen der Ultralytics-Community wie die FAQ weiter. Viel Erfolg beim Erkennen!

Häufig gestellte Fragen#

  • Wähle das neueste Ubuntu-basierte AWS-Deep-Learning-AMI. Es enthält vorinstallierte NVIDIA-Treiber, CUDA und PyTorch. Du musst also nur noch das Repository klonen und requirements.txt installieren.

  • Jede GPU-Instanz aus der Familie Accelerated Computing eignet sich, zum Beispiel Instanzen vom Typ g4dn, g5 oder p3. Wähle ausreichend GPU-Speicher für deine Batch- und Bildgröße und verwende --batch-size -1, damit YOLOv5 die größte passende Batchgröße ermittelt.

  • Verwende scp mit deinem .pem-Schlüssel für kleine Übertragungen oder speichere die Daten zunächst in Amazon S3 und kopiere sie mit aws s3 sync. Die Trainingsergebnisse werden unter runs/train/ abgelegt; die Gewichte findest du unter runs/train/exp/weights/.

  • Verwende eine dauerhafte Spot-Anfrage und lege als Verhalten bei einer Unterbrechung stop fest, damit das EBS-Volume erhalten bleibt. Setze den Lauf mit python train.py --resume am letzten Checkpoint fort, sobald die Instanz neu gestartet wurde. Kopiere last.pt und best.pt regelmäßig nach S3, wenn du dir keinen Fortschrittsverlust leisten kannst.

Kommentare