Найти тему
Машинное обучение

AI-модель BugLab для поиска и исправления багов в коде.

У Microsoft на NeurIPS вышла интересная статья: AI-модель BugLab для поиска и исправления багов в коде

#paper #tech

Microsoft натренировали GAN-подобную модель для поиска и исправления багов в программном коде. Модель состоит из двух нейросетей и обучается в unsupervised режиме: без размеченных данных. Первая нейросеть берет код и внедряет в него баг: изменяет какую-нибудь строчку. Вторая модель берет измененный код, старается найти в нем баг и исправить его. На фото к посту показан код из open source проекта на GitHub, в котором обученная модель нашла баг и исправила его.

Разработчики говорят, что такая система сможет повысить производительность разработчиков и переключить их внимание с поиска мелких багов на более сложные и интересные задачи. Что ж, теперь Copilot будет за нас писать код, а BugLab — исправлять его ошибки😄

Пока что BugLab работает только с языком Python и с простыми багами, вроде перепутанных знаков сравнения ("<=" вместо ">="), логических операторов ("or", "and") и названий переменных ("j" вместо "i"). 

Но самое интересное — это архитектура модели. Обычно нейросети, которые работают с кодом, воспринимают код как набор токенов. По сути, работа с кодом ведется как работа с текстом в NLP. Но BugLab — графовая нейросеть. Она использует графовую структуру, чтобы лучше отразить взаимосвязи между переменными, выражениями и смысловыми частями кода. Эту идею восприятия кода не как текста, а как графа, Microsoft уже предлагали в своей прошлой работе.

В экспериментах c Bu#paper #tech t сравнили две архитектуры сетей, которые имеют graph-like структуру: это GNN (graph neural network) и Relational Transformers. Обе архитектуры показали хорошие результаты. 

Подробнее о модели:

Блогпост Microsoft c гифками

Статья на arxiv

Machinelearning
IT channels | каталог IT каналов