Свяжитесь с нами:

LongWriter: создание более 10,000 XNUMX слов на основе LLM длинного контекста

Искусственный интеллект

LongWriter: создание более 10,000 XNUMX слов на основе LLM длинного контекста

mm
LONGWRITER: СОЗДАНИЕ БОЛЕЕ 10,000 XNUMX СЛОВ ИЗ ДЛИННОГО КОНТЕКСТА LLMS

Современные модели больших языков с длинным контекстом (LLM) могут обрабатывать входные данные до 100,000 2,000 токенов, но им сложно генерировать выходные данные, превышающие даже скромную длину в XNUMX слов. Контролируемые эксперименты показывают, что эффективная длина генерации модели по своей сути ограничена примерами, наблюдаемыми во время контролируемая доводка (СФТ). Другими словами, это ограничение вывода связано с нехваткой примеров с длинными выводами в существующих наборах данных SFT.

Недавние достижения в области LLM с длинным контекстом привели к разработке моделей со значительно расширенным объемом памяти, способных обрабатывать историю, длина которой превышает 100,000 XNUMX токенов. Однако, несмотря на свою способность обрабатывать обширные входные данные, нынешние LLM с длинным контекстом с трудом могут генерировать столь же длинные выходные данные.

Чтобы изучить это ограничение, Лонграйтер проверяет максимальную длину выходных данных современных моделей с длинным контекстом с помощью нескольких запросов, которые требуют ответов различной длины, например «Напишите статью объемом 10,000 2,000 слов по истории Римской империи». Результаты показывают, что все модели постоянно не выдают выходные данные длиной более 1 слов. Между тем, анализ журналов взаимодействия с пользователем показывает, что более XNUMX% пользовательских запросов явно запрашивают выходные данные, превышающие этот предел, что подчеркивает острую необходимость в текущих исследованиях по преодолению этого ограничения.

Чтобы решить эту проблему, LongWriter представляет АгентЗапись, конвейер на основе агентов, который разбивает задачи сверхдлинной генерации на подзадачи, позволяя готовым LLM генерировать последовательные выходные данные, превышающие 20,000 6 слов. Используя AgentWrite, LongWriter создает LongWriter-6,000k — набор данных, содержащий 2 выборок данных SFT с выходной длиной от 32 до 10,000 тысяч слов. Включив этот набор данных в обучение модели, LongWriter успешно масштабирует длину вывода существующих моделей до более чем XNUMX XNUMX слов, сохраняя при этом качество вывода.

LongWriter также разрабатывает LongBench-Write, комплексный тест для оценки возможностей сверхдлинной генерации. Модель параметров 9B, улучшенная благодаря DPO, обеспечивает самые современные показатели производительности в этом тесте, превосходя даже гораздо более крупные патентованные модели.

В этой статье мы обсудим инфраструктуру LongWriter, изучим ее архитектуру и сравним ее производительность с современными моделями большого языка с длинным контекстом. Давайте начнем.

LongWriter: платформа генерации более 10,000 XNUMX слов

Недавние достижения в области моделей большого языка (LLM) с длинным контекстом привели к созданию моделей со значительно увеличенным объемом памяти, способных обрабатывать истории, превышающие 100,000 XNUMX токенов. Несмотря на эту способность обрабатывать обширные входные данные, в настоящее время LLM изо всех сил пытаются генерировать результаты сопоставимой длины. Чтобы исследовать это ограничение, LongWriter проверяет максимальную длину выходных данных современных моделей с длинным контекстом с помощью различных запросов, которые требуют различной длины ответа, например «Напишите статью из 10,000 2,000 слов по истории Римской империи». Основываясь на результатах, LongWriter отмечает, что все модели постоянно не могут генерировать выходные данные длиной более 1 слов. Кроме того, анализ журналов взаимодействия с пользователем показывает, что более XNUMX% пользовательских запросов специально запрашивают выходные данные, превышающие этот предел, что подчеркивает острую необходимость в текущих исследованиях для решения этой проблемы. 

