AI-modeller og plattformer
LongWriter: Utgivelse av 10.000+ ord generering fra lange kontekst LLM-er
Den nåværende lange kontekst store språkmodeller (LLM-er) kan prosessere inndata på opp til 100.000 token, men de sliter med å generere utdata som overstiger selv en beskjeden lengde på 2.000 ord. Kontrollerte eksperimenter avslører at modellens effektive genereringslengde er innebygget begrenset av eksemplene sett under supervisert finjustering (SFT). Med andre ord, denne utgangsbegrensningen stammer fra mangelen på lange utgangseksempler i eksisterende SFT-datasett.
De siste fremgangene i lange kontekst LLM-er har ledet til utviklingen av modeller med betydelig utvidede minnekapasiteter, i stand til å prosessere historier som overstiger 100.000 token i lengde. Likevel, til tross for deres evne til å håndtere omfattende inndata, sliter nåværende lange kontekst LLM-er med å generere like lange utdata.
For å utforske denne begrensningen, LongWriter undersøker den maksimale utgangslengden av state-of-the-art lange kontekstmodeller med flere spørsmål som krever svar av varierende lengder, som “Skriv en 10.000-ords artikkel om historien til det romerske imperiet.” Resultatene viser at alle modeller konsekvent feiler i å produsere utdata lengre enn 2.000 ord. I mellomtiden avslører analyse av brukerinteraksjonslogger at over 1% av brukerforespørsler uttrykkelig ber om utdata som overstiger denne grensen, og høydeprioriterer et presserende behov i nåværende forskning til å overvinne denne begrensningen.
For å løse dette problemet, introduserer LongWriter AgentWrite, en agentbasert pipeline som dekomponerer ultra-lange genereringoppgaver i underoppgaver, som muliggjør at off-the-shelf LLM-er kan generere koherente utdata som overstiger 20.000 ord. Ved å utnytte AgentWrite, konstruerer LongWriter LongWriter-6k, et datasett som inneholder 6.000 SFT-dataeksempler med utgangslengder som varierer fra 2k til 32k ord. Ved å inkorporere dette datasett i modelltrening, lykkes LongWriter i å skalerer utgangslengden av eksisterende modeller til over 10.000 ord samtidig som utgangskvaliteten opprettholdes.
LongWriter utvikler også LongBench-Write, en omfattende benchmark for å evaluere ultra-lange genereringsmuligheter. 9B-parametermodellen, som er ytterligere forbedret gjennom DPO, oppnår state-of-the-art-ytelse på denne benchmarken, og overstiger selv større proprietære modeller.
I denne artikkelen vil vi diskutere LongWriter-rammeverket, utforske dets arkitektur og sammenligne dets ytelse mot state-of-the-art lange kontekst store språkmodeller. La oss komme i gang.
LongWriter: 10.000+ ord genereringsrammeverk
De siste fremgangene i lange kontekst store språkmodeller (LLM-er) har ledet til skapelsen av modeller med betydelig økte minnekapasiteter, i stand til å prosessere historier som overstiger 100.000 token. Til tross for denne evnen til å håndtere omfattende inndata, sliter nåværende lange kontekst LLM-er med å generere utdata av sammenlignbar lengde. For å undersøke denne begrensningen, undersøker LongWriter den maksimale utgangslengden av state-of-the-art lange kontekstmodeller gjennom ulike spørsmål som krever forskjellige svarlengder, som “Skriv en 10.000-ords artikkel om historien til det romerske imperiet.” Basert på funnene, observerer LongWriter at alle modeller konsekvent feiler i å generere utdata lengre enn 2.000 ord. Videre indikerer analyse av brukerinteraksjonslogger at over 1% av brukerforespørsler uttrykkelig ber om utdata som overstiger denne grensen, og høydeprioriterer et presserende behov i nåværende forskning til å overvinne denne begrensningen.

