Sztuczna inteligencja
LongWriter: Uwalnianie generacji 10 000+ słów z długich kontekstów LLM
Bieżące duże modele językowe o długim kontekście (LLM) mogą przetwarzać dane wejściowe o długości do 100 000 tokenów, jednak mają trudności z generowaniem danych wyjściowych przekraczających nawet umiarkowaną długość 2 000 słów. Kontrolowane eksperymenty ujawniają, że skuteczna długość generacji modelu jest wewnętrznie ograniczona przez przykłady widziane podczas nadzorowanego dostrajania (SFT). Innymi słowy, ten limit danych wyjściowych wynika z niedoboru długich przykładów wyjściowych w istniejących zestawach danych SFT.
Ostatnie postępy w długich modelach kontekstowych LLM doprowadziły do opracowania modeli o znacznie rozszerzonych pojemnościach pamięci, zdolnych do przetwarzania historii przekraczającej 100 000 tokenów długości. Jednak pomimo ich zdolności do obsługi obszernych danych wejściowych, bieżące długie modele kontekstowe LLM mają trudności z generowaniem równie długich danych wyjściowych.
Aby zbadać ten limit, LongWriter sprawdza maksymalną długość danych wyjściowych modeli o długim kontekście z wieloma zapytaniami, które wymagają odpowiedzi o różnej długości, takich jak „Napisz 10 000-słową artykuł o historii Cesarstwa Rzymskiego”. Wyniki pokazują, że wszystkie modele konsekwentnie nie są w stanie wyprodukować danych wyjściowych dłuższych niż 2 000 słów. Tymczasem analiza logów interakcji użytkowników ujawnia, że ponad 1% prompty użytkowników wyraźnie żąda danych wyjściowych przekraczających ten limit, podkreślając pilną potrzebę w bieżących badaniach, aby przezwyciężyć ten limit.
Aby rozwiązać ten problem, LongWriter wprowadza AgentWrite, agentowy potok, który rozkłada ultra-długie zadania generacji na podzadania, umożliwiając modelom LLM generowanie spójnych danych wyjściowych przekraczających 20 000 słów. Wykorzystując AgentWrite, LongWriter konstruuje LongWriter-6k, zestaw danych zawierający 6 000 przykładów danych SFT o długości wyjściowej od 2k do 32k słów. Poprzez włączenie tego zestawu danych do szkolenia modelu, LongWriter udaje się skalować długość danych wyjściowych istniejących modeli do ponad 10 000 słów, przy zachowaniu jakości danych wyjściowych.
LongWriter również rozwija LongBench-Write, kompleksową benchmarkę do oceny możliwości generacji ultra-długich. Model 9B parametrów, dalej udoskonalony za pomocą DPO, osiąga najlepsze wyniki w tej benchmarkce, przewyższając nawet znacznie większe modele własnościowe.
W tym artykule omówimy ramę LongWriter, zbadamy jego architekturę i porównamy jego wyniki z najlepszymi modelami LLM o długim kontekście. Zaczynajmy.
LongWriter: Ramy generacji 10 000+ słów
Ostatnie postępy w długich modelach kontekstowych LLM doprowadziły do stworzenia modeli o znacznie zwiększonych pojemnościach pamięci, zdolnych do przetwarzania historii przekraczającej 100 000 tokenów. Pomimo ich zdolności do obsługi obszernych danych wejściowych, bieżące modele LLM o długim kontekście mają trudności z generowaniem danych wyjściowych porównywalnej długości. Aby zbadać ten limit, LongWriter sprawdza maksymalną długość danych wyjściowych modeli o długim kontekście za pomocą różnych zapytań, które wymagają różnej długości odpowiedzi, takich jak „Napisz 10 000-słową artykuł o historii Cesarstwa Rzymskiego”. Na podstawie wyników LongWriter obserwuje, że wszystkie modele konsekwentnie nie są w stanie wyprodukować danych wyjściowych dłuższych niż 2 000 słów. Dodatkowo, analiza logów interakcji użytkowników wskazuje, że ponad 1% prompty użytkowników wyraźnie żąda danych wyjściowych przekraczających ten limit, podkreślając pilną potrzebę w bieżących badaniach, aby rozwiązać ten problem.

