Sztuczna inteligencja na urządzeniach i uruchamianie dużych modeli językowych na mniejszych urządzeniach to w ciągu ostatnich kilku lat jeden z kluczowych punktów zainteresowania liderów branży sztucznej inteligencji. Ten obszar badań należy do najważniejszych w dziedzinie sztucznej inteligencji i może wywrzeć głęboki wpływ na rolę sztucznej inteligencji, komputerów i urządzeń mobilnych w życiu codziennym oraz zmienić jej kształt. Badania te działają za kulisami i są w dużej mierze niewidoczne dla użytkowników, a mimo to odzwierciedlają ewolucję komputerów — od maszyn, które kiedyś zajmowały całe pokoje i były dostępne tylko dla rządów i dużych korporacji, po smartfony obecnie wygodnie ukryte w naszych kieszeniach.
Obecnie większość dużych modeli językowych jest wdrażana w środowiskach chmurowych, gdzie można wykorzystać ogromne zasoby obliczeniowe centrów danych. Te centra danych są wyposażone w specjalistyczny sprzęt, taki jak procesory graficzne i TPU, a nawet wyspecjalizowane chipy AI, zaprojektowane do obsługi intensywnych obciążeń wymaganych przez LLM. Jednak poleganie na chmurze niesie ze sobą poważne wyzwania:
Wysoki koszt: Usługi w chmurze są drogie. Prowadzenie LLM na dużą skalę wymaga ciągłego dostępu do serwerów o dużej mocy, co może zwiększać koszty operacyjne. W przypadku start-upów lub indywidualnych inżynierów koszty te mogą być zaporowe i ograniczać liczbę osób, które mogą realistycznie skorzystać z tej potężnej technologii.
Obawy dotyczące prywatności danych: Gdy użytkownicy wchodzą w interakcję z opartymi na chmurze LLM, ich dane muszą zostać przesłane do zdalnych serwerów w celu przetworzenia. Stwarza to potencjalną lukę w zabezpieczeniach, ponieważ wrażliwe informacje, takie jak rozmowy osobiste, historie wyszukiwania lub szczegóły finansowe, mogą zostać przechwycone lub niewłaściwe.
Wpływ na środowisko: Przetwarzanie w chmurze na tę skalę zużywa ogromne ilości energii. Centra danych wymagają ciągłego zasilania nie tylko do obliczeń, ale także do chłodzenia i konserwacji infrastruktury, co prowadzi do znacznego śladu węglowego. W związku z globalnym dążeniem do zrównoważonego rozwoju należy zająć się tym problemem. Na przykład najnowszy raport Google pokazał 48% wzrost emisji gazów cieplarnianych w ciągu ostatnich pięciu lat, przypisując znaczną część tego wzrostu rosnącym wymaganiom technologii sztucznej inteligencji.
Dlatego właśnie problem ten w dalszym ciągu znajduje się w centrum uwagi liderów branży, którzy inwestują znaczne środki, aby rozwiązać ten problem, a także mniejszych ośrodków badawczych i społeczności zajmujących się oprogramowaniem open source. Idealnym rozwiązaniem byłoby umożliwienie użytkownikom uruchamiania tych wydajnych modeli bezpośrednio na swoich urządzeniach, z pominięciem konieczności stałej łączności z chmurą. Może to obniżyć koszty, zwiększyć prywatność i zmniejszyć wpływ sztucznej inteligencji na środowisko. Ale łatwiej to powiedzieć, niż zrobić.
Większości urządzeń osobistych, zwłaszcza smartfonów, brakuje mocy obliczeniowej do obsługi pełnowymiarowych LLM. Przykładowo iPhone z 6 GB RAM-u czy urządzenie z Androidem do 12 GB RAM nie ma sobie równych z możliwościami serwerów w chmurze. Nawet najmniejszy LLM Meta, LLaMA-3.1 8B, wymaga co najmniej 16 GB pamięci RAM — a realistycznie rzecz biorąc, potrzeba więcej, aby uzyskać przyzwoitą wydajność bez przeciążania telefonu. Pomimo postępu w procesorach mobilnych, różnica w mocy jest nadal znacząca.
Dlatego właśnie branża koncentruje się na optymalizacji tych modeli — czyniąc je mniejszymi, szybszymi i wydajniejszymi bez poświęcania zbyt dużej wydajności.
W tym artykule omówiono najważniejsze najnowsze artykuły badawcze i metody mające na celu osiągnięcie tego celu, podkreślając obecny stan wiedzy w tej dziedzinie:
- Meta MobileLLM: Optymalizacja modeli języków o wartości poniżej miliarda parametrów pod kątem zastosowań na urządzeniach
- Huaweia Metoda rozkładu Kroneckera dla kompresji GPT
- „TQCompressor: Udoskonalanie metod rozkładu tensora w sieciach neuronowych poprzez permutacje”, niedawny projekt open source i artykuł badawczy, który ulepszył metodę dekompozycji Kroneckera, umożliwiając kompresję modeli GPT 1,5x bez znaczącego zwiększania wymagań czasowych, w badaniu, w którym brałem udział jako współautor.
Podejście Meta do projektowania LLM dla przypadków użycia na urządzeniu
Tego lata badacze Meta AI wprowadzili nowy sposób tworzenia wydajnych modeli językowych specjalnie dla smartfonów i innych urządzeń o ograniczonych zasobach i opublikowali model o nazwie MobileLLM zbudowany przy użyciu tego podejścia.
Zamiast polegać na modelach zawierających miliardy, a nawet biliony parametrów – jak GPT-4 – zespół Meta skupił się na optymalizacji modeli zawierających mniej niż 1 miliard parametrów.
Autorzy odkryli, że skalowanie modelu „w głąb” działa lepiej niż „w szerokość” w przypadku mniejszych modeli z parametrami do lub około 1 miliarda, co czyni je bardziej odpowiednimi dla smartfonów. Innymi słowy, bardziej efektywne jest posiadanie większej liczby mniejszych warstw niż kilku dużych. Na przykład ich model MobileLLM ze 125 milionami parametrów ma 30 warstw, podczas gdy modele takie jak GPT-2, BERT i większość modeli ze 100–200 milionami parametrów mają zwykle około 12 warstw. Modele o tej samej liczbie parametrów, ale większej liczbie warstw (w przeciwieństwie do większych parametrów na warstwę) wykazały lepszą dokładność w kilku zadaniach porównawczych, takich jak Winogrande i Hellaswag.
Wykresy z badań Meta pokazują, że przy porównywalnych rozmiarach modeli głębsze i cieńsze modele na ogół radzą sobie lepiej ze swoimi szerszymi i płytszymi odpowiednikami w różnych zadaniach, takich jak zdroworozsądkowe rozumowanie, odpowiadanie na pytania i czytanie ze zrozumieniem.
Źródło obrazu: MobileLLM: Optymalizacja modeli języków o wartości poniżej miliarda parametrów pod kątem zastosowań na urządzeniach
Współdzielenie warstw to kolejna technika zastosowana w badaniach w celu zmniejszenia parametrów i poprawy wydajności. Zamiast powielać warstwy w sieci neuronowej, wagi pojedynczej warstwy są wykorzystywane wielokrotnie. Na przykład po obliczeniu wydajności jednej warstwy można ją wprowadzić z powrotem na wejście tej samej warstwy. Takie podejście skutecznie zmniejsza liczbę parametrów, gdyż tradycyjna metoda wymagałaby wielokrotnego powielania warstwy. Dzięki ponownemu wykorzystaniu warstw osiągnięto znaczny wzrost wydajności bez pogarszania wydajności.
Jak wynika z tabeli z badania, inne modele o parametrach 125M mają zazwyczaj 10-12 warstw, podczas gdy MobileLLM ma ich 30. MobileLLM przewyższa pozostałe w większości benchmarków (lider benchmarku wyróżniony pogrubioną czcionką).
Źródło obrazu: MobileLLM: Optymalizacja modeli języków o wartości poniżej miliarda parametrów pod kątem zastosowań na urządzeniach
W swoim artykule Meta przedstawiła model MobileLLM w dwóch wersjach – 125 milionów i 350 milionów parametrów. Udostępnili publicznie kod szkoleniowy MobileLLM GitHub. Później Meta opublikowała także 600 milionów, 1 miliard i 1,5 miliarda wersji modelu.
Modele te wykazały imponującą poprawę w zadaniach, takich jak zdroworozsądkowe rozumowanie, odpowiadanie na pytania i czytanie ze zrozumieniem, przewyższając poprzednie, najnowocześniejsze metody. Co więcej, ulepszone wersje MobileLLM wykazały swoją skuteczność w typowych aplikacjach na urządzeniach, takich jak czaty i wywołania API, co czyni je szczególnie dobrze dostosowanymi do wymagań środowisk mobilnych.
Przesłanie Meta jest jasne: Jeśli chcemy, żeby modele działały na urządzeniach mobilnych, trzeba je inaczej stworzyć.
Ale nie zdarza się to często. Weźmy najpopularniejsze modele w świecie AI, np LLaMA3Qwen2 lub Gemma-2 — mają nie tylko znacznie więcej parametrów; mają też mniej, ale znacznie większe warstwy, co praktycznie bardzo utrudnia uruchomienie tych modeli na urządzeniach mobilnych.
Kompresja istniejących LLM
Niedawne badania Meta odchodzą od kompresji istniejących sieci neuronowych i prezentują nowe podejście do projektowania modeli specjalnie dla smartfonów. Jednak miliony inżynierów na całym świecie, którzy nie budują modeli od zera – a nie oszukujmy się, to większość z nich – wciąż muszą pracować z tymi szerokimi modelami o dużych parametrach. Kompresja to nie tylko opcja; jest to dla nich koniecznością.
Rzecz w tym, że choć odkrycia Meta są przełomowe, rzeczywistość jest taka, że modele open source niekoniecznie są tworzone z myślą o tych zasadach. Większość najnowocześniejszych modeli, w tym LLaMA firmy Meta, jest nadal przeznaczona dla dużych serwerów z wydajnymi procesorami graficznymi. Modele te często mają mniej, ale znacznie szersze warstwy. Na przykład LLaMA3 8B ma prawie 65 razy więcej parametrów niż MobileLLM-125M, mimo że oba modele mają około 30 warstw.
Jaka jest więc alternatywa? Możesz tworzyć nowe modele od zera, dostosowując je do użytku mobilnego. Możesz też skompresować istniejące.
Zwiększając wydajność tych dużych, szerokich modeli dla urządzeń mobilnych, inżynierowie często sięgają po zestaw sprawdzonych technik kompresji. Metody te to kwantyzacja, przycinanie, rozkład macierzy i destylacja wiedzy.
Kwantyzacja
Jedną z najczęściej stosowanych metod kompresji sieci neuronowych jest kwantyzacja, znana z prostoty i skutecznego zachowania wydajności.
Źródło obrazu: Jana Marcela Kezmanna NA Średni
Podstawowa koncepcja jest taka, że sieć neuronowa składa się z liczb przechowywanych w macierzach. Liczby te można przechowywać w różnych formatach, takich jak liczby zmiennoprzecinkowe lub liczby całkowite. Możesz drastycznie zmniejszyć rozmiar modelu, konwertując te liczby z bardziej złożonego formatu, takiego jak float32, na prostszy, np. int8. Na przykład model, który początkowo zajmował 100 MB, można skompresować do zaledwie 25 MB za pomocą kwantyzacji.
Przycinanie
Jak wspomniano, sieć neuronowa składa się z zestawu macierzy wypełnionych liczbami. Przycinanie to proces usuwania z macierzy „nieistotnych” liczb, zwanych „wagami”.
Usunięcie tych nieistotnych wag wpływa w minimalnym stopniu na zachowanie modelu, ale znacznie zmniejsza wymagania dotyczące pamięci i obliczeń.
Rozkład macierzy
Dekompozycja macierzy to kolejna skuteczna technika kompresji sieci neuronowych. Pomysł polega na rozbiciu (lub „rozłożeniu”) dużych macierzy w sieci na mniejsze, prostsze. Zamiast przechowywać całą macierz, można ją rozłożyć na dwie lub wiele mniejszych macierzy. Po pomnożeniu te mniejsze macierze dają wynik taki sam lub bardzo zbliżony do oryginału. Dzięki temu możemy zastąpić dużą macierz mniejszą bez zmiany zachowania modelu. Jednak ta metoda nie jest bezbłędna — czasami rozłożone macierze nie są w stanie idealnie odtworzyć oryginału, co skutkuje niewielkim błędem przybliżenia. Mimo to kompromis w zakresie wydajności często jest tego wart.
Destylacja wiedzy
Destylacja wiedzy, wprowadzona przez Hintona i in. w 2015 r. to prosta, ale skuteczna metoda stworzenia mniejszego, bardziej wydajnego modelu („model ucznia”) poprzez przeniesienie wiedzy z wcześniej wyszkolonego, większego modelu („model nauczyciela”).
Korzystając z destylacji wiedzy, można wytrenować dowolnie zaprojektowany mniejszy model językowy, aby naśladował zachowanie większego modelu. Proces polega na dostarczaniu obu modelom tych samych danych, a mniejszy uczy się generować podobne wyniki, jak większy model. Zasadniczo model ucznia jest destylowany na podstawie wiedzy o modelu nauczyciela, co pozwala mu działać podobnie, ale przy znacznie mniejszej liczbie parametrów.
Godnym uwagi przykładem jest DistilBERT (Sanh et al. 2019), który skutecznie obniżył parametry BERT o 40%, zachowując 97% jego wydajności i działając o 71% szybciej.
Destylację można łatwo połączyć z kwantyzacją, przycinaniem i rozkładem macierzy, gdzie model nauczyciela jest wersją oryginalną, a uczeń skompresowaną. Kombinacje te pomagają udoskonalić dokładność skompresowanego modelu. Na przykład można skompresować GPT-2 za pomocą rozkładu macierzy, a następnie zastosować destylację wiedzy, aby wytrenować skompresowany model tak, aby naśladował oryginalny GPT-2.
Jak skompresować istniejące modele na potrzeby przypadków użycia sztucznej inteligencji na urządzeniu
Kilka lat temu Huawei skupił się również na umożliwieniu modeli AI na urządzeniach i opublikował badania dotyczące kompresji GPT-2. Badacze zastosowali metodę rozkładu macierzy, aby zmniejszyć rozmiar popularnego modelu GPT-2 o otwartym kodzie źródłowym i zwiększyć efektywność wykorzystania go na urządzeniu.
W szczególności zastosowali technikę zwaną dekompozycją Kroneckera, która stała się podstawą ich artykułu zatytułowanego „Dekompozycja Kroneckera dla kompresji GPT”. W rezultacie parametry GPT-2 zostały obniżone ze 125 milionów do 81 milionów.
Aby odzyskać wydajność modelu po kompresji, autorzy zastosowali destylację wiedzy. Skompresowana wersja — nazwana KnGPT-2 — nauczyła się naśladować zachowanie oryginalnego GPT-2. Wytrenowali ten destylowany model, korzystając z zaledwie 10% oryginalnego zbioru danych użytego do szkolenia GPT-2. Ostatecznie rozmiar modelu zmniejszył się o 35%, przy stosunkowo niewielkiej utracie wydajności.
W tym roku wraz z kolegami opublikowaliśmy badania dotyczące metod rozkładu macierzy, w których z powodzeniem skompresowaliśmy model GPT-2 (ze 125 milionami parametrów) do 81 milionów parametrów. Powstały model nazwaliśmy TQCompressedGPT-2. W badaniu tym udoskonalono metodę rozkładu Kroneckera i dzięki temu postępowi udało nam się wykorzystać zaledwie 3,1% oryginalnego zbioru danych w fazie destylacji wiedzy. Oznacza to, że skróciliśmy czas szkolenia około 33 razy w porównaniu z wykorzystaniem pełnego zbioru danych i że programiści chcący wdrożyć modele takie jak LLaMA3 na smartfonach będą potrzebować 33 razy mniej czasu, aby uzyskać skompresowaną wersję LLaMA3 przy użyciu naszej metody.
Nowatorstwo naszej pracy polega na kilku kluczowych obszarach:
- Przed zastosowaniem kompresji wprowadziliśmy nową metodę: permutację macierzy wag. Przestawiając wiersze i kolumny macierzy warstw przed dekompozycją, uzyskaliśmy większą dokładność skompresowanego modelu.
- Kompresję zastosowaliśmy iteracyjnie, redukując warstwy modelu jedna po drugiej.
Udostępniliśmy kod naszego modelu i algorytmu jako open source, co pozwala na dalsze badania i rozwój.
Obydwa badania przybliżają nas do koncepcji wprowadzonej przez Meta w swoim podejściu do Mobile LLM. Pokazują metody przekształcania istniejących szerokich modeli w bardziej zwarte, głębsze wersje przy użyciu technik dekompozycji macierzy i przywracania wydajności skompresowanego modelu poprzez destylację wiedzy.
Modele najwyższej klasy, takie jak LLaMA, Mistral i Qwen, które mają znacznie więcej niż 1 miliard parametrów, są przeznaczone dla wydajnych serwerów w chmurze, a nie smartfonów. Badania przeprowadzone przez Huawei i nasz zespół oferują cenne techniki dostosowywania tych dużych modeli do użytku mobilnego, co jest zgodne z wizją Meta dotyczącą przyszłości sztucznej inteligencji na urządzeniach.
Kompresja modeli sztucznej inteligencji to coś więcej niż wyzwanie techniczne — to kluczowy krok w kierunku udostępnienia zaawansowanej technologii miliardom. W miarę jak modele stają się coraz bardziej złożone, możliwość ich wydajnego uruchamiania na urządzeniach codziennego użytku, takich jak smartfony, staje się niezbędna. Nie chodzi tu tylko o oszczędzanie zasobów; chodzi o wbudowanie sztucznej inteligencji w nasze codzienne życie w zrównoważony sposób.
Postęp branży w stawianiu czoła temu wyzwaniu jest znaczący. Postępy Huawei i TQ w zakresie kompresji modeli sztucznej inteligencji popychają sztuczną inteligencję w przyszłość, w której może ona płynnie działać na mniejszych urządzeniach bez utraty wydajności. Są to kluczowe kroki w kierunku trwałego dostosowania sztucznej inteligencji do ograniczeń świata rzeczywistego i uczynienia jej bardziej dostępną dla wszystkich, tworząc solidne podstawy do dalszych badań w tym istotnym obszarze wpływu sztucznej inteligencji na ludzkość.