Искусственный интеллект для программирования

Машинное обучение может применяется для разработки программного обеспечения следующим образом:
- в качестве виртуального помощника программиста для быстрого поиска функций, операторов и библиотек
- анализ кода и формирование рекомендаций из лучших практик
- написание кода на языке программирования по алгоритму на естественном языке
- тестирование ПО (имитация пользователя)
- мониторинг работы ПО для идентификации проблем
- написание простых программ по техническому заданию

Примеры использования ИИ для программирования - даны ниже.

См. также: Топ 10: Issue-трекеры

25.07.19. ИИ-бот TabNine дописывает код за программиста


Стартап TabNine представил инструмент, использующий искусственный интеллект для быстрого написания кода на 22 языках программирования, включая Python, JavaScript, Java, C ++, C, PHP, Go, C #, Ruby, Objective-C, Rust и Swift. Чтобы воспользоваться TabNine, достаточно интегрировать его в один из существующих редакторов кода. По словам разработчика Джейкоба Джексона, в основу алгоритма легла система обработки естественного языка GPT-2 от OpenAI. Для того, чтобы натренировать ИИ, он использовал более 2 млн файлов из GitHub. Обрабатывая текущую строчку, TabNine предлагает наиболее вероятные варианты ее завершения исходя из своего обширного опыта. В настоящее время TabNine проходит фазу бета-тестирования. Команда также работает над более компактной версией алгоритма, которая будет работать на обычном компьютере. Разрабатывается и корпоративная версия.


2017. Искусственный интеллект Microsoft DeepCoder научился писать простые программы


Исследователи из Microsoft Research и Кембриджа разработали ИИ систему DeepCoder, которая предназначена для написания программ. Предполагается, что DeepCoder позволит людям, не умеющим программировать, создавать простые программы. DeepCoder работает на основе машинного обучения, а в работе использует технику под названием «программный синтез». Новые программы создаются из готовых кусков кода, которые он берет с сайта StackOverflow (как, впрочем, это делают и люди-программисты). Куски кода подбираются на основании заданных входных и выходных параметров. Сейчас DeepCoder умеет писать программы всего из нескольких строк кода, но зато - за доли секунды.


2016. Wix запустил сервис для создания сайтов с помощью искусственного интеллекта


Wix, один из самых популярных в мире онлайн конструкторов сайтов, за 10 лет своего существования накопил кучу данных о предпочтениях пользователей в создании бизнес-сайтов. И теперь - встроил в свой сервис искусственный интеллект, который (используя эти знания) поможет любому пользователю (без знания веб-дизайна и даже без креативных идей) создать красивый сайт. Достаточно ввести название своей компании, тип бизнеса, пожелания по специальным функциям вроде онлайн-бронирования, а также местоположение и предпочтения по дизайну. Затем сервис предложит вам варианты дизайна и дополнительные функции (к примеру, отзывы или интернет-магазин). Если предложенный дизайн вас не устраивает, то в изначальные параметры можно внести корретировки или самому подправить конечный вариант.


2015. Нейросеть научили оптимизировать код старого ПО


Команда исследователей из MIT создала систему Helium, способную оптимизировать старые компьютерные программы под более новое аппаратное обеспечение и тем самым повышать скорость их работы. Исследователи, в частности, посвятили свою работу программному обеспечению для работы с графикой, такому как Adobe Photoshop (растровый редактор) и Irfan View (просмотрщик). Эти программы содержат фрагменты кода, предназначенные для преобразования изображений — фильтры. Исследователи научились «извлекать» фильтры из бинарного кода приложения, путем анализа многократно повторяющихся действий во время преобразования изображения. После того как созданная система, под названием Helium, «извлекла» фильтр из бинарного кода, она преобразует его в читабельный код на языке Halide, разработанном специалистами CSAIL. Далее выполняется оптимизация кода, и затем скомпилированные фрагменты кода, который был оптимизирован, вновь помещаются в бинарный файл, заменяя фрагменты с низкой производительностью. Новая система на 75% повысила скорость работы фильтров в Photoshop.