


Mit bis zu 4 Millionen Token-Kontexten und einer 22-mal schnelleren Inferenz erfreut sich StreamingLLM großer Beliebtheit und hat auf GitHub 2,5.000 Sterne erhalten.
Wenn Sie jemals mit einem Konversations-KI-Bot interagiert haben, werden Sie sich an einige sehr frustrierende Momente erinnern. Zum Beispiel wurden die wichtigen Dinge, die Sie im Gespräch am Vortag erwähnt haben, von der KI völlig vergessen...
Das liegt daran, dass sich die meisten aktuellen LLMs nur an einen begrenzten Kontext erinnern können, genau wie Studenten, die sich für Prüfungen pauken, ein wenig quer- Die Untersuchung werde „die Wahrheit ans Licht bringen“.
Wäre es nicht beneidenswert, wenn ein KI-Assistent Gespräche von vor Wochen oder Monaten in einem Chat kontextbezogen referenzieren könnte oder wenn Sie den KI-Assistenten bitten könnten, einen Bericht zusammenzufassen, der Tausende von Seiten lang ist?
Damit sich LLM besser erinnern und mehr Inhalte merken kann, haben Forscher hart gearbeitet. Kürzlich haben Forscher vom MIT, Meta AI und der Carnegie Mellon University eine Methode namens „StreamingLLM“ vorgeschlagen, die es Sprachmodellen ermöglicht, Endlostext reibungslos zu verarbeiten /pdf/2309.17453.pdf
Projektadresse: https://github.com/mit-han-lab/streaming-llm
- StreamingLLM funktioniert durch die Identifizierung und Speicherung der dem Modell innewohnenden „Aufmerksamkeitssenken“. ” (Aufmerksamkeitssenken), die das anfängliche Zeichen für seine Argumentation verankern. In Kombination mit einem fortlaufenden Cache aktueller Token beschleunigt StreamingLLM die Inferenz um das 22-fache, ohne dass die Genauigkeit darunter leidet. In nur wenigen Tagen hat das Projekt 2,5.000 Sterne auf der GitHub-Plattform erhalten:
Schauen wir uns als nächstes die technischen Details an.
Methodeninnovation
Im Allgemeinen ist LLM durch das Aufmerksamkeitsfenster während der Vorschulung begrenzt. Obwohl bereits viel daran gearbeitet wurde, diese Fenstergröße zu erweitern und die Trainings- und Inferenzeffizienz zu verbessern, ist die akzeptable Sequenzlänge von LLM immer noch begrenzt, was für eine dauerhafte Bereitstellung nicht geeignet ist.
In diesem Artikel stellte der Forscher zunächst das Konzept der LLM-Streaming-Anwendung vor und stellte die Frage: „Kann LLM mit unendlich langen Eingaben bereitgestellt werden, ohne Effizienz und Leistung zu beeinträchtigen?“
Bei der Anwendung von LLM auf unendlich lange Beim Eingabestream werden Sie vor zwei Hauptherausforderungen stehen:
1. In der Decodierungsphase speichert das transformatorbasierte LLM den Schlüssel- und Wertstatus (KV) aller vorherigen Token, wie in Abbildung 1 dargestellt a) Dies kann zu einer übermäßigen Speichernutzung und einer erhöhten Dekodierungslatenz führen.
2 Das vorhandene Modell verfügt nur über begrenzte Längenextrapolationsfunktionen, d Bei längerem Betrieb nimmt die Leistung ab.
Eine intuitive Methode heißt Window Attention (Abbildung 1 b). Diese Methode verwaltet nur ein Schiebefenster mit fester Größe für den KV-Status des neuesten Tokens. Dies gewährleistet jedoch eine stabile Speichernutzung und Dekodierung Geschwindigkeit, nachdem der Cache voll ist, aber sobald die Sequenzlänge die Cache-Größe überschreitet oder auch nur den KV des ersten Tokens entfernt, stürzt das Modell ab. Eine andere Methode besteht darin, das Schiebefenster neu zu berechnen (siehe Abbildung 1 c). Diese Methode rekonstruiert den KV-Status des neuesten Tokens für jedes generierte Token. Die Leistung ist zwar leistungsstark, erfordert jedoch die Berechnung der sekundären Aufmerksamkeit Das Ergebnis ist deutlich langsamer, was bei echten Streaming-Anwendungen nicht ideal ist.
Bei der Untersuchung des Fensteraufmerksamkeitsversagens entdeckten Forscher ein interessantes Phänomen: Laut Abbildung 2 wird den anfänglichen Tags eine große Anzahl von Aufmerksamkeitswerten zugewiesen, unabhängig davon, ob diese Tags mit der Sprachmodellierungsaufgabe zusammenhängen
Forscher nennen diese Token „Aufmerksamkeitspools“: Obwohl ihnen die semantische Bedeutung fehlt, nehmen sie einen großen Teil der Aufmerksamkeitswerte ein. Die Forscher führen dieses Phänomen auf Softmax zurück (wobei die Summe der Aufmerksamkeitswerte aller Kontext-Tokens 1 sein muss). Selbst wenn die aktuelle Abfrage keine starke Übereinstimmung unter vielen vorherigen Token aufweist, muss das Modell diese unerwünschten Aufmerksamkeiten dennoch übertragen . Werte werden irgendwo zugewiesen, sodass sie in der Summe 1 ergeben. Der Grund, warum das anfängliche Token zu einem „Pool“ wird, ist intuitiv: Aufgrund der Eigenschaften der autoregressiven Sprachmodellierung ist das anfängliche Token für fast alle nachfolgenden Token sichtbar, was es einfacher macht, sie als Aufmerksamkeitspool zu trainieren.
Basierend auf den oben genannten Erkenntnissen schlug der Forscher StreamingLLM vor. Dies ist ein einfaches und effizientes Framework, das es mit begrenzten Aufmerksamkeitsfenstern trainierten Aufmerksamkeitsmodellen ermöglicht, unendlich lange Texte ohne Feinabstimmung zu verarbeiten.
StreamingLLM macht sich die Tatsache zunutze, dass Aufmerksamkeitspools hohe Aufmerksamkeitswerte haben. Tatsächlich können diese Aufmerksamkeitspools beibehalten werden Machen Sie die Verteilung der Aufmerksamkeitswerte nahe an eine Normalverteilung. Daher muss StreamingLLM nur den KV-Wert des Aufmerksamkeitspool-Tokens (nur 4 anfängliche Token reichen aus) und den KV-Wert des Schiebefensters beibehalten, um die Aufmerksamkeitsberechnung zu verankern und die Leistung des Modells zu stabilisieren.
Verwendung von StreamingLLM, einschließlich Llama-2-[7,13,70] B, MPT-[7,30] B, Falcon-[7,40] B und Pythia [2.9,6.9,12] B Das Modell kann 4 Millionen Token oder mehr zuverlässig simulieren.
Im Vergleich zur Neuberechnung des Schiebefensters ist StreamingLLM 22,2-mal schneller, ohne die Leistung zu beeinträchtigen vergleichbar mit der Oracle-Basislinie, die das Schiebefenster neu berechnet. Wenn gleichzeitig die Eingabelänge das Vortrainingsfenster überschreitet, schlägt die dichte Aufmerksamkeit fehl, und wenn die Eingabelänge die Cache-Größe überschreitet, bleibt die Fensteraufmerksamkeit hängen, was dazu führt, dass die anfänglichen Tags aussortiert werden
Abbildung 5 Weiter: Die Zuverlässigkeit von StreamingLLM wird demonstriert und es kann Text ungewöhnlicher Größe verarbeiten, darunter mehr als 4 Millionen Token, die verschiedene Modellfamilien und -größen abdecken. Zu diesen Modellen gehören Llama-2-[7,13,70] B, Falcon-[7,40] B, Pythia-[2.8,6.9,12] B und MPT-[7,30] B
Anschließend bestätigten die Forscher die Hypothese des „Aufmerksamkeitspools“ und bewiesen, dass das Sprachmodell vorab trainiert werden kann und während der Streaming-Bereitstellung nur ein Aufmerksamkeitspool-Token erfordert. Konkret schlagen sie vor, zu Beginn aller Trainingsbeispiele ein zusätzliches lernbares Token als ausgewiesenen Aufmerksamkeitspool hinzuzufügen. Indem die Forscher ein Sprachmodell mit 160 Millionen Parametern vorab von Grund auf trainierten, zeigten sie, dass unsere Methode die Leistung des Modells aufrechterhalten kann. Dies steht in scharfem Gegensatz zu aktuellen Sprachmodellen, die die Wiedereinführung mehrerer anfänglicher Token als Aufmerksamkeitspools erfordern, um das gleiche Leistungsniveau zu erreichen.
Abschließend verglichen die Forscher die Dekodierungslatenz und Speichernutzung von StreamingLLM mit dem neu berechneten Schiebefenster und testeten es mit den Modellen Llama-2-7B und Llama-2-13B auf einer einzelnen NVIDIA A6000-GPU. Den Ergebnissen in Abbildung 10 zufolge nimmt die Dekodierungsgeschwindigkeit von StreamingLLM mit zunehmender Cache-Größe linear zu, während die Dekodierungsverzögerung quadratisch zunimmt. Experimente haben gezeigt, dass StreamingLLM eine beeindruckende Geschwindigkeitssteigerung erzielt, wobei die Geschwindigkeit jedes Tokens um das bis zu 22,2-fache erhöht wird
Weitere Forschungsdetails finden Sie im Originalpapier.
Das obige ist der detaillierte Inhalt vonMit bis zu 4 Millionen Token-Kontexten und einer 22-mal schnelleren Inferenz erfreut sich StreamingLLM großer Beliebtheit und hat auf GitHub 2,5.000 Sterne erhalten.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Um eine Datentabelle mithilfe von PHPMYADMIN zu erstellen, sind die folgenden Schritte unerlässlich: Stellen Sie eine Verbindung zur Datenbank her und klicken Sie auf die neue Registerkarte. Nennen Sie die Tabelle und wählen Sie die Speichermotor (innoDB empfohlen). Fügen Sie Spaltendetails hinzu, indem Sie auf die Taste der Spalte hinzufügen, einschließlich Spaltenname, Datentyp, ob Nullwerte und andere Eigenschaften zuzulassen. Wählen Sie eine oder mehrere Spalten als Primärschlüssel aus. Klicken Sie auf die Schaltfläche Speichern, um Tabellen und Spalten zu erstellen.