LongWriters studie avslører en nøkkelinsikt: begrensningen på utgangslengde er primært rotet i egenskapene til SFT-datasettene. Spesifikt finner LongWriter at en modells maksimale genereringslengde er effektivt avgrenset av den øvre grensen for utgangslengder i dets SFT-datasett, til tross for dens eksponering for langt lengre sekvenser under fortreningfasen. Dette funn forklarer den universelle 2.000-ords genereringsgrensen over nåværende modeller, ettersom eksisterende SFT-datasett sjelden inneholder eksempler som overstiger denne lengden. Videre, ettersom mange datasett er destillert fra state-of-the-art LLM-er, arver de også utgangslengdebegrensningen fra deres kildemodeller.
For å løse denne begrensningen, introduserer LongWriter AgentWrite, en ny agentbasert pipeline designet for å utnytte off-the-shelf LLM-er til å automatisk konstruere utvidede, koherente utdata. AgentWrite opererer i to faser: Først dekomponerer den lange skriveoppgaver i underoppgaver, med hver underoppgave som krever at modellen skriver bare en paragraf. Modellen utfører deretter disse underoppgavene sekvensielt, og LongWriter konkatenerer underoppgaveutdataene for å oppnå det endelige lange utdata. En slik tilnærming til å dekomponere en kompleks oppgave i underoppgaver ved hjelp av LLM-agenter har allerede vært anvendt i ulike felt, som problem løsning, programvareutvikling og modell evaluering. LongWriters arbeid er det første til å utforske integrering av planlegging for å muliggjøre modeller til å fullføre komplekse lange skriveoppgaver. Hver fase av AgentWrite introduseres i detalj nedenfor.

Steg I: Plan
Inspirert av tenkeprosessen til menneskelige forfattere, som vanligvis starter med å lage en overordnet plan for lange skriveoppgaver, utnytter LongWriter planleggingskapasiteten til LLM-er til å utgang en slik skriveplan gitt en skriveinstruksjon. Denne planen inkluderer hovedinnholdet og ordtallskravene for hver paragraf. Prompten brukt av LongWriter er som følger:
“Jeg trenger din hjelp til å bryte ned den følgende lange skriveinstruksjonen i underoppgaver. Hver underoppgave vil guide skrivingen av en paragraf i essayet og skal inkludere hovedpoengene og ordtallskravene for den paragrafen. Skriveinstruksjonen er som følger: {Brukerinstruksjon}. Vennligst bryt den ned i følgende format, med hver underoppgave som tar opp en linje:
Paragraf 1 – Hovedpoeng: [Beskriv hovedpoenget til paragrafen, i detalj] – Ordtall: [Ordtallskrav, f.eks. 400 ord]
Paragraf 2 – Hovedpoeng: [Beskriv hovedpoenget til paragrafen, i detalj] – Ordtall: [Ordtallskrav, f.eks. 1000 ord].Sørg for at hver underoppgave er klar og spesifikk, og at alle underoppgaver dekker hele innholdet av skriveinstruksjonen. Ikke del underoppgavene for fint; hver underoppgaves paragraf skal være minst 200 ord og maks 1000 ord. Ikke utgang noen annen innhold.”
Steg II: Skriv
Etter å ha mottatt skriveplanen fra Steg I, kaller LongWriter LLM sekvensielt for å fullføre hver underoppgave, og genererer skriveinnholdet seksjon for seksjon. For å sikre kohensjonen av utgangen, når LongWriter kaller modellen for å generere den n-te seksjonen, er de tidligere genererte n-1 seksjoner også inndata, og modellen kan fortsette å skrive den neste seksjonen basert på eksisterende skrivehistorie. Selv om denne sekvensielle måten forhindrer parallell kall til modellen for å fullføre flere underoppgaver samtidig, og inndata lengden blir lengre, viser LongWriter i validering at den overordnede kohensjonen og kvaliteten av skrivingen oppnådd på denne måten er langt overlegen utgangen generert i parallell.
“Du er en utmerket skriveassistent. Jeg vil gi deg en original skriveinstruksjon og mine planlagte skriveplaner. Jeg vil også gi deg tekst som allerede er skrevet. Vennligst hjelp meg å fortsette å skrive den neste paragrafen basert på skriveinstruksjonen, skriveplanene og den allerede skrevne teksten.
Skriveinstruksjon:
{Brukerinstruksjon}
Skriveplaner:
{Skriveplan generert i Steg I}
Allerede skrevet tekst:
{Tidligere genererte (n-1) paragrafer}
Vennligst integrer den originale skriveinstruksjonen, skriveplanene og den allerede skrevne teksten, og fortsett å skrive {Planen for den n-te paragrafen, dvs. den n-te linjen i skriveplanen}.”
Validering
LongWriter tester genereringslengden og kvaliteten av den foreslåtte AgentWrite-metoden på to lange skrive-datasett. Det første, LongWrite-Ruler, brukes til å måle nøyaktig hvor lang utgang den metoden kan gi. Det andre, LongBench-Write, brukes hovedsakelig til å evaluere hvor godt modell-generert innhold stemmer overens med brukerinstruksjoner i lengde og skrivekvalitet.
LongBench-Write: For å evaluere modellens ytelse på en mer diversifisert rekke lange skriveinstruksjoner, samler LongWriter inn 120 varierte bruker skriveforespørsler, med 60 på norsk og 60 på engelsk. For å bedre vurdere om modellens utgangslengde møter brukerkravene, sikrer LongWriter at alle disse instruksjonene inkluderer eksplisitte ordtallskrav. Disse instruksjonene er delt inn i fire undergrupper basert på ordtallskravene: 0-500 ord, 500-2.000 ord, 2.000-4.000 ord og over 4.000 ord. I tillegg er instruksjonene kategorisert i syv typer basert på utgangstypen: Litteratur og kreativ skriving, Akademisk og monografi, Populærvitenskap, Funksjonell skriving, Nyhetsrapport, Fellesskapsforum og Utdanning og trening.
Under evaluering, bruker LongWriter to metrikker: en for å score utgangslengden og en for å score utgangskvaliteten. Modellens utgangslengde scores basert på hvor nært den er til kravene spesifisert i instruksjonene. For utgangskvalitet, bruker LongWriter LLM-as-a-judge-tilnærmingen, og velger state-of-the-art GPT-4o-modellen til å score utgangen over seks dimensjoner: Relevans, Nøyaktighet, Kohensjon, Klarhet, Bredde og Dybde, og Leseropplevelse. Den endelige scoren beregnes ved å gjennomsnittle lengdescoren og kvalitetsscoren.
Valideringsresultater: LongWriter presenterer utgangslengdemålingen på LongWrite-Ruler og finner at AgentWrite suksessfullt utvider utgangslengden av GPT-4o fra en maksimum på 2k ord til omtrent 20k ord. LongWriter vurderer også både utgangskvalitet og overholdelse av utgangslengden på LongBench-Write, og viser at GPT-4o kan suksessfullt fullføre oppgaver med utdata under 2.000 ord i lengde når AgentWriters ytelse evalueres.

