Modele i platformy AI
Przyszłość bezserwerowej inferencji dla dużych modeli językowych
Niedawne postępy w dużych modelach językowych (LLM) takich jak GPT-4, PaLM doprowadziły do przełomowych możliwości w zadaniach językowych. LLM są włączane do różnych aplikacji, takich jak czatboty, wyszukiwarki i asystenci programistyczni. Jednak serwisowanie LLM w skali pozostaje wyzwaniem ze względu na ich znaczne wymagania dotyczące procesora graficznego i pamięci.
Podejścia do pokonania tego wyzwania geralnie dzielą się na dwie główne kategorie:
- Techniki kompresji modelu
Techniki te mają na celu zmniejszenie rozmiaru modelu przy zachowaniu dokładności. Powszechne podejścia obejmują:
- Pruning – Usuwanie zbędnych lub mniej ważnych parametrów z modelu. Tworzy to model rzadki z mniejszą liczbą parametrów.
- Quantization – Używanie liczb o niższej precyzji, takich jak int8 lub bfloat16, do reprezentowania wag zamiast fp32 lub fp16. To redukuje ślad pamięci.
- Knowledge distillation – Trenowanie mniejszego “uczniowskiego” modelu, aby naśladował duży “nauczycielski” model. Następnie używa się mniejszego modelu do inferencji.
- Selektywna wykonywanie
Zamiast skompresowanych modeli, te techniki selektywnie wykonują tylko części modelu na inferencję:
- Sparse aktywacje – Pomijanie obliczeń na zero aktywacjach.
- Warunkowe obliczenia – Wykonywanie tylko pewnych warstw w zależności od wejścia.
Po stronie komplementarnej w odniesieniu do architektury oprogramowania; aby umożliwić szybsze wdrożenie LLM, naukowcy zaproponowali systemy inferencji bezserwerowej. W architekturach bezserwerowych LLM są hostowane na wspólnych klastrach procesorów graficznych i przydzielane dynamicznie na podstawie popytu. To pozwala na efektywne wykorzystanie procesorów graficznych i redukuje koszty dla deweloperów. Prominentne implementacje obejmują Amazon (AMZN ) SageMaker, Microsoft Azure ML i otwarte opcje takie jak KServe.
Pomimo obietnic bezserwerowych LLM, istniejące systemy wykazują wysokie opóźnienia, które pogarszają doświadczenie użytkownika w interaktywnych aplikacjach:
- Kosztowne pobieranie punktów kontrolnych: LLM mają duży ślad pamięci, często gigabajty lub terabajty. Pobieranie punktów kontrolnych z magazynu zdalnego jest czasochłonne, zajmując ponad 20 sekund, nawet z zoptymalizowanymi sieciami.
- Nieefektywne ładowanie punktów kontrolnych: Nawet z lokalnym magazynem SSD, ładowanie punktów kontrolnych do pamięci procesora graficznego zajmuje dziesiątki sekund ze względu na czynniki takie jak deserializacja tensorów i alokacja. To dodaje znaczne opóźnienia poza czasem uruchomienia kontenera.
Aby rozwiązać te problemy, naukowcy z MIT CSAIL zaproponowali ServerlessLLM, innowacyjny system, który osiąga niską latencję bezserwerowej inferencji dla LLM. ServerlessLLM poprawia lokalność, wykorzystując obfitą, ale niewykorzystaną pojemność i przepustowość w wielopoziomowym magazynie serwerów dla wdrożenia LLM.
Kluczowe innowacje w ServerlessLLM ServerlessLLM obejmuje kilka nowych projektów, aby obciąć czasy ładowania LLM w środowiskach bezserwerowych:
- Szybkie ładowanie punktów kontrolnych
- Format punktów kontrolnych zoptymalizowany pod kątem szybkiego sekwencyjnego odczytu i efektywnego adresowania tensorów w pamięci.
- Potok ładowania punktów kontrolnych wielopoziomowy, który maksymalizuje wykorzystanie przepustowości w sieci, na dyskach SSD, w pamięci RAM i pamięci procesora graficznego za pomocą technik takich jak direct I/O, transfer pamięci przypiętej i paralelizm.
- Live migration dla inferencji zależnej od lokalności
- Migracja oparta na tokenach, która przesyła tylko niezbędne tokeny promtu przez sieć, unikając powolnego transferu migawki.
- Dwufazowa migracja, która pozwala na nieprzerwane inferencję, rekompilując stanach pamięci podręcznej na serwerze docelowym przed transferem końcowych tokenów.
- Optymalizacja alokacji serwera pod kątem opóźnienia
- Dokładne modele do szacowania czasów ładowania punktów kontrolnych z każdego poziomu i czasów migracji dla serwera.
- Planista świadomy lokalności, który wybiera serwery minimalizujące oczekiwane opóźnienie uruchomienia.
Te optymalizacje pozwalają ServerlessLLM zmniejszyć czasy ładowania LLM o 4-8 razy i czasy uruchomienia końcowego o ponad 25 razy w porównaniu z istniejącymi systemami takimi jak PyTorch, TensorFlow i KServe.
Przejdźmy głębiej w to, jak ServerlessLLM osiąga te znaczne zyski wydajnościowe.
Przyspieszanie ładowania punktów kontrolnych
Pierwszą dużą przeszkodą, której ServerlessLLM musi sprostać, jest wysoka latencja ładowania punktów kontrolnych LLM z magazynu do pamięci procesora graficznego.
Aby umożliwić szybkie ładowanie punktów kontrolnych, ServerlessLLM wprowadza:
- Format punktów kontrolnych zoptymalizowany pod kątem ładowania
Standardowe punkty kontrolne używane przez ramy takie jak PyTorch są zaprojektowane do szkolenia modelu i debugowania. Ale dla inferencji bezserwerowej punkty kontrolne są odczytywane tylko i dostępne wielokrotnie.
Aby zoptymalizować takie intensywne użycie odczytu, ServerlessLLM konwertuje punkty kontrolne na format z dwoma kluczowymi właściwościami:
- Czytanie chunków sekwencyjnych: tensory są grupowane w pliki binarne na GPU, ułatwiając duże sekwencyjne odczyty.
- Efektywne adresowanie tensorów: indeks mapuje nazwy tensorów na offsety pamięci, umożliwiając bezpośrednią restaurację w pamięci bez deserializacji.
- Potok ładowania punktów kontrolnych wielopoziomowy
ServerlessLLM wykorzystuje architekturę warstwową serwerów z procesorami graficznymi, z nośnikami magazynu takimi jak dyski SSD i siecią łączącą procesory graficzne za pomocą interfejsów takich jak PCIe, NVMe itp.
System obejmuje potok wieloetapowy, aby maksymalizować wykorzystanie przepustowości we wszystkich warstwach:
- Chuncki danych w pamięci są przydzielane za pomocą pamięci przypiętej do szybkiego transferu procesora graficznego.
- Direct I/O jest używany do efektywnego odczytu z dysków SSD bez nakładu bufora.
- Wiele wątków odczytuje różne chunki magazynu równolegle.
- Współpraca międzyetapowa odbywa się za pomocą kolejków zadań asynchronicznych.
To razem umożliwia nasycenie przepustowości nawet najbardziej zaawansowanych warstw, takich jak NVMe RAID. Eksperymenty ujawniają, że ServerlessLLM osiąga 6-8 razy szybsze ładowanie niż PyTorch/TensorFlow, redukując czasy uruchomienia dla dużych LLM z ponad minuty do poniżej 10 sekund.
Inferencja LLM zależna od lokalności za pomocą live migracji
Z przyspieszonym ładowaniem, ServerlessLLM staje przed nowym wyzwaniem – jak wykorzystać wcześniej załadowane punkty kontrolne do lokalności bez przerywania trwających inferencji na zajętych serwerach?
ServerlessLLM wprowadza nową technikę – live migrację inferencji LLM między serwerami z procesorami graficznymi. To pozwala na bezproblemową transfer inferencji do serwerów z lokalnymi punktami kontrolnymi.
Kluczowe elementy live migracji LLM:
- Migracja oparta na tokenach
Zamiast migrowania całego stanu modelu, ServerlessLLM migruje tylko minimalne tokeny promtu przez sieć. To transferuje znacznie mniej danych niż migawki.
- Dwufazowa migracja
Serwer docelowy asynchronicznie rekompiluje stany pamięci podręcznej z tokenów promtu. Gdy jest gotowy, serwer źródłowy transferuje końcowe tokeny przed zwolnieniem zasobów. To zapobiega zatrzymywaniu się inferencji.
Eksperymenty ujawniają, że migracja oparta na tokenach redukuje czasy migracji z dziesiątek sekund do poniżej jednej sekundy, nawet dla długich sekwencji. Live migracja jest kluczowa, aby uniknąć opóźnień kolejek podczas osiągania alokacji zależnej od lokalności.
Optymalizacja harmonogramu modelu
Aby zminimalizować końcowe opóźnienie, ServerlessLLM poprawia planistę, aby zoptymalizować wybór serwera pod kątem lokalności. To obejmuje:
- Szczegółowy estymator czasu ładowania
Modele przewidują czasy ładowania z sieci, pamięci podręcznej dysku SSD i pamięci dla każdego serwera, używając metryk takich jak opóźnienia kolejki, rozmiary modelu i zmierzone przepustowości.
- Dokładny predyktor czasu migracji
Planista szacuje czasy migracji dla serwerów, używając liczby tokenów promtu i wyjściowych. Śledzi postęp inferencji asynchronicznie, aby uniknąć nakładu.
- Alokacja świadoma lokalności
Dla każdego żądania inferencji planista ocenia szacowane czasy ładowania i migracji wśród serwerów. Wybiera serwer, który minimalizuje oczekiwane opóźnienie uruchomienia.
Planista również utrzymuje kolejki zadań serwera i wykorzystuje silnie spójny magazyn do tolerancji awarii. Wszystkie te innowacje redukują nakłady planistyczne, jednocześnie maksymalizując korzyści z lokalności.
Ocena wydajności ServerlessLLM
Całkowite eksperymenty oceniają skuteczność końcową ServerlessLLM w porównaniu z istniejącymi systemami, używając rzeczywistych modeli takich jak OPT-175B i obciążeń modelowanych według śladów Azure.
Kluczowe wyniki:
- Mikrobenchmarki: ServerlessLLM przyspiesza ładowanie punktów kontrolnych o 3,6-8,2 razy w porównaniu z PyTorch/TensorFlow. To w pełni nasycenie przepustowości magazynu, nawet dla najnowszych NVMe RAID.
- Planowanie: ServerlessLLM redukuje opóźnienie alokacji o 4-12 razy w porównaniu z losowym planowaniem, podkreślając korzyści z lokalności. Live migracja zapobiega opóźnieniom kolejek.
- Serwisowanie końcowe: Dla dużych modeli takich jak OPT-30B, ServerlessLLM poprawia 99 percentyl opóźnienia o 28-200 razy w porównaniu z systemami takimi jak KServe i Ray Serve. To również poprawia efektywność zasobów.
Te znaczne zyski demonstrują zdolność ServerlessLLM do pokonania wąskich gardeł w istniejących implementacjach bezserwerowych i odblokowania potencjału LLM dla interaktywnych usług.
Optymalizacje wprowadzone w ServerlessLLM, takie jak ładowanie wielopoziomowe, live migracja i planowanie oparte na opóźnieniu, mogą pomóc w poinformowaniu projektu przyszłych architektur bezserwerowych. Zdolność systemu do obcięcia czasów ładowania i uruchomienia odblokowuje wdrożenie dużych modeli językowych dla praktycznych aplikacji.
Spójrzmy w przyszłość: Wciąż istniejące wyzwania
Chociaż jest to znaczny krok naprzód, ServerlessLLM reprezentuje tylko pierwszy krok w optymalizacji inferencji bezserwerowej dla ogromnych LLM. Kilka otwartych problemów pozostaje, w tym:
- Przewidywanie rzeczywistego popytu na modele w czasie rzeczywistym, aby kierować przydziałem i pre-ładowaniem
- Inteligentne umieszczanie punktów kontrolnych na serwerach w celu maksymalizacji trafień w pamięci podręcznej
- Efektywne skalowanie algorytmów planowania, aby obsłużyć większe klastry
- Gwarantowanie sprawiedliwości w alokacji zasobów wśród modeli i deweloperów
- Uogólnianie innowacji, takich jak live migracja, na inne obciążenia bezserwerowe
Rozwiązanie tych problemów może pomóc w budowaniu na obietnicy bezserwerowych LLM i uczynić ich możliwości jeszcze bardziej dostępnymi. Poza optymalizacjami na poziomie systemu, redukcja rażącego śladu węglowego i potencjalnych szkód dużych modeli pozostaje pilną sprawą.
ServerlessLLM demonstruje, że ogromna przestrzeń istnieje do innowacji w następnych architekturach bezserwerowych dla obciążeń AI. Ponieważ LLM będą nadal rosły w rozmiarze i popularności, rozwiązania takie jak ServerlessLLM, które odblokowują ich skalowalność, będą coraz bardziej wpływowe. Zbieżność badań systemowych i maszynowych może wprowadzić nowe paradygmaty w serwisowaniu, udostępnianiu i skalowaniu modeli AI w sposób bezpieczny i zrównoważony.