Исследование LongWriter выявляет ключевой вывод: ограничение на длину выходных данных обусловлено, главным образом, характеристиками наборов данных SFT (Supervised Fine-Tuning). В частности, LongWriter обнаруживает, что максимальная длина генерации модели фактически ограничена верхним пределом длины выходных данных, присутствующих в наборе данных SFT, несмотря на то, что на этапе предобучения она подвергалась воздействию гораздо более длинных последовательностей. Это открытие объясняет повсеместное ограничение на длину генерации в 2,000 слов в современных моделях, поскольку существующие наборы данных SFT редко содержат примеры, превышающие эту длину. Более того, поскольку многие наборы данных получены из современных LLM, они также наследуют ограничение на длину выходных данных от своих исходных моделей.

Чтобы обойти это ограничение, LongWriter представляет AgentWrite — новый конвейер на основе агентов, разработанный для использования готовых LLM-программ для автоматического создания расширенных, связных текстов. AgentWrite работает в два этапа: сначала он составляет подробный план написания, описывающий структуру и целевое количество слов для каждого абзаца на основе ввода пользователя. Затем, следуя этому плану, он предлагает модели последовательно генерировать контент для каждого абзаца. Эксперименты LongWriter подтверждают, что AgentWrite может создавать высококачественные и связные тексты объёмом до 20,000 XNUMX слов.

Основываясь на конвейере AgentWrite, LongWriter использует GPT-4o для генерации 6,000 длинных выходных данных SFT, получивших название LongWriter-6k, и добавляет эти данные для обучения существующих моделей. В частности, LongWriter-6k успешно раскрывает способность модели генерировать хорошо структурированные выходные данные длиной более 10,000 0 слов. Для тщательной оценки эффективности этого подхода LongWriter разрабатывает бенчмарк LongBench-Write, содержащий разнообразный набор пользовательских инструкций по написанию текста с диапазоном длины выходных данных от 500 до 500 слов, от 2,000 до 2,000 слов, от 4,000 до 4,000 слов и более 9 слов. Оценка в LongBench-Write показывает, что модель LongWriter размером XNUMX байт достигает высочайшего уровня производительности даже по сравнению с более крупными проприетарными моделями. LongWriter дополнительно конструирует данные о предпочтениях и использует DPO, чтобы помочь модели лучше следовать длинным инструкциям по написанию и генерировать более качественный письменный контент, что также было доказано в ходе экспериментов.

Подводя итог, можно сказать, что работа LongWriter вносит следующие новаторские вклады:

  • Анализ ограничений длины генерации: LongWriter определяет основной фактор, ограничивающий длину вывода текущих LLM с длинным контекстом, который является ограничением на длину вывода в данных SFT.
  • АгентНаписать: Чтобы преодолеть это ограничение, LongWriter предлагает AgentWrite, который использует подход «разделяй и властвуй» с готовыми LLM для автоматического создания данных SFT со сверхдлинными выходными данными. Используя этот метод, LongWriter создает набор данных LongWriter-6k.
  • Масштабирование размера выходного окна текущих LLM: LongWriter включает набор данных LongWriter-6k в свои данные SFT, успешно масштабируя размер окна вывода существующих моделей до 10,000 XNUMX+ слов без ущерба для качества вывода. LongWriter показывает, что DPO еще больше расширяет возможности модели по написанию длинного текста.

AgentWrite: автоматическое построение данных

Чтобы использовать готовые LLM-агенты для автоматической генерации SFT-данных с более длинными выходными данными, LongWriter разрабатывает AgentWrite — конвейер агентов, работающий по принципу «разделяй и властвуй». AgentWrite сначала разбивает длинные задачи по написанию текстов на несколько подзадач, каждая из которых требует от модели написания только одного абзаца. Затем модель последовательно выполняет эти подзадачи, а LongWriter объединяет результаты подзадач для получения окончательного длинного результата. Такой подход к разбиению сложной задачи на несколько подзадач с использованием LLM-агентов уже применялся в различных областях, таких как решение задач, разработка программного обеспечения и оценка моделей. Работа LongWriter — первая, в которой исследуется интеграция планирования, позволяющая моделям выполнять сложные задачи по написанию текстов в длинных формах. Каждый этап AgentWrite подробно описан ниже.

Шаг I: План

