Новый инструмент Microsoft использует искусственный интеллект для поиска багов в коде

Новый инструмент Microsoft использует искусственный интеллект для поиска багов в коде
24.12.2021
19699

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

Зачем это нужно

Компания Rollbar провела исследование, в котором приняли участие более 950 разработчиков. Эксперты установили, что 38% опрошенных уделяют исправлению ошибок более четверти рабочего времени, 26% – более половины.

В Microsoft предложили ускорить багфикс. На конференции NeurIPS 2021 специалисты представили статью «Самоконтролируемое обнаружение и устранение ошибок» и модель глубокого обучения для поиска и исправления багов в коде.

Исследователи пояснили: на создание BugLab их вдохновила игра в прятки. Модель обходится без использования размеченных данных, а значит, ее легко адаптировать практически для любого кода на любом языке программирования.

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

Например, в этом фрагменте программист создал функцию, которая должна обрезать имя до длины в 22 символа. Но по ошибке он использовал не ту операцию сравнения. BugLab нашла проблему и предложила исправление:

 

 

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

Как работает BugLab

В BugLab используются две конкурирующие модели, которые учатся, играя в своеобразный аналог игры «прятки». В его основе – генеративные состязательные сети (GAN).

Первая модель, селектор ошибок, обучается на примерах кода, который считает верным. Затем она решает, в каком месте программы добавить ошибку – например, где заменить «+» на «-». А после этого вторая модель, детектор ошибок, пытается определить, есть ли в коде баг, и если да, то как его исправить.

 

 

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

Разработчики отметили, что теоретически BugLab можно научить обнаруживать даже самые сложные ошибки. Но это долго и затратно, к тому же чтобы добиться высокой точности, нужны дополнительные исследования. Вместо этого в Microsoft сконцентрировались на наиболее часто возникающих ошибках: это неправильные сравнения (например, использование «<=» вместо «<» или «>»), неверные логические операторы (использование «и» вместо «или» и наоборот), некорректное использование переменных (например, неправильное использование «i» вместо «j») и некоторые другие.

Какие результаты выдает BugLab

Для тестирования BugLab рассматривали код на Python. Его брали из открытых репозиториев на GitHub.

В ходе экспериментов разработчики установили, что BugLab справляется с задачей на 30% лучше других систем, например, детекторов, обученных на случайно вставленных ошибках. При этом найти и автоматически исправить уже получается около 26% ошибок.

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

Автор:
Обозреватель

См. также

Минцифры подготовило проект постановления по запуску платформы, на которой ИТ-специалисты могут пройти добровольное тестирование и подтвердить свою квалификацию.

11.12.2024    974    user1915669    3       

2

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

03.12.2024    785    user2114475    0       

2

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

01.11.2024    946    user1915669    0       

3

Система платежей «Волна» по планам сделает возможной бесконтактную оплату для владельцев IPhone в России, а BRICS Pay позволит совершать безналичные расчеты иностранцам по картам Visa и Mastercard.

23.10.2024    1248    AnastasiaKl    0       

4

Конструктор сайтов Wix уходит из России с 12 сентября 2024 года – перестанут работать все российский аккаунты. Сайты, привязанные к аккаунтам, также перестанут работать.

11.09.2024    1234    user1915669    2       

2

ИИ научат разработке цифровых интегральных микросхем – несколько российских научных институтов заявили об участии в проекте. Проект рассчитан на 3 года – с 2024 по 2026.

23.07.2024    864    user1915669    0       

2

Развитие искусственного интеллекта и цифровых сервисов в России стало причиной роста потребности в мощных центрах обработки данных. Эксперты прогнозируют, что дефицит ЦОД, который уже наблюдается сегодня, в ближайшие годы будет только усиливаться.

18.07.2024    978    AnastasiaKl    0       

1

В сентябре 2024 года видеоигры в России начнут маркировать – пока на добровольной основе. Геймерам будут сообщать о семи видах чувствительного (неприятного) контента в игре.

17.07.2024    1059    user1915669    0       

1
Инфостарт бот

Оставьте свое сообщение