Inteligencia Artificial
LongWriter: Liberando la generación de más de 10,000 palabras a partir de LLM de contexto largo
Los modelos de lenguajes grandes (LLM) de contexto largo actuales pueden procesar entradas de hasta 100,000 tokens, pero tienen dificultades para generar resultados que superen incluso una longitud modesta de 2,000 palabras. Los experimentos controlados revelan que la duración efectiva de la generación del modelo está inherentemente limitada por los ejemplos vistos durante puesta a punto supervisada (SFT). En otras palabras, esta limitación de la producción se debe a la escasez de ejemplos de producción a largo plazo en los conjuntos de datos de SFT existentes.
Los avances recientes en los LLM de contexto largo han llevado al desarrollo de modelos con capacidades de memoria significativamente ampliadas, capaces de procesar un historial de más de 100,000 tokens de longitud. Sin embargo, a pesar de su capacidad para manejar insumos extensos, los LLM actuales de contexto largo luchan por generar resultados igualmente extensos.
Para explorar esta limitación, escritor largo sondea la longitud máxima de salida de modelos de contexto largo de última generación con múltiples consultas que requieren respuestas de diferentes longitudes, como "Escribe un artículo de 10,000 palabras sobre la historia del Imperio Romano". Los resultados muestran que todos los modelos no logran producir resultados de más de 2,000 palabras de extensión. Mientras tanto, el análisis de los registros de interacción del usuario revela que más del 1% de las indicaciones de los usuarios solicitan explícitamente resultados que exceden este límite, lo que destaca una necesidad apremiante en la investigación actual para superar esta limitación.
Para abordar esto, LongWriter presenta AgenteEscribir, un canal basado en agentes que descompone tareas de generación ultralarga en subtareas, lo que permite a los LLM disponibles generar resultados coherentes que superen las 20,000 6 palabras. Aprovechando AgentWrite, LongWriter construye LongWriter-6,000k, un conjunto de datos que contiene 2 muestras de datos SFT con longitudes de salida que varían de 32k a 10,000k palabras. Al incorporar este conjunto de datos en el entrenamiento de modelos, LongWriter escala con éxito la longitud de salida de los modelos existentes a más de XNUMX XNUMX palabras manteniendo la calidad de la salida.
LongWriter también desarrolla LongBench-Write, un punto de referencia integral para evaluar capacidades de generación ultralarga. El modelo de parámetros 9B, mejorado aún más a través de DPO, logra un rendimiento de vanguardia en este punto de referencia, superando incluso modelos propietarios mucho más grandes.
En este artículo, analizaremos el marco LongWriter, exploraremos su arquitectura y compararemos su rendimiento con modelos de lenguajes grandes de contexto largo de última generación. Empecemos.
LongWriter: marco de generación de más de 10,000 XNUMX palabras
Los avances recientes en los modelos de lenguajes grandes (LLM) de contexto largo han llevado a la creación de modelos con capacidades de memoria significativamente mayores, capaces de procesar historiales que superan los 100,000 tokens. A pesar de esta capacidad para manejar insumos extensos, el contexto actual a largo plazo LLM luchan por generar productos de duración comparable. Para investigar esta limitación, LongWriter examina la longitud máxima de salida de los modelos de contexto largo más modernos a través de varias consultas que requieren diferentes longitudes de respuesta, como "Escribir un artículo de 10,000 palabras sobre la historia del Imperio Romano". Con base en los hallazgos, LongWriter observa que todos los modelos fallan consistentemente en generar resultados de más de 2,000 palabras. Además, un análisis de los registros de interacción de los usuarios indica que más del 1% de las indicaciones de los usuarios solicitan específicamente resultados más allá de este límite, lo que destaca una necesidad urgente en la investigación actual para abordar este problema.

