Zurück zum Archiv
#ai#llm#glossary#aigen

Speculative Decoding

Ein großes Modell erzeugt korrekten Text, ist aber langsam. Ein kleineres Modell kann schnell mehrere weitere Stücke vorschlagen. Du möchtest seine Arbeit nutzen und dabei die Kontrolle des großen Modells über das endgültige Ergebnis bewahren.

Speculative Decoding erstellt einen günstigeren Vorschlag für die Fortsetzung und prüft ihn anschließend mit dem Zielmodell. Im klassischen Algorithmus übernehmen wir die anfängliche Folge akzeptierter Tokens — Textstücke — bis zur ersten Ablehnung und berechnen dann eine Korrektur.

Das große Modell kann den bekannten Vorschlag für mehrere Positionen parallel bewerten. Die korrekte Stichprobenvariante verwendet besondere Akzeptanz- und Korrekturwahrscheinlichkeiten, um die Zielverteilung zu erhalten. Der bloße Test „klingt das sinnvoll?“ gewährleistet das nicht.

Die Beschleunigung hängt vom Aufwand für den Vorschlag, der Zahl der Akzeptanzen und der Hardware ab. Wenn das kleine Modell häufig vom großen abweicht, kann die zusätzliche Arbeit den Gewinn aufheben. Die Demonstration unten zeigt die Erhaltung der Wahrscheinlichkeiten, keine garantierte Laufzeit.

Quelle des Mechanismus: Leviathan et al., §2, Algorithmus 1.

Mechanismus und Details

Dies beschleunigt Decode unter Erhaltung der Zielmodellverteilung unter den Bedingungen des Algorithmus. Zu prüfen, ob ein Vorschlag „gut aussieht“, genügt nicht.

Warum eine Korrektur nötig ist

Bezeichnen wir die Zielverteilung mit pp und die Draft-Verteilung mit qq, für dasselbe Präfix und dieselbe Tokenmenge. Beide berücksichtigen die ausgewählten Ziehungsregeln, etwa Temperatur und Top-p-Sampling. Ein Vorschlag x∼qx\sim q wird mit folgender Wahrscheinlichkeit akzeptiert:

min⁡(1,p(x)q(x))\min\left(1,\frac{p(x)}{q(x)}\right)

Ein gezogener Vorschlag hat q(x)>0q(x)>0. Nach einer Ablehnung ziehen wir aus einer Verteilung proportional zu max⁡(0,p−q)\max(0,p-q). Dieser Schritt ergänzt genau die fehlende Wahrscheinlichkeitsmasse. Ist p=qp=q, wird nichts abgelehnt und keine Korrektur benötigt. Leviathan et al., §2.3 und Beweis A.1.

Eigenes Beispiel: Für A, B und C sei p=[0,2;0,5;0,3]p=[0{,}2;0{,}5;0{,}3] und q=[0,6;0,3;0,1]q=[0{,}6;0{,}3;0{,}1]. Die unbedingte Masse akzeptierter Vorschläge beträgt [0,2;0,3;0,1][0{,}2;0{,}3;0{,}1]. Die verbleibenden 0,4 müssen gleichmäßig zwischen B und C aufgeteilt werden. Eine Korrekturziehung aus dem gewöhnlichen pp würde stattdessen [0,28;0,50;0,22][0{,}28;0{,}50;0{,}22] ergeben.

Das Experiment zeigt die genaue Bilanz einer Position, ohne die gesamte Schleife oder Laufzeit zu simulieren. Eine erhaltene Verteilung garantiert keinen identischen Text beim selben Seed: Algorithmen verbrauchen Zufälligkeit unterschiedlich, und Berechnungen haben begrenzte Präzision. Das besprechen Chen et al., §4.2 und §6.1.

Die Beschleunigung hängt von Akzeptanzrate, Draft-Kosten und Hardware ab. Ein zu teurer Draft oder viele Ablehnungen können die Einsparung aufheben, selbst wenn die Verteilung korrekt bleibt.

Ich verwende KI-generierte Inhalte als Teil meines täglichen Lernprozesses.