Effiziente Dekodierung von n-Token-Sequenzen, CLLMs + Jacobi-Dekodierungs-Framework.
Traditionell betrachtet man Large Language Models (LLMs) als sequentielle Decoder, die jedes Token einzeln dekodieren.
Ein Forschungsteam der Shanghai Jiao Tong University und der University of California zeigt, dass vorab trainierte LLMs leicht in effiziente Paralleldecoder umgewandelt werden können, und stellt eine neue Familie paralleler Decoder namens Consistent Large Language Models (CLLMs) vor, die in der Lage sind, zu reduzieren Inferenzlatenz durch effizientes Dekodieren einer n-Token-Sequenz bei jedem Inferenzschritt.
In diesem Artikel zeigen Untersuchungen: „Die Nachahmung des kognitiven Prozesses, den Menschen verwenden, um Wort-für-Wort-Ausdrücke auszudrücken, nachdem sie vollständige Sätze im Kopf gebildet haben, kann durch einfache Feinabstimmung vorab trainierter LLMs effektiv erlernt werden.“ Insbesondere erzeugen CLLMs decodierte Sequenzen mit den gleichen Ergebnissen wie autoregressive (AR) Decodierung, indem sie jede zufällig initialisierte Sequenz von n-Tokens in möglichst wenigen Schritten abbilden. Auf diese Weise kann ein paralleles Decodierungstraining durchgeführt werden.
Experimentelle Ergebnisse zeigen, dass die mit der vom Forschungsteam vorgeschlagenen Methode erhaltenen CLLMs sehr effektiv sind. Sie zeigen, dass die Methode eine 2,4- bis 3,4-fache Verbesserung der Generierungsgeschwindigkeit erzielt und mit anderen schnellen Inferenztechniken wie Medusa2 und Eagle vergleichbar ist. und erfordert keine zusätzlichen Speicherkosten, um während der Inferenz zusätzliche Modellkomponenten unterzubringen.
Abbildung 1: In GSM8K Oben sehen Sie eine Demonstration, dass CLLM-ABEL-7B-001 bei Verwendung der Jacobi-Dekodierung etwa dreimal schneller ist als der Basiswert ABEL-7B-001.
Jacobi DecodingLarge Language Models (LLMs) verändern das Gesicht des menschlichen Lebens, von der Programmierung bis hin zur Bereitstellung von Rechts- und Gesundheitsberatung.
Während der Inferenz verwenden LLMs jedoch autoregressive Dekodierung, um Antworten Token für Token zu generieren, wie in Abbildung 1 dargestellt, was zu einer hohen Latenz bei längeren Antworten führt. Die Verwendung der autoregressiven Dekodierung erfordert häufig Architekturänderungen, Hilfskomponenten oder erste Entwurfsmodelle, um die Inferenz durch die gleichzeitige Generierung mehrerer Token zu beschleunigen. Abbildung 2: Schematische Darstellung der traditionellen Selbstregressionsdekodierung (AR): Generieren Sie jeweils einen Token.
Die Jacobi-Dekodierung ist von den iterativen Festkomma-Methoden Jacobi und Gauss-Seidel zur Lösung nichtlinearer Gleichungen abgeleitet und ist nachweislich genau das Gleiche wie die autoregressive Generierung mit gieriger Dekodierung.
Die Jacobi-Dekodierung rekonstruiert den sequentiellen Generierungsprozess in ein System von n nichtlinearen Gleichungen mit n Variablen und kann basierend auf der Jacobi-Iteration parallel gelöst werden.Jeder Iterationsschritt kann mehrere korrekte Token vorhersagen (die sogenannten „richtigen“ Mittel, die mit den Ergebnissen der autoregressiven Dekodierung im Rahmen der Greedy-Sampling-Strategie übereinstimmen), wodurch möglicherweise die autoregressive Dekodierung beschleunigt wird.
.
Konkret errät die Jacobi-Dekodierungsmethode zunächst zufällig das nächste Token der Sequenz aus der Eingabeaufforderung (im Folgenden als n
-Token-Sequenz bezeichnet, sofern nicht anders angegeben).Dann wird die n-Token-Sequenz zusammen mit den Hinweisen für iterative Aktualisierungen in das LLM eingespeist. Dieser Prozess wird fortgesetzt, bis sich die Reihenfolge der n
-Token stabilisiert, sich nicht mehr ändert und einen festen Punkt erreicht.Es ist erwähnenswert, dass für die Jacobi-Dekodierung nicht mehr Abfragen an das LLM erforderlich sind als für die autoregressive (AR) Dekodierung. Letztendlich konvergiert die Sequenz der n
-Tokens mit der Ausgabe, die durch die AR-Dekodierung im Rahmen der Greedy-Strategie generiert wird. Der Prozess von der anfänglichen Zufallsschätzung bis zum endgültigen AR-generierten Ergebnis wird als „Jacobi-Trajektorie“ bezeichnet.Ein Beispiel für den Jacobi-Decodierungsiterationsprozess und die Jacobi-Trajektorie ist in Abbildung 2 dargestellt. Einschränkungen der Jacobi-Dekodierung:
In der Praxis führt die gewöhnliche Jacobi-Dekodierung jedoch nur zu einer schwachen Verbesserung des Beschleunigungseffekts von LLMs, beispielsweise beträgt das durchschnittliche Beschleunigungsverhältnis nur das 1,05-fache. Dies liegt daran, dass es für LLM schwierig ist, korrekte Token zu generieren, wenn in vorherigen Token Fehler vorhanden sind.
Daher können die meisten Jacobi-Iterationen nur eine Korrektur für eine Folge von n-Tokens erhalten, was zu der längeren Trajektorie führt, die auf der linken Seite von Abbildung 3 dargestellt ist.
Look-Ahead-Dekodierungs- und spekulative Dekodierungsmethoden versuchen, die Ineffizienzen der Jacobi-Dekodierung und der traditionellen autoregressiven Dekodierung zu mildern, verursachen jedoch zusätzliche Speicherkosten während der Inferenz.
CLLMs erfordern diese zusätzlichen Speicherkosten nicht. Konsistente große Sprachmodelle (CLLMs) (AR)-Dekodierungsmethode erhält die Antwort des Modells unter der Greedy-Strategie, nämlich:
Jacobi-Dekodierung formuliert den LLM-Inferenzprozess als einen Prozess zur Lösung eines Systems nichtlinearer Gleichungen um, um den Dekodierungsprozess in eine praktikable Form des parallelen Rechnens umzuwandeln . In Anbetracht dessen:
Der Forscher kann die obige Gleichung als nichtlineares Gleichungssystem umschreiben:
Es sollte beachtet werden, dass: Der Prozess endet bei einem bestimmten k-Wert, so dass:
Dann Definieren Sieals Fixpunkt und als Jacobi-Ortskurve.
Um dieses Problem zu lösen, schlägt das Forschungsteam vor, die vorab trainierten LLMs so anzupassen, dass sie jeden Punkt
yauf der Jacobi-Trajektorie
J konsistent auf einen festen Punkty* abbilden können.
Überraschenderweise fanden sie heraus, dass ein solches Ziel dem des Konsistenzmodells ähnelt – einer wichtigen Beschleunigungsmethode für Diffusionsmodelle. Bei der vom Team vorgeschlagenen Methode wird das Modell mithilfe von Jacobi-Trajektorien trainiert, die vom Zielmodell gesammelt wurden, und es wird eine Verlustfunktion verwendet, die die einstufige Konvergenz während Jacobi-Iterationen fördert.
Für jedes Zielmodell p, das auf CLLM abgestimmt werden soll, besteht das Training aus zwei Teilen: (1) Jacobi-Trajektorienvorbereitung: Für jede Eingabeaufforderung führt der Autor Jacobi für jede Token-Kürzung durch, um zu dekodieren bis Es wird die gesamte Antwortsequenz
l
generiert, was der Verkettung aller aufeinanderfolgenden Fixpunkte entspricht.
Jede entlang der Flugbahn erzeugte Sequenz wird als Dateneintrag gezählt. Hier ist es wichtig zu beachten, dass diese Kürzung bei langen Antworten, die N(
N≫ n) Token enthalten, eine langsame Modellauswertung bei langen Eingaben vermeidet.
(2) Training mit Konsistenz und AR-Verlust: Der Autor optimiert gemeinsam zwei Verluste, um CLLMs anzupassen. Der Konsistenzverlust stellt sicher, dass mehrere Token gleichzeitig vorhergesagt werden, während der AR-Verlust verhindert, dass CLLM vom Ziel-LLM abweicht Aufrechterhaltung der Generationsqualität.
Abbildung 4: Schematische Darstellung des einstufigen Konvergenzkonsistenztrainings: Anpassen des LLM soll immer den Fixpunkt vorhersagen, wenn ein beliebiger Zustand auf der Jacobi-Trajektorie als Eingabe verwendet wird.Konsistenz und AR-Verlust: (1) Konsistenzverlust
Sei pdas Ziel-LLM.
Lassen Sie als CLLM mit Parametern θ
darstellen, die aufp
initialisiert sind. Für Promptx und die entsprechende Jacobi-Trajektorie J
seieny und y* Zufallszustände bzw. Fixpunkte auf der Trajektorie. kann zur Ausgabe von y veranlasst werden, wenn die Eingabe y* ist, indem der folgende Verlust minimiert wird, der als
globaler Konsistenzverlust (GC-Verlust) bezeichnet wird:In dieser Formel
Der Autor verwendet häufig Symbole, um eine einheitliche Stichprobe aus dem Datensatz darzustellen.
D(·||·) stellt den Abstand zwischen zwei Verteilungen dar, und die Auswahl wird in der GKD-Methode diskutiert. In diesem Artikel wird hauptsächlich Vorwärts-KL verwendet.
Alternativ können Sie den lokalen Konsistenzverlust (LC) gemäß der Formel im Konsistenzmodell verwenden.
wobei benachbarte Zustände: In der Jacobi-Trajektorie J angetrieben werden, um die gleiche Ausgabe zu erzeugen:
(2) AR-Verlust:
Um Abweichungen von der Verteilung des Ziel-LLM zu vermeiden, wird der Der Autor kombiniert die Verteilung basierend auf dem traditionellen AR-Verlust für die Erzeugung l des Ziel-LLM p:
Durch die Kombination beider Verluste unter Verwendung einiger Gewichte ω beträgt der Gesamtverlust des Trainings-CLLM :
Experiment
Ergebnisse:
Insgesamt deckt dieses Experiment drei domänenspezifische Aufgaben ab:
(1) Spider (Text zu SQL)
(2) Human-Eval (Python-Code). Vervollständigung) und GSM8k (Mathematik)
(3) MT-Benchmark zur größeren Open-Domain-Session-Challenge.
Die berichteten Experimente verwenden je nach Aufgabe den fein abgestimmten Encoder LLM, Deepseek-coder-7B-instruct, LLaMA-2-7B oder ABEL-7B-001 als Zielmodell.
Training und Evaluierung werden auf dem NVIDIA A100 40GB-Server durchgeführt.
Abbildung 5: Beschleunigungseffekt von CLLM auf verschiedene nachgelagerte Aufgaben. Die Ergebnisse zeigen: „CLLM ist viel schneller als das vorab trainierte Modell und erreicht eine vergleichbare Geschwindigkeitssteigerung im Vergleich zu Medusa, jedoch ohne zusätzliche Kosten während der Inferenz.“
Abbildung 6: CLLM vs. andere Vergleichsdiagramm von Benchmarks zu bestimmten Domänenaufgaben (Spider, CSN-Python, GSM8k) und MT-Bench. CLLM erreicht im Vergleich zu Medusa2 ähnliche oder sogar bessere Geschwindigkeiten und verursacht dabei keine zusätzlichen Inferenzkosten (gemessen an FLOPS und Speicherverbrauch).
Fachgebiet:
Aus Abbildung 5 können wir ersehen, dass CLLMs im Vergleich zu anderen Baselines, einschließlich des ursprünglichen Zielmodells, Medusa2 und Guess-Dekodierung, die deutlichste Beschleunigung erzielen.
Open Domain Session Challenge (MT-Bench):
CLLM, das aus LLaMA2-7B unter Verwendung des ShareGPT-Datensatzes trainiert wurde, erreicht in Kombination mit der Lookahead-Decodierung ungefähr die gleiche Geschwindigkeit wie Medusa2 und eine bessere Leistung bei MT. Erhalten Sie vergleichbare Ergebnisse auf -Bank.
CLLM ist jedoch anpassungsfähiger und speichereffizienter, da keine Änderungen an der ursprünglichen Architektur des Zielmodells oder an Hilfskomponenten erforderlich sind.
Schulungskosten:
Die Kosten für die Feinabstimmung von CLLMs sind gering.
Zum Beispiel kann für LLaMA-7B die 3,4-fache Beschleunigung des Spider-Datensatzes bereits durch die Weitergabe von etwa 1 Mio. Token erreicht werden. In Fällen, in denen der Datensatz groß ist (z. B. für CodeSearchNet-Python), müssen nur 10 % des Datensatzes zum Generieren von Jacobi-Trajektorien für das Training von CLLMs verwendet werden, was zu einer etwa 2,5-fachen Beschleunigung führt.
Die Gesamtzahl der Token kann auf folgende Weise geschätzt werden:
N = durchschnittliche Flugbahnmenge jeder Eingabeaufforderung × durchschnittliche Flugbahnlänge × Anzahl der Eingabeaufforderungen.
Abbildung 7: Jacobi-Trajektorienvergleich zwischen Ziel-LLM und CLLM auf Spider. Jeder Punkt auf der Jacobi-Trajektorie ist eine farbcodierte Sequenz: Richtige Übereinstimmungen mit den AR-Ergebnissen werden blau markiert, ungenaue werden rot markiert. CLLM weist eine verbesserte Effizienz auf und konvergiert zweimal schneller zum Fixpunkt als das Ziel-LLM. Diese verbesserte Effizienz von CLLM kann auf den Konsistenzverlust zurückgeführt werden, der das Erlernen der Struktur der n-Token-Sequenz für jedes gegebene Präfix erleichtert.
Die linke Seite von Abbildung 6 zeigt, dass der Ziel-LLM normalerweise nur einen korrekten Token in einer Iteration generiert. Im Gegensatz dazu fanden die Autoren bei CLLMs das Phänomen des schnellen Fortschritts, bei dem mehrere aufeinanderfolgende Token in einer einzigen Jacobi-Iteration korrekt vorhergesagt werden.
Darüber hinaus werden im Ziel-LLM im Voraus korrekt generierte Token (z. B. „Land“ und „H“ an den Indizes 6 und 7 auf der linken Seite von Abbildung 7) in nachfolgenden Iterationen häufig falsch ersetzt.
Andererseits haben CLLMs die Fähigkeit gezeigt, den richtigen Token vorherzusagen und sicherzustellen, dass der Token auch dann unverändert bleibt, wenn zuvor ein falscher Token vorhanden war.
Der Autor nennt einen solchen Token einen „festen Token“. Diese beiden Phänomene tragen zusammen zur schnellen Konvergenz von CLLMs bei der Jacobi-Dekodierung bei und führen so zu erheblichen Verbesserungen der Generierungsgeschwindigkeit.
Das Forschungsteam stellte außerdem fest, dass CLLMs durch das Training ein zentrales Sprachkonzept erworben haben – die Kollokation: „eine Abfolge von Wörtern oder Begriffen, die häufiger zusammen vorkommen, als durch Zufall erwartet.“
Sprache besteht nicht nur aus der Isolation von Wörtern , stützt sich aber auch stark auf bestimmte Wortpaare. Beispiele für Kollokationen gibt es sowohl in natürlichen als auch in Programmiersprachen reichlich.
Dazu gehören:
Kombinationen aus Verb + Präposition (z. B. „sprechen“, „erinnern... an ...“)
Strukturen aus Verb + Substantiv (z. B. „eine Entscheidung treffen“, „einen fangen“) kalt")
Viele domänenspezifische syntaktische Strukturen (z. B. „SELECT ... FROM ...“, „if ... else“ für die Programmierung).
Das Ziel der Konsistenzgenerierung ermöglicht es CLLMs, solche Strukturen von jedem Punkt der Jacobi-Trajektorie abzuleiten, was es CLLMs erleichtert, eine große Anzahl von Kollokationen zu beherrschen und so mehrere Wörter gleichzeitig vorherzusagen, um Iterationsschritte zu minimieren.
Referenzlink:
https://hao-ai-lab.github.io/blogs/cllm/
Das obige ist der detaillierte Inhalt vonMit der dreifachen Generierungsgeschwindigkeit und reduzierten Speicherkosten ist endlich ein effizientes Dekodierungs-Framework verfügbar, das Medusa2 übertrifft. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!