Speculative Decoding in vLLM auf AMD-GPUs: Durchsatz variiert stark je nach Methode
Speculative Decoding in vLLM on AMD GPUs
Speculative Decoding verspricht, die Token-Produktion großer Sprachmodelle zu beschleunigen, indem mehrere Kandidaten-Token in einem einzigen Verifikationsschritt des Zielmodells geprüft werden. In diesem Beitrag untersucht das vLLM-Team, wie sich verschiedene Drafting-Methoden – native MTP, Gemma 4 MTP, EAGLE-3, DFlash und DSpark – auf den Output-Token-Durchsatz auf AMD Instinct MI300X- und MI355X-GPUs mit ROCm auswirken. Die Ergebnisse zeigen: Der Effekt variiert stark je nach Modellfamilie, Draft-Checkpoint, Workload und Akzeptanzverhalten. Der Artikel erklärt die Funktionsweise von Autoregressive Decoding und Speculative Decoding, beschreibt die Architektur der fünf Methoden und gibt praktische Hinweise zur Aktivierung und Optimierung in vLLM.
Wenn mehrere Draft-Token akzeptiert werden, kann das System mehrere Ausgabe-Token aus einem einzigen Verifikationsschritt des Zielmodells committen, während das Ausgabeverhalten des Zielmodells erhalten bleibt.
- intothemild
Obwohl dies ein ausgezeichneter Beitrag von vLLM ist, ist eines der wirklich verwirrenden Dinge, entweder von ihrem Team oder dem Team von AMD, wie sehr die Workstation-Klasse AMD r9700 ignoriert wurde. Stock vLLM läuft auf diesen Karten im Vergleich zu vLLM-Forks wie Radiance so langsam. Man geht von sagen wir 20-30t/s Generierung auf 150-200t/s. Der Großteil der AMD/vLLM-Arbeit scheint sich um ihre Rechenzentrumskarten oder das AMD AI Halo/Ryzen zu drehen und ignoriert die R9700 AI Pro. Ich wünschte wirklich, das würde sich ändern.
- flufluflufluffy
Das liegt weit außerhalb meines Fachgebiets, also könnte es eine dumme Frage sein, aber wie verifiziert das Zielmodell Kandidaten-Tokens? Naiv würde ich annehmen, dass es seine normale autoregressive Dekodierung durchführen muss, um zu wissen, was das "richtige" Token ist, um etwas zum Vergleichen mit dem Kandidaten-Token zu haben. Aber offensichtlich würde das den Zweck der spekulativen Dekodierung zunichte machen, also muss es einen anderen Weg geben. Außerdem, was ist der Unterschied zwischen "target model" und "target-model", falls es einen gibt? Ich habe das Gefühl, dass die Hälfte der Vorkommen dieses Ausdrucks den Bindestrich enthielt und die Hälfte nicht.
- myuzio
Sehr wahr, ich sehe es zum Beispiel, wenn meine Kollegen DRY anwenden, ohne wirklich über die Komplexität nachzudenken, die es verursachen könnte. Es macht den Code objektiv kleiner, kommt aber oft mit Komplexitätskosten einher.
- jeanmichelselli
Meiner Meinung nach sind LLMs eines der faszinierendsten Ergebnisse aus dem maschinellen Lernen der letzten Jahre. Entfernt man den Hype um sie und bleibt bei der Mathematik, erkennt man schnell ihr enormes transformatives Potenzial. Es ist großartig zu sehen, dass viel Forschung in diese Richtung betrieben wird, ich wünschte nur, sie käme hauptsächlich aus der Wissenschaft.