AI-modeller og platforme
LongWriter: Frigivelse af 10.000+ ord generation fra lange kontekst LLM’er
Nuværende lange kontekst store sprogmodeller (LLM’er) kan behandle input op til 100.000 tokens, men de kæmper med at generere output, der overstiger en beskeden længde på 2.000 ord. Kontrollerede eksperimenter afslører, at modellens effektive generationslængde er indbygget begrænset af eksemplerne set under overvåget finjustering (SFT). Med andre ord, denne outputbegrænsning stammer fra manglen på lange outputeksempler i eksisterende SFT-datasæt.
Seneste fremskridt i lange kontekst LLM’er har ført til udviklingen af modeller med betydeligt udvidede hukommelseskapaciteter, der kan behandle historik, der overstiger 100.000 tokens. Men på trods af deres evne til at håndtere omfattende input, kæmper nuværende lange kontekst LLM’er med at generere lige så lange output.
For at udforske denne begrænsning, undersøger LongWriter den maksimale outputlængde af state-of-the-art lange kontekstmodeller med multiple forespørgsler, der kræver svar af varierende længder, såsom “Skriv en 10.000-ords artikel om historien om det romerske imperium.” Resultaterne viser, at alle modeller konsekvent fejler i at producere output, der overstiger 2.000 ord i længde. Imens viser analyse af brugerinteraktionslogge, at over 1% af brugerforespørgsler eksplicit kræver output, der overstiger denne begrænsning, hvilket fremhæver et presserende behov i nuværende forskning for at overvinde denne begrænsning.
For at løse dette problem, introducerer LongWriter AgentWrite, en agentbaseret pipeline, der dekomponerer ultra-lange generationsopgaver i underopgaver, der muliggør off-the-shelf LLM’er til at generere koherente output, der overstiger 20.000 ord. Ved at udnytte AgentWrite, konstruerer LongWriter LongWriter-6k, en datasæt, der indeholder 6.000 SFT-dataeksempler med outputlængder, der varierer fra 2k til 32k ord. Ved at inkorporere denne datasæt i modellens træning, lykkes det LongWriter at skala outputlængden af eksisterende modeller op til over 10.000 ord, samtidig med at outputkvaliteten opretholdes.
LongWriter udvikler også LongBench-Write, en omfattende benchmark for at evaluere ultra-lange generationskapaciteter. Den 9B parametermodel, yderligere forbedret gennem DPO, opnår state-of-the-art-præstation på denne benchmark, overgående endda større proprietære modeller.
I denne artikel, vil vi diskutere LongWriter-rammen, udforske dens arkitektur og sammenligne dens præstation med state-of-the-art lange kontekst store sprogmodeller. Lad os komme i gang.
LongWriter: 10.000+ ord generation ramme
Seneste fremskridt i lange kontekst store sprogmodeller (LLM’er) har ført til udviklingen af modeller med betydeligt udvidede hukommelseskapaciteter, der kan behandle historik, der overstiger 100.000 tokens. Trods denne evne til at håndtere omfattende input, kæmper nuværende lange kontekst LLM’er med at generere output af sammenlignelig længde. For at undersøge denne begrænsning, undersøger LongWriter den maksimale outputlængde af state-of-the-art lange kontekstmodeller gennem multiple forespørgsler, der kræver forskellige svarlængder, såsom “Skriv en 10.000-ords artikel om historien om det romerske imperium.” Baseret på resultaterne, observerer LongWriter, at alle modeller konsekvent fejler i at generere output, der overstiger 2.000 ord i længde. Yderligere viser analyse af brugerinteraktionslogge, at over 1% af brugerforespørgsler eksplicit kræver output, der overstiger denne begrænsning, hvilket fremhæver et presserende behov i nuværende forskning for at løse dette problem.

