Intelligence Artificielle
LongWriter : libérer plus de 10,000 XNUMX mots à partir de LLM à contexte long
Les grands modèles de langage (LLM) à contexte long actuels peuvent traiter des entrées allant jusqu'à 100,000 2,000 jetons, mais ils ont du mal à générer des sorties dépassant même une longueur modeste de XNUMX XNUMX mots. Des expériences contrôlées révèlent que la durée de génération effective du modèle est intrinsèquement limitée par les exemples observés au cours mise au point supervisée (SFT). En d’autres termes, cette limitation de sortie provient de la rareté d’exemples de sortie longue dans les ensembles de données SFT existants.
Les progrès récents dans les LLM à contexte long ont conduit au développement de modèles dotés de capacités de mémoire considérablement étendues, capables de traiter un historique d'une longueur supérieure à 100,000 XNUMX jetons. Cependant, malgré leur capacité à gérer des entrées étendues, les LLM actuels à contexte long ont du mal à générer des résultats tout aussi longs.
Pour explorer cette limitation, Écrivain long sonde la longueur de sortie maximale des modèles à contexte long de pointe avec plusieurs requêtes qui nécessitent des réponses de longueurs variables, telles que « Écrivez un article de 10,000 2,000 mots sur l'histoire de l'Empire romain ». Les résultats montrent que tous les modèles ne parviennent systématiquement pas à produire des résultats dépassant 1 XNUMX mots. Dans le même temps, l'analyse des journaux d'interaction des utilisateurs révèle que plus de XNUMX % des invites des utilisateurs demandent explicitement des résultats dépassant cette limite, ce qui souligne le besoin urgent dans les recherches actuelles de surmonter cette limitation.
Pour résoudre ce problème, LongWriter présente AgentÉcriture, un pipeline basé sur des agents qui décompose les tâches de génération ultra-longues en sous-tâches, permettant aux LLM prêts à l'emploi de générer des résultats cohérents dépassant 20,000 6 mots. En exploitant AgentWrite, LongWriter construit LongWriter-6,000k, un ensemble de données contenant 2 32 échantillons de données SFT avec des longueurs de sortie allant de 10,000 XNUMX à XNUMX XNUMX mots. En incorporant cet ensemble de données dans la formation des modèles, LongWriter réussit à étendre la longueur de sortie des modèles existants à plus de XNUMX XNUMX mots tout en conservant la qualité de la sortie.
LongWriter développe également LongBench-Write, une référence complète pour évaluer les capacités de génération ultra-longue. Le modèle paramétrique 9B, encore amélioré grâce au DPO, atteint des performances de pointe sur cette référence, dépassant même les modèles propriétaires beaucoup plus grands.
Dans cet article, nous discuterons du framework LongWriter, explorerons son architecture et comparerons ses performances par rapport aux grands modèles de langage à contexte long de pointe. Commençons.
LongWriter : cadre de génération de plus de 10,000 XNUMX mots
Les progrès récents dans les grands modèles de langage (LLM) à contexte long 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 XNUMX jetons. Malgré cette capacité à gérer des entrées étendues, les contextes longs actuels LLM ont du mal à générer des résultats de durée comparable. Pour étudier cette limitation, LongWriter examine la longueur maximale de sortie des modèles à contexte long de pointe à travers diverses requêtes qui nécessitent différentes longueurs de réponse, telles que « Écrire un article de 10,000 2,000 mots sur l'histoire de l'Empire romain ». Sur la base de ces résultats, LongWriter observe que tous les modèles ne parviennent systématiquement pas à générer des résultats de plus de 1 XNUMX mots. En outre, une analyse des journaux d'interaction des utilisateurs indique que plus de XNUMX % des invites des utilisateurs demandent spécifiquement des résultats au-delà de cette limite, soulignant le besoin urgent dans les recherches actuelles de résoudre ce problème.

