Modèles et plateformes d’IA
LongWriter : Libérer la génération de 10 000 mots et plus à partir de modèles de langage à long contexte
Les modèles de langage à long contexte (LLM) actuels peuvent traiter des entrées allant jusqu’à 100 000 jetons, mais ils ont du mal à générer des sorties dépassant une longueur modeste de 2 000 mots. Des expériences contrôlées révèlent que la longueur de génération effective du modèle est inhérentement limitée par les exemples vus pendant la formation supervisée (SFT). En d’autres termes, cette limitation de sortie découle de la rareté d’exemples de sorties longues dans les jeux de données SFT existants.
Les récents progrès dans les modèles de langage à long contexte ont conduit au développement de modèles dotés de capacités de mémoire considérablement accrues, capables de traiter des historiques dépassant 100 000 jetons de longueur. Cependant, malgré leur capacité à gérer des entrées étendues, les modèles de langage à long contexte actuels ont du mal à générer des sorties également longues.
Pour explorer cette limitation, LongWriter examine la longueur de sortie maximale des modèles de langage à long contexte de pointe avec plusieurs requêtes nécessitant des réponses de longueurs variables, telles que « Écrivez un article de 10 000 mots sur l’histoire de l’Empire romain ». Les résultats montrent que tous les modèles échouent systématiquement à produire des sorties dépassant 2 000 mots de longueur. Pendant ce temps, l’analyse des journaux d’interaction des utilisateurs révèle que plus de 1 % des invites des utilisateurs exigent explicitement des sorties dépassant cette limite, mettant en évidence un besoin urgent dans la recherche actuelle pour surmonter cette limitation.
Pour remédier à cela, LongWriter introduit AgentWrite, un pipeline d’agent basé sur un processus de division pour utiliser des modèles de langage à long contexte pour générer des sorties cohérentes et prolongées. AgentWrite fonctionne en deux étapes : premièrement, il crée un plan de rédaction détaillé décrivant la structure et le nombre de mots cible pour chaque paragraphe en fonction de l’entrée de l’utilisateur. Ensuite, en suivant ce plan, il invite le modèle à générer du contenu pour chaque paragraphe de manière séquentielle. LongWriter valide que AgentWrite peut produire des sorties de haute qualité et cohérentes allant jusqu’à 20 000 mots.
LongWriter développe également LongBench-Write, un référentiel complet pour évaluer les capacités de génération ultra-longue. Le modèle de 9 milliards de paramètres, amélioré par DPO, atteint des performances de pointe sur ce référentiel, surpassant même des modèles propriétaires plus grands.
Dans cet article, nous allons discuter du cadre LongWriter, explorer son architecture et comparer ses performances avec celles des modèles de langage à long contexte de pointe. Commençons.
LongWriter : Cadre de génération de 10 000 mots et plus
Les récents progrès dans les modèles de langage à long contexte ont conduit à la création de modèles dotés de capacités de mémoire considérablement accrues, capables de traiter des historiques dépassant 100 000 jetons. Malgré cette capacité à gérer des entrées étendues, les modèles de langage à long contexte actuels ont du mal à générer des sorties de longueur comparable. Pour étudier cette limitation, LongWriter examine la longueur de sortie maximale des modèles de langage à long contexte de pointe à l’aide de plusieurs requêtes nécessitant des réponses de longueurs variables, telles que « Écrivez un article de 10 000 mots sur l’histoire de l’Empire romain ». Sur la base des résultats, LongWriter observe que tous les modèles échouent systématiquement à générer des sorties plus longues que 2 000 mots. De plus, l’analyse des journaux d’interaction des utilisateurs indique que plus de 1 % des invites des utilisateurs exigent explicitement des sorties dépassant cette limite, mettant en évidence un besoin urgent dans la recherche actuelle pour remédier à ce problème.