LongWriters studie afslører en nøgleinsigt: begrænsningen på outputlængde er primært rod i karakteristikkerne af de overvågede finjusteringsdata (SFT). Specifikt finder LongWriter, at en modells maksimale generationslængde er effektivt begrænset af den øvre grænse for outputlængder, der er til stede i dens SFT-datasæt, på trods af dens eksponering for langere sekvenser under fortræning. Denne opdagelse forklarer den almindelige 2.000-ord generationsbegrænsning på tværs af nuværende modeller, da eksisterende SFT-datasæt sjældent indeholder eksempler, der overstiger denne længde. Yderligere arver mange datasæt denne outputlængdebegrænsning fra deres kilde modeller.
For at løse denne begrænsning, introducerer LongWriter AgentWrite, en ny agentbaseret pipeline, der er designet til at udnytte off-the-shelf LLM’er til automatisk at konstruere forlængede, koherente output. AgentWrite opererer i to faser: Først bryder den ned lange skriveopgaver i multiple underopgaver, hvor hver underopgave kræver, at modellen kun skriver en enkelt afsnit. Modellen udfører herefter disse underopgaver sekventielt, og LongWriter samler underopgaveoutput for at opnå den endelige lange output. En sådan tilgang til at bryde ned en kompleks opgave i multiple underopgaver ved hjælp af LLM-agenter er allerede blevet anvendt i forskellige felter, såsom problemløsning, softwareudvikling og modellering. LongWriters arbejde er det første til at udforske integration af planlægning for at muliggøre modeller til at fuldføre komplekse lange skriveopgaver. Hver fase af AgentWrite præsenteres i detalje nedenfor.

Trin I: Plan
Inspiceret af tankeprocessen hos menneskelige forfattere, der typisk starter med at lave en samlet plan for lange skriveopgaver, udnytter LongWriter planlægningskapaciteterne hos LLM’er til at producere en skriveplan, der omfatter hovedindhold og ordkrav for hvert afsnit. Denne plan omfatter hovedindhold og ordkrav for hvert afsnit. Prompten, der anvendes af LongWriter, er følgende:
“Jeg har brug for din hjælp til at bryde ned følgende lange skriveopgave i multiple underopgaver. Hver underopgave skal vejlede skrivningen af et enkelt afsnit i artiklen og skal omfatte hovedpunkter og ordkrav for dette afsnit. Skriveopgaven er følgende: {Brugerforespørgsel}. Venligst bryd den ned i følgende format, med hver underopgave på en linje:
Afsnit 1 – Hovedpunkt: [Beskriv hovedpunkterne for afsnittet i detaljer] – Ordantal: [Ordantalkrav, f.eks. 400 ord]
Afsnit 2 – Hovedpunkt: [Beskriv hovedpunkterne for afsnittet i detaljer] – Ordantal: [Ordantalkrav, f.eks. 1000 ord].Sørg for, at hver underopgave er klar og specifik, og at alle underopgaver dækker hele indholdet af skriveopgaven. Del ikke underopgaverne for fint; hvert afsnits længde skal være på mindst 200 ord og højst 1000 ord. Udgiv ikke noget andet indhold.”
Trin II: Skriv
Efter at have erhvervet skriveplanen fra Trin I, kalder LongWriter LLM sekventielt for at fuldføre hver underopgave, genererende skriveindhold sektion for sektion. For at sikre outputkohærens, når LongWriter kalder modellen til at generere den n-te sektion, indtastes de tidligere genererede n-1 sektioner også, hvilket giver modellen mulighed for at fortsætte skrivningen af den næste sektion baseret på eksisterende skrivningshistorik. Selvom denne sekventielle måde forhindrer samtidige kald til modellen for at fuldføre multiple underopgaver, og indlængden bliver længere, viser LongWriter i validering, at den samlede kohærens og kvalitet af skrivningen, der opnås på denne måde, er langt overlegen for output genereret i parallel.
Prompten, der anvendes af LongWriter, er:
“Du er en fremragende skriveassistent. Jeg vil give dig en original skriveopgave og min planlagte skriveplan. Jeg vil også give dig den tekst, jeg allerede har skrevet. Venligst hjælp mig med at fortsætte skrivningen af det næste afsnit baseret på skriveopgaven, skriveplanen og den allerede skrevne tekst.
Skriveopgave:
{Brugerforespørgsel}
Skriveplan:
{Skriveplanen genereret i Trin I}
Allerede skrevet tekst:
{Tidligere genererede (n-1) afsnit}
Integrer den originale skriveopgave, skriveplanen og den allerede skrevne tekst, og fortsæt herefter med at skrive {Planen for det n-te afsnit, dvs. den n-te linje i skriveplanen}.”
Validering
LongWriter tester generationslængden og kvaliteten af den foreslåede AgentWrite-metode på to lange skrive datasets. Den første, LongWrite-Ruler, anvendes til at måle præcis, hvor lang en output den metode kan give. Den anden, LongBench-Write, anvendes primært til at evaluere, hvor godt modellens genererede indhold svarer til brugerforespørgsler i forhold til længde og skrivekvalitet.
LongBench-Write: For at evaluere modellens præstation på en mere diversificeret række af lange skriveforespørgsler, samler LongWriter 120 varierede brugerforespørgsler, med 60 på dansk og 60 på engelsk. For bedre at vurdere, om modellens outputlængde opfylder brugerkrav, sikrer LongWriter, at alle disse forespørgsler indeholder eksplicitte ordantalkrav. Disse forespørgsler er inddelt i fire undergrupper baseret på ordantalkrav: 0-500 ord, 500-2.000 ord, 2.000-4.000 ord og over 4.000 ord. Yderligere er forespørgslerne kategoriseret i syv typer baseret på outputtypen: Litteratur og kreativ skrivning, Akademisk og monografisk, Populærvidenskab, Funktionskrivning, Nyhedsrapport, Fællesskabsforum og Uddannelse og træning.
Under evalueringen anvender LongWriter to metrikker: en til at score outputlængden og en til at score outputkvaliteten. Modellens outputlængde scores baseret på, hvor tæt den er på kravene specificeret i forespørgslerne. For outputkvalitet anvender LongWriter LLM-as-a-judge-tilgangen, hvor den state-of-the-art GPT-4o-model vælges til at score outputtet på seks dimensioner: Relevans, Præcision, Kohærens, Klarethed, Dybde og Læseoplevelse. Den endelige score beregnes ved at gennemsnitte længdescoren og kvalitetsscoren.
Valideringsresultater: LongWriter præsenterer outputlængdemålingen på LongWrite-Ruler og finder, at AgentWrite succesfuldt forlænger outputlængden af GPT-4o fra en maksimum på 2k ord til ca. 20k ord. LongWriter vurderer også både outputkvalitet og overholdelse af den krævede outputlængde på LongBench-Write, visende, at GPT-4o kan succesfuldt fuldføre opgaver med output under 2.000 ord i længde, når AgentWriters præstation vurderes.

