Die Bedeutung der Erweiterung des Kontextumfangs großer Sprachmodelle (Large Language Models, LLMs) kann nicht hoch genug eingeschätzt werden. In zahlreichen Anwendungen, die von der komplexen Dokumentenanalyse bis hin zur Erzeugung kohärenter Langtexte reichen, ist die Fähigkeit zur effektiven Nutzung eines erweiterten Kontexts von entscheidender Bedeutung. Beispielsweise ermöglicht ein umfangreicherer Kontext bei Aufgaben wie der Dokumentenzusammenfassung und der Beantwortung von Fragen zu langen Artikeln ein umfassenderes Verständnis und genauere Antworten.
Die Nutzung langer Kontexte in LLMs stellt jedoch mehrere erhebliche Herausforderungen dar:
Um die erheblichen Kosten der direkten Skalierung der Fensterlänge durch Feintuning auf längeren Eingaben zu umgehen, haben viele Ansätze versucht, den Aufmerksamkeitsmechanismus zu modifizieren oder Tokens zu komprimieren, um theoretisch eine unendliche Länge zu erreichen. Während diese Methoden eine geringere Perplexität über längere Texte hinweg aufrechterhalten können, beeinträchtigt der Informationsverlust aus früheren Teilen des Textes die Fähigkeit des Modells, präzise Verstehensaufgaben wie die Informationsverifikation oder die Beantwortung von Fragen durchzuführen.
FocusLLM ist ein neues Framework, das entwickelt wurde, um die Kontextlänge eines beliebigen decoder-only LLMs zu erweitern und es dem Modell zu ermöglichen, sich auf relevante Informationen aus sehr langen Sequenzen zu konzentrieren. FocusLLM verarbeitet lange Texteingaben, indem es sie in Chunks unterteilt, basierend auf der ursprünglichen Kontextlänge des Modells, um das Problem der Aufmerksamkeitsablenkung zu lindern. Dann fügt es den lokalen Kontext zu jedem Chunk als Prompt hinzu, um wesentliche Informationen aus jedem Chunk basierend auf einem neuartigen parallelen Dekodierungsmechanismus zu extrahieren und integriert schließlich die extrahierten Informationen in den lokalen Kontext.
FocusLLM zeichnet sich durch mehrere bemerkenswerte Merkmale aus:
Das FocusLLM-Framework wurde auf das LLaMA-2-7B Modell angewendet, das eine Standardkontextlänge von 4K hat. Um die Effektivität von FocusLLM zu validieren, wurde es über eine Vielzahl von Aufgaben hinweg evaluiert. Zunächst wurde die Sprachmodellierungsfähigkeit von FocusLLM bewertet. Trainiert mit einer Eingabelänge von nur 8K, hält FocusLLM eine niedrige Perplexität bei Dokumenten mit 128K Tokens und sogar längeren Sequenzen aufrecht.
Um die Anwendbarkeit von FocusLLM in realen Szenarien umfassend zu bewerten, wurden zwei weit verbreitete Benchmarks verwendet: Longbench und ∞-Bench. Longbench umfasst eine Vielzahl von Aufgaben, während ∞-Bench Modelle erfordert, die Inferenz auf extrem langen Sequenzen (>100K Tokens) durchführen können. Die experimentellen Ergebnisse zeigen, dass FocusLLM auf beiden Benchmarks eine überlegene Leistung erzielt und alle Baselines übertrifft, einschließlich Längsextrapolationsmodellen, kontinuierlichen Trainingsmodellen und ähnlichen Modellen, die für extrem lange Sequenzen entwickelt wurden.
FocusLLM ist ein trainingseffizientes Framework, das in der Lage ist, bei minimalen Kosten ein effektives Verständnis und eine effektive Argumentation über lange Sequenzen hinweg zu erzielen. Es wird gehofft, dass FocusLLM zur Forschung im Zusammenhang mit der Entwicklung von leicht implementierbaren Langkontextfähigkeiten beitragen kann.
Wie in Abbildung 2 dargestellt, hat die Standardmodellarchitektur eine quadratische Komplexität und eine entsprechende begrenzte Kontextlänge. Diese Einschränkung beschränkt die Anwendung des Modells auf längere Texte, und FocusLLM wurde entwickelt, um diese Nachteile zu beheben.
Der Gesamtaufbau von FocusLLM ist einfach und intuitiv. Jeder Decoder in Abbildung 3 teilt dasselbe Modell (z. B. LLaMA-2). Darüber hinaus erweitern wir für den Decoder, der jeden Chunk verarbeitet, den ursprünglichen Decoder um eine kleine Anzahl zusätzlicher Parameter.
Angenommen, eine lange Sequenz mit S Tokens {x1, …, xS} wird in Erinnerungstokens {x1, …, xm} und lokale Tokens {xm+1, …, xS} segmentiert, wobei die Länge der lokalen Tokens die Standardkontextlänge des Modells, bezeichnet als L, nicht überschreitet. Gleichzeitig teilen wir die Erinnerung in Chunks, die als C1, C2, …, Ck bezeichnet werden, wobei die Größe jedes Chunks ebenfalls L nicht überschreitet. Diese Chunks können verschiedene Dokumente darstellen oder ein einziges langes Dokument bilden.
Beim Verarbeiten der Erinnerung, um dem Modell die Fähigkeit zur Erzeugung von Kandidatentokens zu verleihen, führen wir eine kleine Anzahl neuer Parameter ein, was zum modifizierten Modell Fdec′ führt. Das Kandidatentoken wird als die trainierbaren versteckten Zustände bezeichnet, die dem letzten lokalen Token x entsprechen.
FocusLLM stellt eine bedeutende Innovation in der Skalierung von Kontexten für große Sprachmodelle dar. Mit seiner Fähigkeit, die Kontextlänge effizient zu erweitern und gleichzeitig die Trainingskosten zu minimieren, hat FocusLLM das Potenzial, die Forschung und Anwendungen im Bereich der natürlichen Sprachverarbeitung erheblich voranzutreiben.