El estudio de LongWriter revela una idea clave: la limitación de la longitud de salida se basa principalmente en las características de los conjuntos de datos de Ajuste Fino Supervisado (SFT). En concreto, LongWriter descubre que la longitud máxima de generación de un modelo está limitada por el límite superior de longitudes de salida presentes en su conjunto de datos SFT, a pesar de su exposición a secuencias mucho más largas durante la fase de preentrenamiento. Este hallazgo explica el omnipresente límite de generación de 2,000 palabras en los modelos actuales, ya que los conjuntos de datos SFT existentes rara vez contienen ejemplos que superen esta longitud. Además, dado que muchos conjuntos de datos se derivan de LLM de última generación, también heredan la limitación de longitud de salida de sus modelos de origen.
Para abordar esta limitación, LongWriter presenta AgentWrite, un novedoso pipeline basado en agentes, diseñado para aprovechar las LLM disponibles comercialmente y generar automáticamente resultados extensos y coherentes. AgentWrite funciona en dos etapas: primero, elabora un plan de escritura detallado que describe la estructura y el número de palabras objetivo para cada párrafo, basándose en la información proporcionada por el usuario. Luego, siguiendo este plan, solicita al modelo que genere contenido para cada párrafo de forma secuencial. Los experimentos de LongWriter validan que AgentWrite puede producir resultados coherentes y de alta calidad de hasta 20,000 XNUMX palabras.
Basándose en la canalización AgentWrite, LongWriter aprovecha GPT-4o para generar 6,000 datos SFT de salida larga, denominados LongWriter-6k, y los incorpora para entrenar los modelos existentes. Cabe destacar que LongWriter-6k aprovecha la capacidad del modelo para generar salidas bien estructuradas de más de 10,000 0 palabras. Para evaluar rigurosamente la eficacia de este enfoque, LongWriter desarrolla el benchmark LongBench-Write, que contiene un conjunto diverso de instrucciones de escritura de usuario, con especificaciones de longitud de salida que van de 500 a 500 palabras, de 2,000 a 2,000 palabras, de 4,000 a 4,000 palabras y más de 9 palabras. La evaluación de LongBench-Write muestra que el modelo de tamaño XNUMXB de LongWriter alcanza un rendimiento de vanguardia, incluso en comparación con modelos propietarios de mayor tamaño. LongWriter construye además datos de preferencias y utiliza DPO para ayudar al modelo a seguir mejor las instrucciones de escritura largas y generar contenido escrito de mayor calidad, lo que también ha demostrado ser eficaz a través de experimentos.
En resumen, el trabajo de LongWriter hace las siguientes contribuciones novedosas:
- Análisis de límites de duración de generación: LongWriter identifica el factor principal que limita la longitud de salida de los LLM de contexto largo actuales, que es la restricción de la longitud de salida en los datos SFT.
- AgenteEscribir: Para superar esta limitación, LongWriter propone AgentWrite, que utiliza un enfoque de divide y vencerás con LLM disponibles para construir automáticamente datos SFT con resultados ultralargos. Con este método, LongWriter construye el conjunto de datos LongWriter-6k.
- Escalar el tamaño de la ventana de salida de los LLM actuales: LongWriter incorpora el conjunto de datos LongWriter-6k en sus datos SFT, escalando con éxito el tamaño de la ventana de salida de los modelos existentes a más de 10,000 XNUMX palabras sin comprometer la calidad de la salida. LongWriter muestra que DPO mejora aún más las capacidades de escritura de textos largos del modelo.
AgentWrite: Construcción automática de datos
Para utilizar LLMs estándar para generar automáticamente datos SFT con resultados más extensos, LongWriter diseñó AgentWrite, una canalización de agentes con un enfoque de "divide y vencerás". AgentWrite primero descompone las tareas de escritura extensas en múltiples subtareas, cada una de las cuales requiere que el modelo escriba solo un párrafo. A continuación, el modelo ejecuta estas subtareas secuencialmente, y LongWriter concatena los resultados de las subtareas para obtener el resultado final extenso. Este enfoque de descomponer una tarea compleja en múltiples subtareas mediante agentes LLM ya se ha aplicado en diversos campos, como la resolución de problemas, el desarrollo de software y la evaluación de modelos. El trabajo de LongWriter es el primero en explorar la integración de la planificación para que los modelos puedan completar tareas complejas de escritura extensa. Cada paso de AgentWrite se detalla a continuación.

