Beim Ausführen von Modelltraining und Inferenz für künstliche Intelligenz (KI) und maschinelles Lernen (ML) auf Kubernetes wird die dynamische Skalierung nach oben und unten zu einem kritischen Element. Das Training von KI-Modellen erfordert nicht nur Speicher und Netzwerke mit hoher Bandbreite zur Datenaufnahme, sondern auch umfangreiche (und teure) Rechenleistung, meist durch GPUs oder andere spezialisierte Prozessoren. Selbst beim Einsatz vorab trainierter Modelle sind Aufgaben wie die Bereitstellung und Feinabstimmung von Modellen in der Produktion immer noch rechenintensiver als die meisten Unternehmens-Workloads.
Cloud-natives Kubernetes ist auf schnelle Skalierbarkeit nach oben und unten ausgelegt. Es ist außerdem darauf ausgelegt, mehr Agilität und eine kosteneffizientere Ressourcennutzung für dynamische Workloads in hybriden Multi-Cloud-Umgebungen zu bieten.
In diesem Blog behandeln wir die drei gängigsten Möglichkeiten zum Skalieren von KI-/ML-Workloads auf Kubernetes, damit Sie optimale Leistung, Kosteneinsparungen und Anpassungsfähigkeit für dynamische Skalierung in unterschiedlichen Umgebungen erreichen.
Die drei gängigen Methoden zum Skalieren einer Arbeitslast durch Kubernetes sind Horizontal Pod Autoscaler (HPA), Vertical Pod Autoscaler (VPA) und Cluster Autoscaler.
Hier ist eine Aufschlüsselung dieser drei Methoden:
Jede Modalität hat ihre Vorteile für das Modelltraining und die Inferenz, die Sie in den folgenden Anwendungsfällen erkunden können.
In vielen Fällen können verteilte Trainings- und Inferenz-Workloads für KI-Modelle horizontal skaliert werden (d. h. durch Hinzufügen weiterer Pods können der Trainingsprozess oder die Anforderungsverarbeitung beschleunigt werden). Dadurch können die Workloads von HPA profitieren, das die Anzahl der Pods basierend auf Metriken wie CPU- und Speichernutzung oder sogar benutzerdefinierten und externen Metriken, die für die Workload relevant sind, skalieren kann. In Szenarien, in denen die Arbeitslast im Laufe der Zeit variiert, kann HPA die Anzahl der Pods dynamisch anpassen, um eine optimale Ressourcennutzung sicherzustellen.
Ein weiterer Aspekt der horizontalen Skalierung von KI-Workloads in Kubernetes ist der Lastausgleich. Um eine optimale Leistung und zeitnahe Anforderungsverarbeitung sicherzustellen, müssen eingehende Anforderungen auf mehrere Instanzen oder Pods verteilt werden. Aus diesem Grund ist ein Ingress-Controller eines der idealen Tools, das in Verbindung mit HPA verwendet werden kann.
Trainingsaufgaben für KI-Modelle sind häufig ressourcenintensiv und erfordern erhebliche CPU-, GPU- und Speicherressourcen. VPA kann diese Ressourcenzuweisungen dynamisch anpassen. Dadurch wird sichergestellt, dass jeder Pod über genügend Ressourcen verfügt, um die Trainingsarbeitslast effizient zu bewältigen, und dass alle zugewiesenen Pods über ausreichend Rechenkapazität zum Durchführen von Berechnungen verfügen. Darüber hinaus kann der Speicherbedarf während des Trainings großer Modelle erheblich schwanken. VPA kann dazu beitragen, Fehler aufgrund unzureichenden Arbeitsspeichers zu verhindern, indem die Speicherzuweisung nach Bedarf erhöht wird.
Obwohl es technisch möglich ist, HPA und VPA zusammen zu verwenden, ist zur Vermeidung von Konflikten eine sorgfältige Konfiguration erforderlich, da die beiden Systeme möglicherweise versuchen, dieselbe Arbeitslast auf unterschiedliche Weise zu skalieren (z. B. horizontal statt vertikal). Es ist wichtig, die Grenzen für jeden Autoscaler klar zu definieren und sicherzustellen, dass sie sich ergänzen und nicht miteinander in Konflikt geraten. Ein neuer Ansatz besteht darin, beide mit unterschiedlichem Umfang zu verwenden – zum Beispiel HPA für die arbeitslastbasierte Skalierung über mehrere Pods hinweg und VPA für die Feinabstimmung der Ressourcenzuweisung jedes Pods innerhalb der durch HPA festgelegten Grenzen.
Cluster Autoscaler kann dabei helfen, den gesamten Pool an Rechen-, Speicher- und Netzwerkinfrastrukturressourcen im gesamten Cluster dynamisch anzupassen, um die Anforderungen von KI-/ML-Workloads zu erfüllen. Durch Anpassen der Anzahl der Knoten in einem Cluster basierend auf den aktuellen Anforderungen kann ein Unternehmen eine Lastverteilung auf Makroebene vornehmen. Dies ist erforderlich, um eine optimale Leistung sicherzustellen, da KI-/ML-Workloads unvorhersehbar erhebliche Rechenressourcen erfordern können.
Zusammenfassend sind dies die drei Möglichkeiten, wie die automatische Skalierung von Kubernetes funktioniert und KI-Workloads zugute kommt:
HPA, VPA und Cluster Autoscaler ergänzen sich gegenseitig bei der Verwaltung von KI/ML-Workloads in Kubernetes. Cluster Autoscaler stellt sicher, dass genügend Knoten vorhanden sind, um die Arbeitslastanforderungen zu erfüllen, HPA verteilt die Arbeitslasten effizient auf mehrere Pods und VPA optimiert die Ressourcenzuweisung dieser Pods. Zusammen bieten sie eine umfassende Skalierungs- und Ressourcenverwaltungslösung für KI/ML-Anwendungen in Kubernetes-Umgebungen.
Besuchen Sie unsere Seite „Power and Protect Your AI Journey“, um mehr darüber zu erfahren, wie F5 und NGINX Ihnen bei der Bereitstellung, Sicherung und Optimierung Ihrer KI-/ML-Workloads helfen können.
„Dieser Blogbeitrag kann auf Produkte verweisen, die nicht mehr verfügbar und/oder nicht mehr unterstützt werden. Die aktuellsten Informationen zu verfügbaren F5 NGINX-Produkten und -Lösungen finden Sie in unserer NGINX-Produktfamilie . NGINX ist jetzt Teil von F5. Alle vorherigen NGINX.com-Links werden auf ähnliche NGINX-Inhalte auf F5.com umgeleitet."