Modele și platforme AI

LongWriter: Dezvăluirea Generării de 10.000+ Cuvinte din Contexte LLM Lungi

mm
Adaugă Unite.AI la sursele tale preferate pe Google
LONGWRITER: UNLEASHING 10,000+ WORD GENERATION FROM LONG CONTEXT LLMS

Modelele actuale de limbaj mare cu context lung (LLM) pot procesa intrări de până la 100.000 de tokeni, dar au dificultăți în a genera ieșiri care depășesc o lungime modestă de 2.000 de cuvinte. Experimentele controlate arată că lungimea efectivă de generare a modelului este în mod intrinsic limitată de exemplele văzute în timpul fine-tuningului supravegheat (SFT). Cu alte cuvinte, această limitare a ieșirii provine din lipsa de exemple cu ieșiri lungi în seturile de date SFT existente.

Progresele recente în modelele LLM cu context lung au condus la dezvoltarea de modele cu capacități de memorie semnificativ extinse, capabile să proceseze istorii care depășesc 100.000 de tokeni în lungime. Cu toate acestea, în ciuda capacității lor de a gestiona intrări extinse, modelele LLM actuale cu context lung au dificultăți în a genera ieșiri la fel de lungi.

Pentru a explora această limitare, LongWriter examinează lungimea maximă de ieșire a modelelor cu context lung de ultimă generație, prin intermediul unor întrebări care necesită răspunsuri de lungimi diferite, cum ar fi “Scrieți un articol de 10.000 de cuvinte despre istoria Imperiului Roman.” Rezultatele arată că toate modelele eşuează în mod constant în a produce ieșiri mai lungi de 2.000 de cuvinte. Între timp, analiza jurnalelor de interacțiune ale utilizatorilor arată că peste 1% din prompturile utilizatorilor solicită în mod explicit ieșiri care depășesc această limită, subliniind o nevoie urgentă în cercetarea actuală de a depăși această limitare.

Pentru a aborda această limitare, LongWriter introduce AgentWrite, o pipeline bazată pe agenți care descompune sarcinile de generare ultra-lungă în sub-sarcini, permițând modelelor LLM standard să genereze ieșiri coerente care depășesc 20.000 de cuvinte. Pe baza pipeline-ului AgentWrite, LongWriter construiește LongWriter-6k, un set de date care conține 6.000 de exemple de date SFT cu lungimi de ieșire care variază de la 2.000 la 32.000 de cuvinte. Prin încorporarea acestui set de date în procesul de antrenare a modelelor, LongWriter reușește să extindă lungimea de ieșire a modelelor existente la peste 10.000 de cuvinte, menținând în același timp calitatea ieșirii.

LongWriter dezvoltă, de asemenea, LongBench-Write, o benchmark cuprinzătoare pentru evaluarea capacităților de generare ultra-lungă. Modelul de 9B parametri, îmbunătățit suplimentar prin DPO, obține performanțe de top pe această benchmark, depășind chiar și modelele mai mari cu sursă închisă.

În acest articol, vom discuta despre framework-ul LongWriter, vom explora arhitectura sa și vom compara performanța sa cu cea a modelelor LLM cu context lung de ultimă generație. Hai să începem.

LongWriter: Framework de Generare a 10.000+ Cuvinte

Progresele recente în modelele LLM cu context lung au condus la crearea de modele cu capacități de memorie semnificativ extinse, capabile să proceseze istorii care depășesc 100.000 de tokeni. Cu toate acestea, în ciuda capacității lor de a gestiona intrări extinse, modelele LLM actuale cu context lung au dificultăți în a genera ieșiri de lungime comparabilă. Pentru a investiga această limitare, LongWriter examinează lungimea maximă de ieșire a modelelor cu context lung de ultimă generație, prin intermediul unor întrebări care necesită răspunsuri de lungimi diferite, cum ar fi “Scrieți un articol de 10.000 de cuvinte despre istoria Imperiului Roman.” Pe baza rezultatelor, LongWriter observă că toate modelele eşuează în mod constant în a genera ieșiri mai lungi de 2.000 de cuvinte. Mai mult, analiza jurnalelor de interacțiune ale utilizatorilor indică faptul că peste 1% din prompturile utilizatorilor solicită în mod explicit ieșiri care depășesc această limită, subliniind o nevoie urgentă în cercetarea actuală de a depăși această limitare.