Badanie LongWriter ujawnia kluczową wskazówkę: ograniczenie długości danych wyjściowych jest głównie zakorzenione w charakterystyce zestawów danych SFT. Konkretnie, LongWriter stwierdza, że maksymalna długość generacji modelu jest skutecznie ograniczona przez górny limit długości wyjściowych obecnych w jego zestawie danych SFT, pomimo jego narażenia na znacznie dłuższe sekwencje podczas fazy pre-trenowania. To odkrycie wyjaśnia powszechny limit generacji 2 000 słów wśród bieżących modeli, ponieważ istniejące zestawy danych SFT rzadko zawierają przykłady przekraczające tę długość. Dodatkowo, ponieważ wiele zestawów danych jest destylowanych z modeli LLM, one również dziedziczą limit długości wyjściowej od swoich modeli źródłowych.
Aby rozwiązać ten problem, LongWriter wprowadza AgentWrite, nowy agentowy potok, który wykorzystuje modele LLM do automatycznego konstruowania rozszerzonych, spójnych danych wyjściowych. AgentWrite działa w dwóch etapach: Po pierwsze, tworzy szczegółowy plan pisarski, określający strukturę i wymagania dotyczące liczby słów dla każdego akapitu na podstawie danych wejściowych użytkownika. Następnie, zgodnie z tym planem, prosi model o generowanie treści dla każdego akapitu w sekwencji. Eksperymenty LongWriter potwierdzają, że AgentWrite może produkować wysokiej jakości i spójne dane wyjściowe o długości do 20 000 słów.
Wykorzystując potok AgentWrite, LongWriter konstruuje LongWriter-6k, zestaw danych zawierający 6 000 przykładów danych SFT o długości wyjściowej od 2k do 32k słów. Poprzez włączenie tego zestawu danych do szkolenia modelu, LongWriter udaje się skalować długość danych wyjściowych istniejących modeli do ponad 10 000 słów, przy zachowaniu jakości danych wyjściowych. Aby dokładnie ocenić skuteczność tego podejścia, LongWriter rozwija benchmarkę LongBench-Write, która zawiera zróżnicowany zestaw instrukcji pisarskich użytkowników, z określeniami długości danych wyjściowych od 0-500 słów, 500-2 000 słów, 2 000-4 000 słów i powyżej 4 000 słów. Ocena na LongBench-Write pokazuje, że model LongWriter o rozmiarze 9B osiąga najlepsze wyniki, nawet w porównaniu z większymi modelami własnościowymi.
Podsumowując, praca LongWriter wnosi następujące nowe wkłady:
- Analiza ograniczeń długości generacji: LongWriter identyfikuje główny czynnik ograniczający długość danych wyjściowych bieżących modeli LLM, którym jest ograniczenie długości wyjściowej w zestawach danych SFT.
- AgentWrite: Aby przezwyciężyć ten limit, LongWriter proponuje AgentWrite, który używa podejścia divide-and-conquer z modelami LLM, aby automatycznie konstruować dane SFT o ultra-długich danych wyjściowych. Wykorzystując tę metodę, LongWriter konstruuje zestaw danych LongWriter-6k.
- Skalowanie rozmiaru okna wyjściowego bieżących modeli LLM: LongWriter włącza zestaw danych LongWriter-6k do swoich danych SFT, skutecznie skalując rozmiar okna wyjściowego istniejących modeli do 10 000+ słów bez kompromisowania jakości danych wyjściowych. LongWriter pokazuje, że DPO dalej udoskonala możliwości modelu w generowaniu długich tekstów.
AgentWrite: Automatyczna konstrukcja danych
Aby wykorzystać modele LLM do automatycznego generowania danych SFT o dłuższych danych wyjściowych, LongWriter projektuje AgentWrite, potok agentowy w stylu divide-and-conquer. AgentWrite najpierw rozkłada długie zadania pisarskie 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 dane wyjściowe podzadań, aby uzyskać ostateczne długie dane wyjściowe. Taki podejście rozkładania złożonego zadania na wiele podzadań za pomocą agentów LLM zostało już zastosowane w różnych dziedzinach, takich jak rozwiązywanie problemów, rozwój oprogramowania i ocena modeli. Praca LongWriter jest pierwszą, która bada integrację planowania, aby umożliwić modelom wykonanie złożonych zadań pisarskich o długiej formie. Każdy krok AgentWrite jest szczegółowo opisany poniżej.

