Speculative Execution
Speculative Execution bedeutet, dass ein Computer schon rechnet, bevor feststeht, ob das Ergebnis überhaupt gebraucht wird. Liegt er richtig, spart er Zeit; liegt er falsch, verwirft er die Arbeit — dieses Prinzip steckt in fast jedem Prozessor und heute auch in der Beschleunigung von KI-Textmodellen.
Ein Computer muss oft warten. Er kommt an eine Stelle im Programm, an der es zwei mögliche Fortsetzungen gibt, und die Entscheidung darüber ist noch nicht fertig berechnet. Statt untätig zu warten, rät er, wie die Entscheidung ausfallen wird, und rechnet schon einmal in diese Richtung weiter. Genau das nennt man Speculative Execution, auf Deutsch spekulative Ausführung. War die Vermutung richtig, ist die Arbeit bereits erledigt und die Zeit gewonnen. War sie falsch, werden die Zwischenergebnisse weggeworfen, und der Computer beginnt an der Verzweigung noch einmal von vorn.
Warum Warten teurer ist als Raten
Moderne Prozessoren arbeiten wie ein Fließband. Ein Befehl wird nicht in einem Rutsch erledigt, sondern durchläuft mehrere Stationen hintereinander. Damit das Band nicht stillsteht, muss ständig Nachschub kommen. Sobald eine Entscheidung offen ist, fehlt dieser Nachschub, und das Band läuft leer.
Eine solche Lücke kostet nicht ein paar Prozent, sondern kann die Geschwindigkeit halbieren. Verzweigungen sind außerdem sehr häufig: In typischem Programmcode steckt etwa alle fünf bis zehn Befehle eine. Ohne Spekulation wäre ein heutiger Prozessor deshalb spürbar langsamer, obwohl seine Bauteile gleich schnell sind. Die Technik ist einer der Gründe, warum Rechenleistung über Jahrzehnte gestiegen ist, ohne dass die Taktfrequenz im gleichen Maß zunahm.
Der Nutzen hängt allein davon ab, wie gut geraten wird. Bei einer Trefferquote von 95 Prozent lohnt sich der Aufwand deutlich. Bei 50 Prozent wäre die Hälfte der Arbeit umsonst, und der Vorteil wäre dahin.
Raten, rechnen, verwerfen
Für das Raten gibt es im Prozessor eine eigene Schaltung, die Sprungvorhersage. Sie merkt sich, wie eine bestimmte Stelle im Programm in der Vergangenheit ausgegangen ist. Eine Schleife, die tausendmal durchlaufen wird, endet in 999 von 1000 Fällen mit „weitermachen“. Diese Regelmäßigkeit erkennt die Vorhersage und liegt danach fast immer richtig.
Während spekuliert wird, dürfen die Ergebnisse nichts Endgültiges anrichten. Sie landen in einem Zwischenbereich und werden erst dann offiziell übernommen, wenn die Entscheidung feststeht. Stellt sich der Rat als falsch heraus, löscht der Prozessor diesen Zwischenbereich. Nach außen sieht es so aus, als wäre nie etwas passiert.
Ganz spurlos ist das Zurücknehmen allerdings nicht. Die Sicherheitslücken Spectre und Meltdown, 2018 veröffentlicht, nutzten genau das aus. Spekulativ geladene Daten hinterließen Spuren im Zwischenspeicher, aus denen Angreifer Rückschlüsse auf fremde Inhalte ziehen konnten. Die Gegenmaßnahmen kosteten damals messbar Leistung.
Vom Prozessor zum Chatbot
Ein Sprachmodell erzeugt Text Wort für Wort. Jedes neue Wort erfordert einen kompletten Durchlauf durch das große Modell, und das ist der Flaschenhals. Beim Speculative Decoding lässt man deshalb zuerst ein kleines, schnelles Modell raten. Es schreibt fünf oder zehn Wörter im Voraus.
Danach prüft das große Modell diesen Vorschlag in einem einzigen Durchlauf. Alles, was es selbst genauso geschrieben hätte, wird übernommen. Ab der ersten Abweichung wird der Rest verworfen. Das Ergebnis ist Wort für Wort identisch mit dem, was das große Modell allein produziert hätte — nur zwei- bis dreimal schneller. Ein verbreiteter Irrtum ist, die Antwort werde dadurch schlechter oder ungenauer; das ist nicht der Fall.
In der Praxis begegnet einem die Technik ständig, ohne dass sie sichtbar wäre. Sie steckt im Chip von Laptop und Smartphone und in den Servern hinter jedem Chatbot. In Firmenmitteilungen taucht sie meist als Begründung für niedrigere Betriebskosten oder kürzere Antwortzeiten auf.