Supervisert finjustering
LongWriter gjennomfører trening basert på to av de siste åpne kildekodemodellene, nemlig GLM-4-9B og Llama-3.1-8B. Begge disse er basismodeller og støtter en kontekstvindu på opp til 128k token, noe som gjør dem naturlig egnet for trening på lange utdata. For å gjøre treningen mer effektiv, bruker LongWriter pakket trening med tapvektning. Treningen på de to modellene resulterer i to modeller: LongWriter-9B (forkortet for GLM-4-9B-LongWriter) og LongWriter-8B (forkortet for Llama-3.1-8B-LongWriter).
Samtidig observerer LongWriter at hvis tapet gjennomsnittlig beregnes per sekvens, dvs. ved å ta gjennomsnittet av hver sekvens’ gjennomsnittlige tap innenfor en batch, vil bidraget fra hver mål-token til tapet i lange utdata være betydelig mindre enn de med kortere utdata. I LongWriters eksperimenter er det også funnet at dette fører til underoptimal modell ytelse på oppgaver med lange utdata. Derfor velger LongWriter en tapvektstrategi som gjennomsnittlig beregner tapet per token, hvor tapet beregnes som gjennomsnittet av tapene over alle mål-token innenfor batchen.
Alle modeller er trent ved hjelp av en node med 8xH800 80G GPU-er og DeepSpeed+ZeRO3+CPU-offloading. LongWriter bruker en batch-størrelse på 8, en læringsrate på 1e-5, og en pakkelengde på 32k. Modellene er trent i 4 epoker, noe som tar omtrent 2.500-3.000 steg.
Justering (DPO)
For å ytterligere forbedre modellens utgangskvalitet og forbedre dens evne til å følge lengdekrav i instruksjoner, gjennomfører LongWriter direkte preferanseoptimering (DPO) på den supervisert finjusterte LongWriter-9B-modellen. DPO-dataene kommer fra GLM-4s chat DPO-data (omtrent 50k poster). I tillegg konstruerer LongWriter 4k par med data som spesifikt retter seg mot lange skriveinstruksjoner. For hver skriveinstruksjon, sampler LongWriter 4 utdata fra LongWriter-9B og scorer disse utdataene etter en bestemt metode. En lengdefølgingsscore kombineres også. Den høyest scorende utgangen velges som den positive sampen, og en av de gjenværende tre utgangene velges tilfeldig som den negative sampen.
Den resulterende modellen, LongWriter-9B-DPO, er trent i 250 steg på ovennevnte datamengde. LongWriter følger en bestemt oppskrift for DPO-trening.
LongWriter: Eksperimenter og resultater
LongWriter evaluerer 4 proprietære modeller og 5 åpne kildekodemodeller på LongBench-Write, sammen med de trente LongWriter-modellene. Ifølge LongWriters kunnskap er Suri-IORPO den eneste tidligere modellen som også er justert for lange tekstgenerering. Den er trent basert på Mistral-7B-Instruct-v0.2 ved hjelp av LoRA. I tråd med evalueringssammenstillingen på LongWrite-Ruler, setter LongWriter utgangstemperaturen til 0,5 og konfigurerer modellens genererings maksimum antall token-parameter til det maksimale tillatt av API-kallet. For åpne kildekodemodeller er det satt til 32.768.