Krok I: Plan
Zainspirowany procesem myślowym ludzkich pisarzy, którzy zwykle zaczynają od stworzenia ogólnego planu dla zadań pisarskich o długiej formie, LongWriter wykorzystuje możliwości planowania modeli LLM, aby wygenerować taki plan pisarski dla instrukcji pisarskich. Ten plan zawiera główną treść i wymagania dotyczące liczby słów dla każdego akapitu. Prompt używany przez LongWriter jest następujący:
“Potrzebuję Twojej pomocy, aby rozłożyć następujące długie zadanie pisarskie na wiele podzadań. Każde podzadanie będzie przewodniczyć napisaniu jednego akapitu w eseju i powinno zawierać główne punkty i wymagania dotyczące liczby słów dla tego akapitu. Instrukcja pisarska jest następująca: {Instrukcja użytkownika}. Proszę ją rozłożyć w następującym formacie, z każdym podzadaniem zajmującym jedną linię:
Akapit 1 – Główny punkt: [Opisz główny punkt akapitu, szczegółowo] – Liczba słów: [Wymagania dotyczące liczby słów, np. 400 słów]Akapit 2 – Główny punkt: [Opisz główny punkt akapitu, szczegółowo] – Liczba słów: [Wymagania dotyczące liczby słów, np. 1000 słów].
Upewnij się, że każde podzadanie jest klarowne i szczegółowe, i że wszystkie podzadania obejmują całą treść instrukcji pisarskiej. Nie dziel podzadań zbyt drobno; każde podzadanie powinno mieć co najmniej 200 słów i nie więcej niż 1000 słów. Nie generuj żadnej innej treści.”
Krok II: Pisanie
Po uzyskaniu planu pisarskiego z Kroku I, LongWriter wywołuje model LLM sekwencyjnie, aby wykonać każde podzadanie, generując treść sekcji po sekcji. Aby zapewnić spójność danych wyjściowych, gdy LongWriter wywołuje model, aby wygenerować n-tą sekcję, wcześniej wygenerowane n-1 sekcje są również wprowadzane, umożliwiając modelowi kontynuowanie pisania następnej sekcji na podstawie istniejącej historii pisarskiej. Chociaż ten sekwencyjny sposób uniemożliwia równoległe wywoływanie modelu do wykonania wielu podzadań jednocześnie, i długość wejścia staje się dłuższa, LongWriter pokazuje w walidacji, że ogólna spójność i jakość pisarska uzyskanych w ten sposób danych wyjściowych są znacznie lepsze niż dane wyjściowe wygenerowane równolegle. Prompt używany przez LongWriter jest:
“Jesteś doskonałym asystentem pisarskim. Będę Ci udostępniał oryginalną instrukcję pisarską i moje zaplanowane kroki pisarskie. Będę Ci również udostępniał tekst, który już napisałem. Proszę, pomóż mi kontynuować pisanie następnego akapitu na podstawie instrukcji pisarskiej, kroków pisarskich i już napisanego tekstu.
Instrukcja pisarska:{Instrukcja użytkownika}Kroki pisarskie:{Plan pisarski wygenerowany w Kroku I}Już napisany tekst:{Poprzednio wygenerowane (n-1) akapity}
Proszę zintegrować oryginalną instrukcję pisarską, kroki pisarskie i już napisany tekst, i teraz kontynuuj pisanie {Planu dla n-tego akapitu, czyli n-tego wiersza w planie pisarskim}.”
Walidacja
LongWriter testuje długość generacji i jakość proponowanego podejścia AgentWrite na dwóch zestawach danych pisarskich o długiej formie. Pierwszy, LongWrite-Ruler, służy do pomiaru dokładnej długości danych wyjściowych, które może dostarczyć to podejście. Drugi, LongBench-Write, jest głównie używany do oceny, jak dobrze dane wyjściowe modelu są zgodne z instrukcjami użytkowników pod względem długości i jakości pisarskiej.
LongBench-Write: Aby ocenić wyniki modelu na bardziej zróżnicowanym zestawie instrukcji pisarskich, LongWriter zbiera 120 różnych prompty użytkowników, z 60 w języku chińskim i 60 w języku angielskim. Aby lepiej ocenić, czy długość danych wyjściowych modelu spełnia wymagania użytkowników, LongWriter upewnia się, że wszystkie te instrukcje zawierają wyraźne wymagania dotyczące liczby słów. Instrukcje te są podzielone na cztery podzbiory na podstawie wymagań dotyczących liczby słów: 0-500 słów, 500-2 000 słów, 2 000-4 000 słów i powyżej 4 000 słów. Dodatkowo, instrukcje są klasyfikowane na siedem typów na podstawie typu danych wyjściowych: Literatura i twórcze pisanie, Akademickie i monograficzne, Popularna nauka, Funkcjonalne pisanie, Raporty prasowe, Forum społecznościowe i Edukacja i szkolenia.
Podczas oceny, LongWriter przyjmuje dwie metryki: jedną do oceny długości danych wyjściowych i drugą do oceny jakości danych wyjściowych. Długość danych wyjściowych modelu jest oceniana na podstawie tego, jak blisko jest ona do wymagań określonych w instrukcjach. Dla jakości danych wyjściowych, LongWriter używa podejścia LLM-as-a-judge, wybierając model GPT-4o, aby ocenić dane wyjściowe w sześciu wymiarach: Relevancja, Dokładność, Spójność, Jasność, Szerokość i głębokość, oraz Doświadczenie czytelnika. Ostateczny wynik jest obliczany przez średnią ważoną wyniku długości i wyniku jakości.
Wyniki walidacji: LongWriter prezentuje pomiar długości danych wyjściowych na LongWrite-Ruler i stwierdza, że AgentWrite skutecznie rozszerza długość danych wyjściowych modelu GPT-4o z maksymalnej długości 2k słów do około 20k słów. LongWriter również ocenia jakość danych wyjściowych i zgodność z wymaganiami dotyczącymi długości danych wyjściowych na LongBench-Write, pokazując, że model GPT-4o może skutecznie wykonać zadania o danych wyjściowych krótszych niż 2 000 słów przy ocenie wyników AgentWrite.