L'étude de LongWriter révèle un point essentiel : la contrainte sur la longueur des sorties est principalement liée aux caractéristiques des jeux de données de réglage fin supervisé (SFT). Plus précisément, LongWriter constate que la longueur maximale de génération 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é-apprentissage. Ce résultat explique la limite de génération de 2,000 XNUMX mots, omniprésente dans les modèles actuels, car les jeux de données SFT existants contiennent rarement des exemples dépassant cette longueur. De plus, comme de nombreux jeux de données sont issus de LLM de pointe, ils héritent également de la limitation de longueur de sortie de leurs modèles sources.
Pour pallier cette limitation, LongWriter présente AgentWrite, un nouveau pipeline basé sur des agents, conçu pour exploiter les LLM du commerce afin de générer automatiquement des résultats cohérents et étendus. AgentWrite fonctionne en deux étapes : d'abord, il élabore un plan d'écriture détaillé décrivant la structure et le nombre de mots cible pour chaque paragraphe, en fonction des données saisies par l'utilisateur. Ensuite, suivant ce plan, il invite le modèle à générer le contenu de chaque paragraphe de manière séquentielle. Les expériences de LongWriter confirment qu'AgentWrite peut produire des résultats cohérents et de haute qualité, allant jusqu'à 20,000 XNUMX mots.
S'appuyant sur le pipeline AgentWrite, LongWriter exploite GPT-4o pour générer 6,000 6 données SFT longues, appelées LongWriter-6k, et les ajoute à l'entraînement des modèles existants. LongWriter-10,000k exploite notamment la capacité du modèle à générer des sorties bien structurées de plus de 0 500 mots. Pour évaluer rigoureusement l'efficacité de cette approche, LongWriter a développé le benchmark LongBench-Write, qui contient un ensemble diversifié d'instructions d'écriture utilisateur, avec des spécifications de longueur de sortie allant de 500 à 2,000 mots, de 2,000 à 4,000 4,000 mots, de 9 XNUMX à XNUMX XNUMX mots et au-delà de XNUMX XNUMX mots. L'évaluation sur LongBench-Write montre que le modèle de taille XNUMXB de LongWriter atteint des performances de pointe, même comparé à des modèles propriétaires plus volumineux. LongWriter construit en outre des données de préférence et utilise DPO pour aider le modèle à mieux suivre les instructions d'écriture longues et à générer un contenu écrit de meilleure qualité, qui s'est également avéré efficace grâce à des expériences.
Pour résumer, le travail de LongWriter apporte les contributions novatrices suivantes :
- Analyse des limites de longueur de génération : LongWriter identifie le principal facteur limitant la longueur de sortie des LLM à contexte long actuels, qui est la contrainte sur la longueur de sortie dans les données SFT.
- AgentÉcriture : Pour surmonter cette limitation, LongWriter propose AgentWrite, qui utilise une approche diviser pour régner avec des LLM disponibles dans le commerce pour construire automatiquement des données SFT avec des sorties ultra longues. À l'aide de cette méthode, LongWriter construit l'ensemble de données LongWriter-6k.
- Mise à l'échelle de la taille de la fenêtre de sortie des LLM actuels : LongWriter intègre l'ensemble de données LongWriter-6k dans ses données SFT, augmentant ainsi la taille de la fenêtre de sortie des modèles existants à plus de 10,000 XNUMX mots sans compromettre la qualité de sortie. LongWriter montre que DPO améliore encore les capacités d'écriture de textes longs du modèle.
AgentWrite : construction automatique de données
Afin d'utiliser des LLM prêts à l'emploi pour générer automatiquement des données SFT avec des sorties plus longues, LongWriter a conçu AgentWrite, un pipeline d'agents de type « diviser pour régner ». AgentWrite décompose d'abord les tâches d'écriture longues en plusieurs sous-tâches, chaque sous-tâche nécessitant l'écriture d'un seul paragraphe par le modèle. Le modèle exécute ensuite ces sous-tâches séquentiellement, et LongWriter concatène les sorties des sous-tâches pour obtenir la sortie finale longue. Cette approche de décomposition d'une tâche complexe en plusieurs sous-tâches à l'aide d'agents LLM a déjà été appliquée dans divers domaines, tels que la résolution de problèmes, le développement logiciel et l'évaluation de modèles. Les travaux de LongWriter sont les premiers à explorer l'intégration de la planification pour permettre aux modèles de réaliser des tâches d'écriture longues et complexes. Chaque étape d'AgentWrite est présentée en détail ci-dessous.

