Naukowcy z Rice University i Startup Xmad.ai mają szczegółowy pływak dynamicznej długości (DFLOAT11), technikę osiągającą około 30% bezstronną kompresję dla dużych masy modeli językowych przechowywanych we wspólnych bfloat16 (Bf16) Format .

Przedstawiony w Arxiv Paper w tym miesiącu Metoda zmniejsza wymagania dotyczące pamięci modelu, jednocześnie upewnienie się, że wyniki są bit-for-bit identyczne z oryginałem. Podejście to znacznie obniża barierę sprzętową dla obsługi największych modeli; Zespół zademonstrował uruchamianie modelu Meta 810 GB LAMA-3.1-405B bezstronnie na jednym serwerze z ośmioma 80 GB GPU NVIDIA, konfiguracja

Wykorzystanie BF16 Nieefektywność

DFLoat Nieefektywność statystyczna w formacie liczbowym BF16, który wykorzystuje 1 bit znaku, 8 bitów wykładników i 7 bitów Mantissa. Podczas gdy dla wykładnika przydzielono 8 bitów (256 możliwych wartości), analiza naukowców potwierdziła, że ​​faktyczna zawartość informacji (entropia Shannon) w różnych LLM, takich jak LAMA 3, QWEN 2.5 i GEMMA 3 średnio tylko około 2,6 bitów.

Wiele wartości wykładników nie jest używanych przez modele. DFloat11 stosuje kodowanie Huffmana-klasyczny algorytm kompresji danych bezstratów-w szczególności do wartości wykładników. Częstsze wykładniki otrzymują krótsze kody, rzadsze są dłuższe kody. Oryginalny znak i bity Mantissa są zachowane bez kompresji. Takie podejście skutecznie obniża średnio przechowywanie na parametr z 16 bitów do około 11 bitów, co daje ~ 30% redukcję wielkości, podczas gdy gwarantuje, że zdekodowana wartość jest matematycznie identyczna z pierwotnym numerem BF16.

Umożliwiając wydajną dekompresję GPU

Nie tylko kompilacja, ale uniemożliwiając szybkie wprowadzanie dekomporacji GPU

. GPU. Ponieważ standardowe jednostki matematyczne GPU, takie jak rdzenie tensorowe, są zoptymalizowane pod kątem wejściów o stałej wielkości (np. BF16 lub INT8), wagi DFloat11 o zmiennej długości należy zdekompresować z powrotem do BF16 bezpośrednio przed obliczeniem. Tradycyjne dekodowanie Huffmana jest z natury sekwencyjne i powolne na równoległym sprzęcie.

Aby to rozwiązać, zespół opracował niestandardowe jądro CUDA. To jądro wykorzystuje kilka strategii: wykorzystuje kompaktowe, wielopoziomowe tabele wyszukiwania (w sumie zaledwie 1 kb) zaprojektowane tak, aby pasowały do ​​szybkiego GPU SRAM na chipie; Wykorzystuje mechanizm dwufazowy z minimalnymi danymi pomocniczymi, aby umożliwić równoległe wątki prawidłowe obliczenie ich pozycji początkowych w skompresowanych danych i pozycjach zapisu w buforze wyjściowym; i przetwarza ciężary dla całego bloku transformatora, aby zmaksymalizować przepustowość. Kod, zintegrowany z biblioteką Transformers Hulging Face, jest open source .

Jednak ta dekompresja w formie wprowadza kompromis wydajności. W porównaniu z uruchomieniem nieskompresowanego modelu BF16 na sprzęcie z wystarczającą pamięcią, DFloat11 dodaje opóźnienie.

Autor Tianyi Zhang podano wyjaśnienie Na Reddit, zauważając, że w przypadku wnioskowania partii 1 na A100, DFloat11 zaobserwowano, że jest około 40% wolniejszy niż natywna BF16. Ale ponieważ opóźnienie dekompresji jest stosunkowo stałe, staje się mniej wpływowe przy większych rozmiarach partii, z prawie parami (różnicą 1,02x) zaobserwowaną przy wielkości partii 128.

