Modelos y plataformas de IA

LongWriter: Desbloqueando la generación de 10,000+ palabras desde LLMs de contexto largo

mm
Añade Unite.AI a tus fuentes preferidas en Google
LONGWRITER: UNLEASHING 10,000+ WORD GENERATION FROM LONG CONTEXT LLMS

Los actuales modelos de lenguaje grande (LLM) de contexto largo pueden procesar entradas de hasta 100,000 tokens, pero luchan por generar salidas que excedan una longitud modesta de 2,000 palabras. Experimentos controlados revelan que la longitud efectiva de generación del modelo está inherentemente limitada por los ejemplos vistos durante el ajuste fino supervisado (SFT). En otras palabras, esta limitación de salida se debe a la escasez de ejemplos de salida larga 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 expandidas, capaces de procesar historias que exceden los 100,000 tokens de longitud. Sin embargo, a pesar de su capacidad para manejar entradas extensas, los actuales LLM de contexto largo luchan por generar salidas igualmente largas.

Para explorar esta limitación, LongWriter examina la longitud máxima de salida de los modelos de contexto largo de estado del arte 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 fallan consistentemente en producir salidas más allá de 2,000 palabras de longitud. Mientras tanto, el análisis de los registros de interacción de los usuarios revela que más del 1% de las solicitudes de los usuarios solicitan explícitamente salidas que excedan este límite, destacando una necesidad apremiante en la investigación actual para superar esta limitación.

Para abordar esto, LongWriter introduce AgentWrite, una tubería basada en agentes que descompone tareas de generación ultra-larga en subtareas, lo que permite a los LLM de estantería generar salidas coherentes que exceden las 20,000 palabras. Al aprovechar AgentWrite, LongWriter construye LongWriter-6k, un conjunto de datos que contiene 6,000 muestras de datos de SFT con longitudes de salida que van desde 2k hasta 32k palabras. Al incorporar este conjunto de datos en el entrenamiento del modelo, LongWriter logra escalar la longitud de salida de los modelos existentes a más de 10,000 palabras mientras mantiene la calidad de la salida.

LongWriter también desarrolla LongBench-Write, una benchmark integral para evaluar las capacidades de generación ultra-larga. El modelo de 9B de parámetros, mejorado aún más a través de DPO, logra un rendimiento de estado del arte en esta benchmark, superando incluso a modelos propietarios más grandes.

En este artículo, discutiremos el marco de LongWriter, exploraremos su arquitectura y compararemos su rendimiento con los modelos de lenguaje grande de contexto largo de estado del arte. Comencemos.

LongWriter: Marco de generación de 10,000+ palabras

Los avances recientes en los LLM de contexto largo han llevado a la creación de modelos con capacidades de memoria significativamente expandidas, capaces de procesar historias que exceden los 100,000 tokens. A pesar de esta capacidad para manejar entradas extensas, los actuales LLM de contexto largo luchan por generar salidas de longitud comparable. Para investigar esta limitación, LongWriter examina la longitud máxima de salida de los modelos de contexto largo de estado del arte a través de varias consultas que requieren diferentes longitudes de respuesta, como “Escribe un artículo de 10,000 palabras sobre la historia del Imperio Romano”. Según los hallazgos, LongWriter observa que todos los modelos fallan consistentemente en generar salidas más largas que 2,000 palabras. Además, el análisis de los registros de interacción de los usuarios indica que más del 1% de las solicitudes de los usuarios solicitan explícitamente salidas que excedan este límite, destacando una necesidad apremiante en la investigación actual para abordar este problema.

El estudio de LongWriter revela una idea clave: la restricción en la longitud de salida se debe principalmente a las características de los conjuntos de datos de SFT. En particular, LongWriter encuentra que la longitud máxima de generación de un modelo está efectivamente limitada por el límite superior de las longitudes de salida presentes en su conjunto de datos de SFT, a pesar de su exposición a secuencias mucho más largas durante la fase de preentrenamiento. Este hallazgo explica el límite de generación de 2,000 palabras ubicuo en los modelos actuales, ya que los conjuntos de datos de SFT existentes rara vez contienen ejemplos que excedan esta longitud. Además, como muchos conjuntos de datos se destilan de LLM de estado del arte, también heredan la limitación de longitud de salida de sus modelos de origen.