Paso I: Planificar
Inspirándose en el proceso de pensamiento de los escritores humanos, que normalmente comienzan haciendo un plan general para tareas de escritura largas, LongWriter utiliza las capacidades de planificación de los LLM para generar un esquema de escritura dada una instrucción de escritura. Este plan incluye el contenido principal y los requisitos de recuento de palabras para cada párrafo. El mensaje utilizado por LongWriter es el siguiente:
“Necesito que me ayudes a dividir las siguientes instrucciones de escritura extensas en múltiples subtareas. Cada subtarea guiará la redacción de un párrafo del ensayo y debe incluir los puntos principales y los requisitos de recuento de palabras para ese párrafo. La instrucción de escritura es la siguiente: {Instrucción de usuario}. Desglose en el siguiente formato, ocupando cada subtarea una línea:
Párrafo 1 – Punto principal: [Describa el punto principal del párrafo en detalle] – Conteo de palabras: [Requisito de conteo de palabras, por ejemplo, 400 palabras]
Párrafo 2 – Punto principal: [Describa el punto principal del párrafo en detalle] – Conteo de palabras: [Requisito de conteo de palabras, por ejemplo, 1000 palabras].Asegúrese de que cada subtarea sea clara y específica, y que todas las subtareas cubran todo el contenido de la instrucción de escritura. No divida las subtareas demasiado finamente; El párrafo de cada subtarea debe tener no menos de 200 palabras ni más de 1000 palabras. No publique ningún otro contenido”.
Paso II: escribir
Después de obtener el plan de redacción del Paso I, LongWriter llama al LLM en serie para completar cada subtarea, generando el contenido de redacción sección por sección. Para garantizar la coherencia de la salida, cuando LongWriter llama al modelo para generar la enésima sección, también se ingresan las n-1 secciones generadas previamente, lo que permite que el modelo continúe escribiendo la siguiente sección según el historial de escritura existente. Aunque esta forma en serie evita que las llamadas paralelas al modelo completen múltiples subtareas simultáneamente, y la longitud de la entrada se vuelve más larga, LongWriter muestra en la validación que la coherencia general y la calidad de la escritura obtenida de esta manera son muy superiores a la salida generada en paralelo. El mensaje que utiliza LongWriter es:
“Eres un excelente asistente de redacción. Le daré instrucciones de escritura originales y mis pasos de escritura planificados. También te proporcionaré el texto que ya he escrito. Ayúdenme a continuar escribiendo el siguiente párrafo según las instrucciones de escritura, los pasos de escritura y el texto ya escrito.
Instrucción de escritura:
{Instrucciones de usuario}
Pasos de escritura:
{El plan de escritura generado en el Paso I}
Texto ya escrito:
{Párrafos anteriores generados (n-1)}
Integre las instrucciones de escritura originales, los pasos de escritura y el texto ya escrito, y ahora continúe escribiendo {El plan para el enésimo párrafo, es decir, la enésima línea del plan de escritura}”.
de calidad
LongWriter prueba la duración de generación y la calidad del método AgentWrite propuesto en dos conjuntos de datos de escritura de formato largo. El primero, LongWrite-Ruler, se utiliza para medir exactamente cuánto tiempo de salida puede proporcionar el método. El segundo, LongBench-Write, se utiliza principalmente para evaluar qué tan bien se alinea el contenido generado por el modelo con las instrucciones del usuario en términos de extensión y calidad de escritura.
Escritura en banco largo: Para evaluar el rendimiento del modelo en una gama más diversa de instrucciones de escritura de formato largo, LongWriter recopila 120 indicaciones de escritura variadas para el usuario, 60 de ellas en chino y 60 en inglés. Para evaluar mejor si la longitud de salida del modelo cumple con los requisitos del usuario, LongWriter se asegura de que todas estas instrucciones incluyan requisitos explícitos de recuento de palabras. Estas instrucciones se dividen en cuatro subconjuntos según los requisitos de recuento de palabras: de 0 a 500 palabras, de 500 a 2,000 palabras, de 2,000 a 4,000 palabras y más de 4,000 palabras. Además, las instrucciones se clasifican en siete tipos según el tipo de resultado: literatura y escritura creativa, académico y monográfico, ciencia popular, escritura funcional, informe de noticias, foro comunitario y educación y capacitación.
Durante la evaluación, LongWriter adopta dos métricas: una para calificar la longitud del resultado y otra para calificar la calidad del resultado. La longitud de salida del modelo se califica en función de qué tan cerca está de los requisitos especificados en las instrucciones. Para la calidad de la producción, LongWriter utiliza el enfoque LLM como juez, seleccionando lo último en tecnología. Modelo GPT-4o para calificar el resultado en seis dimensiones: relevancia, precisión, coherencia, claridad, amplitud y profundidad y experiencia de lectura. La puntuación final se calcula promediando la puntuación de longitud y la puntuación de calidad.
Resultados de la validación: LongWriter presenta la medición de la longitud de salida en LongWrite-Ruler y descubre que AgentWrite extiende con éxito la longitud de salida de GPT-4o de un máximo de 2 mil palabras a aproximadamente 20 mil palabras. LongWriter también evalúa tanto la calidad de la salida como el cumplimiento de la longitud de salida requerida en LongBench-Write, lo que demuestra que GPT-4o puede completar con éxito tareas con salidas de menos de 2,000 palabras al evaluar el rendimiento de AgentWrite.

