Ile pamięci GPU potrzeba do wyszukiwania wizualno-językowego na domowym serwerze NAS?

Eva Wong jest Technicznym pisarzem i stałym majsterkowiczem w ZimaSpace. Całe życie geek z pasją do homelabów i oprogramowania open-source, specjalizuje się w tłumaczeniu skomplikowanych koncepcji technicznych na przystępne, praktyczne przewodniki. Eva wierzy, że samodzielne hostowanie powinno być zabawą, a nie czymś onieśmielającym. Poprzez swoje samouczki umożliwia społeczności rozwiewanie tajemnic konfiguracji sprzętu, od budowy pierwszego NAS po opanowanie kontenerów Docker.

Wyszukiwanie wizualno-językowe może rozpocząć się od około 8–12 GB pamięci VRAM, ale rozmiar modelu, kwantyzacja, tokeny obrazu, długość kontekstu i współbieżność określają niezawodny minimalny poziom.

Kompaktowy, skwantyzowany model klasy 7B może załadować się na karcie GPU z 8 GB pamięci, ale zawieść podczas jednoczesnego przetwarzania kilku obrazów w wysokiej rozdzielczości i długiej historii czatu. Wyszukiwanie może również korzystać z osobnego kodera obrazów i rerankera. Pojemność musi uwzględniać szczytowe alokacje pamięci w czasie działania, a nie tylko rozmiar pliku modelu widoczny na dysku podczas najbardziej obciążającego, przewidywanego schematu zapytań.

Wagi wyznaczają minimum, nie szczytowe zużycie

Teoretyczne zużycie pamięci przez wagi to liczba parametrów pomnożona przez liczbę bitów na parametr. Siedem miliardów parametrów przy czterech bitach zajmuje około 3,5 GB przed uwzględnieniem skal, metadanych, buforów frameworka i niezkwantyzowanych warstw. Koder obrazów może być osobnym komponentem lub częścią modelu.

Praktyczne wyjaśnienie komponentów pamięci GPU rozdziela wagi modelu od pamięci podręcznej KV, aktywacji i narzutu środowiska wykonawczego. Sam rozmiar pliku zatem zaniża zużycie pamięci podczas inferencji.

Kwantyzacja zmniejsza zajętość pamięci przez wagi, ale nie pomniejsza każdej alokacji w takim samym stopniu. Projekcje wizualne, tymczasowe bufory mechanizmu uwagi i niektóre kernele mogą pozostać w precyzji 16-bitowej. Model, który ledwo się ładuje, nie pozostawia marginesu na rzeczywiste zapytania dotyczące obrazów.

Obrazy stają się tokenami i stanem środowiska wykonawczego

Kodery wizji dzielą obrazy na fragmenty lub zmieniają ich rozmiar, a następnie przekazują tokeny wizualne do modelu językowego. Większa liczba obrazów, wyższa obsługiwana rozdzielczość lub dynamiczne kafelkowanie zwiększają liczbę tokenów. Tokeny te zwiększają obciążenie mechanizmu uwagi oraz, na etapach autoregresyjnych, zapotrzebowanie na pamięć podręczną KV.

Badania nad wizualnym dostrajaniem instrukcyjnym pokazują, jak obrazy łączy się z modelami językowymi za pomocą wyuczonych reprezentacji wizualnych. Architektura i wstępne przetwarzanie decydują o tym, ile cech wizualnych trafia do kontekstu.

Przetwarzanie wsadowe kilku wyszukiwań zwielokrotnia aktywny stan obrazów i tekstu, nawet gdy wagi pozostają współdzielone. Dlatego poziom 8–12 GB sprawdza się w kompaktowym wyszukiwaniu dla jednego użytkownika, podczas gdy 16–24 GB zapewnia więcej miejsca na większe modele, wiele obrazów lub równoczesne żądania.

Kiedy rekomendacje dotyczące VRAM przestają obowiązywać

Systemy ze współdzieloną pamięcią, przenoszenie obliczeń na CPU, rozdzielone kodery i wyszukiwanie embeddingów wspierane przez dysk zmieniają ograniczenia. Przenoszenie obliczeń może umożliwić uruchomienie modelu przy mniejszej ilości VRAM, ale zwiększyć opóźnienia. Wstępnie obliczone embeddingi obrazów wymagają znacznie mniej pracy wizualnej w czasie działania niż generowanie opisów dla każdego zapytania.

Dyskusja na temat alokacji pamięci podręcznej KV pokazuje, jak długość kontekstu i alokacja pamięci podręcznej KV mogą wymusić niższe limity, nawet gdy wagi się mieszczą. Dane wejściowe multimodalne dodatkowo obciążają ten sam budżet.

Podane zakresy nie dotyczą również trenowania ani dostrajania, które wymagają gradientów i stanu optymalizatora. Opisują wyłącznie inferencję. Większa ilość VRAM nie gwarantuje dokładnego wyszukiwania, jeśli embeddingi obrazów, OCR, łączenie metadanych lub ewaluacja są słabe.

-15% OFF

Zweryfikuj szczytowe zużycie VRAM na reprezentatywnych zapytaniach dotyczących obrazów

Załaduj docelowy skwantyzowany model, koder i reranker, a następnie wykonaj reprezentatywne zapytania z jednym obrazem, wieloma obrazami, obrazami w wysokiej rozdzielczości oraz długą historią. Powtórz testy przy planowanej współbieżności, rejestrując przydzieloną i zarezerwowaną pamięć VRAM, błędy braku pamięci, opóźnienie do pierwszego tokena oraz czas przetwarzania obrazu.

Przetestuj przepustowość potoku obrazów na zbiorze danych odzwierciedlającym obrazy twórców i zrzuty ekranu, a nie na syntetycznych pustych danych wejściowych. Ścieżki z wstępnie obliczonymi embeddingami i kodowaniem na żywo trzymaj osobno.

Wybierz poziom VRAM, przy którym najgorsze prawidłowe zapytanie pozostaje poniżej około 80–85% dostępnej pojemności. Jeśli skok zużycia występuje wyłącznie podczas kodowania obrazów, przenieś ten koder lub wstępnie oblicz embeddingi. Jeśli dominuje pamięć podręczna KV, ogranicz kontekst lub współbieżność, zanim założysz, że potrzebny jest większy model wizualny.

Centrum Technologii i Sztucznej Inteligencji

Więcej do przeczytania

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.