Modele i platformy AI
LongWriter: Odblokowanie generacji 10 000+ słów z długich kontekstów LLM
Obecne długie konteksty dużych modeli językowych (LLM) mogą przetwarzać dane wejściowe o długości do 100 000 tokenów, ale mają trudności z generowaniem danych wyjściowych o długości przekraczającej nawet umiarkowaną długość 2000 słów. Kontrolowane eksperymenty ujawniają, że skuteczna długość generacji modelu jest wewnętrznie ograniczona przez przykłady widziane podczas nadzorowanego doskonalenia (SFT). Innymi słowy, ten limit danych wyjściowych wynika z rzadkości długich przykładów w istniejących zestawach danych SFT.
Ostatnie postępy w długich kontekstach LLM doprowadziły do opracowania modeli o znacznie zwiększonych pojemnościach pamięci, zdolnych do przetwarzania historii o długości przekraczającej 100 000 tokenów. Jednak pomimo ich zdolności do obsługi obszernych danych wejściowych, bieżące długie konteksty 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 najnowocześniejszych modeli długich kontekstów za pomocą wielu zapytań, które wymagają odpowiedzi o różnej długości, takich jak „Napisz artykuł o długości 10 000 słów na temat historii Cesarstwa Rzymskiego”. Wyniki pokazują, że wszystkie modele nieustannie nie są w stanie wygenerować danych wyjściowych o długości przekraczającej 2000 słów. Tymczasem analiza logów interakcji użytkowników ujawnia, że ponad 1% prompty użytkowników wyraźnie żąda danych wyjściowych o długości przekraczającej ten limit, podkreślając pilną potrzebę w bieżących badaniach, aby rozwiązać ten problem.
Aby rozwiązać ten problem, LongWriter wprowadza AgentWrite, pipeline oparty na agencie, który rozkłada ultra-długie zadania generacji na podzadania, umożliwiając wykorzystanie gotowych modeli LLM do generowania spójnych danych wyjściowych o długości do 20 000 słów. Wykorzystując AgentWrite, LongWriter konstruuje LongWriter-6k, zestaw danych zawierający 6000 przykładów danych SFT o długości od 2 000 do 32 000 słów. Poprzez włączenie tego zestawu danych do szkolenia modelu, LongWriter udaje się zwiększyć długość danych wyjściowych istniejących modeli do ponad 10 000 słów, przy jednoczesnym utrzymaniu jakości danych wyjściowych.
LongWriter również rozwija LongBench-Write, kompleksową benchmarkę do oceny możliwości generacji ultra-długich danych. Model 9B parametrów, dalej udoskonalony za pomocą DPO, osiąga najlepsze wyniki w tej benchmarkce, przewyższając nawet większe modele własnościowe.
W tym artykule omówimy ramę LongWriter, jego architekturę i porównamy jego wyniki z najnowocześniejszymi modelami długich kontekstów LLM. Zaczynajmy.
LongWriter: Ramy generacji 10 000+ słów
Ostatnie postępy w długich kontekstach dużych modeli językowych (LLM) doprowadziły do opracowania modeli o znacznie zwiększonych pojemnościach pamięci, zdolnych do przetwarzania historii o długości przekraczającej 100 000 tokenów. Pomimo tej zdolności do obsługi obszernych danych wejściowych, bieżące długie konteksty LLM mają trudności z generowaniem danych wyjściowych o długości porównywalnej z danymi wejściowymi. Aby zbadać ten limit, LongWriter sprawdza maksymalną długość danych wyjściowych najnowocześniejszych modeli długich kontekstów za pomocą wielu zapytań, które wymagają odpowiedzi o różnej długości, takich jak „Napisz artykuł o długości 10 000 słów na temat historii Cesarstwa Rzymskiego”. Wyniki pokazują, że wszystkie modele nieustannie nie są w stanie wygenerować danych wyjściowych o długości przekraczającej 2000 słów. Dodatkowo, analiza logów interakcji użytkowników ujawnia, że ponad 1% prompty użytkowników wyraźnie żąda danych wyjściowych o długości przekraczającej 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 spowodowane charakterystyką zestawów danych SFT. Konkretnie, LongWriter stwierdza, że maksymalna długość generacji modelu jest skutecznie ograniczona przez górny limit długości danych wyjściowych w zestawie danych SFT, pomimo ekspozycji na znacznie dłuższe sekwencje podczas fazy pre-trenowania. To odkrycie wyjaśnia powszechny limit generacji 2000 słów wśród bieżących modeli, ponieważ istniejące zestawy danych SFT rzadko zawierają przykłady o długości przekraczającej tę granicę. Dodatkowo, ponieważ wiele zestawów danych jest destylowanych z najnowocześniejszych modeli LLM, one również dziedziczą limit długości danych wyjściowych pochodzący z ich modeli źródłowych.
Aby rozwiązać ten problem, LongWriter wprowadza AgentWrite, nowy pipeline oparty na agencie, który rozkłada ultra-długie zadania generacji na podzadania, umożliwiając wykorzystanie gotowych modeli LLM do generowania spójnych danych wyjściowych o długości do 20 000 słów. Wykorzystując AgentWrite, LongWriter konstruuje LongWriter-6k, zestaw danych zawierający 6000 przykładów danych SFT o długości od 2 000 do 32 000 słów. Poprzez włączenie tego zestawu danych do szkolenia modelu, LongWriter udaje się zwiększyć długość danych wyjściowych istniejących modeli do ponad 10 000 słów, przy jednoczesnym utrzymaniu jakości danych wyjściowych.
LongWriter również rozwija LongBench-Write, kompleksową benchmarkę do oceny możliwości generacji ultra-długich danych. Model 9B parametrów, dalej udoskonalony za pomocą DPO, osiąga najlepsze wyniki w tej benchmarkce, przewyższając nawet większe modele własnościowe.
AgentWrite: Automatyczna konstrukcja danych
Aby wykorzystać gotowe modele LLM do automatycznej generacji danych SFT o dłuższych danych wyjściowych, LongWriter projektuje AgentWrite, pipeline oparty na agencie w stylu divide-and-conquer. AgentWrite najpierw rozkłada zadania generacji 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 otrzymać ostateczne długie dane wyjściowe. Taki podejście do 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 pierwszym przypadkiem zastosowania planowania, aby umożliwić modelom wykonanie złożonych zadań generacji długich form.