Para abordar esta limitación, LongWriter introduce AgentWrite, una tubería basada en agentes que utiliza LLM de estantería para generar automáticamente salidas extendidas y coherentes. AgentWrite opera en dos etapas: primero, crea un plan de escritura detallado que describe la estructura y el recuento de palabras para cada párrafo en función de la entrada del usuario. Luego, siguiendo este plan, AgentWrite llama al modelo para generar contenido para cada párrafo de manera secuencial. LongWriter concatena las salidas de las subtareas para obtener la salida final larga. Este enfoque de descomposición de una tarea compleja en subtareas utilizando agentes LLM ya se ha aplicado en varios 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 permitir que los modelos completen tareas de escritura a largo plazo. Cada paso de AgentWrite se introduce en detalle a continuación.

Paso I: Plan

Inspirado por el proceso de pensamiento de los escritores humanos, que generalmente comienzan haciendo un plan general para tareas de escritura a largo plazo, LongWriter utiliza las capacidades de planificación de los LLM para producir un esquema de escritura dado una instrucción de escritura. Este plan incluye el contenido principal y los requisitos de recuento de palabras para cada párrafo. La solicitud utilizada por LongWriter es la siguiente:

“Necesito que me ayudes a descomponer la siguiente instrucción de escritura a largo plazo en múltiples subtareas. Cada subtarea guiará la escritura de un párrafo en el 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 del usuario}. Por favor, descompónla en el siguiente formato, con cada subtarea en una línea:

Párrafo 1 – Punto principal: [Describe el punto principal del párrafo, en detalle] – Recuento de palabras: [Requisito de recuento de palabras, por ejemplo, 400 palabras]
Párrafo 2 – Punto principal: [Describe el punto principal del párrafo, en detalle] – Recuento de palabras: [Requisito de recuento de palabras, por ejemplo, 1000 palabras].

Asegúrate 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 divides las subtareas demasiado finamente; cada subtarea del párrafo debe ser de al menos 200 palabras y no más de 1000 palabras. No salgas con ningún otro contenido.”

Paso II: Escribe

Después de obtener el plan de escritura del Paso I, LongWriter llama al LLM de manera secuencial para completar cada subtarea, generando el contenido de escritura sección por sección. Para asegurar la coherencia de la salida, cuando LongWriter llama al modelo para generar la n-ésima sección, las secciones n-1 previamente generadas también se ingresan, lo que permite al modelo continuar escribiendo la siguiente sección en función de la historia de escritura existente. Aunque este método secuencial evita llamadas paralelas al modelo para completar múltiples subtareas simultáneamente, y la longitud de entrada se vuelve más larga, LongWriter muestra en la validación que la coherencia y la calidad de la escritura obtenida de esta manera son muy superiores a la salida generada en paralelo. La solicitud utilizada por LongWriter es:

“Eres un asistente de escritura excelente. Te daré una instrucción de escritura original y mis pasos de escritura planificados. También te proporcionaré el texto que ya he escrito. Por favor, ayúdame a continuar escribiendo el siguiente párrafo en función de la instrucción de escritura, los pasos de escritura y el texto ya escrito.

Instrucción de escritura:
{Instrucción del usuario}
Pasos de escritura:
{El plan de escritura generado en el Paso I}
Texto ya escrito:
{Párrafos (n-1) previamente generados}

Por favor, integra la instrucción de escritura original, los pasos de escritura y el texto ya escrito, y ahora continúa escribiendo {El plan para el párrafo n-ésimo, es decir, la n-ésima línea en el plan de escritura}.”

Validación

LongWriter prueba la longitud de generación y la calidad del método AgentWrite propuesto en dos conjuntos de datos de escritura a largo plazo. El primero, LongWrite-Ruler, se utiliza para medir exactamente qué tan larga es la salida que el método puede proporcionar. El segundo, LongBench-Write, se utiliza principalmente para evaluar cómo se alinea el contenido generado por el modelo con las instrucciones del usuario en términos de longitud y calidad de escritura.

