Erfahren Sie, wie Containerisierung die KI-Bereitstellung optimiert. Entdecken Sie, wie Sie mit Docker und Kubernetes Ultralytics konsistent in jeder Umgebung ausführen können.
Containerisierung ist eine Strategie zur Softwarebereitstellung, bei der der Quellcode einer Anwendung zusammen mit ihren Bibliotheken, Abhängigkeiten und Konfigurationsdateien in einer einzigen, schlanken ausführbaren Einheit, einem sogenannten Container, gebündelt wird. Dieser Ansatz abstrahiert die Software von der zugrunde liegenden Infrastruktur und stellt sicher, dass Anwendungen in verschiedenen Computing-Umgebungen, vom lokalen Laptop eines Entwicklers bis hin zu riesigen Cloud-Computing-Clustern, konsistent ausgeführt werden. Im Zusammenhang mit maschinellem Lernen (ML) löst die Containerisierung das berüchtigte Problem „Auf meinem Rechner funktioniert es“, indem sie die komplexe Umgebung, die für das Training und den Betrieb neuronaler Netze erforderlich ist,
Für Datenwissenschaftler und ML-Ingenieure stellt die Verwaltung von Umgebungen eine große Herausforderung dar. Verschiedene Projekte können konfliktbehaftete Versionen von Python, CUDA oder Bibliotheken wie PyTorch erfordern. Die Containerisierung beseitigt diese Konflikte durch die Schaffung isolierter, unveränderlicher Umgebungen.
Es ist wichtig, Container von virtuellen Maschinen (VMs) zu unterscheiden. Eine VM emuliert einen gesamten Hardware-Stack, einschließlich eines vollständigen Gastbetriebssystems, was zu einem erheblichen Ressourcenaufwand und langsameren Startzeiten führt. Im Gegensatz dazu virtualisiert die Containerisierung das Betriebssystem, sodass mehrere Anwendungen als isolierte Prozesse auf einem einzigen gemeinsam genutzten Kernel ausgeführt werden können. Dieser geringere Platzbedarf macht Container zur bevorzugten Wahl für Edge-AI-Szenarien, in denen die Hardware-Ressourcen begrenzt sind, wie z. B. auf IoT-Geräten oder Drohnen. Einen ausführlicheren technischen Vergleich finden Sie im Red Hat-Leitfaden zu Containern und VMs.
Mehrere Schlüsseltechnologien bilden das Rückgrat des modernen Container-Ökosystems:
Containerisierung ist in modernen KI-Workflows allgegenwärtig und ermöglicht schnelle Iterationen und zuverlässige Bereitstellungen.
Wenn Sie einen Container für eine KI-Anwendung erstellen, fügen Sie in der Regel ein Skript zur Verarbeitung hinzu.
Modell-ServiceDer folgende Python -Ausschnitt
zeigt einen einfachen Inferenz-Workflow unter Verwendung der ultralytics Paket. Dieses Skript würde innerhalb des
Containers ausgeführt werden und dabei die vorinstallierten Abhängigkeiten der Umgebung nutzen.
from ultralytics import YOLO
# Load the YOLO26 model (weights are usually baked into the container image)
# YOLO26 is the latest state-of-the-art model for real-time tasks
model = YOLO("yolo26n.pt")
# Perform inference on an image URL
# In production, this might handle API requests or video streams
results = model.predict("https://ultralytics.com/images/bus.jpg")
# Print the number of detected objects to the logs
print(f"Inference complete. Detected {len(results[0].boxes)} objects.")
Durch die Kapselung dieser Logik in einem Container stellen Entwickler sicher, dass die Python und die Bibliotheksversionen konstant bleiben und verhindern so unerwartete Ausfälle in der Produktion. Für eine vereinfachte Modellverwaltung, -schulung und -bereitstellung nutzen viele Teams die Ultralytics , die containerbasierte Workflows nativ unterstützt. Weitere Informationen zu Bereitstellungsstrategien finden Sie im AWS-Leitfaden zu Anwendungsfällen für Container.