Krok I: Plan
Zainspirowany procesem myślowym ludzkich pisarzy, którzy zwykle zaczynają od stworzenia ogólnego planu dla zadań generacji długich form, LongWriter wykorzystuje możliwości planowania modeli LLM do wygenerowania takiego planu pisarskiego na podstawie instrukcji pisarskich. Plan ten zawiera główny treść i wymagania dotyczące liczby słów dla każdego akapitu. Prompt wykorzystywany przez LongWriter jest następujący:
“Potrzebuję Twojej pomocy w rozbiciu następującej instrukcji generacji długiej formy na wiele podzadań. Każde podzadanie powinno prowadzić do napisania jednego akapitu w artykule 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ą rozbić w następującym formacie, z każdym podzadaniem na oddzielnej linii:
Akapit 1 – Główny punkt: [Opisz główny punkt akapitu, szczegółowo] – Liczba słów: [Wymagana liczba słów, np. 400 słów]
Akapit 2 – Główny punkt: [Opisz główny punkt akapitu, szczegółowo] – Liczba słów: [Wymagana liczba słów, np. 1000 słów].Upewnij się, że każde podzadanie jest jasne i szczegółowe, a wszystkie podzadania obejmują cały treść instrukcji pisarskich. 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 żadnych innych treści.”
Krok II: Pisanie
Po otrzymaniu 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 sekcje (n-1) są również wprowadzane, pozwalając modelowi kontynuować pisanie 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, a 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 są znacznie lepsze niż dane wyjściowe wygenerowane równolegle.
Prompt wykorzystywany przez LongWriter jest następujący:
“Jesteś doskonałym asystentem pisarskim. Będę Ci podawał oryginalne instrukcje pisarskie i moje zaplanowane kroki pisarskie. Będę Ci również podawał tekst, który już napisałem. Proszę, pomóż mi dalej pisać następny akapit na podstawie instrukcji pisarskich, 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ę połączyć oryginalną instrukcję pisarską, kroki pisarskie i już napisany tekst, a następnie kontynuuj pisanie {planu n-tego akapitu, czyli n-tej linii w planie pisarskim}.”
Walidacja
LongWriter testuje długość generacji i jakość proponowanego podejścia AgentWrite na dwóch zestawach danych generacji długich form. Pierwszy, LongWrite-Ruler, służy do pomiaru dokładnej długości danych wyjściowych, jakie może dostarczyć metoda. Drugi, LongBench-Write, jest głównie wykorzystywany do oceny, jak dobrze dane wyjściowe modelu są zgodne z instrukcjami użytkownika pod względem długości i jakości pisarskiej.
LongBench-Write: Aby ocenić wydajność modelu na bardziej zróżnicowanym zestawie instrukcji generacji długich form, LongWriter zbiera 120 różnych prompty użytkowników, z których 60 jest w języku chińskim, a 60 w języku angielskim. Aby lepiej ocenić, czy długość danych wyjściowych modelu spełnia wymagania, LongWriter upewnia się, że wszystkie te instrukcje zawierają jawne 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-2000 słów, 2000-4000 słów i powyżej 4000 słów. Dodatkowo, instrukcje są klasyfikowane do siedmiu typów na podstawie typu danych wyjściowych: Literatura i pisanie kreatywne, Akademickie i monograficzne, Nauka popularna, Pisanie funkcjonalne, Raporty prasowe, Forum społecznościowe i Edukacja i szkolenia.
Podczas oceny, LongWriter stosuje 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 dobrze odpowiada wymaganiom określonym w instrukcjach. Dla jakości danych wyjściowych, LongWriter wykorzystuje podejście LLM-as-a-judge, wybierając najnowocześniejszy 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 czytelnicze. Ostateczny wynik jest obliczany jako średnia ważona wyniku długości i wyniku jakości.
Wyniki walidacji: LongWriter przedstawia wyniki pomiaru długości danych wyjściowych na LongWrite-Ruler i stwierdza, że AgentWrite skutecznie zwiększa długość danych wyjściowych modelu GPT-4o z maksymalnie 2 000 słów do około 20 000 słów. LongWriter ocenia również 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 pomyślnie wykonać zadania o długości poniżej 2000 słów, oceniając wydajność AgentWrite.

