Kubernetes dla obciążeń ML
Kubernetes to system typu open source, który automatycznie planuje, skaluje i ponownie uruchamia skonteneryzowane programy w klastrze maszyn.
Przegląd
For machine learning, it lets teams pack GPU-hungry training jobs and latency-sensitive model servers onto shared hardware without babysitting individual servers.
Głębokie nurkowanie
Pierwotnie zbudowany w Google do uruchamiania usług internetowych, Kubernetes traktuje klaster jako jedną dużą pulę procesora, pamięci i procesorów graficznych, a następnie decyduje, na której maszynie będzie uruchamiany każdy kontener. Zespoły ML opierają się na tym, ponieważ obciążenia są gwałtowne i kosztowne: trening może wymagać ośmiu procesorów graficznych przez sześć godzin, a potem nic. Kubernetes planuje umieszczenie go w węźle z wolnymi procesorami graficznymi, a po zakończeniu zadania zwalnia sprzęt. Utrzymuje także serwery wnioskowania przy życiu, ponownie uruchamiając uszkodzone kontenery i rozprzestrzeniając repliki na komputerach w celu zapewnienia odporności. Zbudowane na wierzchu narzędzia, takie jak Kubeflow, Ray i KServe, dodają elementy specyficzne dla ML, takie jak operatory uczenia rozproszonego, dostrajanie hiperparametrów i punkty końcowe modelu automatycznego skalowania, dzięki czemu badacze danych pracują z abstrakcjami wyższego poziomu zamiast surowego YAML.
Wgląd techniczny
Kubernetes przypisuje procesory graficzne za pośrednictwem wtyczek do urządzeń, które reklamują zasoby, takie jak nvidia.com/gpu, które program planujący dopasowuje do żądań poda. Skażenia i tolerancje utrzymują tanie zadania procesora z dala od drogich węzłów GPU, podczas gdy selektory węzłów i reguły powinowactwa przypinają szkolenie do określonego sprzętu. W przypadku szkolenia z wieloma procesorami graficznymi operatorzy tworzą grupę podów, które odkrywają się nawzajem i uruchamiają platformy takie jak PyTorch DDP lub Horovod, wymieniając gradienty w sieci klastrów za pomocą NCCL.
Wpływ strategiczny
Koszt i budżet
Decyzje dotyczące architektury wpływają na wydajność i koszty operacyjne przez lata.
Jaśniejsze decyzje
Edukacja techniczna pomaga zespołom wybrać odpowiedni stos, a nie tylko najnowszy.
Kontrola jakości
Lepsze wybory inżynieryjne zmniejszają liczbę incydentów związanych z niezawodnością w produkcji.
Przyszłość Kubernetes dla obciążeń ML
Oczekuj ściślejszej integracji z systemem ML: harmonogramu grupowego, który uruchamia wszystkie rozproszone moduły szkoleniowe na raz lub wcale, ułamkowego i podzielonego w czasie udostępniania procesora graficznego, dzięki czemu kilka lekkich zadań korzysta z jednej karty, oraz rozmieszczenia uwzględniającego topologię, które uwzględnia szybkie połączenia międzysieciowe NVLink. Wnioskowanie bezserwerowe w Kubernetes, skalowanie punktów końcowych do zera między żądaniami, dojrzewa. W miarę rozszerzania się modeli programy planujące w coraz większym stopniu koordynują działania w wielu klastrach i chmurach, a oparte na kolejkach systemy sprawiedliwego podziału, takie jak Kueue i Volcano, stają się standardem w zarządzaniu skąpą wydajnością procesora graficznego.
Implementacja w świecie rzeczywistym
Laboratorium badawcze używa operatora szkoleniowego Kubeflow do uruchomienia rozproszonego zadania szkoleniowego PyTorch z 32 procesorami graficznymi w czterech węzłach, a następnie automatycznie zwalnia procesory graficzne po ich zbieżności.
Firma zajmująca się handlem elektronicznym udostępnia swój model rekomendacji za pomocą KServe, który automatycznie skaluje repliki w górę podczas wyprzedaży błyskawicznej i zmniejsza w ciągu nocy.
Bank uruchamia co noc zadania wsadowe oceniające jako Kubernetes CronJobs, umieszczając je w kolejce na wolnych węzłach procesora, aby nie konkurowały z ruchem obsługującym w ciągu dnia.
Startup używa Ray on Kubernetes do równoległego przeglądania hiperparametrów, uruchamiając dziesiątki krótkotrwałych zasobników próbnych w pojedynczych instancjach, aby obniżyć koszty.
Zagrożenia i poręcze
Optymalizacja jednego testu porównawczego może ukryć szersze słabości systemu.
Koszty infrastruktury i utrzymania są często niedoszacowane.
W miarę jak systemy stają się coraz bardziej złożone, luki w bezpieczeństwie i obserwowalności mogą się zwiększać.
Plan wdrożenia
Przed wdrożeniem zdefiniuj docelowe opóźnienia, jakość i koszty.
Test porównawczy w realistycznych warunkach obciążenia i danych.
Monitorowanie przyrządu pod kątem błędów, dryftu i wpływu użytkownika.
Przed skalowaniem przygotuj ścieżki wycofywania zmian i reakcji na incydenty.
Odkrywaj dalej
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the Kubernetes for ML Workloads quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
Następny poradnik
Testy A/B dla modeli ML
Często zadawane pytania
What is Kubernetes for ML Workloads?
Kubernetes to system typu open source, który automatycznie planuje, skaluje i ponownie uruchamia skonteneryzowane programy w klastrze maszyn. W przypadku uczenia maszynowego umożliwia zespołom umieszczanie zadań szkoleniowych obciążających procesor graficzny i serwerów modelowych wrażliwych na opóźnienia na współdzielonym sprzęcie bez konieczności opiekowania się pojedynczymi serwerami.
Jakie jest główne zadanie harmonogramu Kubernetes dla obciążeń ML?
Harmonogram dopasowuje żądania zasobów poda (procesor, pamięć, procesory graficzne) do dostępnych węzłów i umieszcza moduł tam, gdzie się zmieści. Nie dotyczy to kodu modelu ani danych.
W jaki sposób Kubernetes zazwyczaj udostępnia procesory graficzne dla kapsuły?
Wtyczki urządzeń ujawniają procesory graficzne jako zasoby, które można zaplanować (np. nvidia.com/gpu), umożliwiając podom żądanie ich i śledzenie dostępności przez program planujący.
Do czego powszechnie stosuje się skażenia i tolerancje w klastrze ML?
Skażenie odpycha strąki od węzła; Mogą tam wylądować tylko kapsuły o odpowiedniej tolerancji. Rezerwuje to ograniczone węzły GPU dla zadań, które faktycznie wymagają procesorów graficznych.
Które narzędzie dodaje funkcje specyficzne dla uczenia maszynowego, takie jak operatory rozproszonego szkolenia, w oparciu o Kubernetes?
Kubeflow nakłada przepływy pracy ML na Kubernetes, w tym szkolenie operatorów, potoki i dostrajanie, dzięki czemu zespoły unikają ręcznego pisania konfiguracji klastra niskiego poziomu.
Dlaczego Kubernetes dobrze nadaje się do dużych obciążeń ML?
Trening jest ostry: przez chwilę dużo procesorów graficznych, a potem żaden. Kubernetes umieszcza zadanie, gdy zasoby są wolne i zwalnia je po ukończeniu, poprawiając wykorzystanie.