Współczynnik akceptacji w dekodowaniu spekulatywnym mierzy, jak często weryfikacja przez model docelowy zachowuje proponowane tokeny, bezpośrednio kształtując użyteczny postęp uzyskiwany w jednym przebiegu weryfikacji.
Mniejszy model wstępny może zaproponować kilka kolejnych tokenów, podczas gdy większy model lokalny weryfikuje je równolegle. Jeśli większość propozycji zostanie zaakceptowana, jeden kosztowny przebieg modelu docelowego przesuwa odpowiedź o wiele pozycji; jeśli odrzucenie nastąpi wcześnie, znaczna część pracy modelu wstępnego zostaje odrzucona. Współczynnik ten jest więc zależnym od obciążenia sygnałem efektywności, a nie samodzielną miarą dokładności ani gwarancją przyspieszenia działania całego systemu.
Akceptacja mierzy zweryfikowany postęp modelu wstępnego
W standardowym próbkowaniu spekulatywnym model wstępny proponuje blok, a model docelowy ocenia te pozycje jednocześnie. Tokeny są akceptowane kolejno aż do pierwszego odrzucenia, po którym algorytm losuje korektę i rozpoczyna kolejną rundę spekulatywną.
W oryginalnej pracy dotyczącej dekodowania spekulatywnego prawdopodobieństwo akceptacji definiuje się na podstawie zależności między rozkładami modelu wstępnego i docelowego, przy zachowaniu rozkładu wyników modelu docelowego. Kluczową wielkością jest zaakceptowany postęp, a nie wizualne podobieństwo odpowiedzi modeli.
Implementacje mogą raportować liczbę zaakceptowanych tokenów podzieloną przez liczbę zaproponowanych tokenów, średnią długość zaakceptowanego ciągu lub prawdopodobieństwo akceptacji. Metryki te są powiązane, ale nie są identyczne, dlatego porównania wymagają tej samej definicji i długości propozycji. Różnica ta pozostaje widoczna podczas późniejszych testów domowych.
Jakość modelu wstępnego i sposób próbkowania zmieniają współczynnik
Model wstępny, którego rozkład jest bliższy modelowi docelowemu dla bieżącego języka, dziedziny i promptu, zwykle proponuje więcej akceptowalnych kontynuacji. Temperatura, top-p, zgodność tokenizera, długość propozycji i pewność modelu docelowego również wpływają na to, jak często blok zostaje zaakceptowany.
Online Speculative Decoding dostosowuje model wstępny na podstawie informacji zwrotnych od modelu docelowego i pokazuje, że poprawa współczynnika akceptacji tokenów może zmniejszyć opóźnienie przy zmieniających się rozkładach żądań. Wynik ten pokazuje, że akceptacja może zmieniać się wraz z obciążeniem, zamiast pozostawać stałą cechą pary modeli.
Większy model wstępny może zwiększyć akceptację, ale jego uruchamianie kosztuje więcej; mniejszy model jest tani, lecz jego propozycje mogą być często odrzucane. Właściwy wybór równoważy zaakceptowany postęp z czasem tworzenia propozycji i weryfikacji. Wynik pośredni musi pozostać możliwy do sprawdzenia, zanim automatyzacja podejmie dalsze działania.
Wysoka akceptacja jest konieczna, ale nie wystarcza do przyspieszenia
Korzyść uzyskiwana w całym systemie zależy również od zdolności modelu docelowego do sprawnej weryfikacji bloku, opóźnienia modelu wstępnego, ruchu danych w pamięci, synchronizacji, rozmiaru partii oraz kosztu odrzuconej pracy. Wysoki udział akceptacji w krótkich blokach może ograniczyć mniej kroków sekwencyjnych niż umiarkowany udział w blokach o odpowiednio dobranym rozmiarze.
Medusa zastępuje osobny model wstępny za pomocą wielu głowic dekodujących, które proponują wiele kontynuacji na podstawie reprezentacji modelu docelowego. Jej konstrukcja pokazuje, że architektura propozycji i weryfikacja kształtują ten sam kompromis dotyczący przepustowości. Tę granicę należy mierzyć osobno w realistycznych warunkach pracy.
Granica nieopłacalności występuje przy obciążeniu, w którym tworzenie propozycji wraz z weryfikacją kosztuje tyle samo co zwykłe dekodowanie. Kod, tekst wielojęzyczny, kreatywne próbkowanie lub zmiana domeny mogą obniżyć zaakceptowaną długość na tyle, że spekulacja zużywa dodatkową pamięć bez skracania opóźnienia.
Mierz zaakceptowany postęp na milisekundę
Dla każdej klasy promptów rejestruj liczbę zaproponowanych tokenów, liczbę zaakceptowanych tokenów, długość zaakceptowanego prefiksu, czas tworzenia propozycji, czas weryfikacji przez model docelowy, pozycję odrzucenia, całkowite opóźnienie, liczbę tokenów na sekundę, zużycie pamięci oraz kontrole równoważności wyników. Praktyczne znaczenie pojawia się wtedy, gdy kilka źródeł konkuruje o ograniczony kontekst.
Powiąż obciążenie z sposobem próbkowania. Zmieniaj długość propozycji i ustawienia próbkowania, zachowując ten sam model docelowy i żądany rozkład, a następnie porównaj wyniki ze zwykłym dekodowaniem autoregresywnym. Ta zależność powinna pozostać wyraźnie widoczna w końcowym interfejsie.
Włączaj spekulację tylko tam, gdzie zaakceptowany postęp na całkowitą milisekundę się poprawia. Jeśli akceptacja wygląda na wysoką, ale opóźnienie nie spada, optymalizuj narzut związany z tworzeniem propozycji i weryfikacją, zamiast traktować ten współczynnik jako ostateczną miarę wydajności. Wynik należy zatem sprawdzić względem pierwotnych dowodów.
Centrum Technologii i Sztucznej Inteligencji
Więcej do przeczytania

Czym jest dryf osadzeń i kiedy prywatny indeks wyszukiwania wymaga przebudowy?
Odkoduj dryf modelu, przetwarzania wstępnego, korpusu i zapytań; odróżnij monitorowanie od niezgodności oraz zdecyduj, kiedy prywatny indeks wymaga przebudowy.

Czym jest zgodność tokenizera i dlaczego może zakłócić przełączanie modeli?
Odkryj tożsamość słownictwa, znaczenie tokenów specjalnych, szablony czatu, buforowane tokeny, adaptery i kontrole zgodności przy lokalnym przełączaniu modeli.

Czym jest rezydencja modelu i kiedy lokalna usługa AI powinna przechowywać wagi w pamięci?
Poznaj rezydencję wag, poziomy pamięci podręcznej, zimne uruchomienia, eksmisję, multipleksowanie, presję pamięci oraz dowiedz się, kiedy domowa usługa AI powinna pozostać aktywna.