Nadzorowane doskonalenie
LongWriter prowadzi szkolenie na podstawie dwóch najnowocześniejszych modeli open-source, a mianowicie GLM-4-9B i Llama-3.1-8B. Oba są modelami podstawowymi i obsługują okno kontekstowe o długości do 128 000 tokenów, co sprawia, że są one naturalnie odpowiednie do szkolenia na długich danych wyjściowych. Aby uczynić szkolenie bardziej efektywnym, LongWriter stosuje szkolenie z wagą strat. Szkolenie tych modeli prowadzi do powstania dwóch modeli: 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średniona według sekwencji, czyli jako średnia straty każdej sekwencji w partiach, wkład każdego tokenu docelowego do straty w długich danych wyjściowych byłby znacznie mniejszy niż w przypadku krótszych danych wyjściowych. W eksperymentach LongWriter stwierdzono również, że prowadzi to do nieoptymalnej wydajności modelu w zadaniach z długimi danymi wyjściowymi. Dlatego LongWriter wybiera strategię ważenia strat, 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 węźle z 8xH800 80G GPU i DeepSpeed+ZeRO3+CPU offloading. LongWriter używa rozmiaru partii 8, tempa uczenia 1e-5 i długości pakowania 32k. Modele są szkolone przez 4 epoki, co trwa około 2500-3000 kroków.
Wyrównanie (DPO)
Aby dalej poprawić jakość danych wyjściowych modelu i jego zdolność do przestrzegania ograniczeń długości w instrukcjach, LongWriter wykonuje bezpośrednią optymalizację preferencji (DPO) na modelu LongWriter-9B. Dane DPO pochodzą z danych DPO chatu GLM-4 (około 50 000 wpisów). Dodatkowo, LongWriter konstruuje 4 000 par danych specjalnie ukierunkowanych na instrukcje generacji długich form. Dla każdej instrukcji generacji, LongWriter pobiera 4 dane wyjściowe z modelu LongWriter-9B i ocenia te dane wyjściowe według określonej metody. Dodatkowo, LongWriter łączy wynik zgodności z długością. Najlepszy wynik jest wybrany jako pozytywny przykład, a jeden z pozostałych trzech wyników jest losowo wybrany jako negatywny przykład.
Wynikowy model, LongWriter-9B-DPO, jest szkolony przez 250 kroków na powyższej mieszaninie danych. LongWriter stosuje 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. Według najlepszej wiedzy LongWriter, Suri-IORPO jest jedynym modelem, który również jest wyrównany do generacji długich form. Został on wytrenowany na podstawie modelu Mistral-7B-Instruct-v0.2 z wykorzystaniem LoRA. Zgodnie z ustawieniami oceny na LongWrite-Ruler, LongWriter ustawia temperaturę generacji na 0,5 i konfiguruje parametr maksymalnej liczby tokenów generacji modelu do maksymalnej wartości dozwolonej przez API. Dla modeli open-source jest to ustawione na 32 768.

