Модель Phi-1 от Microsoft всего с 1.3B параметров достигла SotA в генерации кода

code generation phi-1 model

Исследователи Microsoft Research представили Phi-1 — языковую модель для генерации кода всего с 1,3 миллиардами параметров, которая смогла достигнуть близкого к state-of-the-art уровня генерации кода с помощью собранного авторами датасета. Исследователи обнаружили, что большинство существующих датасетов с кодом непригодны для обучения моделей: они не содержат полной информации, не имеют осмысленных комментариев, в основном представляют собой конфигурационные файлы или черновые варианты.

Авторы создали собственный близкий по качеству к учебнику по программированию датасет CodeTextBook с программным кодом на языке Python, содержащим 6 миллиардов токенов, отобранных из The Stack и StackOverflow, а также 1 миллиард токенов, сгенерированных моделью GPT-3.5, при этом последние включали комментарии и описание.

codetextbook
Пример данных из датасета CodeTexBook

Дообучение модели на датасете CodeExercises, содержащим 180M токенов с синтетически сгенерированными упражнениями с качественным описанием, неожиданно наделила модель эмергентными свойствами, например, использовать внешние библиотеки Pygame и Tkinter, хотя в датасете библиотеки не упоминались.

CodeExercises
Пример данных CodeExercises

Авторы исследовали модель phi-1-base, которая не дообучалась на датасете CodeExercises, и модель phi-1-small, более компактную модель с 350 миллионами параметров, обученную с использованием той же методологии, что и модель phi-1, достигающая 45% на тесте HumanEval.

results
Точность pass@1 (%) на тесте HumanEval. Группировка столбчатых диаграмм соответствует обычным параметрам масштабирования, либо увеличению времени вычислений (больше проходов по данным, от 26 миллиардов токенов до 76 миллиардов), либо увеличению числа параметров модели (от 350 миллионов до 1,3 миллиарда). Каждый столбец внутри группы соответствует различным датасетам: Первый (оранжевый) столбец представляет производительность моделей, обученных на стандартном датасете с кодом на языке Python из The Stack (а для модели с 1,3 миллиарда параметров также из StackOverflow); (B) Второй (светло-зеленый) столбец представляет производительность моделей, обученных с использованием датасета CodeTextbook; (C) третий (темно-зеленый) столбец соответствует моделям второго столбца, дообученным на датасете CodeExercises.

Описание модели

Phi-1 основана на архитектуре Transformer и содержит 1,3B параметров. Модель обучалась в течение 4 дней на 8 Nvidia A100 на разработанном авторами датасете CodeExerсises по качеству приближающегося к учебнику по программированию, состоящего из 6 миллиардов токенов. Датасет дополнили 1 миллиардом токенов, синтетически созданных моделью GPT-3.5.

Слева представлен пример качественных данных для обучения, справа — низкого качества:

high quality code data and low quality example

Результаты Phi-1

Предварительное обучение на наборе данных CodeTextbook и дообучение на CodeExercises дали близкие к state-of-the-art результаты. Несмотря на относительно небольшой масштаб, phi-1 достигает точности pass@1 на уровне 50,6% на бенчмарке HumanEval и 55,5% на бенчмарке MBPP, уступая GPT-4 и WizardCoder (последней только на бенчмарке HumanEval).

comparison

Модель проявляет удивительные эмергентные свойства по сравнению с базовой моделью phi-1-base, которая не дообучалась на высококачественном датасете. Например, после дообучения на датасете CodeExercises модели научилась использовать внешние библиотеки Pygame и Tkinter, хотя упражнения не содержали эти библиотеки.

Использование сторонних библиотек

Исследование подтверждает, что качество данных для обучения важнее их количества.

Подписаться
Уведомить о
guest

0 Comments
Межтекстовые Отзывы
Посмотреть все комментарии

gogpt