Strona główna / Rozdział 7 · Model na produkcji
    Ostatnia zmiana · 5 min czytania

    Użyj z AI

    Dekodowanie spekulacyjne

    W dekodowaniu spekulacyjnym tani mechanizm zgaduje kilka następnych tokenów, a duży model sprawdza je w jednym przebiegu i przyjmuje te, które sam by wybrał. Wynik jest taki sam jak bez spekulacji (przy wyborze zachłannym ten sam tekst, przy losowaniu ten sam rozkład), a z jednego czytania wag powstaje kilka tokenów.

    Po ludzkuStażysta pisze szkic, a szef czyta i poprawia pierwsze błędne słowo, po czym stażysta pisze dalej. Czytanie idzie dużo szybciej niż pisanie, więc razem kończą wcześniej, a tekst jest taki, jaki napisałby sam szef.

    Przejdź trzy rundy i patrz, ile tokenów przyjmuje jedna weryfikacja i ile przebiegów dużego modelu oszczędzasz

    propozycja małego modeluprzyjętaodrzuconatoken dużego modelu
    tokenów wygenerowanych
    przebiegów dużego modelu
    przebiegów bez spekulacji
    czasu potrzebnego bez spekulacji

    Propozycje i trafienia dobrane ręcznie. Przebieg małego modelu liczony jako 1/10 przebiegu dużego, a przebieg weryfikujący kilka tokenów tyle samo co zwykły.

    Jak działa weryfikacja

    Od czego zależy zysk

    Warianty i wybór w praktyce

    Sprawdź się

    Jak działa speculative decoding, czemu nie zmienia wyniku i kiedy przestaje pomagać?

    Tani draft, czyli mały model, dodatkowe głowice albo n-gramy skopiowane z promptu, proponuje kilka tokenów. Duży model sprawdza je w jednym przebiegu, bo decode jest ograniczony pamięcią i kilka pozycji kosztuje prawie tyle co jedna. Przyjmuje zgodny prefiks, a w miejscu pierwszej niezgodności wstawia własny token. Akceptacja z prawdopodobieństwem min(1, p/q) i losowanie z max(0, p − q) po odrzuceniu gwarantują dokładnie rozkład dużego modelu. Zysk zależy od trafności: 2–3× przy przewidywalnym tekście i małym batchu, mniej przy większym, a zero albo strata, gdy krok jest już ograniczony mocą obliczeniową (duży batch, krótkie konteksty).

    In English

    A cheap drafter, such as a small model, extra heads or n-grams copied from the prompt, proposes several tokens. The large model checks them in one pass, because decode is memory-bound and several positions cost about as much as one. It keeps the matching prefix and inserts its own token at the first mismatch. Accepting with probability min(1, p/q) and resampling from max(0, p − q) after a rejection guarantees exactly the large model’s distribution. The gain depends on the acceptance rate: 2–3× on predictable text at small batch sizes, less as the batch grows, and nothing or a loss once the step is compute-bound (large batch, short contexts).

    Pytania pogłębiające (4)
    Kiedy spekulacja nie pomaga albo szkodzi?
    Przy niskiej akceptacji, czyli przy twórczym tekście, wysokiej temperaturze albo drafcie trenowanym na innych danych. Także gdy krok jest już ograniczony mocą obliczeniową, czyli przy dużym batchu i krótkich kontekstach: weryfikacja odrzuconych tokenów zabiera wtedy moc innym rozmowom.
    Czemu rozkład wyniku jest dokładnie taki jak u dużego modelu?
    Token x przechodzi z prawdopodobieństwem min(1, p(x)/q(x)), a po odrzuceniu losuje się z max(0, p − q) po normalizacji. Suma obu dróg daje dla każdego tokena dokładnie p(x). W praktyce dochodzą tylko drobne różnice numeryczne z innego kształtu obliczeń.
    Akceptacja wynosi 0,6 przy γ = 5. Zwiększasz γ?
    Raczej zmniejszasz. Runda daje średnio (1 − 0,6⁶) / 0,4 ≈ 2,4 tokenu, a przy γ = 3 już ≈ 2,2, więc dwie dodatkowe propozycje prawie nic nie dodają, a kosztują draft i weryfikację. Większy zysk da lepszy draft, na przykład dotrenowany na własnym ruchu.
    Czy draft musi mieć ten sam tokenizer co duży model?
    W klasycznym wariancie tak, bo porównuje się tokeny i rozkłady na tym samym słowniku. Dlatego draft bierze się z tej samej rodziny modeli albo dopina się głowice do samego dużego modelu. Nowsze serwery łagodzą ten wymóg: vLLM łączy draft i duży model z różnymi słownikami przez mapowanie tokenów (use_heterogeneous_vocab, stan na wrzesień 2026 tylko z zachłannym draftem).

    Źródła

    Zgłoś błąd · Zaproponuj poprawkę