Pamięć zajmowana przez mechanizm attention może przekroczyć pamięć parametrów modelu, ponieważ wagi pozostają stałe, a zależne od tokenów cache’y, aktywacje i obszary robocze rosną wraz z kontekstem oraz liczbą równoległych żądań.
Model po kwantyzacji może z łatwością zmieścić się w pamięci RAM lub VRAM domowego serwera, jednak długie prompty, kilku użytkowników w gospodarstwie domowym, dane multimodalne lub duże partie mogą nadal powodować presję na pamięć. Plik modelu opisuje trwałe wagi, a nie kompletny zestaw roboczy potrzebny podczas inferencji. Mechanizm attention tworzy stan specyficzny dla żądania dla każdego zachowanego tokenu i może wymagać tymczasowych buforów, których szczytowe zapotrzebowanie zależy od środowiska uruchomieniowego. Poniższe sekcje oddzielają stałą pamięć parametrów od pamięci zależnej od sekwencji i wskazują, kiedy ta druga staje się rzeczywistym ograniczeniem pojemności.
Parametry modelu tworzą stałą bazę po załadowaniu
Wagi modelu zajmują przewidywalną ilość pamięci, gdy znana jest ich liczba i format numeryczny. Model czterobitowy wymaga mniej miejsca na parametry niż wersja ośmiobitowa lub zmiennoprzecinkowa, choć metadane środowiska uruchomieniowego i skale dodają pewien narzut.
Architektura Transformer wykorzystuje te same wyuczone parametry dla krótkiego i długiego promptu. Zajętość pamięci przez parametry nie podwaja się tylko dlatego, że użytkownik doda więcej kontekstu.
Ta stała baza sprawia, że rozmiar pliku modelu jest przydatny przy wstępnym sprawdzaniu, czy model się zmieści. Nie jest to jednak pełne oszacowanie szczytowego zużycia pamięci podczas inferencji.
Pełny mechanizm attention może tworzyć pośrednie dane o kwadratowej zależności od długości sekwencji
Konwencjonalny self-attention porównuje pozycje tokenów ze sobą. Jeśli implementacja materializuje duże macierze wyników attention i prawdopodobieństw, ich wymiary rosną kwadratowo wraz z długością sekwencji.
FlashAttention wskazuje kwadratowe zużycie pamięci przez attention jako główny problem przy długich sekwencjach i unika przechowywania pełnej macierzy, obliczając attention kafelkami.
Nowoczesne zoptymalizowane kernele inferencyjne mogą więc korzystać ze znacznie mniejszej pamięci tymczasowej, niż sugeruje naiwny wzór. Same obliczenia attention nadal stają się trudniejsze przy dłuższych sekwencjach, ale wybór implementacji decyduje o tym, czy pełna macierz o rozmiarze kwadratowym względem sekwencji pojawi się w pamięci urządzenia.
Szczytowe zapotrzebowanie na obszar roboczy może również zmieniać się zależnie od wersji kernela, kształtu partii, wymiaru głowy oraz tego, czy środowisko uruchomieniowe przełącza się na mniej wydajną ścieżkę attention.
Cache KV dodaje trwały stan dla każdego zachowanego tokenu
Podczas autoregresyjnego dekodowania przechowywane są klucze i wartości wcześniejszych tokenów, aby model nie musiał ponownie obliczać całego prefiksu przed wygenerowaniem każdego kolejnego tokenu.
PagedAttention traktuje wzrost cache’u KV jako główne ograniczenie pamięci podczas obsługi żądań. Jego pojemność rośnie wraz z liczbą zachowanych tokenów, liczbą warstw tworzących cache, wymiarami kluczy i wartości, precyzją oraz liczbą aktywnych sekwencji.
W przeciwieństwie do tymczasowej macierzy attention ten stan musi pozostać dostępny przez całą aktywną rozmowę. Długi kontekst może więc nadal zużywać pamięć, nawet gdy model generuje tylko jeden nowy token naraz.
Wyjaśnienie zapasów pamięci dla AI w ZimaSpace oddziela pamięć na przechowywanie modelu od dodatkowej pojemności wymaganej przez kontekst i równoczesnych użytkowników.
Równoczesne żądania zwielokrotniają dynamiczny stan attention
Kilku użytkowników może współdzielić jedną kopię wag modelu, ale ich prywatne prompty, wygenerowane tokeny i gałęzie cache’u KV zwykle pozostają oddzielne.
vAttention wykorzystuje dynamiczny przydział pamięci fizycznej, ponieważ długość żądań i czas ich ukończenia nie są znane w momencie rozpoczęcia obsługi.
Serwer, na którym mieści się jedna rozmowa obejmująca 32 000 tokenów, może nie obsłużyć jednocześnie czterech takich rozmów. Rozmiar partii i liczba użytkowników zwielokrotniają stan zależny od tokenów, mimo że łączna liczba parametrów modelu pozostaje bez zmian.
Współdzielenie prefiksu może ograniczyć duplikowanie danych, gdy żądania mają identyczny zapisany prefiks, ale rozbieżne rozmowy domowników nadal wymagają niezależnego stanu kontynuacji.
Aktywacje i rezerwy środowiska uruchomieniowego dodatkowo zwiększają szczytowe zużycie
Wstępne przetwarzanie promptu, projekcja danych multimodalnych, dekodowanie spekulatywne, przechwytywanie grafu, tymczasowa konwersja tensorów i obszary robocze bibliotek mogą przydzielać pamięć wykraczającą poza wagi i cache KV.
FlashAttention-2 zauważa, że attention pozostaje wąskim gardłem przy długich sekwencjach, nawet gdy lepsze kernele eliminują duże materializowane dane pośrednie.
Buforujące alokatory frameworków mogą zachowywać zwolnione bloki do ponownego użycia, dlatego narzędzia urządzenia mogą pokazywać duży ślad procesu po zakończeniu żądania, które osiągnęło szczytowe zużycie. Ta rezerwa różni się od pamięci aktywnie używanej przez tensory, ale nadal ogranicza możliwość uruchomienia innego procesu.
Najwyższe zaobserwowane zużycie pamięci może więc wystąpić podczas wstępnego przetwarzania promptu lub przełączania modelu, a nie podczas stabilnego dekodowania po jednym tokenie.
Optymalizacje attention przesuwają granicę, ale jej nie usuwają
Flash attention ogranicza tymczasowe operacje wejścia-wyjścia i przechowywanie macierzy, stronicowany przydział ogranicza fragmentację KV, niższa precyzja cache’u zmniejsza liczbę bajtów na token, a attention z grupowanymi zapytaniami wykorzystuje mniej głów kluczy i wartości.
Attention z grupowanymi zapytaniami ogranicza pamięć głów kluczy i wartości, zachowując większą pojemność niż pojedyncza głowa multi-query.
Okna przesuwne, eksmisja cache’u, offload i wyszukiwanie mogą ograniczyć lub przenieść stan attention, ale każde z tych rozwiązań zmienia opóźnienia, dostępny kontekst lub sposób generowania odpowiedzi.
Testuj całe planowane obciążenie: precyzję modelu, rzeczywistą długość promptu, limit wyjścia, rozmiar partii, liczbę użytkowników, tokeny obrazu i inne lokalne usługi. O pamięci attention większej niż pamięć parametrów można mówić wtedy, gdy ograniczenie liczby tokenów w stanie lub współbieżności przywraca stabilność bez zmiany wag modelu.
FAQ
Czy pamięć attention zawsze przekracza pamięć zajmowaną przez wagi modelu?
Nie. Przy krótkich promptach jednego użytkownika dominującym składnikiem często pozostają wagi. Stan attention staje się dominujący dopiero po przekroczeniu zależnego od modelu i środowiska uruchomieniowego progu długości kontekstu, grupowania lub współbieżności.
Czy FlashAttention eliminuje pamięć cache’u KV?
Nie. Ogranicza obliczenia attention i ruch danych w pamięci tymczasowej. Obsługa autoregresyjna nadal wymaga zachowanego stanu kluczy i wartości, chyba że środowisko uruchomieniowe ponownie go oblicza, usuwa lub przenosi poza urządzenie.
Czy pamięć RAM systemu może rozwiązać problem braku pamięci na attention?
Może wspierać inferencję na CPU lub offload w kompatybilnych środowiskach uruchomieniowych, ale przenoszenie aktywnego stanu przez wolniejsze łącze może zwiększyć opóźnienia i zmniejszyć szybkość generowania.
Centrum Technologii i Sztucznej Inteligencji
Więcej do przeczytania

Dlaczego przewidywania dotyczące inteligentnego domu stają się mniej trafne po sezonowych zmianach rutyny?
Sezonowe rutyny zmieniają zależność między czasem, czujnikami, obecnością domowników a pożądanymi działaniami, przez co model wytrenowany na podstawie wcześniejszych nawyków staje się nieaktualny.

Dlaczego domowy rejestrator NVR pomija krótkie zdarzenia, gdy włączone jest śledzenie obiektów?
Śledzenie wymaga wystarczającej liczby detekcji, aby rozpocząć i potwierdzić trajektorię, dlatego obiekt obecny przez krótki czas może zniknąć, zanim rejestrator NVR utworzy prawidłowe zdarzenie.

Dlaczego etykiety zdjęć generowane przez AI zmieniają się po aktualizacji modelu?
Aktualizacja modelu zmienia sposób reprezentacji i ustalania rankingu używanych do przypisywania etykiet, dlatego to samo zdjęcie może przekroczyć inne granice semantyczne lub poziomy pewności.

