Заменит ли ChatGPT разработчиков программного обеспечения? Или сделает их жизнь более приятной, выполнив за них тяжелую работу по написанию кода, отладке и тестированию? Какие риски несет применение этого чатбота в разработке ПО? Вот что на этот счет думают опрошенные порталом Information Age разработчики, уже использующие ChatGPT.
На фоне мощного обсуждения необычных и иногда тревожных возможностей ИИ-чатбота ChatGPT, относительно мало внимания уделяется его потенциальному использованию в разработке ПО. Однако это может оказаться одним из наиболее социально и коммерчески значимых применений — если разработчики поймут и уменьшат риски, которые он может создавать.
Многие разработчики уже применяют ChatGPT как своего рода помощника в исследованиях, источник полезных фрагментов кода и/или инструмент отладки или тестирования. Многие также используют для подобных целей инструмент для кодирования Copilot от GitHub, но способность ChatGPT отвечать на разговорные запросы повышает его ценность для разработчиков.
Питер Зентаи, технический директор софтверной компании OneBeyond, говорит, что он «в восторге от OpenAI и GPT». «Он может предложить лучший метод, и это помогает вам учиться, — объясняет он. — Это также хорошо для документирования функциональности [кода]». И где бы он ни использовался в разработке, «это повышает производительность».
Трудно обнаруживаемые ошибки
Но разработчики также признают необходимость сохранения человеческого контроля. Джон Смит, технический директор по региону EMEA компании Veracode, занимающейся безопасностью приложений, рассказывает об использовании ChatGPT для написания инструмента для поддержки демо-версии клиента. «Он вернулся с некоторым кодом, который я мог взять и изменить, — вспоминает он. — Без него я бы почти наверняка нашел кого-нибудь на Stack Overflow с ответом на мой запрос, но я думаю, что ChatGPT предложил более полезный контент: он не только дал мне код, но и описал, как он работает».
На второй запрос Смит также получил полезный ответ, но третий вопрос, об автоматизации деятельности в рамках платформы DevOps, выявил ограничения модели: «ChatGPT дал хороший ответ, но в нем не было сказано, что после того, как вы попросили платформу DevOps создать объект, вы должны регулярно спрашивать, создала ли она объект. По опыту я знал, что если этого не делать, то на практике иногда возникает непредсказуемая ошибка».
По его словам, это подчеркивает хорошее и плохое в ChatGPT. «Если вы видите, что ответ не совсем подходит, вы можете его подправить. Проблема возникает, когда эти ошибки более тонкие и трудно обнаруживаемые, — отмечает Смит. — По этой причине разработчики никогда не должны слепо доверять модели».
Это еще более важно в сценарии, когда ChatGPT используется для отладки или тестирования ПО, говорит Дейв Колвелл, вице-президент по искусственному интеллекту и машинному обучению компании Tricentis, занимающейся автоматизированным тестированием ПО.
«Генеративный ИИ можно использовать для написания базовых тестовых примеров или выявления пробелов в требованиях к тестированию, — считает он. — Но наш опыт использования ChatGPT пока говорит о том, что его можно сравнить с очень уверенным, но иногда ошибающимся человеком на викторине в пабе. Его всегда нужно перепроверять, сверяясь с имеющимися знаниями. Недавно мы поручили ему переписать простой алгоритм на C#, используя векторный метод ускорения алгоритма с помощью распараллеливания данных на ЦП. Выданный алгоритм выглядел хорошо и был очень быстрым. Но он предполагал, что векторы имеют фиксированную длину, тогда как это было верно только в некоторых обстоятельствах. Это вызывало множество трудно обнаруживаемых коварных ошибок».
Риски безопасности
Существуют также некоторые споры о том, как использование ChatGPT может создавать риски для безопасности. В марте OpenAI временно отключила ChatGPT от сети после обнаружения утечки данных, вызванной ошибкой в библиотеке с открытым исходным кодом. Через несколько дней OpenAI признала, что инцидент мог привести к «непреднамеренному раскрытию информации, связанной с платежами» небольшого числа пользователей и что «возможно, первое сообщение вновь созданной беседы было видно в чужой истории чата, если оба пользователя были активны примерно в одно и то же время».
Возможность последней уязвимости беспокоит Смита: «Это могла быть утечка интеллектуальной собственности». По его мнению, проблема, возникающая при попытке защитить ChatGPT, заключается в том, что злоумышленнику «не нужно атаковать ИИ, ему достаточно атаковать способ доступа к нему».
Но ChatGPT также может помочь разработчикам улучшить безопасность ПО, утверждает Джейсон Кент, хакер-резидент Cequence Security. В своей статье он рассказывает о том, как ChatGPT можно использовать, например, для отладки или поиска недостатков безопасности в API.
Юридические риски
Разработчики также должны следить за юридическими рисками. В настоящее время GitHub Copilot является предметом коллективного иска в США, связанного с лицензированием и авторством исходного открытого кода, на котором он основан. «В зависимости от результатов этого разбирательства... разработчики ПО в других странах могут оказаться в числе получателей аналогичных судебных исков, поданных разработчиками оригинального открытого кода, использованного для обучения Copilot или ChatGPT», — предупреждает Карл Барнфазер, партнер и патентный поверенный юридической фирмы Withers & Rogers.
Но извечный страх перед новым ИИ, похоже, здесь пока не имеет оснований — ChatGPT не заменит разработчиков ПО. Наоборот, он может сделать их жизнь более приятной, взяв на себя или ускорив скучные части работы, такие как написание шаблонного кода, отладка или тестирование.
Вадим Новаковский, старший инженер-программист на Java в Sony Europe, все же опасается, что ChatGPT может лишить некоторых младших разработчиков части их работы, в то же время увеличив круг обязанностей старших разработчиков. «В мире уже есть проблема нехватки разработчиков — я думаю, что эта проблема усугубится», — говорит он.
Ник Дуркин, технический директор компании Harness, занимающейся разработкой платформы для доставки ПО, настроен более оптимистично: «При правильном использовании генеративный ИИ способен сделать хороших разработчиков великими. Для разработчиков с меньшим опытом сотрудничество с ИИ увеличивает их возможности».
Но независимо от того, станет ли ChatGPT опорой технологического ландшафта или сноской в истории технологий, несомненно то, что генеративный ИИ будет продолжать совершенствоваться, говорит Колвелл. «В ближайшем будущем мы увидим генеративный ИИ, способный выражать собственную степень уверенности или задавать последующие вопросы, что увеличит вероятность улучшения результата, — прогнозирует он. — По мере развития этих возможностей его способность быть „человеком“ — без надзора со стороны эксперта — реализуется неизбежно».
А до тех пор эти технологии могут послужить на благо разработки ПО. А когда мы достигнем этого момента «очеловечивания», кто знает, на что еще будет способен генеративный ИИ? Его влияние на процессы разработки ПО может стать наименьшей из наших проблем...