Ajuste fino supervisado
LongWriter lleva a cabo capacitaciones basadas en dos de los últimos modelos de código abierto, a saber, GLM-4-9B y Llama-3.1-8B. Ambos son modelos básicos y admiten una ventana de contexto de hasta 128 tokens, lo que los hace naturalmente adecuados para el entrenamiento en salidas largas. Para hacer que la capacitación sea más eficiente, LongWriter adopta la capacitación de embalaje con pérdida de ponderación. El entrenamiento en los dos modelos da como resultado dos modelos: LongWriter-9B (abreviado para GLM-4-9B-LongWriter) y LongWriter-8B (abreviado para Llama-3.1-8B-LongWriter).
Al mismo tiempo, LongWriter observa que si la pérdida se promedia por secuencia, es decir, se toma la media de la pérdida promedio de cada secuencia dentro de un lote, la contribución de cada token objetivo a la pérdida en datos de salida largos sería significativamente menor que en aquellos con salidas más cortas. En los experimentos de LongWriter, también se observa que esto conduce a un rendimiento subóptimo del modelo en tareas con salidas largas. Por lo tanto, LongWriter elige una estrategia de ponderación de pérdidas que promedia la pérdida por token, donde la pérdida se calcula como la media de las pérdidas de todos los tokens objetivo dentro de ese lote.
Todos los modelos se entrenan utilizando un nodo con 8xH800 80G GPU y descarga de CPU DeepSpeed+ZeRO3+. LongWriter utiliza un tamaño de lote de 8, una tasa de aprendizaje de 1e-5 y una longitud de empaquetado de 32k. Los modelos se entrenan para 4 épocas, lo que requiere aproximadamente entre 2,500 y 3,000 pasos.
Alineación (DPO)
Para mejorar aún más la calidad de salida del modelo y mejorar su capacidad para seguir restricciones de longitud en las instrucciones, LongWriter realiza una optimización de preferencia directa (DPO) en el modelo LongWriter-9B supervisado y afinado. Los datos de DPO provienen de los datos de DPO del chat del GLM-4 (aproximadamente 50 entradas). Además, LongWriter construye pares de datos de 4k específicamente dirigidos a instrucciones de escritura de formato largo. Para cada instrucción de escritura, LongWriter toma muestras de 4 resultados de LongWriter-9B y los califica siguiendo un método específico. Una puntuación de seguimiento de longitud también se combina según se calcula. Luego, el resultado con la puntuación más alta se selecciona como muestra positiva y uno de los tres resultados restantes se elige aleatoriamente como muestra negativa.
El modelo resultante, LongWriter-9B-DPO, se entrena en 250 pasos con la combinación de datos anterior. LongWriter sigue una receta específica para la formación de DPO.
LongWriter: experimentos y resultados
LongWriter evalúa cuatro modelos propietarios y cinco modelos de código abierto en LongBench-Write, junto con los modelos entrenados de LongWriter. Según el conocimiento de LongWriter, Suri-IORPO es el único modelo previo que también está alineado para la generación de texto largo. Se entrena con base en Mistral-4B-Instruct-v5 mediante LoRA. Siguiendo la configuración de evaluación en LongWrite-Ruler, LongWriter establece la temperatura de salida en 7 y configura el parámetro de generación máxima de tokens del modelo al máximo permitido por su llamada a la API. Para los modelos de código abierto, se establece en 0.2 0.5.