L’étude de LongWriter révèle une idée clé : la contrainte sur la longueur de sortie est principalement enracinée dans les caractéristiques des jeux de données de formation supervisée (SFT). Plus précisément, LongWriter constate que la longueur de génération maximale d’un modèle est effectivement limitée par la limite supérieure des longueurs de sortie présentes dans son jeu de données SFT, malgré son exposition à des séquences beaucoup plus longues pendant la phase de pré-entraînement. Cette découverte explique la limite de génération de 2 000 mots ubiquitaire chez les modèles actuels, car les jeux de données SFT existants contiennent rarement des exemples dépassant cette longueur. De plus, dans la mesure où de nombreux jeux de données sont distillés à partir de modèles de langage à long contexte de pointe, ils héritent également de la limitation de longueur de sortie de leurs modèles sources.
Pour remédier à cette limitation, LongWriter introduit AgentWrite, un pipeline d’agent basé sur un processus de division pour utiliser des modèles de langage à long contexte pour générer des sorties prolongées et cohérentes. AgentWrite fonctionne en deux étapes : premièrement, il crée un plan de rédaction détaillé décrivant la structure et le nombre de mots cible pour chaque paragraphe en fonction de l’entrée de l’utilisateur. Ensuite, en suivant ce plan, il invite le modèle à générer du contenu pour chaque paragraphe de manière séquentielle. LongWriter valide que AgentWrite peut produire des sorties de haute qualité et cohérentes allant jusqu’à 20 000 mots.
En s’appuyant sur le pipeline AgentWrite, LongWriter utilise GPT-4o pour générer 6 000 exemples de données de formation supervisée avec des longueurs de sortie allant de 2 000 à 32 000 mots, appelés LongWriter-6k, et ajoute ces données à l’entraînement des modèles existants. Notamment, LongWriter-6k débloque avec succès la capacité du modèle à générer des sorties bien structurées dépassant 10 000 mots de longueur tout en maintenant la qualité de sortie. Pour évaluer rigoureusement l’efficacité de cette approche, LongWriter développe le référentiel LongBench-Write, qui contient un ensemble diversifié d’instructions d’écriture de l’utilisateur, avec des spécifications de longueur de sortie allant de 0 à 500 mots, de 500 à 2 000 mots, de 2 000 à 4 000 mots et au-delà de 4 000 mots. L’évaluation sur LongBench-Write montre que le modèle de 9 milliards de paramètres de LongWriter atteint des performances de pointe, surpassant même des modèles propriétaires plus grands.
Pour résumer, le travail de LongWriter apporte les contributions suivantes :
- Analyse des limites de longueur de génération : LongWriter identifie le facteur principal limitant la longueur de sortie des modèles de langage à long contexte actuels, qui est la contrainte sur la longueur de sortie dans les données SFT.
- AgentWrite : Pour surmonter cette limitation, LongWriter propose AgentWrite, qui utilise un processus de division avec des modèles de langage à long contexte pour créer automatiquement des données SFT avec des sorties ultra-longues. En utilisant cette méthode, LongWriter construit le jeu de données LongWriter-6k.
- Élargissement de la fenêtre de sortie des modèles de langage à long contexte actuels : LongWriter intègre le jeu de données LongWriter-6k dans ses données SFT, élargissant avec succès la fenêtre de sortie des modèles existants à plus de 10 000 mots sans compromettre la qualité de sortie. LongWriter montre que DPO améliore encore les capacités d’écriture de long texte du modèle.
AgentWrite : Construction automatique de données
Pour utiliser des modèles de langage à long contexte pour générer automatiquement des données SFT avec des sorties plus longues, LongWriter conçoit AgentWrite, un pipeline d’agent basé sur un processus de division. AgentWrite fonctionne en deux étapes : premièrement, il crée un plan de rédaction détaillé décrivant la structure et le nombre de mots cible pour chaque paragraphe en fonction de l’entrée de l’utilisateur. Ensuite, en suivant ce plan, il invite le modèle à générer du contenu pour chaque paragraphe de manière séquentielle. LongWriter valide que AgentWrite peut produire des sorties de haute qualité et cohérentes allant jusqu’à 20 000 mots.