Вдохновленный мыслительным процессом людей-писателей, которые обычно начинают с составления общего плана длительных письменных задач, LongWriter использует возможности планирования LLM для вывода такого плана письма с учетом инструкций по написанию. Этот план включает основное содержание и требования к количеству слов для каждого абзаца. Приглашение, используемое LongWriter, выглядит следующим образом:

«Мне нужно, чтобы вы помогли мне разбить следующую подробную инструкцию по написанию текста на несколько подзадач. Каждая подзадача будет определять написание одного абзаца эссе и должна включать основные моменты и требования к количеству слов для этого абзаца. Инструкция по написанию следующая: {Инструкция пользователя}. Разбейте его в следующем формате, чтобы каждая подзадача занимала одну строку:

Абзац 1 – Основная мысль: [Подробно опишите основную мысль абзаца] – Количество слов: [Требование к количеству слов, например, 400 слов]
Абзац 2 – Основная мысль: [Подробно опишите основную мысль абзаца] – Количество слов: [Требование к количеству слов, например 1000 слов].

Убедитесь, что каждая подзадача понятна и конкретна и что все подзадачи охватывают все содержание инструкции по написанию. Не разделяйте подзадачи слишком мелко; Объем каждого абзаца подзадачи должен быть не менее 200 и не более 1000 слов. Не выводите никакой другой контент».

Шаг II: Напишите

После получения плана записи на этапе I LongWriter последовательно вызывает LLM для выполнения каждой подзадачи, генерируя содержимое записи раздел за разделом. Чтобы обеспечить согласованность вывода, когда LongWriter вызывает модель для создания n-го раздела, ранее сгенерированные n-1 разделов также вводятся, что позволяет модели продолжить запись следующего раздела на основе существующей истории записи. Хотя этот последовательный метод предотвращает параллельные вызовы модели для одновременного выполнения нескольких подзадач, а длина входных данных становится больше, LongWriter при проверке показывает, что общая связность и качество записи, полученной таким способом, намного превосходят выходные данные, генерируемые параллельно. Подсказка, используемая LongWriter:

«Вы отличный писательский помощник. Я дам вам оригинальную инструкцию по написанию и мои запланированные шаги по написанию. Я также предоставлю вам текст, который я уже написал. Пожалуйста, помогите мне продолжить написание следующего абзаца, основываясь на инструкции по написанию, шагах написания и уже написанном тексте.

Инструкция по написанию:
{Инструкция пользователя}
Этапы написания:
{План письма, созданный на шаге I}
Уже написан текст:
{Предыдущие сгенерированные (n-1) абзацев}

Пожалуйста, объедините исходную инструкцию по написанию, этапы написания и уже написанный текст и теперь продолжайте писать {План n-го абзаца, т. е. n-й строки в плане написания}».

Проверка

LongWriter тестирует длину генерации и качество предлагаемого метода AgentWrite на двух наборах данных для записи длинной формы. Первый, LongWrite-Ruler, используется для точного измерения продолжительности вывода, который может обеспечить метод. Второй, LongBench-Write, в основном используется для оценки того, насколько хорошо сгенерированный моделью контент соответствует инструкциям пользователя с точки зрения длины и качества написания.

LongBench-Write: Чтобы оценить производительность модели при выполнении более широкого спектра длинных инструкций по написанию, LongWriter собирает 120 различных пользовательских инструкций по написанию, из которых 60 на китайском и 60 на английском языке. Чтобы лучше оценить, соответствует ли длина выходных данных модели требованиям пользователя, LongWriter гарантирует, что все эти инструкции включают явные требования к количеству слов. Эти инструкции разделены на четыре подмножества в зависимости от требований к количеству слов: 0–500 слов, 500–2,000 слов, 2,000–4,000 слов и более 4,000 слов. Кроме того, инструкции разделены на семь типов в зависимости от типа вывода: «Литература и творческое письмо», «Академические исследования и монографии», «Популярная наука», «Функциональное письмо», «Новостной репортаж», «Форум сообщества», «Образование и обучение».

