Новый инструмент ИИ от Microsoft может сказать вам, когда ваш код отстойный

Исследователи хотят автоматизировать отладку

Исследователи компании Microsoft разработали искусственный интеллект (ИИ), который, по их мнению, может помочь программистам быстрее и точнее отлаживать приложения.

Исследование под названием BugLab основано на игровой модели «прятки» и работает аналогично тому, как создаются генеративные адверсарные сети (GAN).

Подробно описывая исследование в блоге, исследователи Милтос Алламанис (главный исследователь) и Марк Брокшмидт (старший руководитель исследования) рассказали, как они создали две сети и поставили их друг против друга, подобно тому, как играют в прятки.

Competition

Одна сеть предназначена для создания ошибок, как большие, так и маленькие, в существующем коде, а другая создана для их поиска. По мере того как игра продолжается, и оба «участника» становятся лучше, ИИ приходит к тому, что он достаточно хорош для выявления ошибок, скрытых в реальном коде.  

Две модели были обучены совместно, без маркированных данных, самоконтролируемым способом, на «миллионах фрагментов кода», пояснили исследователи.  

Несмотря на то, что идея заключалась в создании программы, способной выявлять произвольно сложные ошибки, они все еще находятся «за пределами досягаемости современных методов ИИ», утверждают исследователи. Вместо этого они сосредоточились на часто встречающихся ошибках, таких как некорректные сравнения, неправильные булевы операторы, неправильное использование переменных и другие подобные ошибки. 

Ложные тревоги, стоящие на пути

Тестирование проводилось на Python, и после обучения приложения пришло время проверить его в реальной жизни.  

«Для измерения производительности мы вручную аннотировали небольшой набор данных с ошибками из пакетов в Python Package Index и показали, что модели, обученные с помощью нашего метода «пряток», на 30% лучше по сравнению с другими альтернативами, напр, Детекторы, обученные на случайных ошибках», — говорится в блоге. 

Дуэт назвал результаты «многообещающими», поскольку около четверти (26%) ошибок удалось найти и исправить автоматически. Более того, среди обнаруженных ошибок было 19 ранее неизвестных. 

По-прежнему было много ложных срабатываний, что привело исследователей к выводу, что необходимо еще много тренировок, прежде чем такую модель можно будет использовать на практике.

    Оставьте комментарий