Étape I : Planification
Inspiré par le processus de pensée des écrivains humains, qui commencent généralement par créer un plan global pour les tâches d’écriture à long terme, LongWriter utilise les capacités de planification des modèles de langage à long contexte pour produire un plan d’écriture donné une instruction d’écriture. Ce plan inclut le contenu principal et les exigences de nombre de mots pour chaque paragraphe. L’invite utilisée par LongWriter est la suivante :
“J’ai besoin que vous m’aidiez à diviser l’instruction d’écriture à long terme suivante en plusieurs sous-tâches. Chaque sous-tâche guidera l’écriture d’un paragraphe dans l’essai et devrait inclure les points principaux et les exigences de nombre de mots pour ce paragraphe. L’instruction d’écriture est la suivante : {Instruction de l’utilisateur}. Veuillez la diviser dans le format suivant, avec chaque sous-tâche prenant une ligne :
Paragraphe 1 – Point principal : [Décrivez le point principal du paragraphe, en détail] – Nombre de mots : [Exigence de nombre de mots, par exemple 400 mots]
Paragraphe 2 – Point principal : [Décrivez le point principal du paragraphe, en détail] – Nombre de mots : [Exigence de nombre de mots, par exemple 1000 mots].Assurez-vous que chaque sous-tâche soit claire et spécifique, et que toutes les sous-tâches couvrent l’ensemble du contenu de l’instruction d’écriture. N’avez pas peur de diviser les sous-tâches trop finement ; chaque sous-tâche devrait avoir un paragraphe d’au moins 200 mots et d’au plus 1000 mots. N’avez pas d’autre contenu.
Étape II : Écriture
Après avoir obtenu le plan d’écriture de l’étape I, LongWriter appelle le modèle de langage à long contexte de manière séquentielle pour compléter chaque sous-tâche, en générant le contenu d’écriture section par section. Pour garantir la cohérence de la sortie, lorsque LongWriter appelle le modèle pour générer la section n, les sections n-1 précédemment générées sont également saisies, permettant au modèle de continuer à écrire la section suivante en fonction de l’historique d’écriture existant. Bien que cette approche séquentielle empêche les appels parallèles au modèle pour compléter plusieurs sous-tâches simultanément, et que la longueur de saisie devient plus longue, LongWriter montre dans la validation que la cohérence globale et la qualité de l’écriture obtenues de cette manière sont nettement supérieures à la sortie générée en parallèle.
L’invite utilisée par LongWriter est la suivante :
“Vous êtes un excellent assistant d’écriture. Je vais vous donner une instruction d’écriture originale et mes étapes de planification d’écriture. Je vais également vous fournir le texte que j’ai déjà écrit. Veuillez m’aider à continuer à écrire le paragraphe suivant en fonction de l’instruction d’écriture, des étapes de planification d’écriture et du texte déjà écrit.
Instruction d’écriture :
{Instruction de l’utilisateur}
Étapes de planification d’écriture :
{Plan d’écriture généré à l’étape I}
Texte déjà écrit :
{Paragraphes (n-1) précédemment générés}
Veuillez intégrer l’instruction d’écriture originale, les étapes de planification d’écriture et le texte déjà écrit, et continuez à écrire {Le plan pour le paragraphe n, c’est-à-dire la ligne n du plan d’écriture}.”
Validation
LongWriter teste la longueur de génération et la qualité de la méthode AgentWrite proposée sur deux jeux de données d’écriture à long terme. Le premier, LongWrite-Ruler, est utilisé pour mesurer exactement quelle longueur de sortie la méthode peut fournir. Le second, LongBench-Write, est principalement utilisé pour évaluer à quel point le contenu généré par le modèle correspond aux instructions de l’utilisateur en termes de longueur et de qualité d’écriture.
LongBench-Write : Pour évaluer les performances du modèle sur une gamme plus diverse d’instructions d’écriture à long terme, LongWriter collecte 120 invites d’écriture variées, avec 60 en chinois et 60 en anglais. Pour mieux évaluer si la longueur de sortie du modèle répond aux exigences de l’utilisateur, LongWriter s’assure que toutes ces invites incluent des exigences de nombre de mots explicites. Ces invites sont divisées en quatre sous-ensembles en fonction des exigences de nombre de mots : 0-500 mots, 500-2 000 mots, 2 000-4 000 mots et plus de 4 000 mots. De plus, les invites sont catégorisées en sept types en fonction du type de sortie : Littérature et écriture créative, Académique et monographie, Science populaire, Écriture fonctionnelle, Rapport de nouvelles, Forum de communauté et Éducation et formation.
Lors de l’évaluation, LongWriter adopte deux métriques : l’une pour noter la longueur de sortie et l’autre pour noter la qualité de sortie. La longueur de sortie du modèle est notée en fonction de sa proximité avec les exigences spécifiées dans les invites. Pour la qualité de sortie, LongWriter utilise l’approche LLM-as-a-judge, en sélectionnant le modèle GPT-4o de pointe pour noter la sortie sur six dimensions : Pertinence, Exactitude, Cohérence, Clarté, Profondeur et Expérience de lecture. La note finale est calculée en faisant la moyenne de la note de longueur et de la note de qualité.
Résultats de validation : LongWriter présente la mesure de longueur de sortie sur LongWrite-Ruler et constate que AgentWrite prolonge avec succès la longueur de sortie de GPT-4o d’une longueur maximale de 2 000 mots à environ 20 000 mots. LongWriter évalue également à la fois la qualité de sortie et la conformité à la longueur de sortie requise sur LongBench-Write, montrant que GPT-4o peut réussir à compléter des tâches avec des sorties de moins de 2 000 mots de longueur lors de l’évaluation des performances d’AgentWrite.

