Оригинальная команда WizardLM от Microsoft: код большой модели WarriorCoder, производительность новой SOTA

- Название работы: WarriorCoder: обучение на основе боев экспертов для дополнения кода больших языковых моделей
- Ссылка на статью: https://arxiv.org/pdf/2412.17395
01 Фон
В последние годы большие языковые модели (LLM) показали феноменальную производительность в задачах, связанных с кодом, и появились разнообразные макромодели кода. Эти истории успеха показывают, что предварительное обучение на крупномасштабных данных о коде может значительно улучшить основные возможности моделей в области программирования. Помимо предварительного обучения, некоторые методы посттренинга LLM на данных об инструкциях также привели к значительному улучшению понимания инструкций моделями и качества ответов. Однако эффективность посттренингового обучения во многом зависит от наличия высококачественных данных, а сбор и аннотирование данных представляют собой значительные трудности.
Для решения вышеуказанных проблем в некоторых методах были разработаны различные маховики данных для генерации данных инструкций, такие как Self-Instruct, Evol-Instruct и т. д. Эти методы предназначены для создания данных инструкций с помощью различных средств расширения данных. Эти методы строят данные инструкций с помощью различных средств расширения данных, и обучение на этих данных может эффективно улучшить способность модели генерировать код. Однако, как показано на рис. 1, эти методы по-прежнему опираются на расширение существующих наборов данных и требуют вызова частных LLM (например, GPT-3.5, GPT-4 и т. д.), что делает сбор данных дорогостоящим. Кроме того, ограниченное число источников данных и LLM, используемых для аннотирования, также ограничивает разнообразие данных и наследует систематическую предвзятость, присущую ограниченным частным LLM. Рисунок 1
В данной работе представлены WarriorCoder - новая парадигма обучения макромоделей кода с помощью маховика данных, в которой модель объединяет сильные стороны макромоделей отдельных экспертов по коду, обучаясь на основе экспертных состязательных подходов. Как показано на рис. 1, отдельные крупные модели экспертов по кодированию противопоставляются друг другу, при этом нападающие бросают вызов своим оппонентам в их собственных областях знаний, а целевые модели учатся у победителей этих пар битв. В отличие от предыдущих методов, которые в основном полагаются на существующие наборы данных с открытым исходным кодом в качестве исходных данных для синтеза и дополнения, warriorCoder генерирует данные от 0 до 1 без необходимости в исходных данных, и метод может объединить сильные стороны нескольких макромоделей экспертов по кодированию вместо того, чтобы просто использовать сильные стороны отдельных моделей. Кроме того, метод, предложенный в этой статье, устраняет зависимость от участия человека и частных LLM в процессе сбора данных и позволяет собирать высококачественные и разнообразные обучающие данные при очень низких затратах. Результаты экспериментов показывают, что warriorCoder не только достигает текущего уровня SOTA в задачах генерации кода, но и показывает отличные результаты в таких бенчмарках, как осмысление кода и использование библиотек, которые можно назвать шестиугольником кода warrior.
02 Методология
В данной работе создается арена для великих моделей кода. Здесь самые современные макромодели с экспертным кодом противопоставляются друг другу, при этом каждая модель бросает вызов другим, используя знания, которыми она уже обладает, а остальные модели выступают в роли арбитров, оценивающих исход противостояния. Затем целевая модель учится у победителей этих противостояний, постепенно интегрируя сильные стороны всех конкурентов. В данной работе мы рассматриваем конкурентов (макромодели экспертов кода) как группу, и оптимизируем модель по относительному превосходству ответов внутри группы, что согласуется с GRPO Есть сходство и различие. Рисунок 2
2.1 Конкуренты
Компетентность участников определяет итоговую производительность WarriorCoder. Теоретически, чем больше разнообразие и качество обучающих данных, полученных от большего и сильного пула участников, тем выше производительность финальной обученной модели. В каждом раунде арены только одна пара кодеров выбирается в качестве соперников, а остальные выступают в роли судей. В данной работе из рейтинга BigCodeBench были выбраны пять продвинутых больших моделей в пределах 75B - Athene-V2-Chat, DeepSeek-Coder-V2-Lite-Instruct, Llama-3.3-70B-Instruct Qwen2.5-72B-Instruct и QwQ-32B-Preview. Стоит отметить, что все эти пять больших моделей являются открытыми моделями, и WarriorCoder достигает отличной производительности только на основе противостояния этим открытым большим моделям. Конечно, WarriorCoder также способен обучаться на мощных частных макромоделях.
2.2 Добыча инструкций с нуля
Для пары противников - A и B (где A - атакующий, а B - защищающийся) - первым шагом в противостоянии является вызов B в той области, где A превосходит других, что требует знания того, чему A научился в процессе обучения. Однако почти все существующие макромодели с открытым исходным кодом не публикуют свои основные обучающие данные, что крайне затрудняет получение информации о том, в чем хороши атакующие. Вдохновленная Magpie, данная статья предлагает подход, основанный на диалоговом завершении, для поиска возможностей, уже освоенных макромоделью. На примере Qwen2.5, если мы хотим, чтобы он генерировал алгоритм быстрой сортировки, полный формат запроса показан на рис. 3. Запрос должен включать системное содержимое, пользовательское содержимое и специальные маркеры, связанные с форматом, такие как " ", "" и так далее. Рисунок 3
В отличие от этого, если в модель вводится только префиксная часть (которая сама по себе не имеет конкретного значения, как показано на рисунке 4), пользовательский контент может быть получен с помощью возможности дополнения модели. Рисунок 4
Таким образом, при различных конфигурациях генеративных параметров (например, при различных значениях температуры и top-p) можно собрать данные об инструкциях, которые были выучены моделью. В отличие от традиционного синтеза данных, данные инструкций, собранные в данной работе, не синтезируются моделью, а получаются путем выборки непосредственно из распределения модели, что позволяет избежать таких проблем, как чрезмерная подгонка шаблонов и смещение выходного распределения. Однако инструкции могут быть повторяющимися, неоднозначными, неясными или слишком простыми. Чтобы решить эти проблемы, мы дедуплицируем данные и используем модель рефери для оценки их сложности. В этой статье мы классифицируем сложность по четырем категориям: отлично, хорошо, средне и плохо. В конечном итоге мы используем только инструкции с отличной и хорошей оценкой и применяем алгоритм KcenterGreedy для дальнейшего сжатия данных инструкций.
2.3 Решение о победе и поражении
И претендент, и защитник должны сгенерировать ответы на основе данных инструкций, а судья (оставшаяся модель) голосует за победителя: Однако, полагаясь только на текстовые данные {локальные оценки} для выбора победителей, можно столкнуться с проблемой случайности. Поскольку на голосование могут влиять такие факторы, как случайность или предвзятость рецензентов, при определенных инструкциях более слабая модель может получить больше голосов, чем более сильная, даже если ее ответы на самом деле не лучше, чем у более сильной модели.
Для решения этой проблемы в данной работе учитывается как локальная случайность, так и глобальная согласованность в процессе принятия решений. В данной работе вводится понятие глобальной оценки - рейтинга Эло. Он может более полно отражать изменения в относительной производительности модели, охватывая производительность с течением времени и по нескольким оценкам. Благодаря введению рейтинга Эло в процессе оценки можно учитывать как локальные показатели модели в одной игре, так и ее глобальные показатели за несколько раундов, что позволяет получить более надежную и точную оценку общих способностей модели и снизить риск победы более слабой модели из-за случайности и нерепрезентативного голосования. Итоговый балл за ответ взвешивается рейтингом Эло и голосами судей:
Каждый ответ сравнивается со всеми ответами оппонентов, поэтому оценка представляет собой относительную силу текущего ответа в группе.
2.4 Заключительный тренинг
В данной работе формат данных представляет собой инструкцию, ответ каждого участника и оценку, соответствующую каждому ответу. Этот формат данных может поддерживать различные методы посттренинга, такие как SFT, DPO, KTO и так далее. В данной работе используется SFT, а ответ с наивысшим баллом в группе используется в качестве золотого результата, так что WarriorCoder может интегрировать сильные стороны каждого участника тренинга и объединить сильные стороны всех участников.
03 Экспериментальный
3.1 Основные результаты
В таблице 1 показана производительность WarriorCoder в бенчмарке генерации кода. По сравнению с аналогичными работами, WarriorCoder достигает SOTA на HumanEval, HumanEval+, MBPP и MBPP+. Стоит отметить, что WarriorCoder достигает потрясающих результатов без необходимости использования частной большой модели (например, GPT-4 и т. д.). Таблица 1
WarriorCoder также добился отличных результатов в бенчмарке рассуждений о коде и бенчмарке использования библиотек. Как показано в таблицах 2 и 3, WarriorCoder демонстрирует оптимальные результаты в большинстве метрик и даже превосходит более крупные модели, такие как 15B и 34B. Это также доказывает, что метод, предложенный в данной статье, обладает хорошей обобщенностью, что позволяет модели получать множество различных возможностей из нескольких больших моделей экспертов по коду. Таблица 2
Таблица 3
3.2 Анализ данных
В данной работе также анализируются построенные учебные данные и исследуются с трех точек зрения: зависимости, разнообразия и сложности.
Зависимость
В то время как предыдущие работы, как правило, расширяют, улучшают данные, основываясь на некоторых существующих наборах данных кода (например), в данной работе создаются совершенно новые данные с нуля. Как показано на рис. 5, авторы вычисляют степень совпадения (метрика ROUGE) между обучающими данными и двумя широко используемыми наборами данных кода, и подавляющее большинство инструкций имеют оценки ROUGE менее 0,3 в codealpaca и codeultrafeedback, что говорит о том, что они значительно отличаются по содержанию от инструкций в существующих наборах данных. Примечательно, что ни одна из добытых инструкций не имеет метрику ROUGE выше 0,6, что еще раз доказывает, что эти инструкции происходят из внутреннего распределения экспертной макромодели, а не являются простой копией или расширением существующих обучающих данных. В результате эти инструкции обладают большей новизной и более высокой степенью независимости, что особенно ценно для обучения. Рисунок 5
В таблице 4 представлен состав обучающих данных, охватывающий семь различных задач, связанных с кодом, благодаря чему WarriorCoder демонстрирует высокие результаты на нескольких бенчмарках. Стоит отметить, что на рассуждения о коде приходится всего 2,9%, благодаря чему WarriorCoder демонстрирует потрясающие результаты в соответствующих бенчмарках. Это говорит о том, что метод, предложенный в данной статье, обладает большим потенциалом, а если использовать данные для устранения слабых мест модели, то можно сделать ее еще более способной. Кроме того, тепловая карта на рис. 6 также показывает результаты противостояния конкурсантов: даже самые сильные модели иногда показывают плохие результаты, а WarriorCoder учится только на ответах победителя с наибольшим количеством баллов по текущей инструкции. Таблица 4
Рисунок 6
На рисунке 7 показано соотношение сложности инструкций, созданных различными моделями. Большинство инструкций оцениваются как хорошие, с баллами от 6 до 8. Инструкции, оцененные как отличные (9-10 баллов), составляют лишь небольшую часть набора данных, что говорит о том, что очень сложные или продвинутые задачи встречаются относительно редко. Авторы исключили из обучающего набора инструкции с оценкой ниже 6 баллов, поскольку они, как правило, были либо слишком простыми, либо слишком расплывчатыми, что негативно сказалось бы на этапе обучения и могло бы даже ослабить эффективность и обобщенность модели. Рисунок 7
04 Связанные ресурсы
Хотя в настоящее время авторы не выкладывают модель в открытый доступ, мы обнаружили, что кто-то уже воспроизвел работу авторов по следующему адресу:
Ссылка на проект: https://huggingface.co/HuggingMicah/warriorcoder_reproduce
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...