Étape I : Planifier
Inspiré par le processus de réflexion des écrivains humains, qui commencent généralement par élaborer un plan global pour de longues tâches d'écriture, LongWriter utilise les capacités de planification des LLM pour produire un tel plan d'écriture à partir d'une instruction d'écriture. Ce plan comprend le contenu principal et les exigences en matière de nombre de mots pour chaque paragraphe. L'invite utilisée par LongWriter est la suivante :
«J'ai besoin que vous m'aidiez à décomposer les instructions d'écriture détaillées suivantes en plusieurs sous-tâches. Chaque sous-tâche guidera la rédaction d'un paragraphe de l'essai et devrait inclure les principaux points et les exigences en matière de nombre de mots pour ce paragraphe. L'instruction d'écriture est la suivante : {Instruction utilisateur}. Veuillez le décomposer dans le format suivant, chaque sous-tâche occupant une ligne :
Paragraphe 1 – Point principal : [Décrivez le point principal du paragraphe en détail] – Nombre de mots : [Exigence relative au nombre de mots, par exemple 400 mots]
Paragraphe 2 – Point principal : [Décrire le point principal du paragraphe en détail] – Nombre de mots : [Exigence relative au nombre de mots, par exemple 1000 XNUMX mots].Assurez-vous que chaque sous-tâche est claire et spécifique, et que toutes les sous-tâches couvrent l'intégralité du contenu de l'instruction de rédaction. Ne divisez pas trop finement les sous-tâches ; le paragraphe de chaque sous-tâche ne doit pas contenir moins de 200 mots et pas plus de 1000 XNUMX mots. Ne produisez aucun autre contenu.
Étape II : Écrire
Après avoir obtenu le plan d'écriture de l'étape I, LongWriter appelle le LLM en série pour terminer chaque sous-tâche, 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 n-ième section, les n−1 sections précédemment générées sont également entrées, permettant au modèle de continuer à écrire la section suivante en fonction de l'historique d'écriture existant. Bien que cette méthode en série empêche les appels parallèles au modèle pour effectuer plusieurs sous-tâches simultanément et que la longueur d'entrée devienne plus longue, LongWriter montre en validation que la cohérence globale et la qualité de l'écriture obtenue de cette manière sont bien supérieures à la sortie générée en parallèle. L'invite utilisée par LongWriter est :
« Vous êtes un excellent assistant d'écriture. Je vais vous donner une instruction d'écriture originale et mes étapes d'écriture prévues. Je vous fournirai également le texte que j'ai déjà écrit. S'il vous plaît, aidez-moi à continuer à écrire le paragraphe suivant en fonction des instructions d'écriture, des étapes d'écriture et du texte déjà écrit.
Instruction d'écriture :
{Instructions utilisateur}
Étapes d'écriture :
{Le plan d'écriture généré à l'étape I}
Texte déjà écrit :
{Paragraphes générés précédemment (n-1)}
Veuillez intégrer les instructions d'écriture originales, les étapes d'écriture et le texte déjà écrit, et continuez maintenant à écrire {Le plan pour le n-ème paragraphe, c'est-à-dire la n-ème ligne du plan d'écriture}.
Validation
LongWriter teste la longueur et la qualité de génération de la méthode AgentWrite proposée sur deux ensembles de données d'écriture longue. Le premier, LongWrite-Ruler, est utilisé pour mesurer exactement la durée de sortie que la méthode peut fournir. Le second, LongBench-Write, est principalement utilisé pour évaluer dans quelle mesure le contenu généré par le modèle s'aligne sur les instructions utilisateur en termes de longueur et de qualité d'écriture.
LongBench-Écriture: Pour évaluer les performances du modèle sur une gamme plus diversifiée d'instructions d'écriture longues, LongWriter collecte 120 invites d'écriture utilisateur variées, dont 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 garantit que toutes ces instructions incluent des exigences explicites en matière de nombre de mots. Ces instructions sont divisées en quatre sous-ensembles en fonction des exigences en matière de nombre de mots : 0 à 500 mots, 500 à 2,000 2,000 mots, 4,000 4,000 à XNUMX XNUMX mots et plus de XNUMX XNUMX mots. De plus, les instructions sont classées en sept types en fonction du type de sortie : littérature et écriture créative, académique et monographie, vulgarisation scientifique, écriture fonctionnelle, reportage d'actualité, forum communautaire et éducation et formation.
Lors de l'évaluation, LongWriter adopte deux métriques : une pour évaluer la longueur de sortie et une autre pour évaluer 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 instructions. Pour la qualité de sortie, LongWriter utilise l'approche LLM-as-a-juge, en sélectionnant l'état de l'art Modèle GPT-4o pour évaluer le résultat selon six dimensions : pertinence, exactitude, cohérence, clarté, étendue et 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 la validation: LongWriter présente la mesure de la longueur de sortie sur LongWrite-Ruler et constate que AgentWrite étend avec succès la longueur de sortie de GPT-4o d'un maximum de 2 20 mots à environ 4 2,000 mots. LongWriter évalue également à la fois la qualité de sortie et le respect de la longueur de sortie requise sur LongBench-Write, montrant que GPT-XNUMXo peut accomplir avec succès des tâches avec des sorties de moins de XNUMX XNUMX mots lors de l'évaluation des performances d'AgentWrite.

