KI-Modelle und Plattformen
LongWriter: 10.000+ Wörter Generierung aus langen Kontexten LLMs
Aktuelle Large Language Models (LLMs) mit langem Kontext können Eingaben von bis zu 100.000 Token verarbeiten, aber sie haben Schwierigkeiten, Ausgaben von mehr als 2.000 Wörtern zu generieren. Kontrollierte Experimente zeigen, dass die effektive Generationslänge des Modells durch die Beispiele, die während der überwachten Feinabstimmung (SFT) gesehen werden, begrenzt ist. Mit anderen Worten, diese Ausgabelimitierung resultiert aus dem Mangel an langen Ausgaben in bestehenden SFT-Datensätzen.
Neue Fortschritte in LLMs mit langem Kontext haben zur Entwicklung von Modellen mit erheblich erweiterten Speicherkapazitäten geführt, die in der Lage sind, Historien von über 100.000 Token zu verarbeiten. Trotz ihrer Fähigkeit, umfangreiche Eingaben zu verarbeiten, haben aktuelle LLMs mit langem Kontext Schwierigkeiten, Ausgaben von vergleichbarer Länge zu generieren.
Um diese Limitierung zu untersuchen, untersucht LongWriter die maximale Ausgabelänge von State-of-the-Art-Modellen mit langem Kontext mit mehreren Anfragen, die unterschiedliche Antwortlängen erfordern, wie z.B. “Schreiben Sie einen 10.000-Wörter-Artikel über die Geschichte des Römischen Reiches”. Die Ergebnisse zeigen, dass alle Modelle konsistent versagen, Ausgaben von mehr als 2.000 Wörtern zu produzieren. Darüber hinaus zeigt die Analyse von Benutzerinteraktionsprotokollen, dass über 1% der Benutzeranfragen explizit Ausgaben über diese Grenze hinaus anfordern, was einen dringenden Bedarf in der aktuellen Forschung zur Lösung dieses Problems unterstreicht.
Um dieses Problem zu lösen, stellt LongWriter AgentWrite vor, eine agentenbasierte Pipeline, die ultra-lange Generierungsaufgaben in Subaufgaben zerlegt, um Off-the-Shelf-LLMs zu ermöglichen, kohärente Ausgaben von bis zu 20.000 Wörtern zu generieren. Mit AgentWrite konstruiert LongWriter LongWriter-6k, einen Datensatz mit 6.000 SFT-Datenbeispielen mit Ausgaben von 2.000 bis 32.000 Wörtern. Durch die Integration dieses Datensatzes in die Modelltraining kann LongWriter die Ausgabelänge bestehender Modelle auf über 10.000 Wörter skalieren, während die Ausgabqualität erhalten bleibt.
LongWriter entwickelt auch LongBench-Write, eine umfassende Benchmark für die Bewertung von ultra-langer Generierung. Das 9B-Parameter-Modell, das durch DPO weiter verbessert wird, erreicht eine Spitzenleistung auf dieser Benchmark und übertrifft sogar größere proprietäre Modelle.
In diesem Artikel werden wir das LongWriter-Framework diskutieren, seine Architektur untersuchen und seine Leistung im Vergleich zu State-of-the-Art-Modellen mit langem Kontext bewerten. Lassen Sie uns beginnen.
LongWriter: 10.000+ Wörter Generierung aus langen Kontexten LLMs
Neue Fortschritte in LLMs mit langem Kontext haben zur Entwicklung von Modellen mit erheblich erweiterten Speicherkapazitäten geführt, die in der Lage sind, Historien von über 100.000 Token zu verarbeiten. Trotz ihrer Fähigkeit, umfangreiche Eingaben zu verarbeiten, haben aktuelle LLMs mit langem Kontext Schwierigkeiten, Ausgaben von vergleichbarer Länge zu generieren. Um diese Limitierung zu untersuchen, untersucht LongWriter die maximale Ausgabelänge von State-of-the-Art-Modellen mit langem Kontext mit mehreren Anfragen, die unterschiedliche Antwortlängen erfordern, wie z.B. “Schreiben Sie einen 10.000-Wörter-Artikel über die Geschichte des Römischen Reiches”. Basierend auf den Ergebnissen beobachtet LongWriter, dass alle Modelle konsistent versagen, Ausgaben von mehr als 2.000 Wörtern zu produzieren. Darüber hinaus zeigt die Analyse von Benutzerinteraktionsprotokollen, dass über 1% der Benutzeranfragen explizit Ausgaben über diese Grenze hinaus anfordern, was einen dringenden Bedarf in der aktuellen Forschung zur Lösung dieses Problems unterstreicht.

