Search

DE-102025140413-A1 - EFFIZIENTES TOKEN-BESCHNEIDEN IN TRANSFORMATORBASIERTEN NEURONALEN NETZEN

DE102025140413A1DE 102025140413 A1DE102025140413 A1DE 102025140413A1DE-102025140413-A1

Abstract

Schlüsselwert- (KV-) Caching beschleunigt Inferenz in großen Sprachmodellen (LLMS), indem ermöglicht wird, dass die Aufmerksamkeitsoperation linear anstatt quadratisch mit der Gesamtsequenzlänge skaliert wird. Aufgrund großer Kontextlängen in modernen LLMS kann die KV-Cache-Größe die Modellgröße überschreiten, was sich negativ auf den Durchsatz auswirken kann. Um dieses Problem zu beheben, wird KVCrush implementiert, das für KEY-VALUE CACHE SIZE REDUCTION USING SIMILARITY IN HEAD-BEHAVIOR (Schlüssel-Wert-Cache-Größenreduzierung durch Ähnlichkeit des Kopfverhaltens) steht. KVCrush beinhaltet das Verwenden von Binärvektoren, um Token darzustellen, wobei der Vektor angibt, welche Aufmerksamkeitsköpfe das Token berücksichtigen und welche Aufmerksamkeitsköpfe das Token ignorieren. Die Binärvektoren werden in einem hardwareeffizienten Prozess mit geringem Overhead verwendet, um Repräsentanten für unwichtige Token zu erzeugen, die beschnitten werden sollen, ohne k-Means-Clustering-Techniken implementieren zu müssen.

Inventors

  • Krishna Jha Gopi
  • Sameh Gobriel
  • Nilesh Jain

Assignees

  • INTEL CORPORATION

Dates

Publication Date
20260507
Application Date
20251002
Priority Date
20241226

