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

Если бы только был способ автоматического исправления ошибок, который выходит за рамки синтаксических ошибок и действительно понимает намерения, стоящие за вашим кодом.

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

Что такое BugLab и как он работает?

BugLab - это реализация Python с искусственным интеллектом, которая выявляет и исправляет ошибки в коде. Его разработали Милтос Аламанис и Марк Брокшмидт, два исследователя из Microsoft Research. Им удалось преодолеть нехватку маркированных данных, часто используемых в машинное обучение прибегая к самостоятельному обучению и позволяя BugLab обучаться в игре «прятки» со строками кода.

BugLab был обучен с использованием двух вычислительных моделей; один скрывает ошибки в правильных фрагментах кода, а другой ищет и исправляет ошибки. Обе модели постоянно учатся друг у друга. Со временем селектор ошибок становится лучше скрывать ошибки в коде, а детектор - лучше обнаруживать и исправлять их.

instagram viewer

Понимание кода с помощью BugLab

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

Обработка фрагментов кода так же, как обработка естественных языков, дает неоптимальные результаты. ИИ по-прежнему сложно понять взаимосвязь между различными утверждениями, когда они разделены на отдельные токены.

Вместо этого BugLab смотрит на код в целом. Таким образом, каждый синтаксис, выражение, символ и идентификатор представлены в виде точек на графике, что позволяет ИИ «понимать» связь и взаимосвязь между различными узлами.

Архитектуры нейронных сетей затем используются для обучения ИИ отладки. Они могут извлечь информацию из богатой структуры графа кода и обосновать отношения каждого узла с другими.

Работает ли BugLab с кодом из реальной жизни?

Важно отметить, что BugLab не заменяет опытного программиста. Это потому, что сложные ошибки по-прежнему недоступны.

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

В соответствии с Microsoft, результаты многообещающие, поскольку BugLab может обнаруживать и автоматически исправлять около 26 процентов ошибок в фрагменте кода. Тем не менее, значительный процент точности по-прежнему теряется из-за ложных срабатываний и пропущенных ошибок.

Будущие приложения Microsoft BugLab

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

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

Экспоненциальная эволюция самообучающегося ИИ

Чем больше времени у моделей искусственного интеллекта, таких как BugLab, будет для обучения на реальных примерах, тем более качественные и точные результаты они дадут.

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

Глубокое обучение vs. Машинное обучение vs. AI: Как они сочетаются?

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

Читать далее

доляТвитнутьЭлектронное письмо
Похожие темы
  • Программирование
  • Microsoft
  • Советы по кодированию
  • Искусственный интеллект
Об авторе
Анина От (Опубликовано 89 статей)

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

Ещё от Anina Ot

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку технических советов, обзоров, бесплатных электронных книг и эксклюзивных предложений!

Нажмите здесь, чтобы подписаться