Во время оценки LongWriter использует две метрики: одну для оценки длины вывода, а другую для оценки качества вывода. Выходная длина модели оценивается исходя из того, насколько она близка к требованиям, указанным в инструкции. Для обеспечения качества вывода LongWriter использует подход LLM как эксперта, выбирая самые современные Модель ГПТ-4о чтобы оценить результат по шести измерениям: актуальность, точность, связность, ясность, широта и глубина и опыт чтения. Окончательный балл рассчитывается путем усреднения показателя длины и показателя качества.

Результаты валидации: LongWriter представляет измерение длины вывода на LongWrite-Ruler и обнаруживает, что AgentWrite успешно увеличивает длину вывода GPT-4o с максимальных 2 тыс. слов до примерно 20 тыс. слов. LongWriter также оценивает качество вывода и соблюдение требуемой длины вывода в LongBench-Write, показывая, что GPT-4o может успешно выполнять задачи с выводами длиной менее 2,000 слов при оценке производительности AgentWrite.

Контролируемая тонкая настройка

LongWriter проводит обучение на основе двух новейших моделей с открытым исходным кодом, а именно GLM-4-9B и Llama-3.1-8B. Обе модели являются базовыми и поддерживают контекстное окно размером до 128 тыс. токенов, что делает их естественным образом подходящими для обучения на длинных выходных данных. Чтобы сделать обучение более эффективным, LongWriter применяет обучение упаковке с взвешиванием потерь. В результате обучения на двух моделях получены две модели: LongWriter-9B (сокращенно GLM-4-9B-LongWriter) и LongWriter-8B (сокращенно Llama-3.1-8B-LongWriter).

В то же время LongWriter замечает, что если усреднить потери по последовательности, то есть взять среднее значение средних потерь каждой последовательности в пределах пакета, вклад каждого целевого токена в потери в длинных выходных данных будет значительно меньше, чем в случае с более короткими выходными данными. В экспериментах LongWriter также обнаружено, что это приводит к неоптимальной производительности модели в задачах с длинными выходными данными. Поэтому LongWriter выбирает стратегию взвешивания потерь, которая усредняет потери по токенам, где потери вычисляются как среднее значение потерь по всем целевым токенам в пределах данного пакета.

Все модели обучаются с использованием узла с 8 графическими процессорами H800 80G и разгрузкой процессоров DeepSpeed+ZeRO3+CPU. LongWriter использует размер пакета 8, скорость обучения 1e-5 и длину упаковки 32 КБ. Модели обучаются на 4 эпохи, что занимает примерно 2,500–3,000 шагов.

Выравнивание (ДПО)

Чтобы еще больше улучшить качество вывода модели и повысить ее способность следовать ограничениям длины в инструкциях, LongWriter выполняет прямую оптимизацию предпочтений (DPO) в контролируемой точно настроенной модели LongWriter-9B. Данные DPO берутся из данных DPO чата GLM-4 (около 50 тыс. записей). Кроме того, LongWriter создает 4 тыс. пар данных, специально предназначенных для инструкций по записи длинной формы. Для каждой инструкции записи LongWriter выбирает 4 выходных сигнала LongWriter-9B и оценивает эти выходные данные с помощью определенного метода. Оценка отслеживания длины также суммируется, как вычислено. Затем выходной сигнал с наивысшей оценкой выбирается в качестве положительной выборки, а один из оставшихся трех выходных данных случайным образом выбирается в качестве отрицательной выборки.

Полученная модель LongWriter-9B-DPO обучается на 250 шагах на вышеуказанной смеси данных. LongWriter следует определенному рецепту обучения DPO.

LongWriter: эксперименты и результаты

LongWriter оценивает 4 собственные модели и 5 моделей с открытым исходным кодом на LongBench-Write, а также обученные модели LongWriter. Насколько известно LongWriter, Suri-IORPO — единственная априорная модель, также адаптированная для генерации длинных текстов. Она обучена на базе Mistral-7B-Instruct-v0.2 с использованием LoRA. В соответствии с настройками оценки LongWrite-Ruler, LongWriter устанавливает выходную температуру 0.5 и настраивает параметр максимального количества токенов генерации модели на максимальное значение, разрешенное вызовом API. Для моделей с открытым исходным кодом он равен 32,768 XNUMX.

Большинство предыдущих моделей не могут удовлетворить требования к длине более 2,000 слов, в то время как модели LongWriter постоянно обеспечивают более длинные и насыщенные ответы на такие запросы. 

