AI-modeller och plattformar
LongWriter: Frigör 10 000+ ord generation från långa sammanhang LLM
Nuvarande långa sammanhangs stora språkmodeller (LLM) kan bearbeta indata upp till 100 000 token, men de kämpar för att generera utdata som överstiger ens en måttlig längd på 2 000 ord. Kontrollerade experiment visar att modellens effektiva genereringslängd är inneboende begränsad av exemplen som ses under övervakad finjustering (SFT). Med andra ord härrör denna utmatningsbegränsning från bristen på långa utmatningsexempel i befintliga SFT-databaser.
Senaste framstegen inom långa sammanhangs LLM har lett till utvecklingen av modeller med betydligt utökade minneskapaciteter, som kan bearbeta historik som överstiger 100 000 token. Trots deras förmåga att hantera omfattande indata kämpar nuvarande långa sammanhangs LLM för att generera lika långa utdata.
För att undersöka denna begränsning undersöker LongWriter den maximala utmatningslängden för state-of-the-art-långa sammanhangsmodeller med flera frågor som kräver svar av varierande längd, såsom “Skriv en 10 000-ords artikel om romarrikets historia.” Resultaten visar att alla modeller konsekvent misslyckas med att producera utdata längre än 2 000 ord. Samtidigt visar analys av användarinteraktionsloggar att över 1 % av användarprompten uttryckligen begär utdata som överstiger denna gräns, vilket betonar ett brådskande behov inom nuvarande forskning för att övervinna denna begränsning.
För att åtgärda detta introducerar LongWriter AgentWrite, en agentbaserad pipeline som bryter ner ultra-långa genereringssuppgifter i underuppgifter, vilket möjliggör för färdiga LLM att generera sammanhängande utdata som överstiger 20 000 ord. Med hjälp av AgentWrite konstruerar LongWriter LongWriter-6k, en databas som innehåller 6 000 SFT-dataexempel med utmatningslängder som varierar från 2k till 32k ord. Genom att inkorporera denna databas i modellträning lyckas LongWriter med att skala utmatningslängden för befintliga modeller till över 10 000 ord samtidigt som utmatningskvaliteten upprätthålls.
LongWriter utvecklar också LongBench-Write, en omfattande benchmark för att utvärdera ultra-långa genereringsförmågor. 9B-parameterns modell, som ytterligare förbättrats genom DPO, uppnår state-of-the-art-prestation på denna benchmark, och överträffar till och med större proprietära modeller.
I den här artikeln kommer vi att diskutera LongWriter-ramverket, undersöka dess arkitektur och jämföra dess prestanda med state-of-the-art-långa sammanhangs stora språkmodeller. Låt oss komma igång.
LongWriter: 10 000+ ord generation ramverk
Senaste framstegen inom långa sammanhangs stora språkmodeller (LLM) har lett till skapandet av modeller med betydligt utökade minneskapaciteter, som kan bearbeta historik som överstiger 100 000 token. Trots denna förmåga att hantera omfattande indata kämpar nuvarande långa sammanhangs LLM för att generera utdata av jämförbar längd. För att undersöka denna begränsning undersöker LongWriter den maximala utmatningslängden för state-of-the-art-långa sammanhangsmodeller genom olika frågor som kräver olika svarslängder, såsom “Skriv en 10 000-ords artikel om romarrikets historia.” Baserat på resultaten observerar LongWriter att alla modeller konsekvent misslyckas med att generera utdata längre än 2 000 ord. Dessutom indikerar analys av användarinteraktionsloggar att över 1 % av användarprompten uttryckligen begär utdata som överstiger denna gräns, vilket betonar ett brådskande behov inom nuvarande forskning för att åtgärda detta problem.