Największość poprzednich modeli nie jest w stanie spełnić wymagań długości powyżej 2000 słów, podczas gdy modele LongWriter 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 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, nawet uzyskując 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 może skutecznie osiągnąć wymaganą długość danych wyjściowych, przy jednoczesnym utrzymaniu dobrej jakości, jak sugerują wyniki w zakresie [2k, 20k) i wykresy rozproszenia.

DPO skutecznie poprawia zarówno jakość danych wyjściowych modelu, jak i jego zdolność do przestrzegania wymagań długości w generacji długich form.
Porównując wyniki modeli LongWriter-9B i LongWriter-9B-DPO, stwierdzamy, ż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 form DPO nadal pomaga poprawić jakość danych wyjściowych modelu i może lepiej wyrównać długość danych wyjściowych modelu z żądaną długością. Ten wniosek został również ostatnio obserwowany w pracy Yuan et al. (2024) w przypadku krótszych generacji. Również ręcznie annotujemy wyniki porównawcze dla modeli GPT-4o i trzech modeli LongWriter na ich danych wyjściowych w LongBench-Write i wizualizujemy wyniki na wykresie 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 10 000 do 20 000 słów, podczas gdy wymagane są więcej danych o długich danych wyjściowych, aby obsłużyć jeszcze dłuższe dane wyjściowe.
Po teście LongWrite-Ruler, LongWriter również przedstawia wyniki testu LongWrite-Ruler dla modeli LongWriter. Wyniki sugerują, że ich maksymalne długości generacji są w zakresie od 10 000 do 20 000 słów. Brak danych SFT o dłuższych danych wyjściowych jest najprawdopodobniej główną przyczyną, która uniemożliwia modelowi osiągnięcie dłuższych długości danych wyjściowych.
Końcowe myśli
W tej pracy omówiliśmy LongWriter, pipeline oparty na agencie, który rozkłada ultra-długie zadania generacji na podzadania, identyfikuje limit generacji 2000 słów dla bieżących modeli LLM i proponuje zwiększenie ich okna danych wyjściowych poprzez dodanie długich danych wyjściowych podczas wyrównania. Aby automatycznie konstruować długie dane wyjściowe, LongWriter rozwija AgentWrite, pipeline oparty na agencie, który wykorzystuje gotowe modele LLM do tworzenia długich, spójnych danych wyjściowych. LongWriter skutecznie zwiększa okno danych wyjściowych bieżących modeli LLM do ponad 10 000 słów z wykorzystaniem zestawu danych LongWriter-6k. Wyczerpujące studium ablatywne nad danymi szkoleniowymi potwierdza skuteczność tego podejścia. Do przyszłych prac LongWriter proponuje następujące trzy kierunki: 1. Rozszerzenie ramy AgentWrite w celu konstruowania danych o dłuższych danych wyjściowych, aby dalej zwiększyć okno danych wyjściowych modeli LLM. 2. Udoskonalenie ramy AgentWrite w celu uzyskania danych wyjściowych o wyższej jakości. 3. Dłuższe dane wyjściowe modelu stwarzają wyzwania dla wydajności inferencyjnej. Zostało zaproponowanych kilka metod, aby poprawić wydajność inferencyjną. Warto zbadać, jak te metody mogą zapewnić poprawę wydajności modelu bez kompromisowania jakości generacji.












