Yolo Vision Shenzhen
Shenzhen
Jetzt beitreten
Glossar

Docker

Vereinfachen Sie KI/ML-Workflows mit Docker! Erfahren Sie, wie Sie Modelle bereitstellen, Reproduzierbarkeit sicherstellen und effizient über verschiedene Umgebungen hinweg skalieren.

Docker ist eine Open-Source-Plattform, mit der Entwickler die Bereitstellung, Skalierung und Verwaltung von Anwendungen mithilfe von Containerisierung automatisieren können. Im Zusammenhang mit künstlicher Intelligenz und maschinellem Lernen fungiert Docker als standardisierte Softwareeinheit, die Code und alle seine Abhängigkeiten – wie Bibliotheken, Systemtools und Einstellungen – bündelt, sodass die Anwendung schnell und zuverlässig von einer Computerumgebung zur anderen ausgeführt werden kann. Dadurch wird das häufige Problem „Auf meinem Rechner funktioniert es“ beseitigt und sichergestellt, dass sich ein neuronales Netzwerk, das auf dem Laptop eines Forschers trainiert wurde, bei der Bereitstellung auf einem massiven Cloud-Server oder einem Edge-Gerät genau gleich verhält.

Warum Docker für KI und maschinelles Lernen wichtig ist

Moderne Machine-Learning-Operationen (MLOps) sind in hohem Maße auf Reproduzierbarkeit und Portabilität angewiesen. Ein KI-Projekt umfasst oft einen komplexen Software-Stack, darunter spezifische Versionen von Python, CUDA für die GPU und Deep-Learning-Frameworks wie PyTorch oder TensorFlow. Die manuelle Verwaltung dieser Komponenten über verschiedene Teams und Infrastrukturen hinweg ist fehleranfällig.

Docker vereinfacht dies durch die Erstellung leichter, eigenständiger Container. Im Gegensatz zu herkömmlichen virtuellen Maschinen (VMs), die für jede Instanz ein vollständiges Betriebssystem benötigen, teilen sich Container den Betriebssystemkern des Host-Rechners, laufen jedoch in isolierten Benutzerbereichen. Dadurch sind sie wesentlich ressourceneffizienter und lassen sich schneller starten, was bei der Skalierung der Modell-Serving-Infrastruktur oder der Ausführung verteilter Trainingsjobs

Anwendungsfälle in der Praxis

Docker ist im gesamten KI-Lebenszyklus allgegenwärtig, von ersten Experimenten bis hin zur endgültigen Bereitstellung.

  1. Konsistente Trainingsumgebungen: Ein Data-Science-Team kann Docker-Images verwenden, um eine einheitliche Entwicklungsumgebung zu teilen. Beispielsweise kann ein Forscher, der an der Objekterkennung arbeitet, ein vorgefertigtes Image mit allen erforderlichen Treibern und Bibliotheken abrufen. Dadurch wird sichergestellt, dass beim Training eines YOLO26-Modells die Ergebnisse von den Kollegen reproduzierbar sind, unabhängig von den zugrunde liegenden Hardwareunterschieden.
  2. Edge-KI-Bereitstellung: Bei der Überwachung in Smart Cities müssen aktualisierte Modelle auf Tausende von Edge-Geräten wie Verkehrskameras oder Drohnen übertragen werden. Mit Docker-Containern können Ingenieure eine neue Modellversion packen und drahtlos bereitstellen. Da der Container die Inferenz-Laufzeitumgebung enthält, läuft der Aktualisierungsprozess nahtlos ab und beeinträchtigt das Kernbetriebssystem des Geräts nicht.

Docker vs. Kubernetes vs. Virtuelle Maschinen

Es ist hilfreich, Docker von verwandten Technologien zu unterscheiden, um seine spezifische Rolle zu verstehen:

  • Docker vs. Virtuelle Maschinen (VMs): VMs virtualisieren die Hardware, was bedeutet, dass jede VM ein vollständiges Betriebssystem (wie Windows oder Linux) auf einem Hypervisor ausführt. Dies verbraucht viel Speicher und CPU. Docker virtualisiert das Betriebssystem, wodurch Container viel kleiner und schneller als VMs sind.
  • Docker vs. Kubernetes: Hierbei handelt es sich um sich ergänzende, nicht konkurrierende Technologien. Docker ist das Tool zum Erstellen und Ausführen einzelner Container. Kubernetes ist eine Container-Orchestrierungsplattform, die Cluster von Docker-Containern verwaltet und Aufgaben wie automatische Skalierung, Lastenausgleich und Selbstheilung in großen Cloud-Computing-Umgebungen übernimmt.

Beispiel: Ausführen einer Inferenz in einem Container

Das folgende Beispiel zeigt, wie ein Python in einem für Computer Vision entwickelten Docker-Container aussehen könnte . Dieses Skript verwendet die ultralytics Paket zum Laden eines Modells und zur Durchführung von Inferenz. Die Containerumgebung stellt sicher, dass die richtigen Abhängigkeiten (wie opencv-python und torch) bereits vorhanden sind.

from ultralytics import YOLO

# Load the YOLO26 model (weights are typically included in the Docker image)
model = YOLO("yolo26n.pt")

# Perform inference on an image source
# In a containerized microservice, this might process incoming API requests
results = model.predict("https://ultralytics.com/images/bus.jpg")

# Log the detection results
print(f"Detected {len(results[0].boxes)} objects in the image.")

Docker in Ihren Arbeitsablauf integrieren

Um mit der Containerisierung zu beginnen, definieren Entwickler in der Regel eine Dockerfile, ein Textdokument, das alle Befehle zum Zusammenstellen eines Images enthält. Nach der Erstellung können diese Images in Registern wie Docker-Hub oder die NVIDIA -Katalog, das GPU Container anbietet.

Für diejenigen, die den Trainings- und Bereitstellungsprozess optimieren möchten, ohne Dockerfiles manuell verwalten zu müssen, bietet Ultralytics integrierte Tools, die die Komplexität von Cloud-Umgebungen bewältigen. So können sich Benutzer auf die Verbesserung der Modellgenauigkeit konzentrieren, anstatt die Infrastruktur zu konfigurieren. Darüber hinaus können Sie in unserem Docker-Schnellstart-Leitfaden nachlesen, wie Sie Ultralytics sofort in Containern ausführen können.

Werden Sie Mitglied der Ultralytics

Gestalten Sie die Zukunft der KI mit. Vernetzen Sie sich, arbeiten Sie zusammen und wachsen Sie mit globalen Innovatoren

Jetzt beitreten