Wraz z rosnącą popularnością dużych modeli językowych (LLM), rośnie też zapotrzebowanie na efektywne trenowanie i wdrażanie rozproszonych systemów AI. Wyzwania związane z sieciową komunikacją, przydziałem zasobów oraz odpornością na błędy coraz częściej stają się barierą dla skalowalności. W odpowiedzi na te potrzeby powstało rozwiązanie o nazwie Volcano – projekt rozwijany w ramach fundacji CNCF, który wspomaga środowiska Kubernetes w skutecznym zarządzaniu obciążeniami związanymi z LLM.
W procesie trenowania dużych modeli, dane są dzielone i przetwarzane równolegle na wielu węzłach, co generuje intensywną wymianę komunikatów sieciowych. Im większa złożoność środowiska, szczególnie przy wykorzystaniu technologii takich jak InfiniBand, RoCE czy NVSwitch, tym większe ryzyko opóźnień i problemów z przepustowością. Aby to ograniczyć, Volcano wykorzystuje tzw. planowanie z uwzględnieniem topologii sieci. Kluczową rolę odgrywa tutaj HyperNode – warstwa abstrakcyjna opisująca faktyczną strukturę sieci za pomocą niestandardowych zasobów CRD (Custom Resource Definitions).
Koncepcja HyperNode różni się od klasycznych metod etykietowania w Kubernetes, oferując bardziej przejrzystą i czytelną strukturę hierarchiczną, która odzwierciedla realne połączenia sieciowe w środowisku fizycznym. Dzięki tej technologii dane mogą być przesyłane znacznie szybciej i efektywniej – zwłaszcza między węzłami znajdującymi się w tej samej domenie topologicznej. Dodatkowo, użytkownik ma możliwość definiowania polityk związanych z rozmieszczeniem zadań względem sieci poprzez pole networkTopology, które pozwala określić, czy dana konfiguracja ma być stosowana rygorystycznie (tryb Hard), czy bardziej elastycznie (tryb Soft).
W sytuacjach, gdy pojedynczy klaster Kubernetes przestaje być wystarczający, Volcano umożliwia bezproblemowe zarządzanie środowiskami wieloklastrowymi (multicluster). Integrując się z systemem zarządzania Karmada, projekt ten pozwala na elastyczne i efektywne rozmieszczanie zadań między klastrami. Volcano zapewnia takie mechanizmy jak harmonogramowanie w oparciu o kolejki priorytetowe, adaptacja do wielu użytkowników i ich sprawiedliwy dostęp do zasobów, co pozwala na bardziej zrównoważone i skalowalne prowadzenie obciążeń AI.
Istotną funkcjonalnością, która zwiększa odporność środowiska rozproszonego, jest precyzyjne zarządzanie błędami. Zamiast restartować całe zadanie po awarii jednego z podów (kontenerów), Volcano oferuje mechanizmy odzyskiwania awarii na poziomie pojedynczego zadania lub połączonych zadań. Dzięki integracji z checkpointami system może wznowić proces trenowania dokładnie w miejscu, w którym nastąpiła przerwa – minimalizując przy tym utratę zasobów. Dodatkową zaletą jest możliwość ustalenia limitu czasowego dla danej operacji, co pozwala uniknąć niepotrzebnego restartowania procesu w przypadku krótkotrwałych problemów.
Warto także wspomnieć o planach dalszego rozwoju Volcano. W przygotowaniu są nowe możliwości, takie jak harmonogramowanie zadań z uwzględnieniem topologii sieci na poziomie poszczególnych komponentów modelu, automatyczne wykrywanie i aktualizacja stanu HyperNode, a także dynamiczne przydzielanie zasobów z uwzględnieniem ich różnorodności – zarówno pod względem typu, jak i wydajności. Istotnym kierunkiem jest też rozwój wsparcia dla elastycznego dzielenia mocy GPU, m.in. z wykorzystaniem technologii MIG (Multi-Instance GPU) oraz MPS (Multi-Process Service), co przyczynia się do lepszego wykorzystania dostępnych zasobów graficznych.
Volcano to istotny krok w kierunku pełniejszego wykorzystania potencjału dużych modeli językowych w rozproszonych środowiskach obliczeniowych. Jego zaawansowane funkcje planowania, zarządzania i odzyskiwania pozwalają nie tylko skrócić czas trenowania, ale przede wszystkim zwiększyć niezawodność oraz efektywność operacyjną. Dla firm rozwijających zaawansowane technologie AI i potrzebujących elastycznego zarządzania zasobami w ramach Kubernetes, Volcano może stanowić fundament pod przyszłościowe i skalowalne rozwiązania.
Więcej informacji na temat projektu można znaleźć na jego oficjalnym repozytorium GitHub lub dołączając do aktywnej społeczności na Slacku, gdzie organizowane są także cotygodniowe spotkania dla zainteresowanych rozwojem technologii.