Das Erstellen einer Oracle -Datenbank ist nicht einfach, Sie müssen den zugrunde liegenden Mechanismus verstehen. 1. Sie müssen die Konzepte von Datenbank und Oracle DBMS verstehen. 2. Beherrschen Sie die Kernkonzepte wie SID, CDB (Containerdatenbank), PDB (Pluggable -Datenbank); 3.. Verwenden Sie SQL*Plus, um CDB zu erstellen und dann PDB zu erstellen. Sie müssen Parameter wie Größe, Anzahl der Datendateien und Pfade angeben. 4. Erweiterte Anwendungen müssen den Zeichensatz, den Speicher und andere Parameter anpassen und die Leistungsstimmung durchführen. 5. Achten Sie auf Speicherplatz, Berechtigungen und Parametereinstellungen und überwachen und optimieren Sie die Datenbankleistung kontinuierlich. Nur indem Sie es geschickt beherrschen, müssen Sie die Erstellung und Verwaltung von Oracle -Datenbanken wirklich verstehen.

Um eine Oracle -Datenbank zu erstellen, besteht die gemeinsame Methode darin, das dbca -grafische Tool zu verwenden. Die Schritte sind wie folgt: 1. Verwenden Sie das DBCA -Tool, um den DBNAME festzulegen, um den Datenbanknamen anzugeben. 2. Setzen Sie Syspassword und SystemPassword auf starke Passwörter. 3.. Setzen Sie Charaktere und NationalCharacterset auf AL32UTF8; 4. Setzen Sie MemorySize und tablespacesize, um sie entsprechend den tatsächlichen Bedürfnissen anzupassen. 5. Geben Sie den Logfile -Pfad an. Erweiterte Methoden werden manuell mit SQL -Befehlen erstellt, sind jedoch komplexer und anfällig für Fehler. Achten Sie auf die Kennwortstärke, die Auswahl der Zeichensatz, die Größe und den Speicher von Tabellenräumen