LongWriters studie visar en viktig insikt: begränsningen på utmatningslängd är primärt rotad i egenskaperna hos de övervakade finjusteringsdatabaserna (SFT). Specifikt finner LongWriter att en modells maximala genereringslängd i princip är begränsad av den övre gränsen för utmatningslängder som finns i dess SFT-databas, trots att den har exponerats för mycket längre sekvenser under förträningsfasen. Denna upptäckt förklarar den allmänna 2 000-ords genereringsbegränsningen över nuvarande modeller, eftersom befintliga SFT-databaser sällan innehåller exempel som överstiger denna längd. Dessutom, eftersom många databaser destilleras från state-of-the-art-LLM, ärver de också utmatningslängdsbegränsningen från sina källmodeller.
För att åtgärda denna begränsning introducerar LongWriter AgentWrite, en ny agentbaserad pipeline som är utformad för att utnyttja färdiga LLM för att automatiskt konstruera förlängda, sammanhängande utdata. AgentWrite fungerar i två faser: Först bryter den ner långa skrivuppgifter i flera underuppgifter, var och en som kräver att modellen skriver endast en paragraf. Modellen utför sedan dessa underuppgifter sekventiellt, och LongWriter konkatenerar underuppgiftsutdata för att erhålla den slutliga långa utmatningen. En sådan metod för att bryta ner en komplex uppgift i flera underuppgifter med hjälp av LLM-agenter har redan tillämpats inom olika områden, såsom problemlösning, programvaruutveckling och modellutvärdering. LongWriters arbete är det första som undersöker integrering av planering för att möjliggöra för modeller att slutföra komplexa långa skrivuppgifter. Varje steg i AgentWrite presenteras i detalj nedan.

Steg I: Plan
Inspirerad av tankeprocessen hos mänskliga författare, som vanligtvis börjar med att skapa en övergripande plan för långa skrivuppgifter, använder LongWriter planeringsförmågan hos LLM för att producera en sådan skrivplan given en skrivinstruktion. Denna plan innehåller huvudinnehållet och ordkravskraven för varje paragraf. Prompten som används av LongWriter är följande:
“Jag behöver din hjälp för att bryta ner den följande långa skrivinstruktionen i flera underuppgifter. Varje underuppgift ska vägleda skrivandet av en paragraf i uppsatsen och ska innehålla huvudpunkterna och ordkravskraven för den paragrafen. Skrivinstruktionen är följande: {Användarinstruktion}. Vänligen bryt den ner i följande format, med varje underuppgift på en rad:
Paragraf 1 – Huvudpunkt: [Beskriv huvudpunkten för paragrafen i detalj] – Ordantal: [Ordantalskrav, t.ex. 400 ord]
Paragraf 2 – Huvudpunkt: [Beskriv huvudpunkten för paragrafen i detalj] – Ordantal: [Ordantalskrav, t.ex. 1000 ord].Se till att varje underuppgift är tydlig och specifik, och att alla underuppgifter täcker hela innehållet i skrivinstruktionen. Dela inte underuppgifterna för fint; varje underuppgifts paragraf ska vara minst 200 ord och högst 1000 ord. Utdata inget annat innehåll.”
Steg II: Skriv
Efter att ha erhållit skrivplanen från Steg I, anropar LongWriter LLM sekventiellt för att slutföra varje underuppgift, genererar skrivinnehållet sektion för sektion. För att säkerställa sammanhängande utdata, när LongWriter anropar modellen för att generera den n-te sektionen, ingår de tidigare genererade n-1 sektionerna också som indata, vilket möjliggör för modellen att fortsätta skriva nästa sektion baserat på befintlig skrivhistorik. Även om denna sekventiella metod förhindrar parallella anrop till modellen för att slutföra flera underuppgifter samtidigt, och inmatningslängden blir längre, visar LongWriter i validering att den totala sammanhängande och kvaliteten på skrivandet som erhålls på detta sätt är betydligt bättre än utmatningen som genereras parallellt. Prompten som används av LongWriter är:
“Du är en utmärkt skrivhjälp. Jag kommer att ge dig en ursprunglig skrivinstruktion och mina planerade skrivsteg. Jag kommer också att ge dig texten som jag redan har skrivit. Vänligen hjälp mig att fortsätta skriva nästa paragraf baserat på skrivinstruktionen, skrivstegen och den redan skrivna texten.
Skrivinstruktion:
{Användarinstruktion}
Skrivsteg:
{Skrivplanen som genererades i Steg I}
Redan skriven text:
{Tidigare genererade (n-1) paragrafer}
Integrera den ursprungliga skrivinstruktionen, skrivstegen och den redan skrivna texten, och fortsätt sedan att skriva {Planen för den n-te paragrafen, dvs. den n-te raden i skrivplanen}.”
Validering
LongWriter testar genereringslängden och kvaliteten på den föreslagna AgentWrite-metoden på två långa skrivdatabaser. Den första, LongWrite-Ruler, används för att mäta exakt hur lång utmatning metoden kan ge. Den andra, LongBench-Write, används främst för att utvärdera hur väl modellgenererat innehåll överensstämmer med användarinstruktioner i termer av längd och skrivkvalitet.
LongBench-Write: För att utvärdera modellens prestanda på en mer varierad uppsättning långa skrivinstruktioner samlar LongWriter in 120 varierade användarprompt, med 60 på kinesiska och 60 på engelska. För att bättre bedöma om modellens utmatningslängd uppfyller användarbehoven ser LongWriter till att alla dessa instruktioner innehåller uttryckliga ordantalskrav. Dessa instruktioner delas in i fyra undergrupper baserat på ordantalskraven: 0-500 ord, 500-2000 ord, 2000-4000 ord och över 4000 ord. Dessutom delas instruktionerna in i sju typer baserat på utmatningstyp: Litteratur och kreativt skrivande, Akademisk och monografisk, Populärvetenskap, Funktionellt skrivande, Nyhetsrapport, Community Forum och Utbildning och träning.
Under utvärderingen använder LongWriter två mått: ett för att poängsätta utmatningslängden och ett för att poängsätta utmatningskvaliteten. Modellens utmatningslängd poängsätts baserat på hur nära den är till kraven som anges i instruktionerna. För utmatningskvalitet använder LongWriter LLM-as-a-judge-approach, och väljer state-of-the-art-GPT-4o-modellen för att poängsätta utmatningen över sex dimensioner: Relevans, Exakthet, Sammanhängande, Tydlighet, Bredd och Djup och Läsupplevelse. Den slutliga poängen beräknas genom att ta medelvärdet av längdpoängen och kvalitetspoängen.
Valideringsresultat: LongWriter presenterar utmatningslängdmätningen på LongWrite-Ruler och finner att AgentWrite framgångsrikt förlänger utmatningslängden för GPT-4o från maximalt 2k ord till cirka 20k ord. LongWriter utvärderar också både utmatningskvalitet och överensstämmelse med utmatningslängd på LongBench-Write, och visar att GPT-4o kan framgångsrikt slutföra uppgifter med utdata under 2000 ord i längd när man utvärderar AgentWriters prestanda.

