Artificial Intelligence
LongWriter: Uwolnij generowanie ponad 10,000 XNUMX słów dzięki LLM o długim kontekście

Obecne modele wielkojęzykowe o długim kontekście (LLM) mogą przetwarzać dane wejściowe do 100,000 2,000 tokenów, ale mają trudności z generowaniem wyników przekraczających nawet skromną długość XNUMX słów. Kontrolowane eksperymenty ujawniają, że efektywna długość generacji modelu jest z natury ograniczona przez przykłady zaobserwowane podczas nadzorowane dostrajanie (SFT). Innymi słowy, to ograniczenie wyników wynika z niedoboru przykładów o długich wynikach w istniejących zbiorach danych SFT.
Ostatnie postępy w długokontekstowych LLM doprowadziły do opracowania modeli o znacznie zwiększonej pojemności pamięci, zdolnych do przetwarzania historii o długości przekraczającej 100,000 XNUMX tokenów. Jednak pomimo ich zdolności do obsługi obszernych danych wejściowych, obecne LLM o długim kontekście mają trudności z generowaniem równie długich wyników.
Aby zbadać to ograniczenie, DługiWriter bada maksymalną długość wyjściową najnowocześniejszych modeli o długim kontekście, za pomocą wielu zapytań wymagających odpowiedzi o różnej długości, np. „Napisz artykuł o historii Cesarstwa Rzymskiego na 10,000 2,000 słów”. Wyniki pokazują, że wszystkie modele konsekwentnie nie dają wyników dłuższych niż 1 słów. Tymczasem analiza dzienników interakcji użytkownika pokazuje, że ponad XNUMX% podpowiedzi użytkownika wyraźnie żąda wyników przekraczających ten limit, co podkreśla pilną potrzebę przezwyciężenia tego ograniczenia w bieżących badaniach.
Aby rozwiązać ten problem, LongWriter wprowadza AgentNapisz, potok oparty na agentach, który rozkłada bardzo długie zadania generowania na podzadania, umożliwiając gotowym LLM generowanie spójnych wyników przekraczających 20,000 6 słów. Wykorzystując AgentWrite, LongWriter konstruuje LongWriter-6,000k, zbiór danych zawierający 2 próbek danych SFT o długości wyjściowej od 32 tys. do 10,000 tys. słów. Włączając ten zbiór danych do uczenia modeli, LongWriter z powodzeniem skaluje długość wyjściową istniejących modeli do ponad XNUMX XNUMX słów, zachowując jednocześnie jakość wyjściową.
LongWriter opracowuje także LongBench-Write, kompleksowy test porównawczy do oceny możliwości generacji bardzo długich. Model parametrów 9B, dodatkowo ulepszony dzięki DPO, osiąga w tym benchmarku najnowocześniejszą wydajność, przewyższającą nawet znacznie większe, zastrzeżone modele.
W tym artykule omówimy framework LongWriter, zbadamy jego architekturę i porównamy jego wydajność z najnowocześniejszymi modelami dużych języków o długim kontekście. Zacznijmy.
LongWriter: Struktura generowania ponad 10,000 XNUMX słów
Niedawne postępy w długokontekstowych modelach wielkojęzykowych (LLM) doprowadziły do stworzenia modeli o znacznie zwiększonej pojemności pamięci, zdolnych do przetwarzania historii przekraczających 100,000 XNUMX tokenów. Pomimo tej możliwości obsługi obszernych danych wejściowych, bieżący długi kontekst LLM mają trudności z wygenerowaniem wyników o porównywalnej długości. Aby zbadać to ograniczenie, LongWriter sprawdza maksymalną długość wyjściową najnowocześniejszych modeli o długim kontekście za pomocą różnych zapytań wymagających różnej długości odpowiedzi, np. „Napisz artykuł o historii Cesarstwa Rzymskiego zawierający 10,000 2,000 słów”. Na podstawie ustaleń LongWriter zauważa, że żadne modele konsekwentnie nie generują wyników dłuższych niż 1 słów. Co więcej, analiza dzienników interakcji użytkownika wskazuje, że ponad XNUMX% zapytań użytkownika wyraźnie żąda wyników przekraczających ten limit, co podkreśla pilną potrzebę rozwiązania tego problemu w bieżących badaniach.
Badanie LongWriter ujawnia kluczową konkluzję: ograniczenie długości danych wyjściowych wynika przede wszystkim z charakterystyki zbiorów danych Supervised Fine-Tuning (SFT). LongWriter stwierdza, że maksymalna długość generacji modelu jest skutecznie ograniczona przez górny limit długości danych wyjściowych obecnych w zbiorze danych SFT, pomimo narażenia na znacznie dłuższe sekwencje w fazie wstępnego trenowania. To odkrycie wyjaśnia wszechobecny limit generacji 2,000 słów w obecnych modelach, ponieważ istniejące zbiory danych SFT rzadko zawierają przykłady przekraczające tę długość. Co więcej, ponieważ wiele zbiorów danych jest destylowanych z najnowocześniejszych modeli LLM, dziedziczą one również ograniczenie długości danych wyjściowych z modeli źródłowych.
Aby rozwiązać ten problem, LongWriter wprowadza AgentWrite, nowatorski system oparty na agentach, zaprojektowany do wykorzystania gotowych modeli LLM do automatycznego tworzenia rozbudowanych, spójnych tekstów. AgentWrite działa dwuetapowo: najpierw tworzy szczegółowy plan pisania, określając strukturę i docelową liczbę słów dla każdego akapitu na podstawie danych wprowadzonych przez użytkownika. Następnie, zgodnie z tym planem, instruuje model, aby sekwencyjnie generował treść dla każdego akapitu. Eksperymenty LongWriter potwierdzają, że AgentWrite może generować wysokiej jakości i spójne teksty o objętości do 20,000 XNUMX słów.
Bazując na potoku AgentWrite, LongWriter wykorzystuje GPT-4o do generowania 6,000 długich danych SFT o nazwie LongWriter-6k i dodaje te dane do trenowania istniejących modeli. Co istotne, LongWriter-6k z powodzeniem uwalnia zdolność modelu do generowania dobrze ustrukturyzowanych wyników o długości przekraczającej 10,000 0 słów. Aby rygorystycznie ocenić skuteczność tego podejścia, LongWriter opracowuje benchmark LongBench-Write, który zawiera zróżnicowany zestaw instrukcji pisania użytkownika, ze specyfikacjami długości wyników w zakresie od 500 do 500 słów, 2,000 do 2,000 słów, 4,000 do 4,000 słów i powyżej 9 słów. Ewaluacja LongBench-Write pokazuje, że model LongWriter o rozmiarze XNUMXB osiąga najnowocześniejszą wydajność, nawet w porównaniu z większymi, zastrzeżonymi modelami. LongWriter dodatkowo konstruuje dane dotyczące preferencji i wykorzystuje DPO, aby pomóc modelowi lepiej wykonywać długie instrukcje dotyczące pisania i generować treści pisemne wyższej jakości, czego skuteczność została również udowodniona eksperymentalnie.
Podsumowując, twórczość LongWritera wnosi następujące nowatorskie rozwiązania:
- Analiza ograniczeń długości generacji: LongWriter identyfikuje główny czynnik ograniczający długość wyjściową bieżących LLM o długim kontekście, którym jest ograniczenie długości wyjściowej w danych SFT.
- AgentNapisz: Aby pokonać to ograniczenie, LongWriter proponuje AgentWrite, który wykorzystuje podejście „dziel i zwyciężaj” z użyciem gotowych LLM do automatycznego konstruowania danych SFT z bardzo długimi danymi wyjściowymi. Korzystając z tej metody, LongWriter konstruuje zbiór danych LongWriter-6k.
- Skalowanie rozmiaru okna wyjściowego bieżących LLM: LongWriter włącza zestaw danych LongWriter-6k do swoich danych SFT, skutecznie skalując rozmiar okna wyjściowego istniejących modeli do ponad 10,000 XNUMX słów bez utraty jakości wydruku. LongWriter pokazuje, że DPO dodatkowo zwiększa możliwości modelu w zakresie pisania długich tekstów.
AgentWrite: automatyczna konstrukcja danych
Aby wykorzystać gotowe modele LLM do automatycznego generowania danych SFT z dłuższymi wynikami, LongWriter projektuje AgentWrite, potok agentowy w stylu „dziel i zwyciężaj”. AgentWrite najpierw dzieli długie zadania pisania na wiele podzadań, z których każde wymaga od modelu napisania tylko jednego akapitu. Następnie model wykonuje te podzadania sekwencyjnie, a LongWriter łączy wyniki podzadań, aby uzyskać ostateczny, długi wynik. Takie podejście do podziału złożonego zadania na wiele podzadań z wykorzystaniem agentów LLM zostało już zastosowane w różnych dziedzinach, takich jak rozwiązywanie problemów, tworzenie oprogramowania i ewaluacja modeli. Praca LongWriter jest pierwszą, która bada integrację planowania, aby umożliwić modelom wykonywanie złożonych zadań pisania w długich formach. Każdy krok w AgentWrite został szczegółowo opisany poniżej.
Krok I: Zaplanuj
Zainspirowany procesem myślowym pisarzy, którzy zazwyczaj zaczynają od sporządzenia ogólnego planu długich zadań pisarskich, LongWriter wykorzystuje możliwości planowania LLM, aby wydrukować taki konspekt pisania, biorąc pod uwagę instrukcję pisania. Plan ten obejmuje główne wymagania dotyczące treści i liczby słów w każdym akapicie. Podpowiedź używana przez LongWriter jest następująca:
„Pomóż mi podzielić następującą długą instrukcję pisania na wiele podzadań. Każde podzadanie będzie przewodnikiem po pisaniu jednego akapitu eseju i powinno zawierać główne punkty i wymagania dotyczące liczby słów w tym akapicie. Instrukcja pisania jest następująca: {Instrukcja użytkownika}. Podziel je w następujący sposób, tak aby każde podzadanie zajmowało jedną linię:
Akapit 1 – Główny punkt: [Opisz szczegółowo główny punkt akapitu] – Liczba słów: [Wymagana liczba słów, np. 400 słów]
Akapit 2 – Główny punkt: [Opisz szczegółowo główny punkt akapitu] – Liczba słów: [Wymóg dotyczący liczby słów, np. 1000 słów].Upewnij się, że każde podzadanie jest jasne i konkretne, a wszystkie podzadania obejmują całą treść instrukcji pisania. Nie dziel zbyt drobno podzadań; akapit każdego podzadania powinien mieć nie mniej niż 200 słów i nie więcej niż 1000 słów. Nie publikuj żadnych innych treści.”
Krok II: Napisz
Po otrzymaniu planu pisania z kroku I LongWriter wywołuje LLM szeregowo, aby ukończyć każde podzadanie, generując treść pisemną sekcja po sekcji. Aby zapewnić spójność wyników, gdy LongWriter wywołuje model w celu wygenerowania n-tej sekcji, wprowadzane są również poprzednio wygenerowane n-1 sekcje, umożliwiając modelowi kontynuację zapisywania następnej sekcji w oparciu o istniejącą historię pisania. Chociaż ten sposób szeregowy uniemożliwia równoległe wywołania modelu w celu jednoczesnego wykonania wielu podzadań, a długość danych wejściowych staje się dłuższa, LongWriter wykazuje podczas walidacji, że ogólna spójność i jakość zapisu uzyskanego w ten sposób są znacznie lepsze od wyników generowanych równolegle. Monit używany przez LongWriter to:
„Jesteś doskonałym asystentem pisarskim. Przekażę Ci oryginalną instrukcję pisania i zaplanowane przeze mnie etapy pisania. Przekażę Ci także tekst, który już napisałem. Pomóż mi kontynuować pisanie następnego akapitu w oparciu o instrukcję pisania, kroki pisania i już napisany tekst.
Instrukcja pisania:
{Instrukcja użytkownika}
Kroki pisania:
{Plan pisania wygenerowany w kroku I}
Już napisany tekst:
{Poprzednie wygenerowane (n-1) akapity}
Proszę zintegrować oryginalną instrukcję pisania, kroki pisania i już napisany tekst, a teraz kontynuuj pisanie {Plan n-tego akapitu, tj. n-tej linii planu pisania}”.
Walidacja
LongWriter testuje długość generowania i jakość proponowanej metody AgentWrite na dwóch długich zestawach danych do zapisu. Pierwsza z nich, LongWrite-Ruler, służy do dokładnego pomiaru długości wyniku, jaki może zapewnić dana metoda. Drugi, LongBench-Write, służy głównie do oceny zgodności treści wygenerowanej przez model z instrukcjami użytkownika pod względem długości i jakości zapisu.
Zapis LongBench: Aby ocenić skuteczność modelu w przypadku bardziej zróżnicowanego zakresu długich instrukcji pisania, LongWriter zbiera 120 różnych podpowiedzi użytkowników, z czego 60 w języku chińskim i 60 w języku angielskim. Aby lepiej ocenić, czy długość wyjściowa modelu spełnia wymagania użytkownika, LongWriter upewnia się, że wszystkie te instrukcje zawierają wyraźne wymagania dotyczące liczby słów. Instrukcje te są podzielone na cztery podzbiory w zależności od wymagań dotyczących liczby słów: 0–500 słów, 500–2,000 słów, 2,000–4,000 słów i ponad 4,000 słów. Ponadto instrukcje są podzielone na siedem typów w zależności od typu wyników: literatura i pisanie kreatywne, akademickie i monograficzne, popularnonaukowe, pisanie funkcjonalne, raporty z wiadomości, forum społeczności oraz edukacja i szkolenia.
Podczas oceny LongWriter przyjmuje dwie metryki: jedną do oceniania długości wyjściowej, a drugą do oceniania jakości wyjściowej. Długość wyjściowa modelu jest oceniana na podstawie tego, jak blisko jest wymagań określonych w instrukcji. Jeśli chodzi o jakość wyników, firma LongWriter stosuje podejście LLM jako sędziego, wybierając najnowocześniejsze Model GPT-4o oceniać wyniki w sześciu wymiarach: trafność, dokładność, spójność, klarowność, szerokość i głębokość oraz wrażenia z czytania. Wynik końcowy oblicza się poprzez uśrednienie wyniku za długość i wyniku za jakość.
Wyniki walidacji: LongWriter przedstawia pomiar długości wyjściowej w LongWrite-Ruler i stwierdza, że AgentWrite skutecznie zwiększa długość wyjściową GPT-4o z maksymalnie 2 tys. słów do około 20 tys. słów. LongWriter ocenia także jakość wydruku i zgodność z wymaganą długością wydruku w programie LongBench-Write, pokazując, że GPT-4o może z powodzeniem wykonywać zadania o długości wyjściowej poniżej 2,000 słów, oceniając wydajność AgentWrite.
Dostrajanie nadzorowane
LongWriter prowadzi szkolenia w oparciu o dwa najnowsze modele open source, a mianowicie GLM-4-9B i Llama-3.1-8B. Obydwa są modelami podstawowymi i obsługują okno kontekstowe o wielkości do 128 tys. tokenów, co czyni je naturalnie odpowiednimi do trenowania na długich wynikach. Aby szkolenie było bardziej efektywne, LongWriter stosuje szkolenie w zakresie pakowania z ważeniem strat. Efektem szkolenia na obu modelach są dwa modele: LongWriter-9B (w skrócie GLM-4-9B-LongWriter) i LongWriter-8B (w skrócie Llama-3.1-8B-LongWriter).
Jednocześnie LongWriter zauważa, że jeśli strata zostanie uśredniona dla sekwencji, tj. wyliczona zostanie średnia ze średniej straty każdej sekwencji w partii, udział każdego tokena docelowego w stracie w długich danych wyjściowych byłby znacznie mniejszy niż w przypadku danych z krótszymi danymi wyjściowymi. Eksperymenty LongWritera wykazały również, że prowadzi to do suboptymalnej wydajności modelu w zadaniach z długimi danymi wyjściowymi. Dlatego LongWriter wybiera strategię ważenia strat, która uśrednia stratę dla tokena, gdzie strata jest obliczana jako średnia strat dla wszystkich tokenów docelowych w danej partii.
Wszystkie modele są szkolone przy użyciu węzła z procesorami graficznymi 8xH800 80G i funkcją odciążania procesora DeepSpeed+ZeRO3+. LongWriter wykorzystuje wielkość partii 8, szybkość uczenia się 1e-5 i długość pakowania 32 tys. Modele są trenowane przez 4 epoki, co obejmuje około 2,500-3,000 kroków.
Wyrównanie (DPO)
Aby jeszcze bardziej poprawić jakość wyjściową modelu i zwiększyć jego zdolność do przestrzegania ograniczeń długości zawartych w instrukcjach, LongWriter przeprowadza bezpośrednią optymalizację preferencji (DPO) na nadzorowanym, dostrojonym modelu LongWriter-9B. Dane DPO pochodzą z danych DPO czatu GLM-4 (około 50 tys. wpisów). Dodatkowo LongWriter konstruuje 4 tys. par danych specjalnie przeznaczonych do pisania długich instrukcji. Dla każdej instrukcji zapisu LongWriter próbkuje 4 dane wyjściowe z LongWriter-9B i ocenia je zgodnie z określoną metodą. Obliczany wynik wynikający z długości jest również łączony. Następnie jako próbkę pozytywną wybierany jest wynik, który uzyskał najwyższy wynik, a jeden z pozostałych trzech wyników jest losowo wybierany jako próbka ujemna.
Powstały model, LongWriter-9B-DPO, jest szkolony przez 250 kroków na powyższej mieszaninie danych. LongWriter stosuje konkretny przepis na szkolenie DPO.
LongWriter: Eksperymenty i wyniki
LongWriter ocenia 4 zastrzeżone modele i 5 modeli open-source w LongBench-Write, wraz z wytrenowanymi modelami LongWriter. Według najlepszej wiedzy LongWriter, Suri-IORPO jest jedynym wcześniejszym modelem, który jest również dostosowany do generowania długich tekstów. Jest on trenowany w oparciu o Mistral-7B-Instruct-v0.2 z wykorzystaniem LoRA. Zgodnie z konfiguracją ewaluacji w LongWrite-Ruler, LongWriter ustawia temperaturę wyjściową na 0.5 i konfiguruje parametr generacji maksymalnej liczby tokenów modelu na maksymalną wartość dozwoloną przez wywołanie API. W przypadku modeli open-source wartość ta wynosi 32,768 XNUMX.
Większość poprzednich modeli nie była w stanie spełnić wymagania dotyczącego długości ponad 2,000 słów, podczas gdy modele LongWriter konsekwentnie zapewniają dłuższe i bogatsze odpowiedzi na takie monity.
Obserwując wynik długości wyjściowej SlS_lSl dla podpowiedzi w każdym wymaganym zakresie długości, LongWriter stwierdza, że poprzednie modele generalnie słabo sobie radzą (osiągając wynik poniżej 70) z podpowiedziami w zakresie [2k, 4k], a jedynie Claude 3.5 Sonnet uzyskał przyzwoity wynik. W przypadku podpowiedzi w zakresie [4k, 20k] prawie wszystkie poprzednie modele nie są w stanie osiągnąć docelowej długości wyjściowej, nawet uzyskując wynik 0 (co oznacza, że wszystkie długości wyjściowe są mniejsze niż jedna trzecia wymaganej długości). Dzięki dodaniu danych treningowych z LongWriter-6k, wytrenowany model LongWriter może skutecznie osiągnąć wymaganą długość wyjściową, zachowując jednocześnie dobrą jakość, co sugerują wyniki w zakresie [2k, 20k] i wykresy punktowe.
DPO skutecznie poprawia zarówno jakość wyjściową modelu, jak i jego zdolność do spełniania wymagań dotyczących długości w długiej generacji.
Porównując wyniki LongWriter-9B i LongWriter9B-DPO, stwierdzamy, że DPO znacząco poprawia zarówno wyniki Sl (+4%), jak i Sq (+3%), a poprawa jest stała we wszystkich zakresach. Pokazuje to, że w scenariuszu długiej generacji DPO nadal pomaga poprawić jakość wyjściową modelu i może lepiej dostosować długość wyjściową modelu do 8 Preprint Rysunek 7: Skumulowana średnia strata NLL GLM4-9B i Llama-3.1-8B w różnych pozycjach LongWriter wyjścia modeli. Rysunek 8: Wyniki testu LongWrite-Ruler modeli LongWriter, pokazujące ich maksymalną długość generowania między 10 20 a 2024 4 słów. żądaną długość. Ten ostatni wniosek zaobserwowano ostatnio także w pracy Yuan i in. (9) w krótszych pokoleniach. Ręcznie adnotujemy również pary wygranych i przegranych dla GPT-9o i trzech modeli longwriter na ich wynikach w LongBench-Write i wizualizujemy wyniki na rysunku 58. Widzimy, że ludzie wolą model wytrenowany przez DPO od LongWriter-9B w 4% przypadków sprawy. Co więcej, pomimo mniejszej liczby parametrów, LongWriter-XNUMXB-DPO osiąga remis z GPT-XNUMXo.
Limit długości wyjściowej modeli LongWriter został zwiększony do 10 tys. do 20 tys. słów, natomiast w przypadku długich wyjść wymagana jest większa ilość danych do obsługi jeszcze dłuższych wyników.
Po testach LongWrite-Ruler przedstawiamy również wyniki testu LongWrite-Ruler modeli LongWriter. Wyniki sugerują, że maksymalna długość generacji wynosi od 10 do 20 tys. słów. Brak danych SFT z dłuższymi wynikami jest prawdopodobnie głównym powodem uniemożliwiającym osiągnięcie przez model dłuższych długości wyjściowych.
Uwagi końcowe
W tej pracy mówiliśmy o LongWriter, potoku opartym na agentach, który rozkłada bardzo długie zadania generowania na podzadania, określa limit generowania słów wynoszący 2,000 dla obecnych LLM i proponuje zwiększenie rozmiaru okna wyjściowego poprzez dodanie długich danych wyjściowych podczas wyrównywania . Aby automatycznie konstruować dane o długim czasie trwania, LongWriter opracowuje AgentWrite, potok oparty na agentach, który wykorzystuje gotowe LLM do tworzenia rozszerzonych, spójnych wyników. LongWriter z powodzeniem skaluje rozmiar okna wyjściowego bieżących LLM do ponad 10,000 6 słów za pomocą skonstruowanego LongWriter-1k. Szeroko zakrojone badania ablacyjne na danych szkoleniowych wykazują skuteczność tego podejścia. Do przyszłych prac LongWriter sugeruje następujące trzy kierunki: 2. Rozwiń środowisko AgentWrite, aby konstruować dane z dłuższymi danymi wyjściowymi, aby jeszcze bardziej zwiększyć rozmiar okna wyjściowego LLM. 3. Udoskonal środowisko AgentWrite, aby uzyskać wyższą jakość danych wyjściowych. XNUMX. Dłuższe wyniki modelu stwarzają wyzwania dla efektywności wnioskowania. Zaproponowano kilka metod poprawy efektywności wnioskowania. Warto zbadać, w jaki sposób metody te mogą zapewnić lepszą wydajność modelu bez pogarszania jakości generacji.