Studiul LongWriter revelează o idee cheie: limitarea lungimii de ieșire este în primul rând înrădăcinată în caracteristicile seturilor de date SFT. În mod specific, LongWriter constată că lungimea maximă de generare a unui model este efectiv limitată de limita superioară a lungimilor de ieșire prezente în setul său de date SFT, în ciuda expunerii sale la secvențe mult mai lungi în timpul fazei de pre-antrenare. Acest lucru explică limitarea universală de 2.000 de cuvinte de generare în modelele actuale, deoarece seturile de date SFT existente conțin rareori exemple care depășesc această lungime. Mai mult, deoarece multe seturi de date sunt distilate din modele LLM de ultimă generație, ele moștenesc, de asemenea, limitarea lungimii de ieșire de la modelele lor sursă.

Pentru a aborda această limitare, LongWriter introduce AgentWrite, o pipeline bazată pe agenți care utilizează modele LLM standard pentru a construi ieșiri extinse și coerente. AgentWrite funcționează în două etape: prima, creează un plan de scriere detaliat care prezintă structura și numărul de cuvinte necesar pentru fiecare paragraf, pe baza intrării utilizatorului. Apoi, urmând acest plan, AgentWrite solicită modelului să genereze conținut pentru fiecare paragraf în mod secvențial. LongWriter demonstrează că AgentWrite poate produce ieșiri de înaltă calitate și coerente de până la 20.000 de cuvinte.

Pe baza pipeline-ului AgentWrite, LongWriter construiește LongWriter-6k, un set de date care conține 6.000 de exemple de date SFT cu lungimi de ieșire care variază de la 2.000 la 32.000 de cuvinte. Prin încorporarea acestui set de date în procesul de antrenare a modelelor, LongWriter reușește să extindă lungimea de ieșire a modelelor existente la peste 10.000 de cuvinte, menținând în același timp calitatea ieșirii.

Pentru a rezuma, lucrarea LongWriter aduce următoarele contribuții noi:

  • Analiza limitelor de lungime de generare: LongWriter identifică factorul principal care limitează lungimea de ieșire a modelelor LLM actuale, care este limitarea lungimii de ieșire în seturile de date SFT.
  • AgentWrite: Pentru a depăși această limitare, LongWriter propune AgentWrite, o pipeline bazată pe agenți care utilizează modele LLM standard pentru a construi ieșiri extinse și coerente. Utilizând această metodă, LongWriter construiește setul de date LongWriter-6k.
  • Extinderea ferestrei de ieșire a modelelor actuale: LongWriter incorporează setul de date LongWriter-6k în setul de date SFT și reușește să extindă lungimea de ieșire a modelelor existente la peste 10.000 de cuvinte, menținând în același timp calitatea ieșirii. LongWriter demonstrează, de asemenea, că DPO îmbunătățește în continuare capacitățile de generare a textului lung ale modelului.

AgentWrite: Construcția Automată a Datelor

Pentru a utiliza modele LLM standard pentru a construi automat date SFT cu ieșiri lungi, LongWriter proiectează AgentWrite, o pipeline bazată pe agenți care descompune sarcinile de generare ultra-lungă în sub-sarcini. AgentWrite funcționează în două etape: prima, creează un plan de scriere detaliat care prezintă structura și numărul de cuvinte necesar pentru fiecare paragraf, pe baza intrării utilizatorului. Apoi, urmând acest plan, AgentWrite solicită modelului să genereze conținut pentru fiecare paragraf în mod secvențial.

Etapa I: Planificare

Inspirat de procesul de gândire al scriitorilor umani, care de obicei încep prin a face un plan general pentru sarcinile de scriere lungă, LongWriter utilizează capacitățile de planificare ale modelelor LLM pentru a produce un plan de scriere dat o instrucțiune de scriere. Acest plan include conținutul principal și numărul de cuvinte necesar pentru fiecare paragraf. Promptul utilizat de LongWriter este următorul:

“Am nevoie de ajutorul dvs. pentru a descompune următoarea instrucțiune de scriere lungă în sub-sarcini. Fiecare sub-sarcină va ghida scrierea unui paragraf din eseu și trebuie să includă punctele principale și numărul de cuvinte necesar pentru acel paragraf. Instrucțiunea de scriere este următoarea: {Instrucțiunea utilizatorului}. Vă rog să o descompuneți în următorul format, cu fiecare sub-sarcină pe o linie separată:

Paragraf 1 – Punct principal: [Descrieți punctul principal al paragrafului, în detaliu] – Număr de cuvinte: [Numărul de cuvinte necesar, de exemplu, 400 de cuvinte]
Paragraf 2 – Punct principal: [Descrieți punctul principal al paragrafului, în detaliu] – Număr de cuvinte: [Numărul de cuvinte necesar, de exemplu, 1000 de cuvinte].

Asigurați-vă că fiecare sub-sarcină este clară și specifică și că toate sub-sarcinile acoperă întregul conținut al instrucțiunii de scriere. Nu descompuneți sub-sarcinile prea fin; fiecare paragraf al sub-sarcinii trebuie să aibă cel puțin 200 de cuvinte și nu mai mult de 1000 de cuvinte. Nu afișați niciun alt conținut.”

Etapa II: Scriere

După obținerea planului de scriere din Etapa I, LongWriter solicită modelului să genereze conținutul pentru fiecare paragraf, în mod secvențial. Pentru a asigura coerența ieșirii, atunci când LongWriter solicită modelului să genereze al n-lea paragraf, paragrafele anterioare generate (n-1) sunt, de asemenea, introduse, permițând modelului să continue scrierea următorului paragraf pe baza istoricului de scriere existent. Deși această abordare secvențială împiedică apelurile paralele la model pentru a finaliza multiple sub-sarcini simultan, iar lungimea de intrare devine mai lungă, LongWriter demonstrează în validare că coerența și calitatea generală a scrierii obținute prin această metodă sunt mult superioare calității ieșirii generate în paralel.

Promptul utilizat de LongWriter este următorul:

“Sunteți un asistent de scriere excelent. Vă voi oferi o instrucțiune de scriere originală și pașii mei de scriere planificați. Vă voi oferi, de asemenea, textul pe care l-am scris deja. Vă rog să mă ajutați să continuăm scrierea următorului paragraf pe baza instrucțiunii de scriere, a pașilor de scriere și a textului deja scris.

Instrucțiunea de scriere:
{Instrucțiunea utilizatorului}
Pașii de scriere:
{Planul de scriere generat în Etapa I}
Textul deja scris:
{Paragrafele anterioare generate (n-1)}

Vă rog să integrați instrucțiunea de scriere originală, pașii de scriere și textul deja scris și să continuați scrierea {Planul pentru al n-lea paragraf, adică al n-lea rând din planul de scriere}.”

Validare

LongWriter testează lungimea de generare și calitatea metodei AgentWrite propuse pe două seturi de date de scriere lungă. Primul, LongWrite-Ruler, este utilizat pentru a măsura exact cât de lungă poate fi ieșirea metodei. Al doilea, LongBench-Write, este utilizat în principal pentru a evalua cât de bine conținutul generat de model se aliniază cu instrucțiunile utilizatorului în ceea ce privește lungimea și calitatea scrierii.

LongBench-Write: Pentru a evalua performanța modelului pe o gamă mai diversă de instrucțiuni de scriere lungă, LongWriter colectează 120 de prompturi de scriere variate, cu 60 în limba chineză și 60 în limba engleză. Pentru a evalua mai bine dacă lungimea de ieșire a modelului îndeplinește cerințele utilizatorului, LongWriter asigură că toate aceste instrucțiuni includ cerințe explicite de număr de cuvinte. Aceste instrucțiuni sunt împărțite în patru sub-seturi pe baza cerințelor de număr de cuvinte: 0-500 cuvinte, 500-2.000 cuvinte, 2.000-4.000 cuvinte și peste 4.000 cuvinte. În plus, instrucțiunile sunt categorisite în șapte tipuri pe baza tipului de ieșire: Literatură și scriere creativă, Academic și monografie, Știință populară, Scriere funcțională, Raport de știri, Forum comunitar și Educație și instruire.

În timpul evaluării, LongWriter adoptă două metrice: una pentru scorul lungimii de ieșire și una pentru scorul calității ieșirii. Lungimea de ieșire a modelului este evaluată pe baza proximității sale față de cerințele specificate în instrucțiuni. Pentru calitatea ieșirii, LongWriter utilizează abordarea LLM-ca-judecător, selectând modelul GPT-4o de ultimă generație pentru a evalua ieșirea pe șase dimensiuni: Relevanță, Precizie, Coerență, Claritate, Lărgime și Adâncime și Experiență de citire. Scorul final este calculat prin medierea scorului de lungime și a scorului de calitate.