LongBench-Write: Para evaluar el rendimiento del modelo en una gama más diversa de instrucciones de escritura a largo plazo, LongWriter recopila 120 instrucciones de escritura variadas, con 60 en chino y 60 en inglés. Para evaluar mejor si la longitud de la salida del modelo cumple con los requisitos del usuario, LongWriter asegura que todas estas instrucciones incluyan requisitos explícitos de recuento de palabras. Estas instrucciones se dividen en cuatro subconjuntos en función de los requisitos de recuento de palabras: 0-500 palabras, 500-2,000 palabras, 2,000-4,000 palabras y más de 4,000 palabras. Además, las instrucciones se categorizan en siete tipos en función del tipo de salida: Literatura y escritura creativa, Académica y monografía, Ciencia popular, Escritura funcional, Informe de noticias, Foro de la comunidad y Educación y capacitación.

Durante la evaluación, LongWriter adopta dos métricas: una para puntuar la longitud de la salida y otra para puntuar la calidad de la salida. La longitud de la salida del modelo se puntuación en función de lo cerca que está de los requisitos especificados en las instrucciones. Para la calidad de la salida, LongWriter utiliza el enfoque de LLM como juez, seleccionando el modelo GPT-4o de estado del arte para puntuar la salida 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 la salida en LongWrite-Ruler y encuentra que AgentWrite extiende con éxito la longitud de la salida de GPT-4o desde un máximo de 2k palabras hasta aproximadamente 20k palabras. LongWriter también evalúa tanto la calidad de la salida como el cumplimiento de la longitud de la salida requerida en LongBench-Write, mostrando que GPT-4o puede completar con éxito tareas con salidas de menos de 2,000 palabras de longitud cuando se evalúa el rendimiento de AgentWrite.

Ajuste fino supervisado

LongWriter realiza un entrenamiento basado en dos de los modelos de código abierto más recientes, a saber, GLM-4-9B y Llama-3.1-8B. Ambos son modelos base y admiten una ventana de contexto de hasta 128k tokens, lo que los hace naturalmente adecuados para el entrenamiento en salidas largas. Para hacer que el entrenamiento sea más eficiente, LongWriter adopta un entrenamiento de empaquetado con ponderación de pérdida. 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 nota que si la pérdida se promedia por secuencia, es decir, tomando la media de cada secuencia de pérdida dentro de un lote, la contribución de cada token de destino a la pérdida en los datos de salida larga sería significativamente menor que la de los datos con salidas más cortas. En los experimentos de LongWriter, también se encuentra 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érdida que promedia la pérdida por token, donde la pérdida se calcula como la media de las pérdidas en todos los tokens de destino dentro de ese lote.

Todos los modelos se entrenan utilizando un nodo con 8xH800 80G GPUs y DeepSpeed+ZeRO3+CPU offloading. 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 durante 4 épocas, lo que toma aproximadamente 2,500-3,000 pasos.

Alineación (DPO)

Para mejorar aún más la calidad de la salida del modelo y aumentar su capacidad para seguir los requisitos de longitud en las instrucciones, LongWriter realiza una optimización de preferencia directa (DPO) en el modelo LongWriter-9B ajustado finamente supervisado. Los datos de DPO provienen de los datos de chat DPO de GLM-4 (aproximadamente 50k entradas). Además, LongWriter construye 4k pares de datos que se centran específicamente en instrucciones de escritura a largo plazo. Para cada instrucción de escritura, LongWriter muestrea 4 salidas de LongWriter-9B y puntuación de estas salidas siguiendo un método específico. También se combina una puntuación de seguimiento de longitud. La salida con la puntuación más alta se selecciona como la muestra positiva, y una de las salidas restantes se elige aleatoriamente como la muestra negativa.

El modelo resultante, LongWriter-9B-DPO, se entrena durante 250 pasos en la mezcla de datos anterior. LongWriter sigue una receta específica para el entrenamiento de DPO.

LongWriter: Experimentos y resultados

