Modele AI bez GPU na platformach serverless
Autor: Redakcja | Data publikacji: 25 listopada 2024
Nowa era w uruchamianiu modeli AI
Wraz z gwałtownym rozwojem technologii uczenia maszynowego (ML) wybór odpowiednich zasobów obliczeniowych
zyskuje ogromne znaczenie. Chociaż układy GPU były od lat uznawane za złoty standard w obszarze ML, ostatnie
ulepszenia techniczne sprawiają, że procesory CPU stanowią alternatywę zdolną do obsługi wielu rodzajów zadań
ML. Czy można jednak skutecznie wykorzystywać modele AI bez GPU na platformach opartych na architekturze serverless?
Niniejszy artykuł zgłębia tę kwestię.
Czym jest model Llama?
Modele Llama (Large Language Model Meta AI), opracowane przez Meta, to wielkoskalowe modele językowe
zdolne do zaawansowanego rozumienia i generowania języka naturalnego. Choć są znane z wysokich wymagań
obliczeniowych, niektóre warianty tych modeli mogą być wdrażane na platformach serverless, co
eliminuje konieczność stosowania dedykowanych GPU.
Aby dostosować modele Llama do ograniczeń zasobowych platform serverless, stosuje się technikę
kwantyzacji. Polega ona na zmniejszeniu precyzji parametrów modelu, co obniża wymagania pamięci
i mocy obliczeniowej. Jednakże kwantyzacja często wiąże się z kompromisami w zakresie dokładności modelu.
Wybór odpowiedniego modelu
W moim eksperymencie wybrałem model Llama 3.2 1B w wersji Q4KM, który charakteryzuje się 4-bitową
kwantyzacją. Oznacza to, że precyzja niektórych elementów została ograniczona, co pozwala modelowi działać
przy niższym zużyciu zasobów. Wariant oznaczony jako „K” optymalizuje proporcję pomiędzy wydajnością a
dokładnością, czyniąc go odpowiednim wyborem dla scenariuszy o średnim poziomie zapotrzebowania na zasoby.
Model został wdrożony na platformach AWS Lambda oraz Google Cloud Run przy użyciu frameworka Nitric, który
umożliwił sprawne zarządzanie alokacją pamięci i procesorów na obu środowiskach chmurowych.
Wybrane wyzwania technologiczne
Problem pamięci
Jednym z głównych wyzwań była alokacja pamięci. Zalecenia związane z modelem wskazywały na 16 GB pamięci,
lecz eksperyment pokazał, że minimalna wartość pozwalająca na poprawne uruchomienie to około 6 GB. Na platformie
Google Cloud Run konieczne było zwiększenie liczby procesorów ze względu na regułę ograniczania pamięci
na procesor.
Przechowywanie efemeryczne
Znacznym ograniczeniem była również przestrzeń efemeryczna, niezbędna do przetworzenia dużych plików modelu.
AWS wymagał zwiększenia domyślnego limitu pamięci efemerycznej z 512 MB do 1 GB. Google Cloud Run, z domyślnymi
2 GB pamięci efemerycznej, nie wymagał dodatkowej optymalizacji.
Wydajność CPU
Na platformie GCP, pomimo początkowej konfiguracji, model nie ładował się stabilnie. Wdrożenie tzw. „CPU boost”
rozwiązało problem, dostarczając dodatkową moc obliczeniową podczas uruchamiania aplikacji. Takie rozwiązanie
zwiększa koszty eksploatacyjne, jednakże było niezbędne w celu uniknięcia błędów czasowych i krytycznych
zacięć.
Analiza wyników
Tokens per Second (TPS)
Kluczowym wskaźnikiem efektywności modelu był czas przetwarzania tokenów na sekundę (TPS). W odniesieniu
do typowych zapytań składających się z około 500 tokenów model działał płynnie na obu platformach,
osiągając porównywalne wyniki. Wskaźnik TPS okazał się szczególnie istotny przy ocenie efektywności
generowania odpowiedzi przez model.
Koszt implementacji
Analiza kosztów wykazała niewielkie różnice pomiędzy platformami AWS i GCP, choć wykorzystanie opcji
CPU boost na Google Cloud Run zwiększyło koszty uruchomienia w porównaniu do AWS. Kluczowym
czynnikiem wpływającym na koszty pozostaje odpowiednia konfiguracja alokacji zasobów zależna od
szczegółowych potrzeb konkretnej aplikacji.
Wnioski
Eksperyment dowiódł, że modele Llama mogą być uruchamiane na platformach serverless przy odpowiedniej
konfiguracji zasobów, takich jak pamięć, procesory i pamięć efemeryczna. Tego typu rozwiązania są
szczególnie obiecujące dla aplikacji o niskim lub umiarkowanym zapotrzebowaniu na moc obliczeniową.
Mimo to ograniczenia związane z brakiem GPU oraz dynamika działań w czasie rzeczywistym mogą sprawić,
że bardziej wymagające przypadki użycia będą wymagać hybrydowego podejścia lub przejścia na dedykowane GPU.
Niemniej jednak, platformy serverless mogą być efektywnym, łatwym w implementacji środowiskiem dla
podstawowych wdrożeń AI przy jednoczesnym obniżeniu kosztów infrastrukturalnych.