Formation supervisée
LongWriter effectue une formation basée sur deux des derniers modèles open source, à savoir GLM-4-9B et Llama-3.1-8B. Ces deux modèles sont des modèles de base et prennent en charge une fenêtre de contexte allant jusqu’à 128 000 jetons, les rendant naturellement adaptés à la formation sur des sorties longues. Pour rendre la formation plus efficace, LongWriter adopte une formation par regroupement avec pondération des pertes. La formation sur les deux modèles donne lieu à deux modèles : LongWriter-9B (abréviation pour GLM-4-9B-LongWriter) et LongWriter-8B (abréviation pour Llama-3.1-8B-LongWriter).
En même temps, LongWriter remarque que si la perte est moyennée par séquence, c’est-à-dire en prenant la moyenne de la perte moyenne de chaque séquence dans un lot, la contribution de chaque jeton cible à la perte dans les données de sortie longue serait nettement inférieure à celles avec des sorties plus courtes. Dans les expériences de LongWriter, il est également constaté que cela conduit à des performances de modèle sous-optimales sur les tâches avec des sorties longues. Par conséquent, LongWriter choisit une stratégie de pondération des pertes qui moyenne la perte par jeton, où la perte est calculée comme la moyenne des pertes sur tous les jetons cibles dans ce lot.
Tous les modèles sont formés en utilisant un nœud avec 8xH800 80G GPUs et DeepSpeed+ZeRO3+CPU offloading. LongWriter utilise une taille de lot de 8, un taux d’apprentissage de 1e-5 et une longueur de regroupement de 32 000. Les modèles sont formés pendant 4 époques, ce qui prend environ 2 500 à 3 000 étapes.
Alignement (DPO)
Pour améliorer encore la qualité de sortie du modèle et renforcer sa capacité à suivre les contraintes de longueur dans les instructions, LongWriter effectue une optimisation directe de préférence (DPO) sur le modèle LongWriter-9B formé de manière supervisée. Les données DPO proviennent des données de chat DPO de GLM-4 (environ 50 000 entrées). De plus, LongWriter construit 4 000 paires de données spécifiquement ciblant les instructions d’écriture à long terme. Pour chaque instruction d’écriture, LongWriter échantillonne 4 sorties de LongWriter-9B et note ces sorties en suivant une méthode spécifique. Un score de suivi de la longueur est également combiné. La sortie la mieux notée est ensuite sélectionnée comme exemple positif, et l’une des trois sorties restantes est choisie aléatoirement comme exemple négatif.
Le modèle résultant, LongWriter-9B-DPO, est formé pendant 250 étapes sur le mélange de données ci-dessus. LongWriter suit une recette spécifique pour la formation DPO.
LongWriter : Expériences et résultats
LongWriter évalue 4 modèles propriétaires et 5 modèles open source sur LongBench-Write, ainsi que les modèles LongWriter formés. À la connaissance de LongWriter, Suri-IORPO est le seul modèle antérieur également aligné pour la génération de texte à long terme. Il est formé sur la base de Mistral-7B-Instruct-v0.2 en utilisant LoRA. Conformément à la configuration d’évaluation sur LongWrite-Ruler, LongWriter définit la température de sortie à 0,5 et configure le paramètre de génération de jetons maximum du modèle à la valeur maximale autorisée par son appel d’API. Pour les modèles open source, il est défini à 32 768.

