Sprint Data Center • ul. Jagiellończyka 26, 10-062 Olsztyn
+48 89 522 12 20
info@sprintdatacenter.pl

Inferencja vs. trenowanie modeli AI – jak dobrać specyfikację serwera dedykowanego i pamięć VRAM do konkretnego zadania?

blog informacyjny dla użytkowników usług SDC

Created with Sketch.

Inferencja vs. trenowanie modeli AI z wykorzystaniem serwerów dedykowanych

Wybór serwera dedykowanego do aplikacji związanych z AI nie powinien ograniczać się do weryfikacji jego konfiguracji pod kątem karty graficznej. Należy zwracać uwagę także na inne parametry i najlepiej na początek ustalić, do czego właściwie będzie wykorzystywana infrastruktura IT. Inferencja, trening modelu, dostrajanie czy połączenie kilku takich zadań mają zupełnie odmienne wymagania. Podczas inferencji gotowy model wykonuje obliczenia na dostarczonych danych. Z kolei w treningu dochodzą gradienty, aktywacje oraz stany optymalizatora.

W artykule wyjaśniamy, jak oszacować wymagania dotyczące VRAM, dobrać klasę GPU i liczbę akceleratorów. Dowiesz się z niego także, jak skonfigurować serwery dedykowane tak, aby poszczególne ich podzespoły nie stały się wąskim gardłem dla kart graficznych.

Inferencja a trening AI – najważniejsze różnice

Inferencja to po prostu wykorzystanie gotowego modelu AI do wykonania konkretnego zadania. Może chodzić o generowanie tekstu, klasyfikowanie danych, rozpoznawanie obrazów, analizowanie dokumentów czy odpowiadanie na pytania użytkowników. Model jest już wytrenowany, więc serwer ładuje go do pamięci i obsługuje kolejne zapytania.

W takim środowisku jednym z głównych problemów jest zmieszczenie modelu w dostępnej pamięci GPU. Przy dużych modelach językowych dochodzi jeszcze KV cache, czyli pamięć wykorzystywana podczas generowania kolejnych tokenów. Im dłuższy kontekst i im więcej jednocześnie obsługiwanych żądań, tym więcej pamięci trzeba na niego przeznaczyć.

Trening modeli AI wygląda inaczej. Podczas propagacji wstecznej system musi zachować dodatkowe informacje potrzebne do obliczenia gradientów i aktualizacji parametrów. Dochodzą też stany optymalizatora. Na przykład trening w mieszanej precyzji z wykorzystaniem algorytmu AdamW może wymagać około 18 bajtów pamięci na parametr, jeszcze zanim doliczymy dodatkową pamięć potrzebną na aktywacje.

To dlatego model, który bez problemu działa na jednej karcie podczas inferencji, przy pełnym treningu może wymagać kilku GPU.

VRAM a RAM – do czego służą te pamięci?

VRAM to pamięć karty GPU, z której korzysta ona podczas wykonywania obliczeń. Przechowywane są w niej między innymi parametry modelu, dane potrzebne do obliczeń oraz dodatkowe informacje wykorzystywane podczas pracy modelu. W przypadku modeli językowych część pamięci zajmuje również tzw. pamięć podręczna przechowująca informacje potrzebne do generowania kolejnych fragmentów tekstu. Ilość VRAM często decyduje więc o tym, czy dany model można uruchomić na konkretnej karcie GPU.

RAM jest natomiast pamięcią operacyjną całego serwera dedykowanego. Trafiają do niej dane przygotowywane do obliczeń, procesy systemowe, zbiory danych wykorzystywane podczas trenowania modeli oraz inne elementy potrzebne do działania aplikacji. Duża ilość RAM nie zastąpi jednak brakującej pamięci VRAM. Część danych można przechowywać w pamięci systemowej i przesyłać je do GPU w razie potrzeby, ale takie rozwiązanie jest wolniejsze. Dlatego dane, z których GPU korzysta najczęściej, powinny mieścić się w jego własnej pamięci.

Co zajmuje pamięć VRAM podczas pracy modelu AI?