Övervakad finjustering
LongWriter genomför träning baserat på två av de senaste öppen källkodsmodellerna, nämligen GLM-4-9B och Llama-3.1-8B. Båda dessa är basmodeller och stöder en kontextfönster på upp till 128k token, vilket gör dem naturligt lämpliga för träning på långa utdata. För att göra träningen mer effektiv använder LongWriter packningsträning med förlustviktning. Träningen på de två modellerna resulterar i två modeller: LongWriter-9B (förkortat för GLM-4-9B-LongWriter) och LongWriter-8B (förkortat för Llama-3.1-8B-LongWriter).
Samtidigt noterar LongWriter att om förlusten genomsnittsberäknas per sekvens, dvs. tar medelvärdet av varje sekvens genomsnittliga förlust inom en batch, skulle bidraget från varje måltoken till förlusten i långa utdatadatabaser vara betydligt mindre än de med kortare utdata. I LongWriters experiment visas det också att detta leder till undermålig modellprestanda på uppgifter med långa utdata. Därför väljer LongWriter en förlustviktstrategi som genomsnittsberäknar förlusten per token, där förlusten beräknas som medelvärdet av förluster över alla måltoken inom den batchen.
Alla modeller tränas med en nod med 8xH800 80G GPU och DeepSpeed+ZeRO3+CPU-offloading. LongWriter använder en batchstorlek på 8, en inlärningshastighet på 1e-5 och en packningslängd på 32k. Modellerna tränas i 4 epocher, vilket tar cirka 2 500-3 000 steg.
Justering (DPO)
För att ytterligare förbättra modellens utmatningskvalitet och förbättra dess förmåga att följa längdkrav i instruktioner, genomför LongWriter direkt preferensoptimering (DPO) på den övervakat finjusterade LongWriter-9B-modellen. DPO-data kommer från GLM-4:s chatt-DPO-data (cirka 50k poster). Dessutom konstruerar LongWriter 4k par data som specifikt riktar sig till långa skrivinstruktioner. För varje skrivinstruktion sampas 4 utdata från LongWriter-9B och poängsätts enligt en specifik metod. En längdföljande poäng kombineras också. Den högst poängsatta utmatningen väljs sedan som den positiva exempel och en av de återstående tre utmatningarna väljs slumpmässigt som den negativa exempel.
Den resulterande modellen, LongWriter-9B-DPO, tränas i 250 steg på ovanstående datamix. LongWriter följer en specifik recept för DPO-träning.
LongWriter: Experiment och resultat
LongWriter utvärderar 4 proprietära modeller och 5 öppen källkodsmodeller på LongBench-Write, tillsammans med de tränade LongWriter-modellerna. Enligt LongWriters kännedom är Suri-IORPO den enda tidigare modell som också är justerad för långtextgenerering. Den tränas baserat på Mistral-7B-Instruct-v0.2 med LoRA. I linje med utvärderingsinställningarna på LongWrite-Ruler ställer LongWriter in utmatningstemperaturen till 0,5 och konfigurerar modellens maximala genererings-tokenparameter till det maximala tillåtna av dess API-anrop. För öppen källkodsmodeller ställs den in på 32 768.