Der Kern von Oracle SQL -Anweisungen ist ausgewählt, einfügen, aktualisiert und löschen sowie die flexible Anwendung verschiedener Klauseln. Es ist wichtig, den Ausführungsmechanismus hinter der Aussage wie die Indexoptimierung zu verstehen. Zu den erweiterten Verwendungen gehören Unterabfragen, Verbindungsabfragen, Analysefunktionen und PL/SQL. Häufige Fehler sind Syntaxfehler, Leistungsprobleme und Datenkonsistenzprobleme. Best Practices für Leistungsoptimierung umfassen die Verwendung geeigneter Indizes, die Vermeidung von Auswahl *, optimieren Sie, wo Klauseln und gebundene Variablen verwenden. Das Beherrschen von Oracle SQL erfordert Übung, einschließlich des Schreibens von Code, Debuggen, Denken und Verständnis der zugrunde liegenden Mechanismen.

Feldbetriebshandbuch in MySQL: Felder hinzufügen, ändern und löschen. Feld hinzufügen: Alter table table_name hinzufügen column_name data_type [nicht null] [Standard default_value] [Primärschlüssel] [auto_increment] Feld ändern: Alter table table_name Ändern Sie Column_Name Data_type [nicht null] [diffault default_value] [Primärschlüssel] [Primärschlüssel]

