Автоматизация Программирования Ии Меняет Кодирование Компьютерных Программ

Программные инженеры будущего сами станут программистами.

программирование

G PT-3. ДЕЙСТВИТЕЛЬНЫЙ зверь. Generative Pre-Trained Transformer 3, если дать его полное название, представляет собой языковую модель, разработанную OpenAI, частично коммерческой, частично некоммерческой лабораторией искусственного интеллекта (AI) в Сан-Франциско. GPT-3 был обучен беспрецедентной массе текста, чтобы научить его вероятности того, что данное слово будет следовать за предыдущими словами. При подаче короткого текста «подсказка» получается удивительно связная проза, написанная в похожем стиле.

Ваш браузер не поддерживает элемент.

Наслаждайтесь большим количеством аудио и подкастов на iOS или Android.

Доступ к GPT-3 ограничен. Во-первых, говорит Джек Кларк, бывший глава отдела политики организации, в противном случае его можно было бы использовать для массового производства фейковых новостей или наводнения социальных сетей сообщениями о «троллинге и огорчении». Но OpenAI также знает, что GPT-3 имеет коммерческую ценность. В прошлом году лаборатория начала позволять проверенным фирмам покупать свою продукцию для утвержденных целей. К ним относятся ответы на типизированные вопросы о продуктах и ​​поддержка речи вымышленных персонажей в виртуальных мирах. Но, пожалуй, самое главное, GPT-3 также можно использовать для написания компьютерного кода.

Несколько фирм уже используют GPT-3 и его предшественник GPT-2 для добавления ИИ в программное обеспечение, которое их программисты используют для написания кода. Многое из того, что печатают эти программисты, уже было написано где-то в прошлом. Это означает, что, скармливая кучу уже существующего кода в такие пакеты, их можно обучить предсказывать строки, которые понадобятся программисту в следующий раз. Когда программист набирает текст, на экране появляются потенциальные «доработки кода» одной или нескольких строк.

Прогнозировать и предоставить

Некоторые кодирующие последовательности встречаются редко. В этих случаях Tabnine расширяет всплывающий список предлагаемых завершений, чтобы повысить вероятность предложения полезного. Нажимая на подходящий вариант, программист учит Табнин работать лучше. По словам Дрора Вайса, начальника фирмы, профессиональная версия Табнина кажется «почти умной» в плане способности понимать намерения программиста.

READ  Варочная панель нефф индукционная с джойстиковым управлением

Табнин не одинок. 17 июня Microsoft, американский софтверный гигант, выпустил новую версию функции завершения ИИ, которую он встраивает в программное обеспечение для кодирования под названием Visual Studio. Первоначальная версия, выпущенная в 2018 году и получившая название IntelliCode, была обучена на нескольких тысячах онлайн-репозиториев, в которых хранится код для программных проектов. Microsoft обучила свою обновленную систему более чем на полумиллионе таких репозиториев. Аманда Сильвер, один из руководителей Visual Studio, говорит, что эти дополнительные кучи тренировочного материала позволяют новой версии лучше понять намерения из намеков в коде, который уже написал программист.

Цель всего этого, конечно же. сэкономить время. Фирма Kite из Сан-Франциско заявляет, что ее продукты с искусственным интеллектом сокращают количество нажатий клавиш, необходимых для некоторых задач, почти вдвое. Однако общий прирост эффективности ниже. Виталий Худобахшов, руководитель отдела продуктов искусственного интеллекта петербургского офиса JetBrains, чешского разработчика программного обеспечения для программирования, видит экономию времени от 10% до 20%. По мнению Шарифа Шамима, начальника Debuild, фирмы в Сан-Франциско, которая использует GPT-3 для создания веб-сайтов, эта технология также снижает «когнитивные издержки». Выбор из нескольких вариантов менее утомителен, чем разработка решений с нуля.

Ошибки и система

От этого выигрывают не только те, кто пишет код. Разработчики тратят почти столько же времени на поиск ошибок в том, что они написали, сколько на то, чтобы писать это в первую очередь. Модель машинного обучения, созданная Бренданом Долан-Гавиттом из Нью-Йоркского университета, может ускорить процесс отладки.

Чтобы обучить его, доктор Долан-Гавитт собирает код, помеченный как ошибочный, от GitHub, дочерней компании Microsoft, на которой размещена самая большая в мире коллекция непатентованного кода с «открытым исходным кодом». По некоторым оценкам, GitHub содержит не менее миллиарда фрагментов кода, которые определены как содержащие ошибку. Модель доктора Долана-Гавитта, условно названная GPT-CSRC, этим летом поглотит этот код.

READ  Можно ли заменить батарею в отопительный сезон

Еще одна модель обнаружения ошибок находится в разработке в Массачусетском технологическом институте (MIT). Шашанк Шрикант, аспирант, работающий над проектом, говорит, что цель состоит в том, чтобы научить модель распознавать не только непреднамеренные ошибки, но и злонамеренно вставленные уязвимости. Иногда за подобными уловками стоят сотрудники-мошенники, которые предназначены для таких вещей, как тайное получение доступа к паролям. Однако эта практика наиболее распространена в проектах программирования с открытым исходным кодом, в которые может внести свой вклад каждый. Рецензенты обычно изо всех сил стараются обнаружить эти «инъекции уязвимости», как их иногда называют.

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

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

Ясно, что цель всей этой деятельности. создание программистов, которые могут, подобно человечеству, взять идею и превратить ее в код. Намек на будущее дает веб-сайт, созданный доктором Долан-Гавитт. Названный «Этот код не существует», он просит программистов определить, были ли участки кода длиной в десятки строк написаны человеком или созданной им моделью на основе GPT-2. Из более чем 329 200 оценок правильными оказались менее 51%. Это только оттенок лучше, чем случайный.

READ  Что такое что такое термопот

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

Одна из них. парижская фирма SourceAI. Это разработка программного обеспечения, в котором пользователи вводят на естественном языке запрос кода. например, что-то, что будет определять значение чисел в математической формуле, называемой последовательностью Фибоначчи. При подключении к GPT-3 одноименное программное обеспечение SourceAI производит нужные строки кода на различных языках программирования.

Debuild тестирует ту же идею. Он пытается создать программное обеспечение, которое позволяет непрограммистам описывать простым языком программу, которую они хотят создать, а затем писать ее. Запрос, скажем, на приложение для парикмахерских, которое позволяет посетителям выбирать парикмахера и место для встреч, уже может дать больше или меньше всего этого. Г-н Шамим говорит, что цель состоит в том, чтобы убрать мелочи, связанные с набором кода, чтобы люди могли ФОКУСИРОВАТЬСЯ на том, что они хотят сделать, а не на том, как инструктировать компьютеры делать это.

Со своей стороны, Microsoft также использует GPT-3 для поддержки того, что она называет программированием «без кода / с низким кодом». Чарльз Ламанна, возглавляющий эту работу, предвидит светлое будущее более дешевого программного обеспечения, созданного неподготовленными «гражданскими разработчиками». Некоторые люди опасаются альтернативного, более мрачного исхода. Могут ли ИИ в конечном итоге написать любой код, который они хотят запустить? Никакой такой безудержной петли обратной связи не за горами. Но эта опора научной фантастики теперь кажется немного менее надуманной.

Источник