Skip to main content

KI Journal Club

Speculative Decoding: Beschleunigung von Textgenerierungsmodellen

Die Generierung von Text durch moderne KI-Modelle wie GPT, Claude oder LLama folgt einem schrittweisen, iterativen Prozess, bei dem ein Token nach dem anderen erzeugt wird. Während große Modelle komplexe Zusammenhänge in der Sprache meisterhaft erfassen, erfordert dies hohe Rechenkapazitäten. Speculative Decoding bietet hier einen neuen Ansatz, um die Effizienz der Textgenerierung zu verbessern, ohne die Qualität zu beeinträchtigen.

Die Generierung von Text durch Decoder-Modelle wie GPT, Claude oder LLama folgt einem bestimmten Muster: Ein Token nach dem anderen wird erzeugt, bis der gesamte Text vollständig ist. Große Modelle sind so in der Lage, hochqualitative Texte zu erzeugen, da sie komplexe Zusammenhänge und subtile Nuancen in der Sprache besser erfassen können. Dieser iterative Prozess erfordert allerdings auch erhebliche Rechenzeiten und Ressourcen. Kleinere Modelle hingegen arbeiten deutlich schneller, aber ihre Leistung lässt bei schwierigeren Aufgaben zu wünschen übrig. Sie leiden oft unter qualitativen Einschränkungen, insbesondere bei komplexen Aufgaben. Diese Diskrepanz führt zu der Frage, wie man die Effizienz der Textgenerierung ohne Qualitätsverluste steigern kann? Eine Methode ist “Speculative Decoding”, die in der Forschungsarbeit “Fast Inference from Transformers via Speculative Decoding” vorgestellt wird.

Dabei wird von einer einfach klingenden, aber entscheidenden Annahme ausgegangen, die einen vielversprechenden Lösungsansatz bietet: Nicht jedes zu generierende Wort (Token) ist gleich schwierig zu erzeugen.  Auf die Frage „Was ist der Sinn des Lebens?“ könnte ein Modell den Anfang einer Antwort wie „Der Sinn des Lebens ist...“ relativ leicht generieren. Die nachfolgenden Tokens hingegen erfordern ein höheres Maß an Präzision und Verständnis. Ein Großteil des Textes besteht oft aus „syntaktischem Füllmaterial“, das weniger komplex ist. Doch die Architektur von derzeitigen Transformer-Modellen widmet jedem Token denselben Rechenaufwand, unabhängig von dessen Schwierigkeit. Es gibt keinen Mechanismus, der den Rechenaufwand basierend auf der Komplexität eines Tokens dosiert.

Wenigen ist bewusst, dass ein Decoder-Modell während jedes Durchlaufs nicht nur den nächsten Token generiert, sondern gleichzeitig die Wahrscheinlichkeit für jeden Token in der Eingabesequenz berechnet. Diese Wahrscheinlichkeit gibt gewissermaßen die Plausibilität der bisherigen Token aus Sicht des Modells wieder. 

Hier kommt das sogenannte Speculative Decoding ins Spiel. Bei dieser Methode generiert ein kleineres, performanteres Modell zunächst eine Sequenz von N Token. Diese Tokens werden dann von einem größeren Modell überprüft. Wenn das größere Modell Abweichungen feststellt, werden die fehlerhaften Tokens verworfen, und die Generierung wird fortgesetzt.

Vorteile von Speculative Decoding

Dieser Ansatz hat mehrere Vorteile. Zum einen wird die Anzahl der benötigten Durchläufe des größeren Modells drastisch reduziert, da es nur zur Überprüfung und nicht zur vollständigen Generierung eingesetzt wird. Gleichzeitig wird die Qualität der finalen Texte nicht beeinträchtigt.