Rezultatele validării: LongWriter prezintă măsurătorile lungimii de ieșire pe LongWrite-Ruler și constată că AgentWrite extinde cu succes lungimea de ieșire a modelului GPT-4o de la o lungime maximă de 2.000 de cuvinte la aproximativ 20.000 de cuvinte. LongWriter evaluează, de asemenea, calitatea ieșirii și respectarea cerințelor de lungime de ieșire pe LongBench-Write, demonstrând că GPT-4o poate să finalizeze cu succes sarcinile cu ieșiri sub 2.000 de cuvinte în lungime atunci când se evaluează performanța AgentWrite.

Antrenare Supravegheată

LongWriter efectuează antrenarea pe baza a două dintre cele mai recente modele open-source, și anume GLM-4-9B și Llama-3.1-8B. Ambele sunt modele de bază și suportă o fereastră de context de până la 128k tokeni, făcându-le natural potrivite pentru antrenarea pe ieșiri lungi. Pentru a antrenarea mai eficientă, LongWriter adoptă antrenarea cu împachetare și ponderare a pierderii. Antrenarea pe cele două modele conduce la două modele: LongWriter-9B (abreviat pentru GLM-4-9B-LongWriter) și LongWriter-8B (abreviat pentru Llama-3.1-8B-LongWriter).

În același timp, LongWriter observă că, dacă pierderea este mediată pe secvență, adică luând media pierderii fiecărei secvențe dintr-un batch, contribuția fiecărui token țintă la pierdere în datele cu ieșiri lungi ar fi semnificativ mai mică decât cea a datelor cu ieșiri scurte. În experimentele LongWriter, s-a constatat, de asemenea, că acest lucru conduce la o performanță suboptimală a modelului pe sarcinile cu ieșiri lungi. Prin urmare, LongWriter alege o strategie de ponderare a pierderii care mediază pierderea pe token, unde pierderea este calculată ca media pierderilor tuturor tokenilor țintă din batch.

Toate modelele sunt antrenate utilizând un nod cu 8xH800 80G GPU și DeepSpeed+ZeRO3+CPU offloading. LongWriter utilizează un batch size de 8, o rată de învățare de 1e-5 și o lungime de împachetare de 32k. Modelele sunt antrenate timp de 4 epoci, ceea ce necesită aproximativ 2.500-3.000 de pași.

Aliniere (DPO)

Pentru a îmbunătăți în continuare calitatea ieșirii modelului și pentru a-l face să respecte mai bine cerințele de lungime din instrucțiuni, LongWriter efectuează o optimizare directă a preferințelor (DPO) pe modelul LongWriter-9B antrenat supravegheat. Datele DPO provin din datele de chat DPO ale modelului GLM-4 (aproximativ 50k de intrări). În plus, LongWriter construiește 4k de perechi de date care vizează în mod specific instrucțiunile de scriere lungă. Pentru fiecare instrucțiune de scriere, LongWriter eșantionează 4 ieșiri de la LongWriter-9B și le evaluează conform unei metode specifice. Un scor de respectare a lungimii este, de asemenea, combinat și calculat. Ieșirea cu scorul cel mai ridicat este selectată ca exemplu pozitiv, iar una dintre celelalte trei ieșiri este aleasă aleatoriu ca exemplu negativ.

Modelul rezultat, LongWriter-9B-DPO, este antrenat timp de 250 de pași pe amestecul de date de mai sus. LongWriter urmează o rețetă specifică pentru antrenarea DPO.

LongWriter: Experimente și Rezultate

LongWriter evaluează 4 modele proprietare și 5 modele open-source pe LongBench-Write, alături de modelele LongWriter antrenate. Din cunoștințele LongWriter, Suri-IORPO este singurul model anterior care este, de asemenea, aliniat pentru generarea de text lung. Acesta este antrenat pe baza modelului Mistral-7B-Instruct-v0.2, utilizând LoRA. În conformitate cu configurația de evaluare pe LongWrite-Ruler, LongWriter setează temperatura de ieșire la 0,5 și configurează parametrul de generare maximă a modelului la valoarea maximă permisă de apelul său API. Pentru modelele open-source, acesta este setat la 32.768.

Majoritatea modelelor anterioare nu pot îndeplini cerința de lungime de peste 2.000 de cuvinte, în timp ce modelele LongWriter oferă în mod constant răspunsuri mai lungi și mai bogate la astfel de prompturi.