Mise au point supervisée
LongWriter organise 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 contextuelle allant jusqu'à 128 9 jetons, ce qui les rend naturellement adaptés à la formation sur de longues sorties. Pour rendre la formation plus efficace, LongWriter adopte une formation d'emballage avec perte de poids. La formation sur les deux modèles aboutit à deux modèles : LongWriter-4B (abrégé pour GLM-9-8B-LongWriter) et LongWriter-3.1B (abrégé pour Llama-8-XNUMXB-LongWriter).
Parallèlement, LongWriter constate que si la perte est moyennée par séquence, c'est-à-dire en prenant la moyenne des pertes moyennes de chaque séquence au sein d'un lot, la contribution de chaque jeton cible à la perte dans les données de sortie longues serait significativement inférieure à celle des données de sortie plus courtes. Les expériences de LongWriter ont également montré que cela entraîne des performances sous-optimales du modèle sur les tâches à sorties longues. Par conséquent, LongWriter choisit une stratégie de pondération des pertes qui calcule la moyenne des pertes par jeton, la perte étant calculée comme la moyenne des pertes sur tous les jetons cibles de ce lot.
Tous les modèles sont entraînés à l’aide d’un nœud avec 8 GPU H800 80G et un déchargement DeepSpeed+ZeRO3+CPU. LongWriter utilise une taille de lot de 8, un taux d'apprentissage de 1e-5 et une longueur de compression de 32 ko. Les modèles sont formés pendant 4 époques, ce qui prend environ 2,500 3,000 à XNUMX XNUMX étapes.
Alignement (OPD)
Pour améliorer encore la qualité de sortie du modèle et améliorer sa capacité à suivre les contraintes de longueur dans les instructions, LongWriter effectue une optimisation des préférences directes (DPO) sur le modèle LongWriter-9B supervisé et affiné. Les données DPO proviennent des données DPO de chat de GLM-4 (environ 50 4 entrées). De plus, LongWriter construit 4 9 paires de données ciblant spécifiquement les instructions d'écriture longue durée. Pour chaque instruction d'écriture, LongWriter échantillonne XNUMX sorties de LongWriter-XNUMXB et note ces sorties selon une méthode spécifique. Un score de suivi de longueur est également combiné tel que calculé. La sortie ayant obtenu le score le plus élevé est ensuite sélectionnée comme échantillon positif, et l’une des trois sorties restantes est choisie au hasard comme échantillon négatif.
Le modèle résultant, LongWriter-9B-DPO, est formé pour 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 quatre modèles propriétaires et cinq modèles open source sur LongBench-Write, ainsi que les modèles LongWriter entraînés. À la connaissance de LongWriter, Suri-IORPO est le seul modèle antérieur également compatible avec la génération de texte long. Il est entraîné sur la base de Mistral-4B-Instruct-v5 via LoRA. Conformément à la configuration d'évaluation sur LongWrite-Ruler, LongWriter définit la température de sortie à 7 et configure le paramètre « Nombre maximal de jetons de génération » du modèle sur la valeur maximale autorisée par son appel d'API. Pour les modèles open source, ce paramètre est fixé à 0.2 0.5.

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 XNUMX mots, tandis que les modèles LongWriter fournissent systématiquement des réponses plus longues et plus riches à ces 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 sont généralement peu performants (score inférieur à 70) sur les invites dans la plage [2k, 4k], seul Claude 3.5 Sonnet obtenant un score décent. Pour les invites dans la plage [4k, 20k], presque tous les modèles précédents sont totalement incapables d'atteindre la longueur de sortie cible, obtenant 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 les données d'entraînement de LongWriter-6k, le modèle entraîné de LongWriter peut effectivement atteindre la longueur de sortie requise tout en conservant une bonne qualité, comme le suggèrent les scores dans la plage [2k, 20k] et les nuages de points.