Liczba parametrów modelu AI to dopiero początek. Podczas korzystania z gotowego modelu pamięć GPU zajmują przede wszystkim jego parametry, ale potrzebne jest również miejsce na dane tymczasowe i informacje wykorzystywane podczas obliczeń. W przypadku modeli generujących tekst dodatkowa pamięć jest potrzebna do przechowywania informacji z wcześniejszej części rozmowy. Im dłuższy tekst AI musi uwzględnić jednocześnie, tym więcej pamięci jest potrzebne.

Dla informacji zapisanych w formacie BF16 lub FP16 można przyjąć orientacyjnie około 2 GB VRAM na miliard parametrów. Jest to jednak tylko przybliżenie dotyczące samych parametrów modelu. Podczas trenowania zapotrzebowanie na pamięć jest jeszcze większe. GPU musi przechowywać nie tylko sam model, ale również informacje potrzebne do obliczania zmian jego parametrów i przeprowadzania kolejnych etapów treningu. Ilość potrzebnej pamięci zależy między innymi od liczby przetwarzanych danych jednocześnie oraz długości analizowanych tekstów.

Jak dobrać ilość VRAM do pracy z AI?

Przy uruchamianiu gotowego modelu warto najpierw oszacować, ile pamięci zajmą jego parametry. Dla modelu 7B w formacie BF16/FP16 będzie to około 14 GB, a dla 70B około 140 GB. Trzeba jednak zostawić dodatkowy zapas na dane robocze oraz informacje wykorzystywane podczas generowania odpowiedzi. Przy krótkich tekstach dodatkowe zapotrzebowanie będzie niewielkie, natomiast przy bardzo długich sekwencjach może szybko wzrosnąć.

Jednym ze sposobów na ograniczenie wymagań sprzętowych jest zmniejszenie ilości pamięci zajmowanej przez parametry, czyli kwantyzacja. Model 70B zapisany w formacie INT4 potrzebuje około 35 GB na same parametry, zamiast około 140 GB w BF16/FP16. Nie oznacza to jednak, że karta z 40 GB VRAM wystarczy. Konieczne jest również pozostawienie miejsca na dane robocze i pozostałe elementy wykorzystywane podczas generowania odpowiedzi.

Trenowanie modeli stawia przed sprzętem jeszcze większe wymagania. GPU musi przechowywać nie tylko same parametry, ale także informacje wykorzystywane do obliczania kolejnych zmian podczas uczenia. Przy dostrajaniu gotowego rozwiązania zapotrzebowanie może być mniejsze niż przy trenowaniu od podstaw. Metody takie jak LoRA i QLoRA pozwalają dodatkowo ograniczyć zużycie zasobów podczas dostosowywania modelu do konkretnego zadania.

Dobór sprzętu warto więc rozpocząć od określenia rozmiaru modelu, a następnie uwzględnić sposób jego zapisu, długość analizowanych tekstów oraz ilość danych przetwarzanych jednocześnie. W przypadku trenowania dochodzi także metoda uczenia lub dostrajania. Dopiero po uwzględnieniu wszystkich tych czynników można określić, ile pamięci VRAM rzeczywiście będzie potrzebne.

Jaka klasa GPU będzie najlepsza i ile kart graficznych wykorzystać?

Najlepszy dostępny na rynku akcelerator nie zawsze będzie idealnym wyborem. Jeżeli niewielki model AI bez problemu mieści się na karcie z 24-48 GB VRAM, inwestowanie w urządzenie z pamięcią znacznie większą nie musi przynieść dodatkowych korzyści. Przy dużych modelach sytuacja wygląda odwrotnie – wtedy ilość VRAM często staje się jednym z najważniejszych ograniczeń.