Nadzorowane dostrajanie
LongWriter prowadzi szkolenie na podstawie dwóch najnowszych modeli open-source, a mianowicie GLM-4-9B i Llama-3.1-8B. Oba te modele są modelami podstawowymi i obsługują okno kontekstowe o długości do 128k tokenów, co czyni je naturalnie odpowiednimi do szkolenia na długich danych wyjściowych. Aby uczynić szkolenie bardziej efektywnym, LongWriter przyjmuje podejście szkolenia z ważonymi stratami. Szkolenie na tych dwóch modelach skutkuje dwoma modelami: LongWriter-9B (skrót dla GLM-4-9B-LongWriter) i LongWriter-8B (skrót dla Llama-3.1-8B-LongWriter).
Jednocześnie LongWriter zauważa, że jeśli strata jest uśredniana według sekwencji, czyli biorąc średnią straty każdej sekwencji w partiach, wkład każdego tokenu docelowego do straty w długich danych wyjściowych będzie znacznie mniejszy niż w przypadku krótszych danych wyjściowych. W eksperymentach LongWriter stwierdza również, że prowadzi to do nieoptymalnej wydajności modelu w zadaniach o długich danych wyjściowych. Dlatego LongWriter wybiera strategię ważonej straty, która uśrednia stratę według tokenu, gdzie strata jest obliczana jako średnia strat wszystkich tokenów docelowych w partiach.
Wszystkie modele są szkolone na nodzie z 8xH800 80G GPU i DeepSpeed+ZeRO3+CPU offloading. LongWriter używa partii o rozmiarze 8, tempa uczenia 1e-5 i długości pakowania 32k. Modele są szkolone przez 4 epoki, co zajmuje około 2 500-3 000 kroków.
Wyrównanie (DPO)
Aby dalej poprawić jakość danych wyjściowych modelu i udoskonalić jego zdolność do spełniania wymagań dotyczących długości w instrukcjach, LongWriter wykonuje bezpośrednią optymalizację preferencji (DPO) na modelu LongWriter-9B. Dane DPO pochodzą z danych DPO modelu GLM-4 (około 50k wpisów). Dodatkowo, LongWriter konstruuje 4k par danych, które specjalnie dotyczą instrukcji pisarskich o długiej formie. Dla każdej instrukcji pisarskiej, LongWriter pobiera 4 dane wyjściowe z modelu LongWriter-9B i ocenia te dane wyjściowe zgodnie z określoną metodą. Wynik jest obliczany przez średnią ważoną wyniku długości i wyniku jakości.
Wynikowy model, LongWriter-9B-DPO, jest szkolony przez 250 kroków na powyższym zestawie danych. LongWriter postępuje zgodnie z określoną receptą szkolenia DPO.
LongWriter: Eksperymenty i wyniki
LongWriter ocenia 4 modele własnościowe i 5 modeli open-source na LongBench-Write, wraz z wytrenowanymi modelami LongWriter. Zgodnie z najlepszą wiedzą LongWriter, Suri-IORPO jest jedynym modelem, który również jest wyrównany do generacji długich tekstów. Został on wytrenowany na podstawie modelu Mistral-7B-Instruct-v0.2 przy użyciu LoRA. Zgodnie z ustawieniami oceny na LongWrite-Ruler, LongWriter ustawia temperaturę wyjściową na 0,5 i konfiguruje parametr maksymalnej liczby tokenów generowanych przez model do maksymalnej wartości dozwolonej przez jego interfejs API. Dla modeli open-source jest to ustawione na 32 768.

