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.
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
Docker ist im gesamten KI-Lebenszyklus allgegenwärtig, von ersten Experimenten bis hin zur endgültigen Bereitstellung.
Es ist hilfreich, Docker von verwandten Technologien zu unterscheiden, um seine spezifische Rolle zu verstehen:
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.")
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.