Ultralytics YOLO27:

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

Das Einrichten einer leistungsstarken Deep-Learning-Umgebung kann besonders für Einsteiger herausfordernd wirken. Aber keine Sorge! 🛠️ Dieser Leitfaden führt dich Schritt für Schritt durch die Einrichtung und Inbetriebnahme von Ultralytics YOLOv5 auf einer AWS-Deep-Learning-Instanz. Dank der Leistungsfähigkeit von Amazon Web Services (AWS) können auch Einsteiger im Bereich maschinelles Lernen (ML) schnell und kostengünstig loslegen. Die Skalierbarkeit der AWS-Plattform macht sie ideal für Experimente und die Bereitstellung in der Produktion.

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, das auf Docker Hub Docker Pulls verfügbar ist.

Schritt 1: Bei der AWS-Konsole anmelden#

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

Anmeldeseite der AWS-Managementkonsole

Schritt 2: Deine Instanz starten#

Klicke im EC2-Dashboard auf die Schaltfläche Launch Instance. Dadurch wird der Prozess zum Erstellen eines neuen, auf deine Anforderungen zugeschnittenen virtuellen Servers gestartet.

Schaltfläche „Launch Instance“

Das richtige Amazon-Maschinen-Image (AMI) auswählen#

Die Auswahl des richtigen AMI ist entscheidend. Dadurch werden das Betriebssystem und die vorinstallierte Software für deine Instanz festgelegt. Gib in der Suchleiste „Deep Learning“ ein und wähle das neueste Ubuntu-basierte Deep Learning AMI aus, sofern du keine besonderen Anforderungen an ein anderes Betriebssystem hast. Die Deep Learning AMIs von Amazon sind mit gängigen Deep-Learning-Frameworks wie PyTorch, das von YOLOv5 verwendet wird, sowie den erforderlichen GPU-Treibern vorkonfiguriert, wodurch die Einrichtung deutlich vereinfacht wird.

Auswahl des AWS-EC2-Deep-Learning-AMI

Den Instanztyp auswählen#

Für anspruchsvolle Aufgaben wie das Trainieren von Deep-Learning-Modellen wird dringend empfohlen, einen GPU-beschleunigten Instanztyp auszuwählen. GPUs können die für das Modelltraining benötigte Zeit im Vergleich zu CPUs erheblich verkürzen. Achte bei der Auswahl der Instanzgröße darauf, dass die Speicherkapazität (RAM) für dein Modell und deinen Datensatz ausreicht.

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

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

Auswahl des AWS-EC2-GPU-Instanztyps

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

Deine Instanz konfigurieren#

Überlege dir, Amazon EC2 Spot Instances für einen kosteneffizienteren Ansatz zu nutzen. Spot Instances ermöglichen es dir, auf ungenutzte EC2-Kapazitäten zu bieten, oft mit einem signifikanten Rabatt im Vergleich zu On-Demand-Preisen. Für das Training, das eine Unterbrechung überstehen muss, wähle eine persistent request und stelle das Unterbrechungsverhalten auf stop statt auf terminate ein, sodass das EBS-Volume und deine Trainingsergebnisse erhalten bleiben und die Instanz neu gestartet wird, wenn die Kapazität zurückkehrt.

Konfiguration der Spot-Anfrage

Führe die Schritte 4–7 des Assistenten zum Starten der Instanz durch, um den Speicher zu konfigurieren, Tags hinzuzufügen, Sicherheitsgruppen einzurichten (stelle sicher, dass SSH-Port 22 von deiner IP-Adresse aus geöffnet ist) und deine Einstellungen zu überprüfen, bevor du auf Launch klickst. Außerdem musst du ein Schlüsselpaar für den sicheren SSH-Zugriff erstellen oder ein vorhandenes auswählen.

Schritt 3: Eine Verbindung zu deiner Instanz herstellen#

Sobald der Status deiner Instanz „running“ lautet, wähle sie im EC2-Dashboard aus. Klicke auf die Schaltfläche Connect, um die Verbindungsoptionen anzuzeigen. Verwende das bereitgestellte Beispiel für den 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 beim Start erstellt oder ausgewählt hast.

SSH-Verbindungsoptionen für die AWS-EC2-Instanz

Schritt 4: Ultralytics YOLOv5 ausführen#

Nachdem du die SSH-Verbindung hergestellt hast, kannst du YOLOv5 einrichten und ausführen. Klone zunächst 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-Umgebung ab Version 3.8 zu verwenden. Die erforderlichen Modelle und Datensätze werden automatisch aus dem neuesten YOLOv5-Release heruntergeladen, wenn du Befehle zum Trainieren oder Erkennen 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
python export.py --weights yolov5s.pt --include onnx coreml tflite --img 640

Siehe die Train Custom Data und Model Export Tutorials für detaillierte Anleitungen.

Optional: Swap-Speicher erweitern#

Wenn du mit sehr großen Datensätzen arbeitest oder während des Trainings an Speichergrenzen stößt, kann es manchmal helfen, den Swap-Speicher deiner Instanz zu erhöhen. Swap-Speicher ermöglicht es dem System, Festplattenspeicher als virtuellen RAM zu 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

Herzlichen Glückwunsch! 🎉 Du hast erfolgreich eine AWS-Deep-Learning-Instanz eingerichtet, Ultralytics YOLOv5 installiert und kannst nun Aufgaben zur Objekterkennung durchführen. Unabhängig davon, ob du mit vortrainierten Modellen experimentierst oder deine eigenen Daten zum Trainieren verwendest, bietet diese leistungsstarke Einrichtung eine skalierbare Grundlage für deine Computer-Vision-Projekte. Falls Probleme auftreten, konsultiere die umfangreiche AWS-Dokumentation und hilfreiche Ressourcen der Ultralytics-Community wie die FAQ. Viel Erfolg bei der Objekterkennung!

FAQ#

  • Wähle das neueste Ubuntu-basierte AWS Deep Learning AMI. Es enthält vorinstallierte NVIDIA-Treiber, CUDA und PyTorch, sodass als Einrichtung nur noch das Klonen des Repositorys und die Installation von requirements.txt erforderlich sind.

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

  • Verwende scp mit deinem .pem Schlüssel für kleine Übertragungen oder speichere Daten temporär in Amazon S3 und kopiere sie mit aws s3 sync. Trainingsausgaben landen in runs/train/ und Gewichtungen befinden sich in runs/train/exp/weights/.

  • Verwende eine persistente Spot-Anfrage, bei der das Unterbrechungsverhalten auf stop eingestellt ist, damit das EBS-Volume erhalten bleibt, und setze den Lauf dann nach dem Neustart der Instanz mit python train.py --resume vom letzten Checkpoint aus fort. Kopiere last.pt und best.pt regelmäßig nach S3, wenn du es dir nicht leisten kannst, Fortschritte zu verlieren.

Kommentare