Написание кода - это только первый шаг в создании чего-либо. Поиск ошибок и их исправление отнимают много времени и часто занимают больше времени, чем предполагалось, но, тем не менее, это важный шаг.
Если бы только был способ автоматического исправления ошибок, который выходит за рамки синтаксических ошибок и действительно понимает намерения, стоящие за вашим кодом.
Недавно Microsoft разработала искусственный интеллект, способный обнаруживать и исправлять ошибки в коде с помощью глубокого обучения. Но как появилась эта революционная технология и как она работает?
Что такое BugLab и как он работает?
BugLab - это реализация Python с искусственным интеллектом, которая выявляет и исправляет ошибки в коде. Его разработали Милтос Аламанис и Марк Брокшмидт, два исследователя из Microsoft Research. Им удалось преодолеть нехватку маркированных данных, часто используемых в машинное обучение прибегая к самостоятельному обучению и позволяя BugLab обучаться в игре «прятки» со строками кода.
BugLab был обучен с использованием двух вычислительных моделей; один скрывает ошибки в правильных фрагментах кода, а другой ищет и исправляет ошибки. Обе модели постоянно учатся друг у друга. Со временем селектор ошибок становится лучше скрывать ошибки в коде, а детектор - лучше обнаруживать и исправлять их.
Понимание кода с помощью BugLab
Большинство ошибок, которые BugLab AI обучен обнаруживать и исправлять, не приводят к логическим ошибкам, а являются ошибочными только в результате общего контекста кода. Понимание намерений разработчика необходимо для поиска этих ошибок.
Обработка фрагментов кода так же, как обработка естественных языков, дает неоптимальные результаты. ИИ по-прежнему сложно понять взаимосвязь между различными утверждениями, когда они разделены на отдельные токены.
Вместо этого BugLab смотрит на код в целом. Таким образом, каждый синтаксис, выражение, символ и идентификатор представлены в виде точек на графике, что позволяет ИИ «понимать» связь и взаимосвязь между различными узлами.
Архитектуры нейронных сетей затем используются для обучения ИИ отладки. Они могут извлечь информацию из богатой структуры графа кода и обосновать отношения каждого узла с другими.
Работает ли BugLab с кодом из реальной жизни?
Важно отметить, что BugLab не заменяет опытного программиста. Это потому, что сложные ошибки по-прежнему недоступны.
Цель Microsoft в отношении ИИ - обнаружение и исправление часто встречающихся ошибок, таких как неправильные логические операторы, например, использование «или» вместо «и», и наоборот, в дополнение к сравнениям инвертированных значений и переменной злоупотребления.
В соответствии с Microsoft, результаты многообещающие, поскольку BugLab может обнаруживать и автоматически исправлять около 26 процентов ошибок в фрагменте кода. Тем не менее, значительный процент точности по-прежнему теряется из-за ложных срабатываний и пропущенных ошибок.
Будущие приложения Microsoft BugLab
Цель Microsoft с BugLab - сэкономить время разработчиков программного обеспечения, которые часто тратятся на просмотр своего кода в поисках мельчайших ошибок.
Хотя модель отладки ИИ все еще находится в разработке, у нее есть шанс поиск и исправление ошибок от неудобных до катастрофических. Но через несколько лет вы можете ожидать, что BugLab станет обязательным элементом в инструментарии каждого разработчика, даже если он не идеален.
Экспоненциальная эволюция самообучающегося ИИ
Чем больше времени у моделей искусственного интеллекта, таких как BugLab, будет для обучения на реальных примерах, тем более качественные и точные результаты они дадут.
Одним из самых сложных препятствий, с которыми столкнулись исследователи Microsoft при разработке BugLab, было использование человеческого понимания кода и намерений в инструменте. Но теперь, когда это в основном решено, можно ожидать, что со временем BugLab станет лучше.
Пытаетесь понять разницу между искусственным интеллектом, машинным обучением и глубоким обучением? Вот что все они означают.
Читать далее
- Программирование
- Microsoft
- Советы по кодированию
- Искусственный интеллект

Анина - внештатный писатель по технологиям и интернет-безопасности в MakeUseOf. Она начала писать о кибербезопасности 3 года назад в надежде сделать ее более доступной для обычного человека. Увлекается изучением новых вещей и большой ботаник в области астрономии.
Подписывайтесь на нашу новостную рассылку
Подпишитесь на нашу рассылку технических советов, обзоров, бесплатных электронных книг и эксклюзивных предложений!
Нажмите здесь, чтобы подписаться