Claims (17)

  1. Verfahren zum Verwalten eines Schlüssel-Wert-Cache, umfassend: Berechnen eines oder mehrerer Binärvektoren, die ein oder mehrere Token einer Anfrage an ein neuronales Netz darstellen; Zuweisen eines oder mehrerer ausgewählter Token des einen oder der mehreren Token zu einem Bucket basierend auf dem einen oder den mehreren Binärvektoren; Auswählen eines repräsentativen Token, um das eine oder die mehreren ausgewählten Token darzustellen, die dem Bucket zugewiesen werden; Speichern eines repräsentativen Schlüsseltensors und eines repräsentativen Werttensors, die für das repräsentative Token berechnet werden, im Schlüssel-Wert-Cache; und Bereitstellen des repräsentativen Schlüsseltensors und des repräsentativen Werttensors aus dem Schlüssel-Wert-Cache für eine Operation des neuronalen Netzes, die mit dem einen oder den mehreren ausgewählten Token arbeitet, die dem Bucket zugewiesen werden.
  2. Verfahren nach Anspruch 1 , wobei das Berechnen des einen oder der mehreren Binärvektoren Berechnen des einen oder der mehreren Binärvektoren basierend auf einer oder mehreren Aufmerksamkeitsgewichtungsmatrizen umfasst, die von einem oder mehreren Aufmerksamkeitsköpfen des neuronalen Netzes berechnet werden.
  3. Verfahren nach Anspruch 1 oder 2 , wobei das Berechnen des einen oder der mehreren Binärvektoren umfasst: Berechnen einer normalisierten Zeilensumme einer Aufmerksamkeitsgewichtungsmatrix, die durch das neuronale Netz berechnet wird; und Binarisieren der normalisierten Zeilensumme unter Verwendung eines Schwellenwerts.
  4. Verfahren nach einem der Ansprüche 1 bis 3 , wobei ein Binärvektor des einen oder der mehreren Binärvektoren einen Binärwert für jeden Aufmerksamkeitskopf eines oder mehrerer Aufmerksamkeitsköpfe des neuronalen Netzes umfasst.
  5. Verfahren nach Anspruch 4 , wobei der Binärwert ein Auswahlbit ist, das angibt, ob ein gegebener Aufmerksamkeitskopf von Aufmerksamkeitsköpfen des neuronalen Netzes ein bestimmtes Token berücksichtigt oder das bestimmte Token ignoriert.
  6. Verfahren nach einem der Ansprüche 1 bis 5 , wobei das Zuweisen des einen oder der mehreren ausgewählten Token zu dem Bucket umfasst: Berechnen eines oder mehrerer Abstände des einen oder der mehreren Binärvektoren, die das eine oder die mehreren Token darstellen, zu einem Ankervektor; Bestimmen eines Bereichs von Abständen, die dem Bucket entsprechen; und Zuweisen des einen oder der mehreren ausgewählten Token zu dem Bucket gemäß dem Bereich von Abständen und dem einen oder den mehreren Abständen.
  7. Verfahren nach einem der Ansprüche 1 bis 6 , wobei das Zuweisen des einen oder der mehreren ausgewählten Token zu dem Bucket umfasst: zufälliges Bestimmen eines oder mehrerer Werte eines Ankervektors; und Zuweisen des einen oder der mehreren ausgewählten Token zu dem Bucket basierend auf einem oder mehreren Abständen des einen oder der mehreren Binärvektoren zu dem Ankervektor.
  8. Verfahren nach einem der Ansprüche 1 bis 6 , wobei das Zuweisen des einen oder der mehreren ausgewählten Token zu dem Bucket umfasst: Bestimmen eines oder mehrerer Werte eines Ankervektors basierend auf einem Mittelwert des einen oder der mehreren Binärvektoren; und Zuweisen des einen oder der mehreren ausgewählten Token zu dem Bucket basierend auf einem oder mehreren Abständen des einen oder der mehreren Binärvektoren zu dem Ankervektor.
  9. Verfahren nach einem der Ansprüche 1 bis 6 , wobei das Zuweisen des einen oder der mehreren ausgewählten Token zu dem Bucket umfasst: Zuweisen des einen oder der mehreren ausgewählten Token zu dem Bucket basierend auf einem oder mehreren Abständen des einen oder der mehreren Binärvektoren zu einem Ankervektor, wobei der Ankervektor abwechselnd Nullen und Einsen aufweist.
  10. Verfahren nach einem der Ansprüche 6 bis 9 , wobei der eine oder die mehreren Abstände einen oder mehrere Hamming-Abstände umfassen.
  11. Verfahren nach einem der Ansprüche 1 bis 10 , wobei das Auswählen des repräsentativen Token aus dem einen oder den mehreren ausgewählten Token, die dem Bucket zugewiesen werden, umfasst: zufälliges Auswählen des repräsentativen Token aus dem einen oder den mehreren ausgewählten Token.
  12. Verfahren nach einem der Ansprüche 1 bis 11 , wobei: der repräsentative Schlüsseltensor und der repräsentative Werttensor durch einen Aufmerksamkeitskopf des neuronalen Netzes für das repräsentative Token berechnet werden; und der repräsentative Schlüsseltensor und der repräsentative Werttensor einen oder mehrere Schlüsseltensoren und einen oder mehrere Werttensoren darstellen, die durch den Aufmerksamkeitskopf des neuronalen Netzes für das eine oder die mehreren ausgewählten Token berechnet werden.
  13. Verfahren nach einem der Ansprüche 1 bis 12 , ferner umfassend: Zuweisen eines oder mehrerer weiterer ausgewählter Token des einen oder der mehreren Token zu einem weiteren Bucket basierend auf dem einen oder den mehreren Binärvektoren; Auswählen eines weiteren repräsentativen Token, um das eine oder die mehreren weiteren ausgewählten Token darzustellen, die dem Bucket zugewiesen werden; Speichern eines weiteren repräsentativen Schlüsseltensors und eines weiteren repräsentativen Werttensors, die für das weitere repräsentative Token berechnet werden, im Schlüssel-Wert-Cache; Bestimmen, dass ein weiteres Token der Anfrage eines des einen oder der mehreren weiteren ausgewählten Token ist, die dem weiteren Bucket zugewiesen werden; und Bereitstellen des weiteren repräsentativen Schlüsseltensors und des weiteren repräsentativen Werttensors aus dem Schlüssel-Wert-Cache, die bei der Operation des neuronalen Netzes verwendet werden sollen, die mit dem weiteren Token arbeitet.
  14. Verfahren nach einem der Ansprüche 1 bis 13 , ferner umfassend: Bestimmen, dass das eine oder die mehreren ausgewählten Token beschnitten werden sollen, basierend auf einem oder mehreren Wichtigkeitswerten des einen oder der mehreren ausgewählten Token.
  15. Verfahren nach einem der Ansprüche 1 bis 14 , ferner umfassend: Räumen eines oder mehrerer Schlüsseltensoren und eines oder mehrerer Werttensoren, die für ein oder mehrere verbleibende Token berechnet werden, die dem Bucket zugewiesen werden und nicht als repräsentatives Token ausgewählt werden, aus dem Schlüssel-Wert-Cache.
  16. Ein oder mehrere nicht-transitorische computerlesbare Medien, auf denen Anweisungen gespeichert sind, die durch einen Prozessor ausführbar sind, um das Verfahren nach einem der Ansprüche 1 bis 15 durchzuführen.
  17. Einrichtung, umfassend: maschinenlesbare Anweisungen; einen oder mehrere Speicher, die einen Schlüssel-Wert-Cache speichern; und mindestens einen Computerprozessor, der bei Ausführung der maschinenlesbaren Anweisungen das Verfahren nach einem der Ansprüche 1 bis 15 ausführt.