De fleste tidligere modeller er ikke i stand til å møte lengdekravet på over 2.000 ord, mens LongWriter-modellene konsekvent gir lengre og rikere svar på slike forespørsler.
Ved å observere utgangslengdescoren SlS_lSl for forespørsler i hver lengdekategori, finner LongWriter at tidligere modeller generelt utfører dårlig (scoringer under 70) på forespørsler i kategorien [2k, 4k), med bare Claude 3.5 Sonnet som oppnår en god score. For forespørsler i kategorien [4k, 20k), er nesten alle tidligere modeller fullstendig ute av stand til å nå mållengden, og scorer 0 (det vil si at alle utgangslengder er mindre enn en tredjedel av den ønskede lengden). Ved å legge til treningdata fra LongWriter-6k, kan LongWriters trente modell effektivt nå den ønskede utgangslengden samtidig som den opprettholder god kvalitet, som indikert av scoringer i kategorien [2k, 20k) og spredningsplottene.

DPO forbedrer effektivt både modellens utgangskvalitet og dens evne til å følge lengdekrav i lange genereringer.
Ved å sammenligne scoringer for LongWriter-9B og LongWriter-9B-DPO, finner vi at DPO signifikant forbedrer både Sl (+4%) og Sq (+3%) scoringer, og forbedringen er konsistent over alle kategorier. Dette viser at i lange genereringsscenarier, DPO fortsatt hjelper til å forbedre modellens utgangskvalitet og kan bedre justere modellens utgangslengde med den ønskede lengden. Denne konklusjonen er også nylig observert i Yuan et al. (2024) i kortere genereringer. Vi har også manuelt annotert parvise seire og tap for GPT-4o og tre LongWriter-modeller på deres utgang i LongBench-Write og visualisert resultater i Figur 9. Vi kan se at mennesker foretrekker DPO-trent modell over LongWriter-9B i 58% av tilfellene. I tillegg, til tross for færre parametre, oppnår LongWriter-9B-DPO en uavgjort med GPT-4o.

Utgangslengdegrensen for LongWriter-modellene utvides til mellom 10k og 20k ord, mens mer data med lange utdata er nødvendig for å støtte enda lengre utdata.
Etter LongWrite-Ruler-testen, presenterer vi også LongWrite-Ruler-testresultatene for LongWriter-modellene. Resultatene antyder at deres maksimale genereringslengder er mellom 10k og 20k ord. Mangel på SFT-data med lengre utdata er sannsynligvis den primære årsaken til at modellen ikke kan oppnå lengre utgangslengder.
Slutt tanker
I dette arbeidet har vi diskutert LongWriter, en agentbasert pipeline som dekomponerer ultra-lange genereringoppgaver i underoppgaver, identifiserer en 2.000-ords genereringsgrense for nåværende LLM-er og foreslår å øke deres utgangsvindu størrelse ved å legge til lange utdata under justering. For å automatisk konstruere lange utdata, utvikler LongWriter AgentWrite, en agentbasert pipeline som bruker off-the-shelf LLM-er til å skape utvidede, koherente utdata. LongWriter skalerer suksessfullt utgangsvindu størrelsen av nåværende LLM-er til over 10.000 ord med det konstruerte LongWriter-6k. Omfattende ablasjonsstudier på treningdata demonstrerer effektiviteten av denne tilnærmingen. For fremtidig arbeid foreslår LongWriter følgende tre retninger: 1. Utvide AgentWrite-rammeverket for å konstruere data med lengre utdata for å ytterligere utvide LLM-ers utgangsvindu størrelse. 2. Forfine AgentWrite-rammeverket for å oppnå høyere kvalitet lange utdata. 3. Lengre modellutdata bringer utfordringer til inferens effisiens. Flere metoder er foreslått for å forbedre inferens effisiens. Det er verdt å undersøke hvordan disse metodene kan sikre forbedret modell effisiens uten å kompromittere genereringskvalitet.












