Google zaprezentowało TurboQuant – algorytm kwantyzacji, który potrafi skompresować pamięć podręczną KV w modelach językowych nawet sześciokrotnie, a przy tym przyspieszyć generowanie odpowiedzi do ośmiu razy. Brzmi jak zbyt piękne, by było prawdziwe? Tym razem liczby się zgadzają.
Rosnące modele językowe mają jeden fundamentalny problem, o którym rzadko mówi się publicznie: nie brakuje im mocy obliczeniowej, tylko pamięci. Każde zapytanie do dużego modelu wymaga przechowywania tak zwanego KV cache, czyli bufora kluczy i wartości, który rośnie proporcjonalnie zarówno do rozmiaru modelu, jak i długości kontekstu. Przy długich rozmowach, dokumentach czy sesjach agentycznych ten bufor potrafi dosłownie zapychać karty graficzne.
Czym jest KV cache i dlaczego to problem
KV cache to mechanizm, dzięki któremu modele transformerowe nie muszą przeliczać uwagi dla każdego nowego tokenu od zera. Zamiast tego przechowują pośrednie wyniki obliczeń w pamięci szybkiego dostępu. Problem w tym, że ta pamięć jest droga, ograniczona i staje się wąskim gardłem przy obsłudze wielu zapytań równocześnie.
Do tej pory próbowano rozwiązać ten problem przez kwantyzację, czyli reprezentowanie danych za pomocą mniejszej liczby bitów. Metody takie jak Product Quantization (PQ) wymagały jednak długiego, kosztownego trenowania codebooków na konkretnych danych przed uruchomieniem. W środowiskach produkcyjnych, gdzie dane się zmieniają w czasie rzeczywistym, to poważne ograniczenie.
Jak działa TurboQuant
TurboQuant podchodzi do problemu zupełnie inaczej. Jest to algorytm „data-oblivious”, co oznacza, że nie potrzebuje żadnego wcześniejszego trenowania ani kalibracji na konkretnym zbiorze danych. Działa od razu, na każdym typie danych, bez przygotowań.
Mechanizm opiera się na matematycznej sztuczce: przed kwantyzacją algorytm stosuje losową rotację do wektorów wejściowych. Ta rotacja powoduje, że rozkład wartości na poszczególnych wymiarach staje się przewidywalny i zbliżony do niezależnych zmiennych o rozkładzie Beta. W wysokich wymiarach współrzędne stają się prawie niezależne od siebie, co znacząco upraszcza dalszą kwantyzację.
Efekt? Zamiast trenować skomplikowane codebooki, algorytm rozwiązuje prosty, jednowymiarowy problem optymalizacji dla każdej współrzędnej. Raz. I może go potem używać wielokrotnie dla dowolnych danych.
Wyniki, które robią wrażenie
Testy na modelach Llama-3.1-8B-Instruct i Ministral-7B-Instruct pokazały konkretne rezultaty:
- przy czterokrotnej kompresji model utrzymał 100% skuteczności w teście „Needle-In-A-Haystack”
- pełna jakość zachowana do 104 tysięcy tokenów kontekstu przy kompresji 4x
- czas indeksowania praktycznie zerowy: dla wektorów o wymiarowości 1536 zaledwie 0,0013 sekundy, podczas gdy standardowe PQ potrzebuje tu niemal 240 sekund
- dystorsja MSE pozostaje w granicach 2,7-krotności teoretycznego optimum wyznaczonego przez granicę Shannona
Ten ostatni punkt jest istotny dla badaczy: Google nie tylko ogłasza wyniki empiryczne, ale też udowadnia matematycznie, jak blisko teoretycznego limitu działa ich metoda.
Wyniki TurboQuant są naprawdę imponujące i trudno nie docenić, że Google podpiera je solidnym formalizmem matematycznym, nie tylko benchmarkami. Jeśli te liczby utrzymają się w produkcyjnych warunkach, mówimy o przełomie w efektywności kosztowej wnioskowania. Ale warto zachować ostrożność. Algorytmy kwantyzacji często wyglądają świetnie na standardowych testach, a ujawniają słabości na brzegowych przypadkach, specyficznych domenach czy bardzo długich kontekstach wykraczających poza zakres testowany przez autorów. Kluczowe pytanie brzmi: jak TurboQuant zachowuje się na danych specjalistycznych, na przykład medycznych, prawniczych czy kodzie niskopoziomowym? Czy „zero utraty dokładności” jest absolutne, czy zależy od rozkładu danych wejściowych? Te odpowiedzi pozna branża dopiero przy szerszym wdrożeniu.
Piotr Wolniewicz, Redaktor Naczelny AIPORT.pl
Dwa etapy dla bezbłędnych iloczynów skalarnych
Osobnym wyzwaniem w kwantyzacji jest błąd przy obliczaniu iloczynów skalarnych, które są podstawą mechanizmu uwagi w transformerach. Klasyczna kwantyzacja zoptymalizowana pod kątem minimalizacji błędu MSE wprowadza systematyczne odchylenie przy szacowaniu iloczynów. W przypadku kwantyzacji 1-bitowej ten błąd może wynosić współczynnik 2/π.
Google rozwiązuje to eleganckim dwuetapowym podejściem:
- Pierwszy etap stosuje kwantyzator MSE z precyzją b-1 bitów, minimalizując normę L2 wektora reszt
- Drugi etap nakłada 1-bitową transformację QJL (Quantized Johnson-Lindenstrauss) na wektor reszt
Połączenie obu daje estymator nieobciążony, czyli taki, którego wartość oczekiwana dokładnie odpowiada prawdziwemu iloczynowi skalarnemu. To matematyczna gwarancja, nie tylko praktyczna obserwacja.
Implikacje dla branży
Skalowanie LLM utknęło w pewnym sensie na ścianie pamięci. Producenci sprzętu odpowiadają na to droższymi kartami z więcej RAM-u, a dostawcy usług chmurowych podnoszą ceny za długie konteksty. TurboQuant wskazuje inne wyjście: zamiast dokupować pamięć, lepiej ją efektywniej wykorzystać.
Jeśli algorytm wejdzie do powszechnego użytku w środowiskach produkcyjnych, konsekwencje będą wielowymiarowe:
- niższe koszty obsługi długich kontekstów dla firm wdrażających modele
- możliwość uruchamiania większych modeli na tańszym sprzęcie
- wzrost przepustowości przy tej samej infrastrukturze
- potencjalne skrócenie kolejek i opóźnień w odpowiedziach API
Praca naukowa jest dostępna na arxiv.org, a Google opublikowało też szczegółowy wpis techniczny na swoim blogu badawczym pod adresem research.google.
