Ich habe Speculative Decoding getestet – a = 3,5 war nicht genug

Speculative Decoding (SD) basiert auf einer einfachen mathematischen Regel: a > 1 + α + β

Die Akzeptanzlänge (a) muss größer sein als 1 plus das Rechenverhältnis (α) und den Verifizierungs-Overhead (β). Wenn sie das ist, gewinnt SD. Wenn nicht, verliert es.

Ich habe diese Theorie an einer echten Maschine getestet. Ich verwendete eine Intel-CPU der 12. Generation mit 64 GB RAM. Dabei habe ich ein kleines Qwen2.5-0.5B Draft-Modell mit einem größeren Qwen2.5-1.5B Target-Modell kombiniert.

Die Ergebnisse waren überraschend. SD war 49 % bis 62 % langsamer als die reine Generierung.

Hier ist, wie die Akzeptanzlänge (a) je nach Aufgabe variierte:

• JSON (strukturiert): a = 3,50. Das Draft-Modell hat das Format gut vorhergesagt. • Code (semi-strukturiert): a = 3,00. Gut, aber die Benennungsmuster variierten. • Story (kreativ): a = 2,11. Das Draft-Modell hatte Schwierigkeiten mit der Wortwahl.

Selbst wenn „a“ hoch war, scheiterte SD auf der CPU. Warum?

Das größte Problem war die Zero-Accept-Rate. Zwischen 15 % und 30 % der Durchgänge akzeptierten null Token.

In diesen Durchgängen arbeitet das Draft-Modell, das Target-Modell verifiziert, und man erhält nichts Neues. Man bezahlt für zwei Durchläufe, um einen einzigen Token zu erhalten. Das macht SD doppelt so teuer für denselben Output.

Dies verdeutlicht, warum SD eine GPU-Optimierung ist.

Auf einer GPU ist das Draft-Modell nahezu kostenlos. Das Rechenverhältnis (α) ist winzig. Auf einer CPU konkurriert das Draft-Modell um die Speicherbandbreite. Es ist nicht kostenlos. Die Ungleichung bricht auf der CPU zusammen.

Wenn Sie SD auf einer CPU verwenden wollen, lassen Sie es lieber. Die Zahlen gehen nicht auf.

Wichtige Erkenntnisse für Ihre Deployments:

  • Messen Sie Ihren eigenen „a“-Wert. Vertrauen Sie nicht den Behauptungen der Anbieter.
  • Unterteilen Sie Ihre Daten nach Aufgabentyp. Code und Chat haben unterschiedliche Akzeptanzraten.
  • Achten Sie auf die Zero-Accept-Rate. Eine hohe Varianz ruiniert Ihre p99-Latenz.
  • Verwenden Sie SD auf GPUs, wo die Kosten für das Draft-Modell minimal sind.

Die beste Optimierung besteht darin, zu wissen, wann man es ausschalten sollte.

Quelle: https://dev.to/zxpmail/i-benchmarked-speculative-decoding-a-35-wasnt-enough-1geb

Optionale Lern-Community: https://t.me/GyaanSetuAi