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

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

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

Искусственный помощник экспертов по безопасности

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

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

По данным Microsoft, каждый месяц 47 тыс. разработчиков (штат в Microsoft) в процессе написания кода генерируют приблизительно 30 тыс. ошибок. Естественно, на их выявление уходить львиная часть рабочего времени. Ситуацию осложняет и тот факт, что содержащий ошибки код размещается не в одном хранилище, а нескольких десятках – девелоперы хранят его более чем в 100 хранилищах на GitHub и AzureDevOps.

Как пишет портал VentureBeat, разработчики (не только из Microsoft) в среднем допускают около 70 ошибок на каждые 1000 строчек кода. Исправление каждой из них, считают эксперты, затребует в 30 раз больше времени, чем написание одной новой строчки кода.

Помимо времени, поиск и исправление ошибок требует и денежных вливаний – в США на это ежегодно тратится около $113 млрд.

Обучение нового ИИ Microsoft

Модель машинного обучения Microsoft построена на информации о 13 млн рабочих элементов и ошибок в программном коде. Эти данные Microsoft собирает с 2001 г.

Информацию, с которой работает ИИ, была заранее отобрана экспертами по безопасности Microsoft с использованием статистической выборки. Обучение модели проходило в два этапа:

  • Сперва она стала выявлять ошибки безопасности и другие ошибки в коде.
  • Затем к этой способности добавилось умение расставлять так называемые «метки серьезности» – модель научилась относить эти ошибки к критическим, важным и малозначимым.

Точность выявления по результатам первых тестов работы модели оказалась очень высокой – ИИ смог выявить рабочие элементы с ошибками безопасности в 99% случаев. Правильное разделение этих ошибок на критические и некритические происходит в 97% случаев.

Дальнейшее развитие модели

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

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

  • Первый – «моделя логистической регрессии», используемая для выявления вероятности существования определенного класса или события.
  • Второй – это инверсия частоты, с которой то или иное слово встречается в обрабатываемых моделью документах.

Предсказание ошибок для всех

Пока модель использовалась исключительно в стенах Microsoft. Компания не сообщает, на какой стадии готовности он находится, но, тем не менее, собирается поделиться ими со всем миром. В обозримом будущем код модели будет выложен в открытом доступе в репозитории на сервисе GitHub, который с 2018 принадлежит самой Microsoft.

Источник