Naukowcy z Uniwersytetu Kalifornijskiego w Santa Cruz, Uniwersytetu Soochow, Uniwersytetu Kalifornijskiego w Davis i LuxiTech opracowali skalowalny model językowy, który eliminuje potrzebę mnożenia macierzy (MatMul), kosztownej obliczeniowo operacji. Opracowane przez zespół modele bez MatMul utrzymują wysoką wydajność w skali miliardów parametrów, zmniejszając zużycie pamięci nawet o 61% podczas uczenia i ponad 10 razy podczas wnioskowania. Naukowcy zbudowali również niestandardowe rozwiązanie sprzętowe na macierzy bramek programowalnych (FPGA) do przetwarzania modeli o skali miliarda parametrów przy 13 W, zbliżając modele językowe do wydajności podobnej do mózgu.
Wprowadzenie do modelowania języka bez MatMul
Mnożenie macierzy (MatMul) jest podstawową operacją w większości sieci neuronowych, w tym w dużych modelach językowych (LLM). Jednak jest to również znaczący czynnik przyczyniający się do kosztów obliczeniowych tych modeli, zwłaszcza gdy skalują się one do większych wymiarów osadzania i długości kontekstu. W niedawnym badaniu naukowcy z Uniwersytetu Kalifornijskiego w Santa Cruz, Uniwersytetu Soochow, Uniwersytetu Kalifornijskiego w Davis i LuxiTech wykazali, że możliwe jest wyeliminowanie operacji MatMul z LLM przy jednoczesnym zachowaniu wysokiej wydajności w skali miliardów parametrów.
Podejście bez MatMul
Naukowcy opracowali skalowalny model języka bez MatMul (Matmul-free LM), wykorzystując operacje addytywne w gęstych warstwach i elementowe iloczyny Hadamarda dla funkcji podobnych do samoobserwacji. W szczególności wykorzystali trójskładnikowe wagi, aby wyeliminować MatMul w gęstych warstwach, podobnie jak w przypadku binarnych i trójskładnikowych sieci neuronowych (BNN i TNN). Aby usunąć MatMul z samouwagi, zoptymalizowali Gated Recurrent Unit (GRU), aby polegać wyłącznie na iloczynach element-mądrość. Model ten konkuruje z najnowocześniejszymi transformatorami, eliminując jednocześnie wszystkie operacje MatMul.
Efektywność sprzętowa i wydajność
Aby oszacować korzyści sprzętowe płynące z lekkich modeli, naukowcy zapewnili zoptymalizowaną implementację GPU oprócz niestandardowego akceleratora FPGA. Dzięki zastosowaniu połączonych jąder w implementacji trójskładnikowych gęstych warstw na GPU, uczenie zostało przyspieszone o 25,6%, a zużycie pamięci zostało zmniejszone nawet o 61,0% w porównaniu do niezoptymalizowanej linii bazowej na GPU. Co więcej, dzięki zastosowaniu zoptymalizowanych pod kątem niższych bitów jąder CUDA, szybkość wnioskowania wzrosła 4,57-krotnie, a zużycie pamięci zmniejszyło się 10-krotnie, gdy model został przeskalowany do 13B parametrów.
Implementacja FPGA i wyniki
Naukowcy wdrożyli implementację RTL rdzenia generowania tokenów bez MatMul na programowalnej karcie akceleracji D5005 Stratix 10 (PAC) w Intel FPGA Devcloud. Rdzeń wykonał forward-pass bloku w 43 ms przy d = 512 i osiągnął częstotliwość taktowania 60 MHz. Implementacja pojedynczego rdzenia wykazywała niezwykle niską moc dynamiczną, która była ledwo rozróżnialna od mocy mierzonej, gdy rdzeń był nieaktywny.
Wnioski i przyszłe kierunki
Badanie wykazało wykonalność i skuteczność pierwszego skalowalnego modelu języka bez operacji MatMul. Praca ta podważa paradygmat, że operacje MatMul są niezbędne do budowania wysokowydajnych modeli językowych i toruje drogę do rozwoju bardziej wydajnych i przyjaznych dla sprzętu architektur. Jednak jednym z ograniczeń pracy jest to, że LM bez MatMul nie został przetestowany na modelach o bardzo dużej skali (np. 100B+ parametrów) ze względu na ograniczenia obliczeniowe. Praca ta służy jako wezwanie do działania dla instytucji i organizacji, które mają zasoby do tworzenia największych modeli językowych, aby zainwestować w przyspieszenie lekkich modeli.
