PRZEWODNIK techniczny

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

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.

Kubernetes for ML Workloads to techniczny element konstrukcyjny, który wpływa na jakość modelu, koszt infrastruktury, opóźnienia i niezawodność na dużą skalę.

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.

Opanowanie Kubernetesa pod kątem obciążeń ML

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. Kubernetes for ML Workloads to techniczny element konstrukcyjny, który wpływa na jakość modelu, koszt infrastruktury, opóźnienia i niezawodność na dużą skalę. Aby osiągnąć głębokie zrozumienie, traktuj Kubernetes for ML Workloads jako model operacyjny, a nie pojedynczą funkcję: zdefiniuj pożądane wyniki, wyjaśnij założenia i oddziel to, co system może niezawodnie zrobić, od tego, co wciąż wymaga fachowej oceny.

W praktyce silne zespoły korzystające z Kubernetes do obciążeń ML optymalizują wybór architektury, danych i infrastruktury pod kątem niezawodności i kosztów. Dokumentują wyraźne kryteria sukcesu, testują realistyczne dane i przepływy pracy oraz wykonują iteracje w oparciu o zaobserwowane wzorce niepowodzeń, a nie jednorazowe zwycięstwa w testach porównawczych. W tym miejscu teoretyczne zrozumienie zamienia się w trwałe możliwości w zakresie produktu, polityki i operacji.

Decyzje dotyczące architektury wpływają na wydajność i koszty operacyjne przez lata. Jednocześnie optymalizacja jednego testu porównawczego może ukryć szersze słabości systemu. Najbardziej odporne podejście polega na połączeniu szybkości eksperymentowania z dyscypliną zarządzania: przeprowadzanie programów pilotażowych, gromadzenie dowodów, publikowanie dzienników decyzji i ciągłe aktualizowanie zabezpieczeń w miarę ewolucji zachowań modelu, oczekiwań użytkowników i wymagań prawnych.

Wpływ strategiczny

Decyzje dotyczące architektury wpływają na wydajność i koszty operacyjne przez lata.

Decyzje dotyczące architektury wpływają na wydajność i koszty operacyjne przez lata. W przypadku wdrożeń wysokiej jakości przekłada się to na mierzalne zasady działania, granice własności i rytuały cyklicznych przeglądów, dzięki czemu zespoły mogą zwiększać pewność siebie zamiast skalować niejednoznaczność.

Edukacja techniczna pomaga zespołom wybrać odpowiedni stos, a nie tylko najnowszy.

Edukacja techniczna pomaga zespołom wybrać odpowiedni stos, a nie tylko najnowszy. W przypadku wdrożeń wysokiej jakości przekłada się to na mierzalne zasady działania, granice własności i rytuały cyklicznych przeglądów, dzięki czemu zespoły mogą zwiększać pewność siebie zamiast skalować niejednoznaczność.

Lepsze wybory inżynieryjne zmniejszają liczbę incydentów związanych z niezawodnością w produkcji.

Lepsze wybory inżynieryjne zmniejszają liczbę incydentów związanych z niezawodnością w produkcji. W przypadku wdrożeń wysokiej jakości przekłada się to na mierzalne zasady działania, granice własności i rytuały cyklicznych przeglądów, dzięki czemu zespoły mogą zwiększać pewność siebie zamiast skalować niejednoznaczność.

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.

Wzorce implementacyjne

Kubernetes dla obciążeń ML w praktyce

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.

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 osiągnięciu zbieżności. Zespoły zwykle uzyskują lepsze wyniki, gdy z góry definiują progi jakości, utrzymują ludzką ścieżkę eskalacji w przypadku przypadków brzegowych i śledzą zarówno wzrost produktywności, jak i koszty błędów w czasie.

Kubernetes dla obciążeń ML w praktyce

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.

Firma zajmująca się handlem elektronicznym udostępnia swój model rekomendacji za pomocą KServe, który automatycznie skaluje repliki w górę podczas błyskawicznej sprzedaży i wycofuje z dnia na dzień. Zespoły zwykle uzyskują lepsze wyniki, gdy z góry definiują progi jakości, utrzymują ludzką ścieżkę eskalacji w przypadku przypadków brzegowych i śledzą zarówno wzrost produktywności, jak i koszty błędów w czasie.

Kubernetes dla obciążeń ML w praktyce

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.

Bank uruchamia co noc zadania wsadowe oceniające jako Kubernetes CronJobs, kolejkując je na zapasowych węzłach procesora, aby nie konkurowały z ruchem obsługującym w ciągu dnia. Zespoły zwykle uzyskują lepsze wyniki, gdy z góry zdefiniują progi jakości, utrzymują ludzką ścieżkę eskalacji w przypadku przypadków brzegowych i śledzą zarówno wzrost produktywności, jak i koszty błędów w czasie.

Kubernetes dla obciążeń ML w praktyce

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.

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 lokalnych instancjach, aby obniżyć koszty. Zespoły zwykle uzyskują lepsze wyniki, gdy z góry definiują progi jakości, utrzymują ludzką ścieżkę eskalacji w przypadku przypadków brzegowych i śledzą zarówno wzrost produktywności, jak i koszty błędów w czasie.

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

1

Przed wdrożeniem zdefiniuj docelowe opóźnienia, jakość i koszty.

Przed wdrożeniem zdefiniuj docelowe opóźnienia, jakość i koszty. Traktuj każdy krok jako bramkę dowodową: jeśli kryteria nie są spełnione, wstrzymaj wdrażanie, uzupełnij lukę i dopiero wtedy zwiększ wykorzystanie.

2

Test porównawczy w realistycznych warunkach obciążenia i danych.

Test porównawczy w realistycznych warunkach obciążenia i danych. Traktuj każdy krok jako bramkę dowodową: jeśli kryteria nie są spełnione, wstrzymaj wdrażanie, uzupełnij lukę i dopiero wtedy zwiększ wykorzystanie.

3

Monitorowanie przyrządu pod kątem błędów, dryftu i wpływu użytkownika.

Monitorowanie przyrządu pod kątem błędów, dryftu i wpływu użytkownika. Traktuj każdy krok jako bramkę dowodową: jeśli kryteria nie są spełnione, wstrzymaj wdrażanie, uzupełnij lukę i dopiero wtedy zwiększ wykorzystanie.

4

Przed skalowaniem przygotuj ścieżki wycofywania zmian i reakcji na incydenty.

Przed skalowaniem przygotuj ścieżki wycofywania zmian i reakcji na incydenty. Traktuj każdy krok jako bramkę dowodową: jeśli kryteria nie są spełnione, wstrzymaj wdrażanie, uzupełnij lukę i dopiero wtedy zwiększ wykorzystanie.

Odkrywaj dalej