Die Integritätsbeschränkungen von Oracle -Datenbanken können die Datengenauigkeit sicherstellen, einschließlich: nicht Null: Nullwerte sind verboten; Einzigartig: Einzigartigkeit garantieren und einen einzelnen Nullwert ermöglichen; Primärschlüssel: Primärschlüsselbeschränkung, Stärkung der einzigartigen und verboten Nullwerte; Fremdschlüssel: Verwalten Sie die Beziehungen zwischen Tabellen, Fremdschlüssel beziehen sich auf Primärtabellen -Primärschlüssel. Überprüfen Sie: Spaltenwerte nach Bedingungen begrenzen.

Verschachtelte Anfragen sind eine Möglichkeit, eine andere Frage in eine Abfrage aufzunehmen. Sie werden hauptsächlich zum Abrufen von Daten verwendet, die komplexe Bedingungen erfüllen, mehrere Tabellen assoziieren und zusammenfassende Werte oder statistische Informationen berechnen. Beispiele hierfür sind zu findenen Mitarbeitern über den überdurchschnittlichen Löhnen, das Finden von Bestellungen für eine bestimmte Kategorie und die Berechnung des Gesamtbestellvolumens für jedes Produkt. Beim Schreiben verschachtelter Abfragen müssen Sie folgen: Unterabfragen schreiben, ihre Ergebnisse in äußere Abfragen schreiben (auf Alias oder als Klauseln bezogen) und optimieren Sie die Abfrageleistung (unter Verwendung von Indizes).

Tomcat -Protokolle sind der Schlüssel zur Diagnose von Speicherleckproblemen. Durch die Analyse von Tomcat -Protokollen können Sie Einblicke in das Verhalten des Speicherverbrauchs und des Müllsammlung (GC) erhalten und Speicherlecks effektiv lokalisieren und auflösen. Hier erfahren Sie, wie Sie Speicherlecks mit Tomcat -Protokollen beheben: 1. GC -Protokollanalyse zuerst aktivieren Sie eine detaillierte GC -Protokollierung. Fügen Sie den Tomcat-Startparametern die folgenden JVM-Optionen hinzu: -xx: printgCDetails-xx: printgCDatESTAMPS-XLOGGC: GC.Log Diese Parameter generieren ein detailliertes GC-Protokoll (GC.Log), einschließlich Informationen wie GC-Typ, Recycling-Objektgröße und Zeit. Analyse gc.log