Znaczące prędkości zgłoszone w artykule (1,9x-38,8x wyższej przepustowości) powiązają się w porównaniu z porównywaniem DFLoat11 (na GPU) w porównaniu z uruchomieniem częściowo do użycia do użycia do SUBLISTU) Pamięć systemowa-scenariusz wymagany przez niewystarczającą VRAM. Zhang podsumował: „Jeśli ograniczenia sprzętowe (dopasowanie większych modeli, dłuższe sekwencje lub większe partie) nie są głównym problemem, nie ma dużej motywacji do używania DF11″. Czynniki takie jak potencjalny wpływ na zużycie energii lub stabilność systemu podczas przedłużonych obciążeń dekompresyjnych wymagałyby również oceny we wdrożeniach w świecie rzeczywistym.

Dostępność sprzętu i dłuższe konteksty

pomimo kompromisu opóźnienia w nieokalegniętych scenariuszach, podstawowa propozycja wartości DFLOAT11 jest zmniejszającą potrzeby sprzętowe. Artykuł pokazuje, że umożliwia LLAMA-3.3-70B na pojedynczym GPU 141 GB H200 i QWEN2.5-32B na 48 GB A6000, oba niemowne ze standardowym BF16. To potencjalnie sprawia, że ​​najnowocześniejsze modele są użyteczne dla organizacji o mniejszych budżetach GPU.

Krytycznie VRAM zaoszczędzony przez ściskanie wag modelu może być używany dla pamięci podręcznej KV, która często ogranicza maksymalną długość kontekstu. Umożliwiając więcej miejsca na tę pamięć podręczną, DFloat11 pozwolił na przetwarzanie 5.3x do 13.17x dłuższe sekwencje w porównaniu do BF16 na tym samym sprzęcie przed wyczerpaniem pamięci. Aby ułatwić adopcję, zespół dokonał modele DFloat11 w wstępnie skompresowanym dfloat11 na przytulaniu twarzy .

Argument za pozbawioną straży dokładności

Metody kompresji, takie jak kwantyzacja 4-bitowa lub 8-bitowa. Podczas gdy badania testy często wskazują na minimalny wpływ formatów takich jak INT8 lub FP8, papier DFloat11 twierdzi, że nie mogą one w pełni uchwycić subtelnych degradacji jakości, szczególnie w przypadku złożonego rozumowania. Cytują Przykłady spadków wydajności Obserwowane w określonych ocenach dla modeli kwantyzowanych.

Podstawowy odwołanie DFloat11 jest ominacją tę niepodległość, jak to można było, „Stratnie, że pomimo, że pomimo, że wskaźniki, które wskaźniki wprowadzają kwantyzację, że pomimo, że wskaźnik inprezentujemy, że pomimo, że pomimo, że wskaźniki. Użytkownicy końcowi wolą unikać, ponieważ tworzy niekontrolowane zmienne, które należy poddać empirycznie przetestowanemu dla każdego scenariusza wdrażania “. W przypadku aplikacji takich jak wrażliwe przetwarzanie dokumentów, w których kluczowa jest niezawodność, gwarancja identycznego wyjścia bit-za-bitowego oferowanego przez bezstratne podejście może być niezbędne.

Koncentracja na wydajnym wnioskowaniu GPU odróżnia DFLOAT11 od innych technik bezstratnych. zipnn , na przykład, wykorzystuje dekompresję opartą na procesorze głównie do przyspieszenia ładowania modelu i zmniejszenia powierzchni pamięci. Wcześniejsze próby bezstratów, takie jak Neuzip Korzystanie z kodowania ANS za pośrednictwem NVCOMP Nvidia, zgłoszono, że ma znaczące spowolnienie wnioskowania, które miało spowolnienie wnioskowania, które miało spowolnienie wnioskowania. Wyższa przepustowość dekompresyjna w porównaniu do Implementacja ans NVComper w testach papieru. Zajmuje się także innym kątem wydajności niż metody, takie jak NAMM Sakana AI, który optymalizuje pamięć podręczną KV dla długich kontekstów niż ściskające ciężary statyczne. DFLOAT11 oferuje specyficzne rozwiązanie do dopasowania dużych modeli w ograniczoną pamięć GPU bez uszczerbku dla wierności wyjściowych.

Categories: IT Info