La mayoría de los modelos anteriores no pueden cumplir con el requisito de extensión de más de 2,000 palabras, mientras que los modelos LongWriter brindan constantemente respuestas más largas y ricas a dichas indicaciones.
Al observar la puntuación de longitud de salida SlS_lSl para las indicaciones en cada rango de longitud requerido, LongWriter descubre que los modelos anteriores generalmente tienen un rendimiento deficiente (puntuación inferior a 70) en indicaciones en el rango [2k, 4k), y solo Claude 3.5 Sonnet logra una puntuación decente. Para indicaciones en el rango [4k, 20k), casi todos los modelos anteriores son completamente incapaces de alcanzar la longitud de salida objetivo, incluso con una puntuación de 0 (lo que significa que todas las longitudes de salida son inferiores a un tercio de la longitud requerida). Al agregar datos de entrenamiento de LongWriter-6k, el modelo entrenado de LongWriter puede alcanzar eficazmente la longitud de salida requerida manteniendo una buena calidad, como lo sugieren las puntuaciones en el rango [2k, 20k) y los diagramas de dispersión.

DPO mejora efectivamente tanto la calidad de salida del modelo como su capacidad para seguir los requisitos de longitud en generaciones largas.
Al comparar las puntuaciones de LongWriter-9B y LongWriter9B-DPO, encontramos que DPO mejora significativamente las puntuaciones Sl (+4%) y Sq (+3%), y la mejora es consistente en todos los rangos. Esto muestra que en un escenario de generación larga, DPO aún ayuda a mejorar la calidad de salida del modelo y puede alinear mejor la longitud de salida del modelo con 8 Preprint Figura 7: Pérdida NLL promedio acumulada de GLM4-9B y Llama-3.1-8B en diferentes posiciones de LongWriter resultados de los modelos. Figura 8: Resultados de la prueba LongWrite-Ruler de los modelos LongWriter, que muestran sus longitudes máximas de generación entre 10 y 20 palabras. la longitud solicitada. Esta última conclusión también ha sido observada recientemente en Yuan et al. (2024) en generaciones más cortas. También anotamos manualmente las victorias y pérdidas por pares para GPT-4o y tres modelos de escritura larga en sus resultados en LongBench-Write y visualizamos los resultados en la Figura 9. Podemos ver que los humanos prefieren el modelo entrenado con DPO sobre LongWriter-9B en el 58% de los casos. los casos. Además, a pesar de tener menos parámetros, LongWriter-9B-DPO logra un empate con GPT-4o.

El límite de longitud de salida de los modelos LongWriter se amplía a entre 10 y 20 palabras, mientras que se requieren más datos con salidas largas para admitir salidas aún más largas.
Después de las pruebas de LongWrite-Ruler, también presentamos los resultados de las pruebas de LongWrite-Ruler de los modelos LongWriter. Los resultados sugieren que la longitud máxima de generación está entre 10 y 20 palabras. La falta de datos SFT con resultados más largos es probablemente la razón principal que impide que el modelo logre resultados de mayor duración.
Conclusión
En este trabajo, hemos hablado de LongWriter, un canal basado en agentes que descompone tareas de generación ultralarga en subtareas, identifica un límite de generación de 2,000 palabras para los LLM actuales y propone aumentar el tamaño de su ventana de salida agregando datos de salida largos durante la alineación. . Para construir automáticamente datos de salida largos, LongWriter desarrolla AgentWrite, una canalización basada en agentes que utiliza LLM disponibles para crear resultados extendidos y coherentes. LongWriter escala con éxito el tamaño de la ventana de salida de los LLM actuales a más de 10,000 6 palabras con el LongWriter-1k construido. Amplios estudios de ablación sobre los datos del entrenamiento demuestran la eficacia de este enfoque. Para trabajos futuros, LongWriter sugiere las siguientes tres direcciones: 2. Expandir el marco AgentWrite para construir datos con resultados más largos para ampliar aún más el tamaño de la ventana de resultados de los LLM. 3. Refinar el marco de AgentWrite para lograr datos de salida larga de mayor calidad. XNUMX. Los resultados del modelo más largos plantean desafíos a la eficiencia de la inferencia. Se han propuesto varios métodos para mejorar la eficiencia de la inferencia. Vale la pena investigar cómo estos métodos pueden garantizar una mayor eficiencia del modelo sin comprometer la calidad de la generación.