LongWriters Studie zeigt, dass die Einschränkung der Ausgabelänge hauptsächlich auf die Eigenschaften der SFT-Datensätze zurückzuführen ist. Insbesondere zeigt LongWriter, dass die maximale Generationslänge eines Modells effektiv durch die Obergrenze der Ausgabenlängen in seinem SFT-Datensatz begrenzt ist, trotz seiner Exposition gegenüber viel längeren Sequenzen während der Vorbereitungsphase. Diese Erkenntnis erklärt die ubiquitäre 2.000-Wörter-Generierungsgrenze bei aktuellen Modellen, da bestehende SFT-Datensätze selten Beispiele mit Längen über dieser Grenze enthalten. Darüber hinaus erben viele Datensätze die Ausgabenlängenbegrenzung von ihren Quellmodellen.
Um diese Limitierung zu lösen, stellt LongWriter AgentWrite vor, eine neuartige agentenbasierte Pipeline, die es ermöglicht, Off-the-Shelf-LLMs zu verwenden, um erweiterte, kohärente Ausgaben zu generieren. AgentWrite arbeitet in zwei Stufen: Zuerst zerlegt es lange Schreibaufgaben in mehrere Subaufgaben, wobei jede Subaufgabe das Modell auffordert, nur einen Absatz zu schreiben. Das Modell führt dann diese Subaufgaben sequentiell aus, und LongWriter verbindet die Subaufgaben-Ausgaben, um die endgültige lange Ausgabe zu erhalten. Ein solcher Ansatz, komplexe Aufgaben in mehrere Subaufgaben zu zerlegen, wurde bereits in verschiedenen Bereichen wie Problemlösung, Softwareentwicklung und Modellbewertung angewendet. LongWriters Arbeit ist die erste, die die Integration von Planung ermöglicht, um Modelle zu ermöglichen, komplexe lange Schreibaufgaben zu lösen. Jeder Schritt von AgentWrite wird im Detail vorgestellt.