La plupart des modèles précédents ne sont pas en mesure de répondre à l’exigence de longueur de plus de 2 000 mots, tandis que les modèles LongWriter fournissent systématiquement des réponses plus longues et plus riches à de telles invites.
En observant le score de longueur de sortie SlS_lSl pour les invites dans chaque plage de longueur requise, LongWriter constate que les modèles précédents ont généralement de mauvaises performances (notées en dessous de 70) sur les invites dans la plage [2 000, 4 000) avec seulement Claude 3.5 Sonnet atteignant un score décent. Pour les invites dans la plage [4 000, 20 000), presque tous les modèles précédents sont complètement incapables d’atteindre la longueur de sortie cible, avec même un score de 0 (ce qui signifie que toutes les longueurs de sortie sont inférieures à un tiers de la longueur requise). En ajoutant des données de formation de LongWriter-6k, le modèle formé de LongWriter peut effectivement atteindre la longueur de sortie requise tout en maintenant une bonne qualité, comme le suggèrent les scores dans la plage [2 000, 20 000) et les graphiques de dispersion.

DPO améliore efficacement à la fois la qualité de sortie du modèle et sa capacité à suivre les contraintes de longueur dans la génération de texte à long terme.
En comparant les scores de LongWriter-9B et LongWriter-9B-DPO, nous constatons que DPO améliore significativement les scores Sl (+4 %) et Sq (+3 %), et que l’amélioration est constante dans toutes les plages. Cela montre que dans le scénario de génération de texte à long terme, DPO aide toujours à améliorer la qualité de sortie du modèle et à aligner davantage la longueur de sortie du modèle avec la longueur requise. Cette conclusion a également été récemment observée dans Yuan et al. (2024) pour des générations plus courtes. Nous annotons également manuellement les gains et les pertes pour GPT-4o et les trois modèles LongWriter sur leurs sorties dans LongBench-Write et visualisons les résultats dans la figure 9. Nous pouvons voir que les humains préfèrent le modèle formé avec DPO à LongWriter-9B dans 58 % des cas. De plus, malgré avoir moins de paramètres, LongWriter-9B-DPO atteint un score égal à celui de GPT-4o.

La limite de longueur de sortie des modèles LongWriter est étendue à entre 10 000 et 20 000 mots, tandis que davantage de données avec des sorties longues sont nécessaires pour prendre en charge des sorties encore plus longues.
Suite au test LongWrite-Ruler, nous présentons également les résultats du test LongWrite-Ruler des modèles LongWriter. Les résultats suggèrent que leurs longueurs de sortie maximales sont comprises entre 10 000 et 20 000 mots. Le manque de données SFT avec des sorties plus longues est probablement la principale raison qui empêche le modèle d’atteindre des longueurs de sortie plus longues.
Pensées finales
Dans ce travail, nous avons discuté de LongWriter, un pipeline d’agent basé sur un processus de division qui décompose les tâches de génération ultra-longue en sous-tâches, identifie une limite de génération de 2 000 mots pour les modèles de langage à long contexte actuels et propose d’augmenter leur fenêtre de sortie en ajoutant des données de sortie longue pendant l’alignement. Pour construire automatiquement des données de sortie longue, LongWriter développe AgentWrite, un pipeline d’agent qui utilise des modèles de langage à long contexte pour créer des sorties prolongées et cohérentes. LongWriter élargit avec succès la fenêtre de sortie des modèles de langage à long contexte actuels à plus de 10 000 mots avec le jeu de données LongWriter-6k construit. Des études d’ablation approfondies sur les données de formation démontrent l’efficacité de cette approche. Pour les travaux futurs, LongWriter suggère les trois directions suivantes : 1. Étendre le cadre AgentWrite pour construire des données avec des sorties plus longues et élargir encore la fenêtre de sortie des modèles de langage à long contexte. 2. Affiner le cadre AgentWrite pour atteindre une qualité plus élevée de données de sortie longue. 3. Les sorties de modèle plus longues posent des défis à l’efficacité d’inférence. Plusieurs méthodes ont été proposées pour améliorer l’efficacité d’inférence. Il vaut la peine d’étudier comment ces méthodes peuvent garantir une efficacité de modèle améliorée sans compromettre la qualité de génération.












