Исследователи Microsoft разработали инструмент на базе ИИ, который, по мнению ученых, поможет программистам быстрее находить и исправлять ошибки в коде. ПО получило название BugLab и основано оно на принципах работы генеративно-состязательных сетей.
Всего в BugLab задействовано две конкурирующие GAN-сети, которые учатся, «играя» между собой в прятки. А сам процесс построен следующим образом. Первая сеть получает на вход эталонный программный код и решает стоит ли вводит в код ошибку и точно формулирует свою ошибку.
К примеру, решает заменить знак сложения знаком вычитания. После этого код редактируется и в него специально заносятся ошибки. Затем другая сеть ищет ошибку, сделанную первой сетью, и пытается ее исправить.В компании отметили, что нынешние модели машинного обучения пока не умеют находить сложные логические и архитектурные баги, поэтому исследователи сконцентрировались на обучении ИИ определять самые распространенные ошибки, к которым относятся:
Также исследователи заявили, что во время обучения использовали фрагменты кода на языке программирования Python. А после процесса обучения протестировали ИИ на отрывках кода из Python Package Index (PyPI). Испытания показали, что подобный метод обучения на 30% эффективнее альтернатив.