Observând scorul lungimii de ieșire SlS_lSl pentru prompturile din fiecare interval de lungime cerut, LongWriter constată că modelele anterioare au, în general, o performanță slabă (scor sub 70) pe prompturile din intervalul [2k, 4k), cu excepția lui Claude 3.5 Sonnet, care obține un scor decent. Pentru prompturile din intervalul [4k, 20k), aproape toate modelele anterioare sunt complet incapabile să atingă lungimea de ieșire cerută, obținând chiar și un scor de 0 (indicând că toate lungimile de ieșire sunt sub o treime din lungimea cerută). Prin adăugarea datelor de antrenare din LongWriter-6k, modelul antrenat de LongWriter poate să atingă în mod eficient lungimea de ieșire cerută, menținând în același timp o calitate bună, așa cum sugerează scorurile din intervalul [2k, 20k) și graficele de dispersie.

DPO îmbunătățește în mod eficient atât calitatea ieșirii modelului, cât și capacitatea sa de a respecta cerințele de lungime în generarea lungă.

Prin compararea scorurilor modelelor LongWriter-9B și LongWriter-9B-DPO, constatăm că DPO îmbunătățește semnificativ atât scorul Sl (+4%), cât și scorul Sq (+3%), iar îmbunătățirea este consistentă pe toate intervalele. Acest lucru demonstrează că, în scenariul de generare lungă, DPO ajută la îmbunătățirea calității ieșirii modelului și la alinierea mai bună a lungimii de ieșire a modelului cu lungimea cerută. Concluzia aceasta a fost observată recent și în Yuan et al. (2024) în generații mai scurte. De asemenea, notăm manual victoriile și înfrângerile perechi pentru GPT-4o și trei modele LongWriter pe ieșirile lor în LongBench-Write și visualizăm rezultatele în Figura 9. Putem vedea că oamenii preferă modelul antrenat cu DPO față de LongWriter-9B în 58% din cazuri. Mai mult, în ciuda faptului că are mai puțini parametri, LongWriter-9B-DPO obține un scor egal cu GPT-4o.

Lungimea de ieșire a modelelor LongWriter este extinsă la între 10k și 20k de cuvinte, în timp ce se necesită mai multe date cu ieșiri lungi pentru a susține ieșiri și mai lungi.

Pe baza testului LongWrite-Ruler, LongWriter prezintă, de asemenea, rezultatele testului LongWrite-Ruler pentru modelele LongWriter. Rezultatele sugerează că lungimile lor maxime de generare sunt între 10k și 20k de cuvinte. Lipsa de date SFT cu ieșiri lungi este probabil motivul principal care împiedică modelul să atingă lungimi de ieșire și mai lungi.

 

Gânduri Finale

În acest studiu, am discutat despre LongWriter, o pipeline bazată pe agenți care descompune sarcinile de generare ultra-lungă în sub-sarcini, identifică o limită de 2.000 de cuvinte de generare pentru modelele LLM actuale și propune extinderea ferestrei de ieșire a acestor modele prin adăugarea de date cu ieșiri lungi în timpul alinierii. Pentru a construi automat date cu ieșiri lungi, LongWriter dezvoltă AgentWrite, o pipeline bazată pe agenți care utilizează modele LLM standard pentru a crea ieșiri extinse și coerente. LongWriter reușește să extindă fereastra de ieșire a modelelor LLM actuale la peste 10.000 de cuvinte, menținând în același timp calitatea ieșirii. Pentru lucrări viitoare, LongWriter sugerează următoarele trei direcții: 1. Extindeți framework-ul AgentWrite pentru a construi date cu ieșiri și mai lungi, pentru a extinde în continuare fereastra de ieșire a modelelor LLM. 2. Rafinați framework-ul AgentWrite pentru a obține date cu ieșiri lungi de înaltă calitate. 3. Ieșirile mai lungi ale modelului aduc provocări pentru eficiența inferenței. Au fost propuse mai multe metode pentru a îmbunătăți eficiența inferenței. Este important să se investigheze cum aceste metode pot asigura o eficiență îmbunătățită a modelului fără a compromite calitatea generării.

"Un inginer de profesie, un scriitor din inimă". Kunal este un scriitor tehnic cu o dragoste și o înțelegere profundă a inteligenței artificiale și a învățării automate, dedicat simplificării conceptelor complexe din aceste domenii prin documentația sa captivantă și informativă.