Modele językowe o dużej skali (LLM) szybko stały się kluczowym elementem wielu nowoczesnych aplikacji, zarówno konsumenckich, jak i biznesowych. Jednak problem związany z szybkim generowaniem tokenów wciąż stanowi wyzwanie, które często staje się wąskim gardłem w nowych zastosowaniach. Przykładem tego może być rosnąca popularność skalowania na etapie inferencji, gdzie dłuższe wyniki są używane do przeszukiwania i realizacji złożonych algorytmów. Z kolei systemy LLM bazujące na współpracy wielu agentów lub działające w trybie potokowym dążą do zwiększenia dokładności i niezawodności, ale często cierpią na wydłużone czasy odpowiedzi, spowodowane koniecznością oczekiwania na zakończenie przetwarzania wielu etapów. Przyspieszenie generowania tokenów jest zatem kluczowe dla dalszego rozwoju i szerokiego zastosowania aplikacji opartych na LLM.

Wyzwania związane z tradycyjnymi metodami dekodowania spekulacyjnego

Obecne metody dekodowania spekulacyjnego oparte na modelach mają pewne ograniczenia. Przede wszystkim, takie metody w dużym stopniu zależą od rozmiaru i jakości modelu wstępnego (draft model), który nie zawsze jest dostępny, co wymaga kosztownego treningu lub dostrajania, aby stworzyć odpowiedni model. Kolejnym wyzwaniem jest integracja modelów wstępnych z LLM na GPU, co często prowadzi do komplikacji takich jak konflikty pamięciowe pomiędzy modelem wstępnym a pamięcią podręczną (key-value cache) LLM. Chociaż ostatnie prace próbują wprowadzać dodatkowe głowice dekodujące bezpośrednio do LLM w celu spekulacyjnego dekodowania, to nadal napotykają one podobne problemy — dodatkowe głowice wymagają finezyjnego dostrajania dla każdego LLM i pochłaniają znaczną ilość pamięci GPU. Przezwyciężenie tych wyzwań jest kluczem do opracowania bardziej wydajnych technik przyspieszających inferencję LLM.

Innowacyjne podejście bez modelu: SuffixDecoding

Zespół badaczy z Snowflake AI Research oraz Uniwersytetu Carnegie Mellon zaproponował rozwiązanie o nazwie SuffixDecoding. Jest to solidna metoda, która nie wymaga dodatkowych modeli wstępnych ani dodatkowych głowic dekodujących. Zamiast polegać na oddzielnych modelach, SuffixDecoding wykorzystuje efektywne indeksy drzewa sufiksowego, tworzone na podstawie wcześniej wygenerowanych wyników i bieżącego zapytania inferencyjnego. Proces ten rozpoczyna się od tokenizacji każdej pary zapytanie-odpowiedź z użyciem słownika LLM, a następnie wyodrębnia wszystkie możliwe sufiksy (podciągi zaczynające się od dowolnej pozycji do końca), aby skonstruować strukturę drzewa sufiksowego. Każdy węzeł w drzewie reprezentuje token, a ścieżka od korzenia do dowolnego węzła odpowiada podciągowi, który pojawił się w danych treningowych. Dzięki temu podejściu bez modelu, komplikacje i obciążenie GPU związane z integracją modeli wstępnych są wyeliminowane, co stwarza bardziej wydajną alternatywę dla przyspieszenia inferencji LLM.

Jak działa SuffixDecoding?

Dla każdego nowego zapytania inferencyjnego, SuffixDecoding tworzy osobne drzewo sufiksowe, bazujące na tokenach bieżącego zapytania. To podejście jest szczególnie ważne w zadaniach, w których oczekuje się, że wyjście LLM będzie odnosić się do poprzedniej treści zapytania, takich jak podsumowanie dokumentów, zadawanie pytań i odpowiedzi, wieloetapowe rozmowy czy edytowanie kodu. Drzewo sufiksowe przechowuje liczniki częstotliwości w każdym węźle, co pozwala śledzić, jak często różne sekwencje tokenów pojawiają się w danych. Na każdym kroku inferencji, SuffixDecoding wybiera najlepsze poddrzewo kontynuacji tokenów na podstawie statystyk częstotliwości oraz empirycznych prawdopodobieństw.

Korzyści z SuffixDecoding

Podobnie jak wcześniejsze metody, takie jak LLMA czy Prompt Lookup Decoding, SuffixDecoding to podejście bez modelu, które korzysta z korpusu referencyjnego do wyboru kandydatów na kontynuacje tokenów. Jednak w przeciwieństwie do wcześniejszych metod, które ograniczały się do małych fragmentów tekstu, SuffixDecoding wykorzystuje znacznie większy korpus referencyjny, składający się z setek, a nawet tysięcy wcześniej wygenerowanych wyników. Dzięki temu możliwe jest bardziej świadome i precyzyjne dobieranie sekwencji kandydatów.

To podejście umożliwia efektywne dopasowanie wzorców do bieżącej treści zapytania oraz wygenerowanych tokenów. SuffixDecoding identyfikuje sekwencje wzorcowe i przechodzi przez drzewo sufiksowe, aby znaleźć wszystkie możliwe kontynuacje, które pojawiły się w korpusie referencyjnym. Choć to może wygenerować dużą liczbę kandydatów, SuffixDecoding stosuje procedurę rozbudowy i oceny, aby zbudować mniejsze, bardziej prawdopodobne drzewo spekulacji, które następnie jest wykorzystywane w końcowym etapie dekodowania spekulacyjnego.

Wyniki eksperymentalne

W badaniach przeprowadzonych na zbiorze danych AgenticSQL, który reprezentuje złożony wieloetapowy przepływ LLM, SuffixDecoding osiągnęło nawet 2,9-krotnie większą przepustowość oraz 3-krotnie niższe opóźnienie czasu na token (TPOT) w porównaniu do SpecInfer, będącego punktem odniesienia. W przypadku bardziej otwartych zadań, takich jak generowanie rozmów czy kodu, SuffixDecoding również wykazywało świetne wyniki, zwiększając przepustowość o 1,4x oraz redukując opóźnienie TPOT o 1,1x w porównaniu do SpecInfer.

Podsumowanie

SuffixDecoding to innowacyjne podejście, które przyspiesza inferencję LLM, wykorzystując drzewa sufiksowe oparte na wcześniejszych wynikach, zamiast polegać na dodatkowych modelach wstępnych. Dzięki temu możliwe jest uzyskanie konkurencyjnych wyników w porównaniu z tradycyjnymi metodami dekodowania spekulacyjnego opartymi na modelach, szczególnie w złożonych wieloetapowych zadaniach. Rozszerzenie korpusu referencyjnego, zamiast polegania na kosztownych modelach wstępnych, otwiera nowe możliwości dla efektywnego wykorzystania LLM w rzeczywistych aplikacjach.