Schritt I: Plan
Inspirierte durch den Denkprozess von menschlichen Schreibern, die typischerweise mit der Erstellung eines Gesamtplans für lange Schreibaufgaben beginnen, nutzt LongWriter die Planungsfähigkeiten von LLMs, um eine Schreibübersicht für eine Schreibanweisung zu erstellen. Diese Übersicht enthält die Hauptinhalte und Wortanzahl-Anforderungen für jeden Absatz. Der Prompt, den LongWriter verwendet, lautet:
“Ich brauche Ihre Hilfe, um die folgende lange Schreibanweisung in mehrere Subaufgaben zu zerlegen. Jede Subaufgabe soll die Schreibung eines Absatzes im Essay leiten und sollte die Hauptpunkte und Wortanzahl-Anforderungen für diesen Absatz enthalten. Die Schreibanweisung lautet: {Benutzeranweisung}. Bitte zerlegen Sie sie in folgendem Format, wobei jede Subaufgabe eine Zeile einnimmt:
Absatz 1 – Hauptpunkt: [Beschreiben Sie den Hauptpunkt des Absatzes im Detail] – Wortanzahl: [Wortanzahl-Anforderung, z.B. 400 Wörter]
Absatz 2 – Hauptpunkt: [Beschreiben Sie den Hauptpunkt des Absatzes im Detail] – Wortanzahl: [Wortanzahl-Anforderung, z.B. 1000 Wörter].Stellen Sie sicher, dass jede Subaufgabe klar und spezifisch ist und dass alle Subaufgaben den gesamten Inhalt der Schreibanweisung abdecken. Zerlegen Sie die Subaufgaben nicht zu fein; jeder Absatz sollte mindestens 200 Wörter und höchstens 1000 Wörter enthalten. Geben Sie keine anderen Inhalte aus.”
Schritt II: Schreiben
Nachdem LongWriter den Schreibplan aus Schritt I erhalten hat, ruft es das LLM sequentiell auf, um jede Subaufgabe zu vervollständigen und den Schreibinhalt schrittweise zu generieren. Um die Kohärenz der Ausgabe zu gewährleisten, gibt LongWriter, wenn es das Modell auffordert, den n-ten Absatz zu generieren, die zuvor generierten n-1 Absätze als Eingabe, damit das Modell den nächsten Absatz basierend auf der bestehenden Schreibgeschichte fortführen kann. Obwohl diese sequentielle Methode es verhindert, dass das Modell gleichzeitig mehrere Subaufgaben ausführt, und die Eingabelänge länger wird, zeigt LongWriter in der Validierung, dass die Gesamtkohärenz und -qualität des Schreibens auf diese Weise erheblich besser sind als die Ausgabe, die parallel generiert wird.
Der Prompt, den LongWriter verwendet, lautet:
“Sie sind ein hervorragender Schreibassistent. Ich werde Ihnen eine ursprüngliche Schreibanweisung und meine geplanten Schreibschritte geben. Ich werde Ihnen auch den Text geben, den ich bereits geschrieben habe. Bitte helfen Sie mir, den nächsten Absatz basierend auf der Schreibanweisung, den Schreibschritten und dem bereits geschriebenen Text zu schreiben.
Schreibanweisung:
{Benutzeranweisung}
Schreibschritte:
{Der Schreibplan, der in Schritt I generiert wurde}
Bereits geschriebener Text:
{Die zuvor generierten (n-1) Absätze}
Bitte integrieren Sie die ursprüngliche Schreibanweisung, die Schreibschritte und den bereits geschriebenen Text und fahren Sie dann mit der Schreibung des {Der Plan für den n-ten Absatz, d.h. die n-te Zeile im Schreibplan} fort.”
Validierung
LongWriter testet die Generationslänge und -qualität der vorgeschlagenen AgentWrite-Methode auf zwei Datensätzen für lange Schreibaufgaben. Der erste, LongWrite-Ruler, wird verwendet, um genau zu messen, wie lange die Ausgabe sein kann. Der zweite, LongBench-Write, wird hauptsächlich verwendet, um zu bewerten, wie gut die modellgenerierte Inhalte mit den Benutzeranweisungen in Bezug auf Länge und Schreibqualität übereinstimmen.
LongBench-Write: Um die Modellleistung auf einer vielfältigeren Menge von Schreibaufträgen zu bewerten, sammelt LongWriter 120 verschiedene Benutzerschreibanweisungen, von denen 60 auf Chinesisch und 60 auf Englisch sind. Um besser zu bewerten, ob die Modellausgabe die Wortanzahl-Anforderungen erfüllt, stellt LongWriter sicher, dass alle diese Anweisungen explizite Wortanzahl-Anforderungen enthalten. Diese Anweisungen werden in vier Untermengen unterteilt, basierend auf den Wortanzahl-Anforderungen: 0-500 Wörter, 500-2000 Wörter, 2000-4000 Wörter und über 4000 Wörter. Darüber hinaus werden die Anweisungen in sieben Kategorien unterteilt, basierend auf der Ausgabeart: Literatur und kreatives Schreiben, akademische und Monografien, populäre Wissenschaft, funktionales Schreiben, Nachrichtenberichte, Community-Forum und Bildung und Training.
Während der Bewertung verwendet LongWriter zwei Metriken: eine für die Ausgabelänge und eine für die Ausgabqualität. Die Modellausgabe wird basierend auf der Nähe zu den Anforderungen in den Anweisungen bewertet. Für die Ausgabqualität verwendet LongWriter den LLM-als-Richter-Ansatz, indem es das State-of-the-Art-GPT-4o-Modell auswählt, um die Ausgabe über sechs Dimensionen zu bewerten: Relevanz, Genauigkeit, Kohärenz, Klarheit, Breite und Tiefe sowie Leseerfahrung. Die endgültige Bewertung wird durch Mittelung der Längen- und Qualitätsbewertung berechnet.
Validierungsergebnisse: LongWriter präsentiert die Ausgabelängenmessung auf LongWrite-Ruler und findet, dass AgentWrite erfolgreich die Ausgabelänge von GPT-4o von maximal 2.000 Wörtern auf etwa 20.000 Wörter erweitert. LongWriter bewertet auch die Ausgabqualität und die Einhaltung der erforderlichen Ausgabelänge auf LongBench-Write und zeigt, dass GPT-4o erfolgreich Aufgaben mit Ausgaben unter 2.000 Wörtern in der Länge abschließen kann, wenn die Leistung von AgentWrite bewertet wird.