Overvåget finjustering
LongWriter udfører træning baseret på to af de seneste open-source-modeller, nemlig GLM-4-9B og Llama-3.1-8B. Begge disse er basismodeller og understøtter en kontekstvindue på op til 128k tokens, hvilket gør dem naturligt egnede til træning på lange output. For at gøre træningen mere effektiv, anvender LongWriter pakningstræning med tabsvægning. Træningen på de to modeller resulterer i to modeller: LongWriter-9B (forkortet for GLM-4-9B-LongWriter) og LongWriter-8B (forkortet for Llama-3.1-8B-LongWriter).
På samme tid observerer LongWriter, at hvis tabet gennemsnittes efter sekvens, dvs. ved at tage gennemsnittet af hver sekvens’ gennemsnitlige tab inden for en batch, vil bidraget fra hver mål-token til tabet i lange outputdata være betydeligt mindre end dem med kortere output. I LongWriters eksperimenter finder man også, at dette fører til underoptimal modellpræstation på opgaver med lange output. Derfor vælger LongWriter en tabsvægningsstrategi, der gennemsnitter tabet efter token, hvor tabet beregnes som gennemsnittet af tab inden for den batch.
Alle modeller trænes ved hjælp af en node med 8xH800 80G GPU’er og DeepSpeed+ZeRO3+CPU-offloading. LongWriter anvender en batchstørrelse på 8, en læringsrate på 1e-5 og en pakningslængde på 32k. Modellerne trænes i 4 epocher, hvilket tager ca. 2.500-3.000 trin.
Justering (DPO)
For yderligere at forbedre modellens outputkvalitet og forbedre dens evne til at følge længdekrav i instruktioner, udfører LongWriter direkte præferenceoptimering (DPO) på den overvåget finjusterede LongWriter-9B-model. DPO-data kommer fra GLM-4’s chat DPO-data (ca. 50k indtastninger). Yderligere konstruerer LongWriter 4k par af data, der specifikt sigter mod lange skriveforespørgsler. For hver skriveforespørgsel sampler LongWriter 4 output fra LongWriter-9B og scorer disse output efter en specifik metode. En længdefølgende score kombineres også. Den højest scorende output vælges herefter som den positive sample, og en af de resterende tre output vælges tilfældigt som den negative sample.
Den resulterende model, LongWriter-9B-DPO, trænes i 250 trin på ovennævnte datamix. LongWriter følger en specifik recept til DPO-træning.
LongWriter: Eksperimenter og resultater
LongWriter vurderer 4 proprietære modeller og 5 open-source-modeller på LongBench-Write, sammen med de trænede LongWriter-modeller. Ifølge LongWriters viden er Suri-IORPO den eneste tidligere model, der også er justeret for lange tekstgenerering. Den er trænet baseret på Mistral-7B-Instruct-v0.2 ved hjælp af LoRA. I overensstemmelse med evalueringssætningen på LongWrite-Ruler sætter LongWriter outputtemperatur til 0,5 og konfigurerer modellens generationsmaxtokensparameter til det maksimale tilladte af dens API-kald. For open-source-modeller sættes den til 32.768.

