Новости
ControlFlag автоматически обнаруживает ошибки в коде с помощью ИИ
Intel утверждает, что даже на начальном этапе разработки ControlFlag является многообещающим инструментом повышения производительности, помогающим разработчикам в трудоемких задачах отладки.
На Labs Day, онлайн-мероприятии, посвященном инновациям Intel, компания представила ControlFlag, систему машинного обучения, которая может самостоятельно обнаруживать ошибки в коде. Intel утверждает, что даже на начальном этапе разработки ControlFlag является многообещающим инструментом повышения производительности, помогающим разработчикам в трудоемких задачах отладки. В предварительных тестах ControlFlag обучался и обнаруживал ошибки более чем в 1 миллиарде строк немаркированного “production-quality” кода.
Согласно исследованию Judge Business School Кембриджского университета, программисты тратят 50.1% своего рабочего времени не на программирование — половину времени занимает отладка. А общая ориентировочная стоимость отладки составляет 312 миллиардов долларов в год. Таким образом, инструменты предложения и проверки кода на базе искусственного интеллекта обещают существенно сократить расходы на разработку, позволяя программистам сосредоточиться на более творческих, менее повторяющихся задачах.
Intel заявляет, что возможности обнаружения ошибок ControlFlag стали возможными благодаря машинному программированию — сочетанию машинного обучения, формальных методов, языков программирования и компиляторов. Используя обнаружение аномалий, ControlFlag учится на примерах обнаруживать нормальные шаблоны программирования, выявляя аномалии в коде, которые могут вызвать ошибки. Система может обнаруживать эти аномалии независимо от языка программирования, утверждает Intel, и использует так называемый неконтролируемый подход для адаптации к любому стилю разработчика. Имея ограниченные входные данные для инструментов управления, которые должна оценивать программа, ControlFlag может определять стилистические вариации в языке программирования, подобно тому, как читатели распознают различия между полными словами или используют сокращения в английском языке.
ControlFlag учится выявлять и маркировать стилистические решения и может настраивать идентификацию ошибок и рекомендации по решениям на основе своих идей. По словам Intel, это сводит к минимуму вероятность того, что система неверно интерпретирует стилистическое отклонение между двумя командами разработчиков как ошибку.
ControlFlag — это последний из ряда инструментов, которые используют ИИ и машинное обучение для дополнения и аудита кода. Codota разрабатывает платформу, которая предлагает и дополняет код на Python, C, HTML, Java, Scala, Kotlin и JavaScript. Kite предлагает сниппеты кода для разработчиков в режиме реального времени. Ponicode использует искусственный интеллект для проверки точности кода, а DeepCode предлагает систему на основе машинного обучения для проверки кода всего приложения (как и Amazon). Возможно, одним из самых впечатляющих проектов на сегодняшний день является TransCoder, система искусственного интеллекта, разработанная исследователями Facebook, которая конвертирует код из одного языка программирования в другой. Другой пример — модель OpenAI, которая была обучена в репозиториях GitHub для генерации целых функций из простого описания на английском языке.