Наблюдая за оценкой длины выходных данных SlS_lSl для подсказок в каждом требуемом диапазоне длин, LongWriter обнаруживает, что предыдущие модели, как правило, показывают плохие результаты (ниже 70) для подсказок в диапазоне [2k, 4k), и только Claude 3.5 Sonnet достиг приемлемого результата. Для подсказок в диапазоне [4k, 20k) почти все предыдущие модели полностью не способны достичь целевой длины выходных данных, даже получая оценку 0 (что означает, что все длины выходных данных меньше одной трети требуемой длины). Добавляя обучающие данные из LongWriter-6k, обученная модель LongWriter может эффективно достигать требуемой длины выходных данных, сохраняя при этом хорошее качество, о чем свидетельствуют оценки в диапазоне [2k, 20k) и диаграммы рассеяния.

DPO эффективно улучшает как качество вывода модели, так и ее способность соблюдать требования к длине при длительной генерации. 

Сравнивая показатели LongWriter-9B и LongWriter9B-DPO, мы обнаружили, что DPO значительно улучшает показатели Sl (+4%) и Sq (+3%), причем улучшение одинаково во всех диапазонах. Это показывает, что в сценарии длинной генерации DPO по-прежнему помогает улучшить качество вывода модели и может лучше согласовать длину вывода модели с 8 препринтами. Рис. 7. Совокупные средние потери NLL GLM4-9B и Llama-3.1-8B в разных положениях LongWriter. результаты моделей. Рисунок 8: Результаты тестирования LongWrite-Ruler моделей LongWriter, показывающие максимальную длину генерации между 10–20 тысячами слов. запрошенную длину. Последний вывод был недавно сделан Yuan et al. (2024 г.) в более коротких поколениях. Мы также вручную аннотируем попарные выигрыши и проигрыши для GPT-4o и трех моделей длинных записей на их выходных данных в LongBench-Write и визуализируем результаты на рисунке 9. Мы видим, что люди предпочитают модель, обученную DPO, а не модель LongWriter-9B в 58% случаев. дела. Более того, несмотря на меньшее количество параметров, LongWriter-9B-DPO достигает уровня GPT-4o. 

Ограничение длины вывода моделей LongWriter увеличено до 10–20 тыс. слов, в то время как для поддержки еще более длинных выходных данных требуется больше данных с длинными выходными данными. 

После испытаний LongWrite-Ruler мы также представляем результаты испытаний LongWrite-Ruler моделей LongWriter. Результаты показывают, что максимальная длина их генерации составляет от 10 до 20 тысяч слов. Отсутствие данных SFT с более длинными выходными данными, вероятно, является основной причиной, не позволяющей модели достичь большей длины выходных данных. 

 

Заключение

В этой работе мы говорили о LongWriter, агентном конвейере, который разбивает задачи сверхдлинной генерации на подзадачи, определяет ограничение генерации в 2,000 слов для текущих LLM и предлагает увеличить размер их выходного окна за счет добавления длинных выходных данных во время выравнивания. . Для автоматического создания длинных выходных данных LongWriter разрабатывает AgentWrite, конвейер на основе агентов, который использует готовые LLM для создания расширенных, последовательных выходных данных. LongWriter успешно масштабирует размер окна вывода текущих LLM до более чем 10,000 6 слов с помощью созданного LongWriter-1k. Обширные исследования абляции на данных обучения демонстрируют эффективность этого подхода. Для будущей работы LongWriter предлагает следующие три направления: 2. Расширить структуру AgentWrite для создания данных с более длинными выходными данными для дальнейшего увеличения размера окна вывода LLM. 3. Уточните структуру AgentWrite для достижения более высокого качества длинных выходных данных. XNUMX. Более длинные выходные данные модели создают проблемы с эффективностью вывода. Было предложено несколько методов повышения эффективности вывода. Стоит изучить, как эти методы могут обеспечить повышение эффективности модели без ущерба для качества генерации.

«Инженер по профессии, писатель душой». Кунал — технический писатель с глубокой любовью и пониманием ИИ и машинного обучения, стремящийся упростить сложные концепции в этих областях с помощью своей увлекательной и информативной документации.