W praktyce warto rozważyć trzy podstawowe scenariusze.

  1. Pierwszy dotyczy modeli, które mieszczą się na jednej karcie – to najprostsza konfiguracja, ponieważ nie trzeba dzielić modelu między kilka urządzeń ani przesyłać danych pomiędzy nimi.
  2. Drugi scenariusz występuje wtedy, gdy pojedyncza karta nie zapewnia wystarczającej ilości VRAM lub mocy obliczeniowej – w takiej sytuacji trzeba sprawdzić, jak model zostanie podzielony oraz jak szybko poszczególne GPU będą wymieniać informacje.
  3. Trzeci scenariusz obejmuje zadania, które można wykonywać niezależnie na wielu kartach, np. obsługę dużej liczby zapytań związanych z generowaniem odpowiedzi – w takim przypadku kolejne GPU zwiększają liczbę zadań obsługiwanych jednocześnie, bez konieczności dzielenia jednego modelu między urządzenia.

Przy trenowaniu modeli AI wykorzystanie wielu kart często jest konieczne. Nie wystarczy jednak zamontować w serwerze osiem GPU. Jeżeli komunikacja między nimi będzie zbyt wolna, część ich mocy obliczeniowej zostanie niewykorzystana, ponieważ urządzenia będą czekać na potrzebne informacje.

CPU, RAM, NVMe i sieć – jak uniknąć wąskich gardeł?

Wydajność środowiska AI zależy nie tylko od karty graficznej. Wpływ na to mają także inne parametry serwera, gdyż np.:

  • procesor przygotowuje dane do obliczeń;
  • pamięć RAM przechowuje informacje robocze;
  • nośniki danych dostarczają zbiory treningowe i zapisują wyniki.

Jeżeli któryś z tych elementów będzie zbyt wolny, GPU nie wykorzysta w pełni swojej mocy.

Podczas trenowania szczególnie istotne jest sprawne dostarczanie kolejnych partii danych. Jeżeli zbiór treningowy znajduje się na wolnym nośniku, karta graficzna może czekać na następną porcję informacji, zamiast wykonywać obliczenia. Dlatego szybkie dyski NVMe dobrze sprawdzają się jako miejsce na dane treningowe, pliki tymczasowe oraz wyniki pracy.

RAM powinien zapewnić odpowiednią przestrzeń dla danych i procesów przygotowujących kolejne partie dla GPU. Przy dużych zbiorach oraz rozbudowanym przetwarzaniu wstępnym zapotrzebowanie na pamięć operacyjną szybko rośnie. Jej ilość nie warto więc ustalać wyłącznie na podstawie rozmiaru modelu.

W środowisku składającym się z wielu serwerów znaczenie zyskuje również sieć. Jeżeli dane albo fragmenty modelu są przesyłane między poszczególnymi serwerami, przepustowość połączeń i czas przesyłania informacji bezpośrednio wpływają na szybkość obliczeń.

Jak efektywnie zmniejszyć wymagania VRAM?

Jednym z najprostszych sposobów jest zastosowanie niższej precyzji. Kwantyzacja pozwala zapisywać wagi w formacie zajmującym mniej miejsca, np. INT8 lub INT4. Szczególnie dobrze sprawdza się to podczas korzystania z już wytrenowanych modeli AI. Trzeba jednak sprawdzić, czy zmniejszenie precyzji nie obniży zbyt mocno jakości odpowiedzi lub szybkości działania.

Drugim rozwiązaniem jest ograniczenie długości kontekstu albo lepsze zarządzanie pamięcią KV cache. W przypadku modeli językowych ma to duże znaczenie, ponieważ zajętość tej pamięci rośnie wraz z długością przetwarzanych tekstów oraz liczbą zapytań obsługiwanych jednocześnie.

Podczas treningu można natomiast zmniejszyć wielkość pojedynczej partii danych, stosować akumulację gradientów oraz techniki takie jak LoRA i QLoRA. Nie każda z tych metod skraca czas obliczeń, ale pozwalają one ograniczyć ilość VRAM potrzebną do uruchomienia procesu. Nie warto jednak ograniczać zużycia VRAM za wszelką cenę. Jeżeli kwantyzacja obniży jakość poniżej akceptowalnego poziomu albo krótszy kontekst uniemożliwi wykonanie zadania, oszczędność na karcie graficznej szybko przestanie mieć znaczenie.