Największość poprzednich modeli nie jest w stanie spełnić wymagań dotyczących długości powyżej 2 000 słów, podczas gdy modele LongWriter konsekwentnie dostarczają dłuższe i bogatsze odpowiedzi na takie prompty.
Obserwując wynik długości danych wyjściowych SlS_lSl dla prompty w każdym wymaganym zakresie długości, LongWriter stwierdza, że poprzednie modele generalnie wykonują się słabo (uzyskując wynik poniżej 70) na prompty w zakresie [2k, 4k), z wyjątkiem modelu Claude 3.5 Sonnet, który osiąga przyzwoity wynik. Dla prompty w zakresie [4k, 20k), prawie wszystkie poprzednie modele są całkowicie niezdolne do osiągnięcia wymaganej długości danych wyjściowych, uzyskując nawet wynik 0 (co oznacza, że wszystkie długości danych wyjściowych są krótsze niż jedna trzecia wymaganej długości). Poprzez dodanie danych szkoleniowych z LongWriter-6k, wytrenowany model LongWriter jest w stanie skutecznie osiągnąć wymaganą długość danych wyjściowych, przy zachowaniu dobrej jakości.

DPO skutecznie poprawia zarówno jakość danych wyjściowych modelu, jak i jego zdolność do spełniania wymagań dotyczących długości w instrukcjach generacji długich.
Porównując wyniki modeli LongWriter-9B i LongWriter-9B-DPO, stwierdza się, że DPO znacznie poprawia zarówno wynik Sl (+4%), jak i wynik Sq (+3%), a poprawa jest spójna we wszystkich zakresach. To pokazuje, że w scenariuszu generacji długich, DPO nadal pomaga poprawić jakość danych wyjściowych modelu i może lepiej wyrównywać długość danych wyjściowych modelu z wymaganą długością. Ten wniosek został również ostatnio potwierdzony w pracy Yuan et al. (2024) w przypadku krótszych generacji. Również ręcznie anotujemy wyniki porównawcze dla modeli GPT-4o i trzech modeli LongWriter na ich danych wyjściowych w LongBench-Write i wizualizujemy wyniki na rysunku 9. Widzimy, że ludzie preferują model wytrenowany z DPO w 58% przypadków. Co więcej, pomimo mniejszej liczby parametrów, LongWriter-9B-DPO osiąga remis z modelem GPT-4o.

Limit długości danych wyjściowych modeli LongWriter jest rozszerzony do zakresu od 10k do 20k słów, podczas gdy więcej danych o długich danych wyjściowych jest wymaganych do obsługi jeszcze dłuższych danych wyjściowych.
Po testach LongWrite-Ruler, LongWriter również prezentuje wyniki testów LongWrite-Ruler dla modeli LongWriter. Wyniki sugerują, że ich maksymalne długości generacji są pomiędzy 10k a 20k słów. Brak danych SFT o dłuższych danych wyjściowych jest prawdopodobnie głównym powodem, który uniemożliwia modelowi osiągnięcie jeszcze dłuższych długości danych wyjściowych.
Podsumowanie
W tej pracy omówiliśmy LongWriter, agentowy potok, który rozkłada ultra-długie zadania generacji na podzadania, identyfikuje limit generacji 2 000 słów dla bieżących modeli LLM i proponuje zwiększenie ich rozmiaru okna wyjściowego poprzez dodanie długich danych wyjściowych podczas wyrównania. Aby automatycznie konstruować długie dane wyjściowe, LongWriter rozwija AgentWrite, agentowy potok, który wykorzystuje modele LLM do tworzenia rozszerzonych, spójnych danych wyjściowych. LongWriter skutecznie skaluje rozmiar okna wyjściowego bieżących modeli LLM do ponad 10 000 słów za pomocą skonstruowanego zestawu danych LongWriter-6k. Wyczerpujące studia ablacjacji danych szkoleniowych potwierdzają skuteczność tego podejścia. Do przyszłych prac LongWriter sugeruje następujące trzy kierunki: 1. Rozszerzenie ramy AgentWrite, aby konstruować dane o jeszcze dłuższych danych wyjściowych i dalej zwiększać rozmiar okna wyjściowego modeli LLM. 2. Udoskonalenie ramy AgentWrite, aby osiągnąć wyższą jakość długich danych wyjściowych. 3. Dłuższe dane wyjściowe modelu wprowadzają wyzwania dla wydajności inferencyjnej. Kilka metod zostało zaproponowanych, aby poprawić wydajność inferencyjną. Warto zbadać, jak te metody mogą zapewnić poprawę wydajności modelu bez kompromisowania jakości generacji.