LongWriter evalúa 4 modelos propietarios y 5 modelos de código abierto en LongBench-Write, junto con los modelos LongWriter entrenados. Según el conocimiento de LongWriter, Suri-IORPO es el único modelo anterior que también se alinea para la generación de texto a largo plazo. Se entrena en función del modelo Mistral-7B-Instruct-v0.2 utilizando LoRA. Consistente con la configuración de evaluación en LongWrite-Ruler, LongWriter establece la temperatura de salida en 0,5 y configura el parámetro de tokens máximos de generación del modelo al máximo permitido por su llamada a la API. Para los modelos de código abierto, se establece en 32,768.

La mayoría de los modelos anteriores no pueden cumplir con el requisito de longitud de más de 2,000 palabras, mientras que los modelos LongWriter proporcionan consistentemente respuestas más largas y ricas a dichas solicitudes.

Al observar la puntuación de la longitud de la salida SlS_lSl para las solicitudes en cada rango de longitud requerida, LongWriter encuentra que los modelos anteriores generalmente tienen un rendimiento deficiente (puntuación por debajo de 70) en las solicitudes en el rango [2k, 4k), con solo Claude 3.5 Sonnet logrando una puntuación decente. Para las solicitudes en el rango [4k, 20k), casi todos los modelos anteriores son completamente incapaces de alcanzar la longitud de salida objetivo, incluso puntuando 0 (lo que significa que todas las longitudes de salida son menos de un tercio de la longitud requerida). Al agregar datos de entrenamiento de LongWriter-6k, el modelo LongWriter entrenado puede alcanzar efectivamente la longitud de salida requerida mientras mantiene una buena calidad, como se sugiere por las puntuaciones en el rango [2k, 20k) y los gráficos de dispersión.

DPO mejora efectivamente la calidad de la salida del modelo y su capacidad para seguir los requisitos de longitud en la generación a largo plazo.

Al comparar las puntuaciones de LongWriter-9B y LongWriter-9B-DPO, encontramos que DPO mejora significativamente tanto las puntuaciones Sl (+4%) como Sq (+3%), y la mejora es consistente en todos los rangos. Esto muestra que en el escenario de generación a largo plazo, DPO sigue ayudando a mejorar la calidad de la salida del modelo y puede alinear mejor la longitud de la salida del modelo con la longitud solicitada.

El límite de longitud de salida de los modelos LongWriter se extiende a entre 10k y 20k palabras, mientras que se requiere más datos con salidas largas para admitir salidas aún más largas.

Después de la prueba LongWrite-Ruler, LongWriter también presenta los resultados de la prueba LongWrite-Ruler de los modelos LongWriter. Los resultados sugieren que sus longitudes de generación máximas están entre 10k y 20k palabras. La falta de datos de SFT con salidas más largas es probablemente la razón principal que impide que el modelo alcance longitudes de salida más largas.

 

Pensamientos finales

En este trabajo, hemos hablado sobre LongWriter, una tubería basada en agentes que descompone tareas de generación ultra-larga en subtareas, identifica un límite de generación de 2,000 palabras para los LLM actuales y propone aumentar el tamaño de la ventana de salida de los modelos existentes agregando datos de salida larga durante el ajuste fino. Para construir automáticamente datos de salida larga, LongWriter desarrolla AgentWrite, una tubería basada en agentes que utiliza LLM de estantería para crear salidas extendidas y coherentes. LongWriter logra escalar el tamaño de la ventana de salida de los LLM actuales a más de 10,000 palabras con el conjunto de datos LongWriter-6k construido. Los estudios de ablation exhaustivos sobre los datos de entrenamiento demuestran la efectividad de este enfoque. Para el trabajo futuro, LongWriter sugiere las siguientes tres direcciones: 1. Expandir el marco de AgentWrite para construir datos con salidas más largas y extender aún más el tamaño de la ventana de salida de los LLM. 2. Refinar el marco de AgentWrite para lograr datos de salida larga de mayor calidad. 3. Las salidas más largas del modelo plantean desafíos para la eficiencia de inferencia. Se han propuesto varios métodos para mejorar la eficiencia de 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.

Un ingeniero por profesión, un escritor por corazón. Kunal es un escritor técnico con un profundo amor y comprensión de la IA y el ML, dedicado a simplificar conceptos complejos en estos campos a través de su documentación atractiva e informativa.