Podejmowanie decyzji – serwer pod inferencję czy trening AI?

Jeżeli serwer ma przede wszystkim obsługiwać gotowy model AI, najważniejsze będą odpowiednia ilość VRAM, przepustowość pamięci oraz możliwość obsłużenia wymaganej liczby zapytań. Przy dużych rozwiązaniach warto przede wszystkim sprawdzić, czy wystarczy jedna karta, czy konieczne będzie wykorzystanie kilku GPU. Trening stawia znacznie większe wymagania. Poza większą ilością VRAM i mocy obliczeniowej potrzebne są szybkie nośniki danych, odpowiednia ilość RAM oraz – przy wykorzystaniu wielu kart lub serwerów – wydajna sieć.

Jeżeli infrastruktura ma obsługiwać oba zastosowania, warto zostawić sobie pewien zapas. Serwer wyposażony w dużą ilość VRAM, szybkie dyski NVMe i odpowiednie połączenia sieciowe może służyć do trenowania modelu podczas jego rozwoju, a później przejąć zadania związane z generowaniem odpowiedzi. Dzięki temu kosztowny sprzęt jest wykorzystywany również po zakończeniu prac nad modelem, zamiast przez większość czasu pozostawać bezczynny. Trzeba przy tym uwzględnić jeszcze jedną kwestię – serwery wyposażone w wiele akceleratorów mają wysokie wymagania dotyczące zasilania i chłodzenia.

Sprint Data Center oferuje nowoczesne serwery dedykowane, które mogą stanowić podstawę infrastruktury IT dla wymagających zastosowań związanych z treningiem lub inferencją modeli AI. Zapewniamy szerokie możliwości dobrania całej konfiguracji do takich projektów – od procesora i RAM, przez szybkie NVMe, po odpowiednie akceleratory GPU. Jeśli tylko chcesz, sprzęt możesz umieścić w naszym sprawdzonym datacenter, w którym dbamy o optymalne warunki zasilania i chłodzenia. Gwarantujemy przy tym najwyższy poziom bezpieczeństwa serwerów utrzymywanych w naszej infrastrukturze – zapraszamy do kontaktu i zapoznania się z ofertą.!

FAQ – odpowiedzi na często zadawane pytania

1. Czy można używać tego samego serwera do AI i zwykłych aplikacji?

Technicznie jest to możliwe, ale przy intensywnym wykorzystaniu GPU zwykle nie jest najlepszym rozwiązaniem. Zadania związane ze sztuczną inteligencją mogą mocno obciążać również procesor, RAM, pamięć masową i sieć. Oddzielny serwer dedykowany ułatwia więc utrzymanie stabilnego i przewidywalnego działania pozostałych usług.

2. Czy pojemność VRAM jest ważniejsza od liczby rdzeni GPU?

Zależy to od konkretnego zastosowania. Jeśli model nie mieści się w dostępnej pamięci, większa moc obliczeniowa niewiele pomoże. Jeżeli natomiast bez problemu mieści się w VRAM, większe znaczenie mogą mieć wydajność obliczeniowa oraz szybkość dostępu do pamięci.

3. Czy warto postawić na większy zapas VRAM przy zakupie serwera dedykowanego do AI?

Tak, szczególnie jeśli w przyszłości planowane jest zwiększenie intensywności realizacji procesów treningu lub inferencji modeli AI. Zbyt mała ilość VRAM szybko staje się ograniczeniem, nawet jeśli obecna konfiguracja sprzętowa działa bez zarzutów.

4. Czy można najpierw kupić serwer, a dopiero później dobrać model AI?

Można, ale łatwo wtedy o nietrafioną inwestycję. Bezpieczniej najpierw określić klasę modeli AI i sposób ich wykorzystania, a dopiero później dobrać GPU, VRAM oraz pozostałe komponenty serwera dedykowanego. Dzięki temu konfiguracja na pewno będzie odpowiadać rzeczywistym potrzebom, a przy tym zapewni duże możliwości również w przyszłości.