DPO améliore efficacement à la fois la qualité de sortie du modèle et sa capacité à respecter les exigences de longueur dans une génération longue.
En comparant les scores de LongWriter-9B et LongWriter9B-DPO, nous constatons que DPO améliore de manière significative les scores Sl (+4 %) et Sq (+3 %), et l'amélioration est cohérente dans toutes les plages. Cela montre que dans un scénario de génération longue, DPO contribue toujours à améliorer la qualité de sortie du modèle et peut mieux aligner la longueur de sortie du modèle avec 8 pré-impression. Figure 7 : Perte NLL moyenne cumulée de GLM4-9B et Llama-3.1-8B à différentes positions de LongWriter sorties des modèles. Figure 8 : Résultats des tests LongWrite-Ruler des modèles LongWriter, montrant leurs longueurs de génération maximales comprises entre 10 20 et 2024 4 mots. la longueur demandée. Cette dernière conclusion a également été récemment observée dans Yuan et al. (9) dans des générations plus courtes. Nous annotons également manuellement les gains et les pertes par paires pour GPT-9o et trois modèles d'écriture longue sur leurs sorties dans LongBench-Write et visualisons les résultats dans la figure 58. Nous pouvons voir que les humains préfèrent le modèle formé par DPO à LongWriter-9B dans 4 % des cas. les cas. De plus, malgré moins de paramètres, LongWriter-XNUMXB-DPO parvient à égalité avec GPT-XNUMXo.

La limite de longueur de sortie des modèles LongWriter est étendue entre 10 20 et XNUMX XNUMX mots, tandis que davantage de données avec des sorties longues sont nécessaires pour prendre en charge des sorties encore plus longues.
Suite aux tests LongWrite-Ruler, nous présentons également les résultats des tests LongWrite-Ruler des modèles LongWriter. Les résultats suggèrent que leurs longueurs maximales de génération se situent entre 10 20 et XNUMX XNUMX 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.
Réflexions finales
Dans ce travail, nous avons parlé de LongWriter, un pipeline basé sur des agents qui décompose les tâches de génération ultra-longues en sous-tâches, identifie une limite de génération de 2,000 10,000 mots pour les LLM actuels et propose d'augmenter la taille de leur fenêtre de sortie en ajoutant des données de sortie longues lors de l'alignement. . Pour construire automatiquement des données de sortie longue, LongWriter développe AgentWrite, un pipeline basé sur des agents qui utilise des LLM disponibles dans le commerce pour créer des sorties étendues et cohérentes. LongWriter adapte avec succès la taille de la fenêtre de sortie des LLM actuels à plus de 6 1 mots avec le LongWriter-2k construit. Des études d’ablation approfondies sur les données d’entraînement démontrent l’efficacité de cette approche. Pour les travaux futurs, LongWriter suggère les trois directions suivantes : 3. Développer le framework AgentWrite pour construire des données avec des sorties plus longues afin d'étendre davantage la taille de la fenêtre de sortie des LLM. XNUMX. Affinez le framework AgentWrite pour obtenir des données à sortie longue de meilleure qualité. XNUMX. Les résultats plus longs du modèle posent des défis en matière d’efficacité de l’inférence. Plusieurs méthodes ont été proposées pour améliorer l'efficacité de l'inférence. Il vaut la peine d’étudier comment ces méthodes peuvent garantir une meilleure efficacité du modèle sans compromettre la qualité de la génération.