De fleste tidligere modeller kan ikke opfylde længdekravet på over 2.000 ord, mens LongWriter-modeller konsekvent giver længere og rigere svar på sådanne forespørgsler.
Ved at observere outputlængdescoren SlS_lSl for forespørgsler i hver krævet længdeinterval, finder LongWriter, at tidligere modeller generelt præsterer dårligt (scoringer under 70) på forespørgsler i intervallet [2k, 4k), med kun Claude 3.5 Sonnet, der opnår en anstændig score. For forespørgsler i intervallet [4k, 20k) er næsten alle tidligere modeller helt ude af stand til at nå det krævede outputlængde, og scorer endda 0 (hvad betyder, at alle outputlængder er under en tredjedel af den krævede længde). Ved at tilføje træningsdata fra LongWriter-6k kan LongWriters trænede model effektivt nå det krævede outputlængde, samtidig med at outputkvaliteten opretholdes, som foreslået af scoringerne i intervallet [2k, 20k) og spredningsplot.

DPO forbedrer både modellens outputkvalitet og dens evne til at følge længdekrav i lange generationer.
Ved at sammenligne scoringerne for LongWriter-9B og LongWriter-9B-DPO, finder vi, at DPO betydeligt forbedrer både Sl (+4%) og Sq (+3%) scoringer, og forbedringen er konsekvent på tværs af alle intervaller. Dette viser, at i lange generations scenarier, DPO stadig hjælper med at forbedre modellens outputkvalitet og kan bedre justere modellens outputlængde med den anmodede længde. Denne konklusion er også blevet observeret i Yuan et al. (2024) i kortere generationer. Vi annoterer også manuelt parvise sejre og nederlag for GPT-4o og tre LongWriter-modeller på deres output i LongBench-Write og visualiserer resultaterne i figur 9. Vi kan se, at mennesker foretrækker den DPO-trænede model over LongWriter-9B i 58% af tilfældene. Desuden opnår LongWriter-9B-DPO, på trods af færre parametre, en uafgjort stilling med GPT-4o.

Outputlængdebegrænsningen for LongWriter-modellerne er forlænget til mellem 10k og 20k ord, mens mere data med lange output er nødvendigt for at understøtte endnu længere output.
Efter LongWrite-Ruler-testen præsenterer vi også LongWrite-Ruler-testresultaterne for LongWriter-modellerne. Resultaterne viser, at deres maksimale generationslængder er mellem 10k og 20k ord. Mangel på SFT-data med længere output er sandsynligvis den primære årsag til, at modellen ikke kan opnå længere outputlængder.
Afsluttende tanker
I dette arbejde har vi talt om LongWriter, en agentbaseret pipeline, der dekomponerer ultra-lange generationsopgaver i underopgaver, identificerer en 2.000-ord generationsbegrænsning for nuværende LLM’er og foreslår at øge deres outputvindue ved at tilføje lange outputdata under justering. For at automatisk konstruere lange outputdata udvikler LongWriter AgentWrite, en agentbaseret pipeline, der anvender off-the-shelf LLM’er til at skabe forlængede, koherente output. LongWriter skalérerer succesfuldt outputvinduet for nuværende LLM’er til over 10.000 ord med den konstruerede LongWriter-6k. Omfattende ablationsstudier på træningsdata demonstrerer effektiviteten af denne tilgang. For fremtidigt arbejde foreslår LongWriter følgende tre retninger: 1. Udvid AgentWrite-rammen til at konstruere data med længere output for at yderligere forlænge LLM’ers outputvindue. 2. Forfine AgentWrite-rammen til at opnå højere kvalitet lange outputdata. 3. Længere modelloutput bringer udfordringer til inferens-effektivitet. Flere metoder er blevet foreslået for at forbedre inferens-effektivitet. Det er værd at undersøge, hvordan disse metoder kan sikre forbedret modell-effektivitet uden at kompromittere generationskvalitet.