Überwachte Feinabstimmung
LongWriter führt ein Training auf zwei der neuesten Open-Source-Modelle durch, nämlich GLM-4-9B und Llama-3.1-8B. Beide sind Basismodelle und unterstützen ein Kontextfenster von bis zu 128.000 Token, was sie natürlich für die Ausbildung auf lange Ausgaben geeignet macht. Um die Ausbildung effizienter zu machen, verwendet LongWriter die Pack-Training-Methode mit Loss-Gewichtung. Die Ausbildung auf den beiden Modellen resultiert in zwei Modellen: LongWriter-9B (abgekürzt für GLM-4-9B-LongWriter) und LongWriter-8B (abgekürzt für Llama-3.1-8B-LongWriter).
Gleichzeitig bemerkt LongWriter, dass, wenn der Verlust durch Sequenz gemittelt wird, d.h. der Mittelwert jedes Sequenzverlusts innerhalb eines Batches genommen wird, der Beitrag jedes Ziel-Tokens zum Verlust in langen Ausgaben erheblich geringer ist als bei kürzeren Ausgaben. In LongWriters Experimenten wird auch festgestellt, dass dies zu suboptimaler Modellleistung bei Aufgaben mit langen Ausgaben führt. Daher wählt LongWriter eine Loss-Gewichtungsstrategie, die den Verlust durch Token mittelt, wobei der Verlust als Mittelwert der Verluste über alle Ziel-Tokens innerhalb dieses Batches berechnet wird.
Alle Modelle werden auf einem Knoten mit 8xH800 80G GPUs und DeepSpeed+ZeRO3+CPU-Offloading trainiert. LongWriter verwendet eine Batch-Größe von 8, eine Lernrate von 1e-5 und eine Pack-Länge von 32.000. Die Modelle werden für 4 Epochen trainiert, was etwa 2.500-3.000 Schritte dauert.
Ausrichtung (DPO)
Um die Ausgabqualität des Modells weiter zu verbessern und seine Fähigkeit zu verbessern, die Längen-Anforderungen in Anweisungen zu befolgen, führt LongWriter eine direkte Präferenzoptimierung (DPO) auf dem überwachten feinabgestimmten LongWriter-9B-Modell durch. Die DPO-Daten stammen aus GLM-4s Chat-DPO-Daten (ca. 50.000 Einträge). Darüber hinaus konstruiert LongWriter 4.000 Paare von Daten, die speziell auf lange Schreibaufträge abzielen. Für jeden Schreibauftrag sampelt LongWriter 4 Ausgaben von LongWriter-9B und bewertet diese Ausgaben nach einer bestimmten Methode. Eine Längen-Anforderungsbewertung wird ebenfalls kombiniert. Die höchstbewertete Ausgabe wird dann als positive Probe ausgewählt, und eine der verbleibenden drei Ausgaben wird zufällig als negative Probe ausgewählt.
Das resultierende Modell, LongWriter-9B-DPO, wird für 250 Schritte auf den obigen Datenmischungen trainiert. LongWriter folgt einem bestimmten Rezept für DPO-Training.
LongWriter: Experimente und Ergebnisse
LongWriter bewertet 4 proprietäre Modelle und 5 Open-Source-Modelle auf LongBench-Write, zusammen mit den trainierten LongWriter-Modellen. Soweit LongWriter weiß, ist Suri-IORPO das einzige vorherige Modell, das auch für die lange Textgenerierung ausgerichtet ist. Es wird auf Basis von Mistral-7B-Instruct-v0.2 mit LoRA trainiert. Konsistent mit der Bewertungsaufstellung auf LongWrite-Ruler stellt LongWriter die Ausgabetemperatur auf 0,5 und konfiguriert die Modell-Generierungsmax-Tokens-Parameter auf den maximal zulässigen Wert durch den API-Aufruf. Für Open-Source-Modelle wird er auf 32.768 gesetzt.

