Крупные языковые модели (LLM) обычно предварительно обучаются на обширных наборах данных, содержащих как текст, так и код. Хотя код критически важен для моделей, ориентированных на программирование, его использование стало привычным даже в LLM, предназначенных для приложений, не связных с кодированием. В недавнем исследовании ученые из компании Cohere изучили, как наличие данных о коде в предварительном обучении LLM влияет на общую производительность в различных задачах, выходящих за рамки кодирования.
«Хотя практики единодушно признают, что данные о коде важны для производительности LLM, ограниченные исследования анализируют их точное влияние на задачи, не связанные с кодом», отметили исследователи. Их исследование подтвердило, что код значительно повышает производительность LLM в различных задачах, не связанных с программированием, что имеет последствия для реальных приложений в обучении.
Влияние кода на производительность
Ученые провели серию экспериментов, чтобы оценить, как код влияет на общую производительность LLM. Ключевыми факторами стали объем кода в обучающих данных, время его введения в процессе обучения, качество кода и размеры моделей. Используя подход двухфазного обучения, они провели «продолжительное предварительное обучение» на заранее обученных моделях, сочетая разные пропорции текста и кода на фиксированное количество токенов. Это завершилось стадией «охлаждения», во время которой акцент был на высококачественных наборах данных.
Базовая модель была обучена только на тексте, в то время как другие модели предварительно обучались на сбалансированных наборах данных текста и кода или на данных только с кодом перед переходом к тексту. Они оценили модели с количеством параметров от 470 миллионов до 2,8 миллиарда по различным критериям, связанным с общими знаниями, естественным языковым логическим выводом и производительностью кода.
Преимущества кода для задач, не связанных с кодированием
Эксперименты показали, что код существенно улучшает производительность LLM в задачах, не связанных с кодированием. В области естественного языкового логического вывода модели, обученные с кодом, постоянно превосходили аналогичные модели, обученные только на тексте. Особенно примечательно, что предварительное обучение исключительно на коде дало наивысшие результаты в этих тестах.
«Это указывает на то, что инициализация на основе предварительно обученной модели с сочетанием кода положительно влияет на задачи естественного языкового логического вывода», объяснили исследователи. Для задач, связанных с общими знаниями, сбалансированный набор данных кодов и текста во время предварительного обучения дал наилучшие результаты. Исследователи предполагают, что «оптимальная производительность в задачах общего знания зависит от сбалансированного сочетания данных для инициализации и большей доли текста в процессе непрерывного предварительного обучения».
В генеративных задачах как модели только с кодом, так и сбалансированные модели превзошли текстовые модели, что свидетельствует о том, что включение кода не только улучшает логическое мышление, но и повышает качество генерации. Кроме того, исследования показали, что преимущества добавления кода увеличивались с ростом размера модели, при этом самые значительные улучшения наблюдались в задачах общего знания и производительности кода, за ними следовали умеренные улучшения в области естественного языкового логического вывода.
«Эти результаты предполагают, что компромисс между языковыми задачами и генерацией кода усиливается с увеличением размера модели», отметили они. Хотя LLM часто демонстрируют новые качества на больших масштабах, исследователи не смогли протестировать очень большие модели из-за ограничений бюджета. Тем не менее, они оптимистично настроены, что их выводы будут иметь продолжение и для более крупных масштабов.
«Учитывая, что наши результаты действуют от 470M до 2.8B параметров, мы считаем, что они будут применимы и к еще более крупным моделям и бюджетам токенов», добавили они.
Исследование также показало, что включение высококачественного синтетического кода в данные для предварительного обучения значительно повышает производительность, устраняя ограничения доступного адам-заданного кода. «Наш синтетический код был создан на основе задач для получения проверенных решений на Python», сказал Вираат Ариабуми, ведущий автор и исследователь Cohere. «Это открывает будущее возможности, так как использование высокоэффективной модели-преподавателя важно для генерации эффективного синтетического кода».
Кроме того, они обнаружили, что интеграция соседних с кодом данных, таких как запросы на GitHub и коммиты, улучшает способности к логическому мышлению. Включение кода в фазу охлаждения привело к дополнительным улучшениям производительности в задачах, не связанных с кодированием, предоставляя ценную информацию для предприятий, которые хотят оптимизировать модели с использованием своих данных, а не обучать их с нуля.
«Фаза охлаждения тесно связана с дообучением по стоимости, качеству данных и требованиям ресурсов, что приводит к значительным улучшениям. Мы рекомендуем включать код на протяжении всего процесса обучения», подчеркнул Ариабуми. «Использование высококачественного кода — такого как внутренние кодовые базы и соседние с кодом данные — также может улучшить результаты в фазе охлаждения».
Поскольку Cohere сосредоточена на разработке LLM для корпоративных приложений, эти выводы могут повлиять на дальнейшие развертывания моделей и продуктов, потенциально предлагая различные предварительно обученные модели с различными сочетаниями текста и кода, адаптированными под конкретные задачи. Затем предприятия могут дообучить эти модели на собственных данных для оптимальной производительности.
«Наши выводы имеют большое значение для разработчиков и, вероятно, приведут к выпуску более эффективных моделей», отметил Ариабуми. «Удивительно, как код улучшает производительность в задачах, не связанных с кодированием, и это будет влиять на наш подход к разработке моделей последнего поколения».