Description

Priorität Diese Anmeldung ist eine nichtvorläufige Anmeldung, die die Priorität der am 5. November 2024 eingereichten vorläufigen US-Anmeldung Nr. 63/716,292 mit dem Titel „EFFICIENT TOKEN PRUNING IN TRANSFORMATOR-BASED NEURAL WORKS“ beansprucht und/oder einen Vorteil aus dieser erhält. Die vorläufige US-Anmeldung wird hiermit durch Bezugnahme in ihrer Gesamtheit aufgenommen. Hintergrund Tiefe neuronale Netze (DNNs) werden aufgrund ihrer hohen Genauigkeit in einer Vielzahl von Kl- (Künstliche Intelligenz) Anwendungen eingesetzt, die von maschinellem Sehen bis hin zu Spracherkennung und Verarbeitung natürlicher Sprache reichen. Die hohe Genauigkeit geht jedoch zu Lasten eines erheblichen Rechenaufwands. DNNs haben extrem hohe Rechenanforderungen, da es eine große Anzahl von Operationen sowie eine große Menge von Daten zum Lesen und Schreiben geben kann. Kurzbeschreibung der Zeichnungen Die Ausführungsformen sind durch die folgende ausführliche Beschreibung in Verbindung mit den zugehörigen Zeichnungen leicht verständlich. Um diese Beschreibung zu erleichtern, kennzeichnen gleiche Bezugszeichen gleiche Strukturelemente. Ausführungsformen sind beispielhaft und nicht einschränkend in den Figuren der beiliegenden Zeichnungen veranschaulicht.1 veranschaulicht ein beispielhaftes großes Sprachmodell, das gemäß einigen Ausführungsformen der Offenbarung als transformatorbasiertes neuronales Netz implementiert ist.2 veranschaulicht einen seriellen Transformatorblock gemäß einigen Ausführungsformen der Offenbarung.3 veranschaulicht einen parallelen Transformatorblock gemäß einigen Ausführungsformen der Offenbarung.4 zeigt eine Aufmerksamkeitsschicht eines Transformatorblocks gemäß einigen Ausführungsformen der Offenbarung.5 veranschaulicht Berechnungen in einer Selbstaufmerksamkeitsschicht ohne Schlüssel-Wert- (key-value, KV-) Caching gemäß einigen Ausführungsformen der Offenbarung.6 veranschaulicht Berechnungen in einer Selbstaufmerksamkeitsschicht mit KV-Caching gemäß einigen Ausführungsformen der Offenbarung.7 veranschaulicht ein System mit verteilten Arbeitern zur Ausführung von Anfragen eines transformatorbasierten neuronalen Netzes gemäß einigen Ausführungsformen der Offenbarung.8 veranschaulicht ein KV-Cache-Paging-Schema gemäß einigen Ausführungsformen der Offenbarung.9 veranschaulicht eine KV-Cache-Steuerung gemäß einigen Ausführungsformen der Offenbarung.10 veranschaulicht einen Lösungsablauf für eine effiziente KV-Cache-Verwaltung gemäß einigen Ausführungsformen der Offenbarung.11 veranschaulicht eine Berechnung von Aufmerksamkeitsgewichtungen gemäß einigen Ausführungsformen der Offenbarung.12 veranschaulicht eine Berechnung von Binärvektordarstellungen gemäß einigen Ausführungsformen der Offenbarung.13 veranschaulicht eine Auswahl repräsentativer Token gemäß einigen Ausführungsformen der Offenbarung.14 ist ein Flussdiagramm, das ein Verfahren für KV-Cache-Verwaltung gemäß einigen Ausführungsformen der Offenbarung veranschaulicht.15 ist ein Flussdiagramm, das ein Verfahren für KV-Cache-Verwaltung gemäß einigen Ausführungsformen der Offenbarung veranschaulicht.16 ist ein Blockdiagramm einer beispielhaften Rechenvorrichtung gemäß einigen Ausführungsformen der Offenbarung. Ausführliche Beschreibung Überblick Das letzte Jahrzehnt war Zeuge eines schnellen Anstiegs der KI- (Künstliche Intelligenz) basierten Datenverarbeitung, insbesondere basierend auf DNNs. Das Nutzen von DNNs ist in den Bereichen maschinelles Sehen, Spracherkennung, Bild- und Videoverarbeitung weit verbreitet, hauptsächlich aufgrund ihrer Fähigkeit, eine Genauigkeit jenseits menschlicher Fähigkeiten zu erreichen. Ein DNN beinhaltet typischerweise eine Sequenz von Schichten. Eine DNN-Schicht kann eine oder mehrere Deep-Learning-Operationen (auch als „Neuronalnetzoperationen“ bezeichnet) umfassen, wie beispielsweise Faltungsoperationen, Matrixmultiplikationsoperationen, Schichtnormalisierungsoperationen, Batch-Normalisierungsoperationen, SoftMax-Operationen, Pooling-Operationen, elementweise Operationen, lineare Operationen, nichtlineare Operationen usw. Auch wenn DNNs bei der Analyse und Vorhersage effektiv sind, geht dies zu Lasten immenser Rechenleistung. DNNs können während des Trainings und während der Inferenz signifikante Leistung und Laufzeit beanspruchen. Transformatorbasierte neuronale Netze oder transformatorbasierte Modelle sind eine Art von DNN, die verwendet werden kann, um große Sprachmodelle (LLMS) und Computer-Vision-Modelle (in der Literatur als ViTs bezeichnet) zu versorgen. Transformatorbasierte neuronale Netze werden in Diensten und Anwendungen verwendet, wie etwa Verarbeitung natürlicher Sprache, Sprachverarbeitung, Konversations-Kl-Assistenten, Bildunterschriften, Objekterkennung, Videoverständnis, Empfehlungssysteme, Bioinformatik, Zeitreihenvorhersage, Verstärkungslernen und generative Modelle, um Text, Bild oder Musik zu erzeugen. Cloud-Unternehmen können ein transformatorbasiertes neuronales Netz als einen gehosteten Di