De flesta tidigare modeller kan inte uppfylla kraven på över 2 000 ord, medan LongWriter-modellerna konsekvent tillhandahåller längre och rikare svar på sådana prompt.
Genom att observera utmatningslängdspoängen SlS_lSl för prompt i varje krävd längdkategori, finner LongWriter att tidigare modeller generellt presterar dåligt (poäng under 70) på prompt i intervallet [2k, 4k), med endast Claude 3.5 Sonnet som uppnår en anständig poäng. För prompt i intervallet [4k, 20k) är nästan alla tidigare modeller helt oförmögna att nå mållängden, och poängsätter till och med 0 (vilket innebär att alla utmatningslängder är mindre än en tredjedel av den krävda längden). Genom att lägga till träningsdata från LongWriter-6k kan LongWriters tränade modell effektivt nå den krävda utmatningslängden samtidigt som den upprätthåller god kvalitet, som framgår av poängen i intervallet [2k, 20k) och spridningsdiagrammen.

DPO förbättrar effektivt både modellens utmatningskvalitet och dess förmåga att följa längdkrav i lång generering.
Genom att jämföra poängen för LongWriter-9B och LongWriter-9B-DPO, finner vi att DPO signifikant förbättrar både Sl (+4 %) och Sq (+3 %) poäng, och förbättringen är konsekvent över alla intervall. Detta visar att i lång genererings scenarier förbättrar DPO fortfarande modellens utmatningskvalitet och kan bättre anpassa modellens utmatningslängd till den begärda längden.

Utmatningslängdsbegränsningen för LongWriter-modellerna förlängs till mellan 10k och 20k ord, medan mer data med långa utdata krävs för att stödja ännu längre utdata.
Följande LongWrite-Ruler-test presenterar LongWrite-Ruler-testresultaten för LongWriter-modellerna. Resultaten visar att deras maximala genereringslängder ligger mellan 10k och 20k ord. Bristen på SFT-data med längre utdata är troligen den primära orsaken till att modellen inte kan uppnå längre utmatningslängder.
Slutliga tankar
I detta arbete har vi diskuterat LongWriter, en agentbaserad pipeline som bryter ner ultra-långa genereringssuppgifter i underuppgifter, identifierar en 2 000-ords genereringsbegränsning för nuvarande LLM och föreslår att öka deras utmatningsfönster genom att lägga till långa utdata under justering. För att automatiskt konstruera långa utdata utvecklar LongWriter AgentWrite, en agentbaserad pipeline som använder färdiga LLM för att skapa förlängda, sammanhängande utdata. LongWriter lyckas med att skala utmatningsfönstret för nuvarande LLM till över 10 000 ord med den konstruerade LongWriter-6k. Omfattande avlägsnande studier på träningsdata demonstrerar effektiviteten hos denna metod. För framtida arbete föreslår LongWriter följande tre riktningar: 1. Utöka AgentWrite-ramverket för att konstruera data med längre utdata för att ytterligare förlänga LLM:s utmatningsfönster. 2. Förbättra AgentWrite-ramverket för att uppnå högre kvalitet på långa utdata. 3. Längre modellutdata medför utmaningar för inferens effektivitet. Flera metoder har föreslagits för att förbättra inferens effektivitet. Det är värt att undersöka hur dessa metoder kan säkerställa förbättrad modell effektivitet utan att kompromissa med genereringskvalitet.












