fbpx
  • IntelliCode Compose: нейросеть дополняет код с помощью Transformer

    IntelliCode Compose — это инструмент для мультиязычного дополнения кода от Microsoft. Система предсказывает синтаксически корректную последовательность токенов кода по контексту предыдущих строчек. Модель обучали на 1.2 миллиардах строчек кода. В качестве архитектуры модели разработчики использовали GPT-2. На данный момент IntelliCode Compose работает для кода на Python, C#, JavaScript и TypeScript. Инструмент доступен в виде облачного веб-сервиса для Visual Studio Code IDE и Azure Notebook. Лучшая версия модели выдает предсказания, которые совпадают с оригинальным кодов с точностью 86.7% и с перплексией 1.82 для кода на Python.

    Описание проблемы

    В средах разработки программ (IDEs) функционал дополнения кода пользуется широкой популярностью. Тем не менее большинство IDE поддерживают функцию дополнения исключительно для методов и API или аргументов. Исследователи из Microsoft обучили Transformer-архитектуру дополнять код программ синтаксически корректным кодом. В качестве архитектуры использовали вариацию GPT-2 модели, — GPT-C, — которую обучили на данных исходного кода. IntelliCode Compose — это инструмент, который позволяет использовать GPT-C с эффективной системой кэширования. MultiGPT-C — это мультиязычная версия GPT-C.

    Данные для обучения

    Исследователи собрали датасет с исходным кодом, который состоит из 1.2 миллиарда строчек кода. Языки, на которых написан код, включают в себя Python, C#, JavaScript и TypeScript. Для датасета отобрали 52 тысячи открытых проектов на GitHub, у которых было наибольшее количество звезд. Всего датасет состоит из 4.7 миллионов файлов с исходным кодом.

    Оценка работы модели

    Для оценки работы модели исследователи сравнили ее с базовыми подходами, основанными на GPT-C. Ниже видно, что MultiGPT-C выдает более точные предсказания в сравнении с базовыми моделями.

    Сравнение подходов для генерации кода, которые основаны на GPT-C