Microsoft работает над созданием искусственного интеллекта (ИИ), который будет находить ошибки в программном коде. Компанией заявлена вероятность определения ошибок — 99%. Ошибки, обнаруженные в коде программ, ИИ будет тут же сортировать на критические, важные и малозначимые. Microsoft обещает выложить код модели в открытом доступе.
Когда в компании задумались о создании алгоритма искусственного интеллекта? Данные об ошибках в программном коде Microsoft собирает с 2001 года. Для анализа уже собрано 13 млн рабочих элементов и ошибок в программном коде. Модель машинного обучения для нового искусственного интеллекта Microsoft строит, опираясь на эту информацию.
В своем официальном блоге Microsoft сообщила, что ИИ станет работать совместно с экспертами по безопасности. В компании надеются, что такое сотрудничество повысит эффективность поиска слабых мест в коде.
Этот тандем уже начал работу: информацию для ИИ подготовили эксперты по безопасности Microsoft. Они использовали статистическую выборку. Обучение модели разделили на два этапа. В первом ИИ научился обнаруживать ошибки в коде. Во втором ИИ обучили их маркировать, как указывалось выше: критические, важные и малозначимые.
Специалисты и без ИИ ищут ошибки. Использование модели поможет не только лучше обнаруживать недостатки, но и тратить на это меньше времени. Будут исключены «ложные срабатывания» — подозрения на ошибки, оказавшиеся мнимыми.
Штат Microsoft, состоящий из 47 тыс. разработчиков, во время создания кода ежемесячно допускает около 30 тыс. ошибок. Естественно, ошибки ищут. Но для того, чтобы выявить их, потребуется значительный период времени. Ситуацию усугубляет обстоятельство, что код, содержащий ошибки, размещается не в одном, а в нескольких десятках хранилищ. Девелоперы могут поведать о том, что происходит в более чем ста хранилищах на GitHub и AzureDevOps.
Портал VentureBeat, ссылаясь на экспертов компании Coralogix, предоставляет информацию о том, разработчики в среднем допускают 70 ошибок на каждые 1000 строчек кода. Речь идет не только о разработчиках Microsoft. На исправление каждой из ошибок расходуется в 30 раз больше времени, чем на создание новой строчки кода. Исправление ошибок требует расхода не только времени, но и других резервов. Ежегодно в США на исправление ошибок уходит $113 млрд.
Повторное обучение модели, которое предусмотрел Microsoft, будет происходить в автоматическом режиме. Частично эта операция всё ещё зависит от экспертов по безопасности — они утверждают данные, которые получает модель для обработки.
В эпизоде повторного обучения модель Microsoft использует два метода предсказания ошибок. Ресурс VentureBeat сообщает, что первый метод основан на модели логистической регрессии. Она используется для выявления вероятности существования определенного класса или события. В основе второго метода лежит инверсия частоты, с которой определенное слово встречается в обрабатываемых моделью документах (term frequency-inverse document frequency algorithm (TF-IDF)).
Когда код модели будет выложен в открытом доступе? Пока известно только место — репозиторий на сервисе GitHub. Точное время неизвестно. Представители Microsoft говорят о ближайших месяцах.