Die meisten vorherigen Modelle können die Längen-Anforderung von über 2.000 Wörtern nicht erfüllen, während LongWriter-Modelle konsistent längere und reichere Antworten auf solche Anfragen liefern.
Beobachtet man die Ausgabelängen-Bewertung SlS_lSl für Anfragen in jedem erforderlichen Längenbereich, findet LongWriter, dass vorherige Modelle im Allgemeinen schlecht abschneiden (Bewertung unter 70) bei Anfragen im Bereich [2.000, 4.000) und nur Claude 3.5 Sonett eine anständige Bewertung erreicht. Für Anfragen im Bereich [4.000, 20.000) sind fast alle vorherigen Modelle völlig unfähig, die erforderliche Ausgabelänge zu erreichen, und erzielen sogar eine Bewertung von 0 (was bedeutet, dass alle Ausgabenlängen weniger als ein Drittel der erforderlichen Länge betragen). Durch die Hinzufügung von Trainingsdaten aus LongWriter-6k kann das trainierte Modell von LongWriter effektiv die erforderliche Ausgabelänge erreichen, während die Qualität erhalten bleibt, wie die Bewertungen in den Bereichen [2.000, 20.000) und die Streudiagramme zeigen.

DPO verbessert effektiv sowohl die Ausgabqualität des Modells als auch seine Fähigkeit, die Längen-Anforderungen in der langen Generierung zu befolgen.
Durch den Vergleich der Bewertungen von LongWriter-9B und LongWriter-9B-DPO findet man, dass DPO sowohl die Bewertung Sl (+4%) als auch die Bewertung Sq (+3%) signifikant verbessert, und die Verbesserung ist konsistent über alle Bereiche. Dies zeigt, dass DPO in der langen Generierungssituation weiterhin hilft, die Ausgabqualität des Modells zu verbessern und kann die Ausgabelänge des Modells besser mit der angeforderten Länge ausrichten. Diese Schlussfolgerung wurde kürzlich auch in Yuan et al. (2024) bei kürzeren Generierungen beobachtet. Wir haben auch manuell annotierte Paar-Siege und -Niederlagen für GPT-4o und drei LongWriter-Modelle auf ihren Ausgaben in LongBench-Write und visualisieren die Ergebnisse in Abbildung 9. Wir können sehen, dass Menschen dem DPO-trainierten Modell in 58% der Fälle den Vorzug geben. Darüber hinaus erreicht LongWriter-9B-DPO trotz weniger Parameter ein Unentschieden mit GPT-4o.

Die Ausgabelängenbegrenzung der LongWriter-Modelle wird auf 10.000 bis 20.000 Wörter erweitert, während mehr Daten mit langen Ausgaben erforderlich sind, um noch längere Ausgaben zu unterstützen.
Nach dem LongWrite-Ruler-Test präsentiert LongWriter auch die LongWrite-Ruler-Testergebnisse der LongWriter-Modelle. Die Ergebnisse deuten darauf hin, dass ihre maximalen Generationslängen zwischen 10.000 und 20.000 Wörtern liegen. Der Mangel an SFT-Daten mit längeren Ausgaben ist wahrscheinlich der Hauptgrund, der das Modell daran hindert, noch längere Ausgaben zu erreichen.
Letzte Gedanken
In dieser Arbeit haben wir über LongWriter gesprochen, eine agentenbasierte Pipeline, die ultra-lange Generierungsaufgaben in Subaufgaben zerlegt, die 2.000-Wörter-Generierungsgrenze für aktuelle LLMs identifiziert und vorschlägt, ihre Ausgabenfenstergröße durch die Hinzufügung von langen Ausgaben während der Ausrichtung zu erhöhen. Um automatisch lange Ausgaben-Daten zu konstruieren, entwickelt LongWriter AgentWrite, eine agentenbasierte Pipeline, die Off-the-Shelf-LLMs verwendet, um erweiterte, kohärente Ausgaben zu erstellen. LongWriter skaliert erfolgreich die Ausgabenfenstergröße bestehender Modelle auf über 10.000 Wörter, während die Ausgabqualität erhalten bleibt. Umfassende Ablationsstudien an den Trainingsdaten zeigen die Effektivität dieses Ansatzes. Für zukünftige Arbeiten schlägt LongWriter die folgenden drei Richtungen vor: 1. Erweitern Sie das AgentWrite-Framework, um Daten mit längeren Ausgaben zu konstruieren und die Ausgabenfenstergröße von LLMs weiter zu erweitern. 2. Verfeinern Sie das AgentWrite-Framework, um höherwertige lange Ausgaben-Daten zu erreichen. 3. Längere Modellausgaben bringen Herausforderungen für die Inferenz-Effizienz mit sich. Es wurden mehrere Methoden vorgeschlagen, um die Inferenz-Effizienz zu verbessern. Es lohnt sich, zu untersuchen, wie diese Methoden die Modell-Effizienz verbessern können, ohne die Generierungsqualität zu beeinträchtigen.












