Entdecken Sie, wie Kubernetes KI/ML-Workloads mit skalierbarer Modellbereitstellung, verteiltem Training und effizientem Ressourcenmanagement optimiert.
Kubernetes, häufig abgekürzt als K8s, ist ein Open-Source-Container-Orchestrierungssystem, das die Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen automatisiert. Ursprünglich wurde es von Google entwickelt und wird nun der Cloud Native Computing Foundation (CNCF), hat sich Kubernetes zum zum Industriestandard für den Betrieb stabiler, verteilter Softwaresysteme entwickelt. In den schnell fortschreitenden Bereichen der Künstliche Intelligenz (KI) und Maschinelles Lernen (ML), dient es als grundlegende Infrastrukturschicht, die es Ingenieurteams ermöglicht, den gesamten Lebenszyklus komplexer Lebenszyklus komplexer Modelle von der experimentellen Entwicklung bis hin zur Produktion in großem Maßstab zu verwalten.
Im Kern verwaltet Kubernetes einen Cluster von Computern, die als Nodes bezeichnet werden und auf denen containerisierte Arbeitslasten ausgeführt werden. Es stützt sich stark auf die Containerisierung - eineTechnologie Technologie, die Code zusammen mit seinen Abhängigkeiten verpackt, um sicherzustellen, dass Anwendungen in verschiedenen Umgebungen. Kubernetes führt Abstraktionen wie "Pods" ein, die die kleinsten bereitstellbaren Einheiten darstellen, und "Deployments", die den gewünschten Zustand einer Anwendung aufrechterhalten. Durch die Entkopplung der Software von der der zugrunde liegenden Hardware ermöglicht es Computer-Vision-Ingenieure sich auf die Modellleistung Leistung statt auf die Serverwartung zu konzentrieren, indem sie verwaltete Dienste wie Amazon EKS oder Google Kubernetes Engine (GKE).
Für Machine Learning Operations (MLOps) ist Kubernetes unverzichtbar, denn es löst die kritische Herausforderung der Skalierbarkeit löst. Moderne KI-Workloads, insbesondere solche mit Deep Learning, erfordern erhebliche Rechenressourcen. Kubernetes erleichtert verteiltes Training durch intelligentes Trainingsaufgaben über mehrere mit Grafikprozessoren ausgestattete Knoten Grafikverarbeitungseinheiten (GPUs) ausgestattet sind. Während der Modellbereitstellungsphase gewährleistet K8s K8s eine hohe Verfügbarkeit der Inferenz-APIs und skaliert die Anzahl der laufenden Pods automatisch nach oben oder unten, je nach Echtzeit Echtzeit-Verkehrsanforderungen, wodurch sowohl die Leistung als auch die Kosten optimiert werden.
Es ist hilfreich zu verstehen, wie sich Kubernetes von anderen gängigen Infrastruktur-Tools unterscheidet:
Das Kubernetes-Ökosystem ist riesig und umfasst Tools wie Helm für die Paketverwaltung und Prometheus für die Überwachung des Zustands von Clustern. Für spezialisierte ML-Workflows werden Plattformen wie Kubeflow auf Kubernetes aufgesetzt, um End-to-End-Pipelines zu optimieren. Mit Blick auf die Zukunft soll die kommende Ultralytics Diese Plattform soll diese Prozesse weiter vereinfachen und eine umfassende Umgebung für das Datenmanagement und die Modellschulung bieten, die abstrahiert die zugrunde liegende Infrastrukturkomplexität.
Um ein Modell in Kubernetes bereitzustellen, benötigen Sie zunächst ein Skript, das eine Inferenz durchführt. Dieses Python demonstriert das Laden eines YOLO11 , das dann in einen Docker-Container verpackt und von K8s bereitgestellt werden kann.
from ultralytics import YOLO
# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")
# Run inference on an image source
# This script would typically run inside a Kubernetes Pod
results = model("https://ultralytics.com/images/bus.jpg")
# Print the detected class names
for result in results:
for cls_id in result.boxes.cls:
print(f"Detected: {result.names[int(cls_id)]}")