Microsoft разрабатывает ИИ, способный находить ошибки в коде
2 минута. читать
Опубликовано
Прочтите нашу страницу раскрытия информации, чтобы узнать, как вы можете помочь MSPoweruser поддержать редакционную команду. Читать далее
Исследователи Microsoft разработали ИИ, который может находить ошибки в коде, помогая разработчикам более точно и эффективно отлаживать свои приложения.
Исследователи Милтос Алламанис, главный исследователь, и Марк Брокшмидт, старший главный исследователь, разработали свой ИИ, BugLabs, во многом таким же образом, как создаются генеративно-состязательные сети (GAN).
Microsoft противопоставила друг другу две сети: одна предназначена для внесения мелких ошибок в существующий код, а другая нацелена на поиск этих ошибок. Две сети становились все лучше и лучше, в результате чего ИИ хорошо выявлял ошибки, скрытые в реальном коде.
Преимущество этого подхода заключалось в том, что процесс был полностью самоконтролируемым и не нуждался в размеченных данных.
Они сообщают о результатах, как показано ниже:
Теоретически мы могли бы широко применять игру в прятки, научив машину идентифицировать произвольно сложные ошибки. Однако такие ошибки все еще находятся вне досягаемости современных методов искусственного интеллекта. Вместо этого мы концентрируемся на наборе часто встречающихся ошибок. К ним относятся неправильные сравнения (например, использование «<=» вместо «<» или «>»), неправильные логические операторы (например, использование «и» вместо «или» и наоборот), неправильное использование переменных (например, неправильное использование «i» вместо «j») и некоторые другие. Чтобы протестировать нашу систему, мы сосредоточимся на коде Python.
Как только наш детектор обучен, мы используем его для обнаружения и исправления ошибок в реальном коде. Чтобы измерить производительность, мы вручную аннотируем небольшой набор данных об ошибках из пакетов в индексе пакетов Python с такими ошибками и показываем, что модели, обученные с помощью нашего метода «прятки», на 30% лучше по сравнению с другими альтернативами, например, детекторы, обученные случайным образом вставленным ошибкам. Результаты обнадеживают, показывая, что около 26% ошибок могут быть найдены и исправлены автоматически. Среди ошибок, обнаруженных нашим детектором, было 19 ранее неизвестных ошибок в реальном GitHub-коде с открытым исходным кодом. Однако результаты также показали много ложноположительных предупреждений, предполагающих, что необходимы дальнейшие усовершенствования, прежде чем такие модели можно будет развернуть на практике.
Они пришли к выводу, что их подход многообещающий, хотя, конечно, требуется еще много работы, чтобы сделать такие детекторы надежными для практического использования. Данный Microsoft GPT-3 работает на GitHub однако вполне возможно, что эта работа может быть в конечном итоге коммерциализирована.
Прочитайте их полную статью здесь.