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

Обновлено: 29.06.2022

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

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

2022. Amazon запустила сервис, который пишет программный код по естественной речи



Amazon запустила облачный сервис CodeWhisperer, который использует машинное обучение для генерации предложений в процессе написания программного кода. Инструмент призван ускорить разработку ПО и создавать обучающие наборы данных для своих проектов искусственного интеллекта. Для обучения CodeWhisperer использовались триллионы строк кода из проектов с открытым исходным кодом, как внутренних репозиториев, так и различных других источников. Сервис может генерировать более десяти строк кода одновременно и основывает свои рекомендации на различных контекстных подсказках. Вице-президент и главный евангелист Amazon Джефф Барр рассказал, что с CodeWhisperer использует множество контекстных подсказок для выдачи рекомендаций, включая местоположение курсора, код, предшествующий курсору, и код в других файлах того же проекта.


2022. GitHub открыла доступ к ИИ-сервису Copilot для разработчиков



GitHub открыла доступ к ИИ-сервису Copilot для всех разработчиков — подписка стоит $10 в месяц. Бесплатная версия будет доступна студентам с пакетом GitHub Student Developer Pack и разработчикам популярных проектов с открытым исходным кодом на GitHub. Также есть бесплатная пробная версия на 60 дней. В конце 2022 года GitHub планирует запустить подписку для бизнеса. Microsoft и OpenAI представили GitHub Copilot в июне 2021 года. Это ИИ-сервис, который работает как «напарник» программиста — просматривает существующий код, комментарии к нему и расположение курсора, а затем предлагает добавить одну или несколько строк в зависимости от контекста.


2022. DeepMind представил нейросеть, которая пишет сложные программы по описанию



Гугловское ИИ подразделение DeepMind представило нейросеть AlphaCode, способную писать программы с нуля по одному лишь описанию задачи. Проект находится на ранней стадии развития, но по своим навыкам уже обходит начинающих и даже более опытных программистов. Создатели уверены, что в будущем AlphaCode позволит полностью автоматизировать процесс кодинга. Нейросеть обучают на задачах, используемых в конкурсах по программированию, и она уже смогла решить задачи среднего уровня сложности и оказалась в числе лучших участников соревнований.


2021. OpenAI запустила алгоритм Codex - он переводит язык в программный код



Компания OpenAI, которая занимается исследованиями в сфере искусственного интеллекта, представила Codex – алгоритм, способный переводить английский текст в программный код. В компании объяснили, что новая технология является приемником алгоритма GPT-3, который может выполнять задачи по написанию текста на основе заданных параметров. Однако в случае с Codex, обучающие данные содержат как примеры естественного языка, так и миллиарды строк исходного кода из общедоступных источников. При этом, он может учитывать более чем в 3 раза больше контекстной информации при выполнении любой задачи. В демонстрациях OpenAI показала, как с помощью алгоритма можно создавать простые веб-сайты и игры с использованием естественного языка, а также выполнять перевод между разными языками программирования. Чтобы получить код, достаточно ввести соответствующий запрос на английском языке.


2021. Нейросеть Сбера научилась генерировать программный код



Нейросеть ruGPT-3, обученная специалистами дочерней компании Сбербанка Sber AI, самостоятельно написала компьютерную программу на С++ и Java. Это первое зарегистрированное в России ПО, написанное искусственным интеллектом. Программа называется Artificial Vision и умеет "сопоставлять пиксели изображения нейронам сетчатки искусственного глаза", что бы это ни означало. В дальнейшем нейросеть сможет взять на себя ряд рутинных задач, выполняемых программистами. Sber AI планирует и дальше совершенствовать нейросеть и развивать в ней навыки написания программ. Не исключено, что «Сбер» начнет предоставлять технологию как коммерческую услугу, когда она станет более совершенной.


2021. Microsoft запустила ИИ-помощника для программистов - Copilot



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


2021. Microsoft встроила в Power Apps инструмент для написания ПО с помощью естественного языка



Популярное нынче понятие "low-code" может скоро получить новый смысл: вместо перетаскивания мышкой квадратиков по блок-схеме вы просто будете говорить программе, что нужно сделать. На днях Microsoft объявила о внедрении такой функции в свою платформу для разработки приложений с минимумом программирования Power Apps. Функция работает на модели естественного языка OpenAI GPT-3 и позволяет создавать приложения в формате диалога с компьютером на естественном (английском) языке. Например, при разработке приложения в сфере электронной коммерции можно будет добавлять операции типа: найти продукты, название которых начинается со слова "детский". Конечно, для создания приложений все еще нужно, по крайней мере, понимать логику математических моделей бизнес-процессов.


2020. Test.ai - искусственный интеллект для тестирования приложений



Хорошо, если компания или стартап разрабатывают одно мобильное приложение. Но у корпораций их может быть десятки и сотни, и после очередного обновления Android или iOS нужно их всех протестировать. На таких клиентов и ориентируется стартап Test.ai, который уже поднял $17.6 млн инвестиций, в т.ч. от Google. Он создает ботов и тренирует их на тысячах различных приложений и сценариях тестирования, чтобы они автоматически подбирали сценарии для каждого нового приложения.


2019. ИИ-бот 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.