- Veröffentlicht am
So skalieren Sie LLM-Inferenz mit KV-Caching
- Autoren

- Name
- AbnAsia.org
- @steven_n_t
"Warum dauert es bei der Verwendung von ChatGPT oder Claude länger, bis das erste Token angezeigt wird als das zweite? Das ist dem KV-Caching zu verdanken! Es ist ziemlich beeindruckend, wenn man bedenkt, wie viele kleine Optimierungstricks die Bereitstellungslatenz von Textgenerierungsdiensten verbessern sollen!
Ein LLM generiert Text, indem es iterativ den nächsten Token vorhersagt und ihn an die zuvor generierten Token und die ursprüngliche Eingabeaufforderung anhängt. Typischerweise werden kausale LLMs darauf trainiert, das nächste Wort in der Sequenz vorherzusagen. Dies bedeutet, dass jedes Eingabe-Token einem resultierenden verborgenen Zustand innerhalb des Transformers zugeordnet wird, der wiederum einem Vorhersagevektor für das folgende Token zugeordnet wird. Der Vorhersagevektor hat so viele Vorhersagen, wie Token im Wörterbuch vorhanden sind, und der nächste Token kann vorhergesagt werden, indem gierig die Vorhersage mit der höchsten Wahrscheinlichkeit gefunden wird. Das bedeutet, dass wir beim Dekodieren eines bestimmten Tokens nur seinen entsprechenden verborgenen Zustand berechnen und die anderen verwerfen müssen.
Dieser erforderliche verborgene Zustand entspricht dem letzten Token der Eingabesequenz. Um diesen verborgenen Zustand zu berechnen, benötigen wir in jeder der Selbstaufmerksamkeitsschichten alle Schlüssel und Werte der gesamten Eingabesequenz, aber nur die Abfrage für das letzte Token dieser Sequenz. Wir generieren die Aufmerksamkeiten für das letzte Token, indem wir den Softmax des Skalarprodukts zwischen der Abfrage und allen Schlüsseln nehmen:
Aufmerksamkeiten für letztes Token = Softmax(Abfrage x alle Schlüssel)
Und wir erhalten den resultierenden verborgenen Zustand, indem wir den gewichteten Durchschnitt aller Werte nehmen, die durch die Aufmerksamkeiten gegeben sind:
versteckter Zustand = alle Werte x Aufmerksamkeiten
Es gibt einige Schlussfolgerungen, die wir daraus ziehen können. Erstens besteht keine Notwendigkeit, die Aufmerksamkeiten außer denen zu berechnen, die dem letzten Token entsprechen. Dies bedeutet, dass während des Decodierungsprozesses die zeitliche Komplexität bei jeder Iteration linear zur Anzahl der Eingabetokens (~O(N)) ist, selbst mit einem Vanilla-Aufmerksamkeitsmechanismus. Zweitens bleiben die Schlüssel und Werte für jedes Token bei allen Iterationen gleich. Das bedeutet, dass wir sie nicht bei jeder Iteration neu berechnen müssen. Daher kommt die Idee des KV-Cachings!
Der Dekodierungsprozess kann in zwei Phasen unterteilt werden: die Initialisierungsphase und die Generierungsphase. In der Initialisierungsphase müssen alle Schlüssel und Werte erstellt werden, die allen Token in der Eingabeaufforderung entsprechen. Dies dauert fast so lange wie die folgende Phase. Anschließend können wir alle Schlüssel und Werte für alle Aufmerksamkeitsebenen im KV-Cache speichern. In der Generierungsphase müssen wir nur den Schlüssel, die Abfrage und den Wert generieren, die dem letzten Token in der Eingabesequenz entsprechen. Anschließend können wir die gespeicherten Schlüssel und Werte aus dem Cache abrufen, um die erforderlichen verborgenen Zustände zu berechnen. Am Ende aktualisieren wir den Cache mit dem zuletzt berechneten Schlüssel und Wert, der dem letzten Token entspricht.
Dieser KV-Caching-Prozess reduziert die mit der Textgenerierung verbundene Latenz erheblich!"
Bitte beachten Sie, dass die französische Version von Ai unterstützt wird und daher geringfügige Fehler auftreten können.
AUTOR
Über ABN Asia: Ai Base Network (ABN), ABN Asia wurde im Jahr 2012 gegründet und ist ein Unternehmen mit akademischem Hintergrund, das von Lehrkräften und ehemaligen Studierenden aus Ungarn, den Niederlanden, Russland, Deutschland und Japan gegründet wurde. Wir teilen eine gemeinsame Leidenschaft und eine klare Vision für Technologie, die Innovation und erstklassige Qualität für unsere Kunden bringt. Unser Motto lautet: Besser. Schneller. Sicherer. In vielen Fällen: Günstiger.
Zögern Sie nicht, uns zu kontaktieren, wenn Sie IT-Dienstleistungen, digitale Beratung, Standardsoftwarelösungen benötigen oder uns Angebotsanfragen (RFPs) senden möchten. Sie können uns unter [email protected] kontaktieren. Wir sind bereit, Ihnen bei all Ihren Technologiebedürfnissen zu helfen.

© ABN ASIA