Microsoft разрабатывает ИИ, способный находить ошибки в коде

Значок времени чтения 2 минута. читать


Читатели помогают поддержать MSpoweruser. Мы можем получить комиссию, если вы совершите покупку по нашим ссылкам. Значок подсказки

Прочтите нашу страницу раскрытия информации, чтобы узнать, как вы можете помочь MSPoweruser поддержать редакционную команду. Читать далее

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

Исследователи Милтос Алламанис, главный исследователь, и Марк Брокшмидт, старший главный исследователь, разработали свой ИИ, BugLabs, во многом таким же образом, как создаются генеративно-состязательные сети (GAN).

Microsoft противопоставила друг другу две сети: одна предназначена для внесения мелких ошибок в существующий код, а другая нацелена на поиск этих ошибок. Две сети становились все лучше и лучше, в результате чего ИИ хорошо выявлял ошибки, скрытые в реальном коде.

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

Они сообщают о результатах, как показано ниже:

Теоретически мы могли бы широко применять игру в прятки, научив машину идентифицировать произвольно сложные ошибки. Однако такие ошибки все еще находятся вне досягаемости современных методов искусственного интеллекта. Вместо этого мы концентрируемся на наборе часто встречающихся ошибок. К ним относятся неправильные сравнения (например, использование «<=» вместо «<» или «>»), неправильные логические операторы (например, использование «и» вместо «или» и наоборот), неправильное использование переменных (например, неправильное использование «i» вместо «j») и некоторые другие. Чтобы протестировать нашу систему, мы сосредоточимся на коде Python.

Как только наш детектор обучен, мы используем его для обнаружения и исправления ошибок в реальном коде. Чтобы измерить производительность, мы вручную аннотируем небольшой набор данных об ошибках из пакетов в индексе пакетов Python с такими ошибками и показываем, что модели, обученные с помощью нашего метода «прятки», на 30% лучше по сравнению с другими альтернативами, например, детекторы, обученные случайным образом вставленным ошибкам. Результаты обнадеживают, показывая, что около 26% ошибок могут быть найдены и исправлены автоматически. Среди ошибок, обнаруженных нашим детектором, было 19 ранее неизвестных ошибок в реальном GitHub-коде с открытым исходным кодом. Однако результаты также показали много ложноположительных предупреждений, предполагающих, что необходимы дальнейшие усовершенствования, прежде чем такие модели можно будет развернуть на практике.

Они пришли к выводу, что их подход многообещающий, хотя, конечно, требуется еще много работы, чтобы сделать такие детекторы надежными для практического использования. Данный Microsoft GPT-3 работает на GitHub однако вполне возможно, что эта работа может быть в конечном итоге коммерциализирована.

Прочитайте их полную статью здесь.

Подробнее о темах: ai, застройщиков, Microsoft