Der Erfolg von Speculative Decoding hängt von mehreren Faktoren ab, die in enger Wechselwirkung stehen und die Effektivität dieser Methode bestimmen. Ein zentraler Aspekt ist die Leistungsfähigkeit des kleineren, vorgelagerten Modells. Je performanter dieses Modell ist, desto größer ist der potenzielle Gewinn in Bezug auf die Gesamtgeschwindigkeit der Textgenerierung. Ein sehr effizientes, aber möglicherweise weniger präzises Modell könnte dazu führen, dass zu viele Tokens vom größeren Modell korrigiert werden müssen und würde damit den anfänglichen Zeitgewinn durch die schnelle Generierung wieder verlieren. Daher ist es entscheidend, ein Modell zu wählen, das sowohl schnell als auch hinreichend präzise ist.

Ein weiterer entscheidender Parameter in diesem Prozess ist die Anzahl der vom kleineren Modell generierten spekulativen Tokens N. Dieser Parameter kann frei gewählt werden, sollte jedoch sorgfältig an die Komplexität der jeweiligen Aufgabe angepasst werden. Wenn N zu groß gewählt wird, riskiert man, dass das kleinere Modell eine Vielzahl von Tokens generiert, die dann vom größeren Modell verworfen werden müssen. Wird N hingegen zu niedrig angesetzt, schöpft man nicht das volle Potenzial von Speculative Decoding aus.

Die Wirksamkeit von Speculative Decoding hängt daher stark vom Schwierigkeitsgrad des zu generierenden Textes ab. Einfachere Texte, wie zum Beispiel längere Zitate oder wiederkehrende Phrasen, bieten eine ideale Grundlage für diese Methode, da das kleinere Modell eine hohe Anzahl korrekter Tokens vorhersagen kann. In solchen Fällen ist der Performanzgewinn besonders groß.

Ein interessantes Anwendungsbeispiel, bei dem Speculative Decoding besonders effektiv ist, ist die Generierung von Programmcode. Programmcode zeichnet sich durch sehr klare und definierte Muster aus, die wenig Raum für alternative Generierungen lassen. Dadurch kann der Parameter N relativ hoch gewählt werden, was zu erheblichen Effizienzgewinnen führt. Ein kleines Modell kann viele Tokens korrekt vorhersagen, da die Struktur und Syntax des Codes oft eindeutig sind.

Technisch gesehen ist es wichtig, dass sowohl das kleinere als auch das größere Modell den gleichen Tokenizer verwenden. Dies ist häufig der Fall bei Modellen derselben Familie, wie beispielsweise bei den verschiedenen Größen der LLama 3.1 Modelle.

 

Fazit

Insgesamt bietet Speculative Decoding eine vielversprechende Möglichkeit, die Effizienz von Textgenerierungsmodellen zu steigern, insbesondere wenn die oben genannten Faktoren sorgfältig berücksichtigt und aufeinander abgestimmt werden.

In unserer monatlichen Serie “KI-Journal Club” stellen wir wissenschaftliche Beiträge und Presseberichte vor aus den Bereichen Text Mining, Machine Learning, KI, Natural Language Processing.

Datum: 05.09.2024

Autor

Bertram Sändig

Bertram ist Experte für KI- und Machine-Learning-Systeme mit einem Fokus auf NLP und Neural Search. Er hält einen B.Sc. in Informatik der FH Brandenburg und seit 2018 einen M.Sc. der TU Berlin mti den Schwerpunkten Machine Learning und Robotik. Parallel zum Studium war er fünf Jahre Leitender Software-Ingenieur im Space Rover Project des Luft- und Raumfahrtsinstituts der TU-Berlin. 2018 stieg er als Machine Learning Engineer bei Neofonie ein und leitet heute das Machine Learning Team bei ontolux, einer Marke der Neofonie GmbH. Mit großer Leidenschaft überführt er aktuelle Forschungsergebnisse in nutzbare Anwendungen für Kunden, vor allem an der Anpassung, Optimierung und Integration von Large Language Modellen in Suchsysteme und das Textanalyse-Toolkit von ontolux.