Microsoft планирует разработать ИИ, который сможет с большой вероятностью находить ошибки в коде. Искусственный интеллект сможет разделять их на критические, важные и малозначимые.
Под контролем ИИ
Компания Microsoft сообщила, что ее разработчики работают над машинным обучением алгоритма для повышения качества работы программистов. Совместно с экспертами по безопасности сотрудники корпорации хотят создать ИИ, который сможет анализировать код, находить в нем баги и сортировать их по критичности.
По задумке компании, внедрение такой технологии поможет не только находить ошибки, но и тратить меньше времени на их поиски и устранение. Кроме того, нейросеть будет способна защитить разработчиков от подозрений на недочеты, которые после проверки не находят подтверждения.
Детали обучения
Microsoft собирает данные об ошибках в программах с 2001 года. Всего в базе данных компании находится 13 млн записей о багах. Именно на этих сведениях разработчики будут обучать нейросеть.
Информацию для тренировки ИИ отобрали эксперты по информационной безопасности путем статистической выборки. Весь процесс проходит в два этапа. Сперва система учится находить ошибки в коде и проблемы с его защитой. Затем нейросеть по каждому инциденту обучается расстановке меток, сообщающих статус проблемы. Сейчас искусственный интеллект оповещает о трех уровнях бага: критическом, важном и малозначимом.
Первые тесты работы нейросети показали очень хороший результат – программа смогла выявить проблемные участки кода в 99% случаев. Чуть хуже ИИ справляется с расстановкой приоритетов – метки были указаны верно для 97% ошибок.
Microsoft по-прежнему продолжает обучать нейросеть. Сейчас этот процесс происходит в автоматическом режиме, однако данные для тренировки модели все еще предварительно получают одобрение экспертов по безопасности. После завершения эксперимента компания планирует представить результаты работы публично и позволить другим разработчикам использовать свой ИИ.
Цена ошибки
47 тыс. программистов из штата Microsoft ежемесячно генерируют 30 тыс. ошибок в процессе работы с кодом. Каждая из них тратит время разработчика на выявление и устранение. При этом исходники продуктов компании хранятся в разных местах – всего ИТ-корпорация использует более сотни хранилищ на GitHub и AzureDevOps.
Эксперты из компании Coralogix сообщают, что любой программист в среднем допускает 70 ошибок на 1000 строк кода. Исправление каждой из них требует примерно в 30 раз больше времени, чем написание новой строчки кода. Организации США ежегодно тратят на исправление багов 113 млрд долларов.