Программисты больше не нужны, их «уволит» ИИ?

«Через пять лет мы увидим решения, которые смогут заменить как минимум 50% программистов уровня junior и middle», ― шокирует один из экспертов недавней дискуссии, прошедшей на Youtube-канале Ai4Dev. Но так ли страшен черт, как его малюют? Более ста тысяч строк кода в секунду, автоматизация рутинных задач, повышение эффективности ― все это уже часть нашей реальности благодаря применению ИИ в разработке. Однако не все согласны с тем, что искусственный интеллект ― это лекарство от всех болезней. «Именно люди двигают компанию. И генеральный директор, и дворник ― каждый вносит свой вклад», ― напоминает другой участник разговора. Так что же нас ждет ― революция или эволюция? Ответы на этот и другие вопросы вас ждут в сегодняшнем новом материале блога ЛАНИТ на Хабре.

da208e407aaf1e8951fb380041d42f29.png

Посмотреть полную версию обсуждения можно на канале Ai4Dev.

За лучший комментарий под видео мы подарим бесплатную подписку на фильмы и сериалы от кинотеатра KION. А еще у нас появился Telegram-канал для разработчиков, которые используют ИИ. В нем можно обмениваться мнениями и реальными кейсами.

«Мы скоро увидим ИИ, который сможет целиком заменить junior- и даже middle-разработчиков»

Интенсивное развитие генеративных моделей ИИ заставляет многих экспертов сомневаться, что в ИТ-индустрии надолго сохранится статус-кво. Уже сейчас в прогнозах можно встретить рассуждения о том, что живым программистам в какой-то момент придется уступить рабочее место кремниевым. И этот момент не так уж и далек, как принято считать.

Об этом говорит Сергей Жучков, создатель и генеральный директор школы программирования ProgKids.com, создатель венчурной компании VentureBot.  

«Я убежден, что если развитие ИИ пойдет с той же скоростью, с какой развилась модель GPT-3 до GPT-4, то в течение пяти лет мы увидим решения, способные целиком заменить как минимум junior-, а возможно даже middle-разработчиков», ― отметил эксперт.

3479bca40a3245cbbaa2ad5d5143b6c8.png

С этим выводом согласен и Кирилл Пшинник, генеральный директор университета Зерокодер.

«ChatGPT, наверное, одна из самых продвинутых моделей, которая действительно может создать качественный код. Но нужно понимать, что она может писать скорее небольшие куски кода и функции. Речь идет не о том, что нейросеть заменит программиста как такового, а скорее позволит людям, которые собирают код из готовых блоков, получать их автоматически. То есть можно будет описать задачу естественным языком и получить готовый блок кода, из которого можно сконструировать решения», ― говорит он. 

По его словам, уже сейчас реально сделать чат-бота в Telegram, который будет с помощью ИИ  обрабатывать данные, ветвить логику и срабатывать по условиям.

«Мы разработали интенсив специально для людей, которые вообще не знают основ программирования. И они за три дня, не имея опыта работы ни с PyCharm, ни с чем-то другим, собирают готового чат-бота в Telegram, который обращается к API OpenAI, запрашивает оттуда данные, на основе ответа создает голосовое сообщение и присылает обратно. Да, логика, наверное, простая, и программисты на это смотрят и говорят: «Это делается за пару часов самостоятельно». Факт, но люди, вообще не зная языка программирования, теперь могут это создать»,   ― отмечает Кирилл Пшинник.

24e5c68ba20bff592f2e09abc02e6078.png

Он уверен, что теперь гуманитарии и новички, только пришедшие на работу, способны написать несложный код для решения своих задач. 

С ним согласен и Анатолий Бобунов, эксперт в области разработки программного обеспечения и тестирования SDET. «Многие неопытные или ленивые программисты могут потерять работу, потому что ИИ в состоянии выполнять её за них. Их задачи можно будет делать проще, дешевле и быстрее. Я уже давно использую тот же ChatGPT для аналитических задач, быстрого кодирования, проверки каких-то гипотез», ― говорит эксперт. 

Но есть и аргументы в пользу  живых программистов. 

«Что касается использования лингвистических моделей в профессиональной разработке, то для начала нужно отучить эти модели откровенно врать на те вопросы, которые им заданы. Сейчас за ними все приходится перепроверять. На каких тестах чаще всего прекрасно себя показывают разработчики ИИ и те, кто якобы внедряет это в профессиональную разработку? На простых задачах с известными решениями. Как только мы переходим в область, где ответ, возможно, известен, но уже не так очевиден ― там ситуация намного более плачевная. Поэтому в профессиональной разработке я пока больших перспектив внедрения подобных технологий, честно говоря, не вижу», ― говорит  Александр Кольцов, научный сотрудник Центра НТИ «Цифровое материаловедение: новые материалы и вещества» МГТУ им. Н.Э. Баумана.

2bedf6a27a7455c98364b28d3fb33cc2.png

Сергей Жучков, создатель и генеральный директор школы программирования ProgKids.com, считает, что развитие нейросетей неизбежно, и сегодняшние недостатки ИИ будут нивелированы со временем.

«Потому что такие технологии, как RLHF (Reinforcement Learning from Human Feedback) и цепочки рассуждений (Chain of Thought), если я правильно помню терминологию, позволяют нейросетям обращаться в интернет, получать самые свежие данные, а также анализировать документацию. Грубо говоря, модель уже не должна полагаться только на те исторические данные, которые в ней есть. Существуют технологии, когда модель может обратиться к внешним источникам, взять оттуда код, попробовать его запустить, получить сообщение об ошибках, донастроить его или сделать дополнительные проверки. Сейчас это можно делать вручную, управляя промптами. В GPT уже появляются промышленные инструменты типа Devin, которые делают ровно то же самое, но в автоматическом режиме. Модель может дорабатываться, и тот же чат GPT-4/5 так или иначе перестанет глючить. Этого добьются более тонкой настройкой модели», ― уверен специалист.

«ИИ глючит, а джуны ошибаются…»  

Кирилл Пшинник считает, что нужно сравнивать искусственный интеллект  не с опытным  программистом, а с джуном.  

«Вы говорите, что ИИ ошибается, дает неправильные ответы. Ну, а джуны у вас никогда не ошибаются и не пишут неправильный код? Если сравнивать качество кода, то почему модель пишет хороший код? Потому что она изучила и запомнила весь Stack Overflow, все доступные в сети учебники по программированию, прорешала все задачи на LeetCode и задачи, которые она где-то встречала. Все, что было проиндексировано, она прошла, прочитала все форумы и обсуждения и поняла их. Важно, что она не просто запомнила этот код и сохранила. Модель прогнала его через себя и превратила в свой векторный embedding, с которым работает», ― говорит Кирилл Пшинник. 

«И когда мы просим её написать код, то надо сравнивать не с абсолютным программистом в вакууме, а с тем же условным джуном. Вот джун, который прошел шестимесячные курсы или отучился пять лет на мехмате, освоил объем информации значительно меньший, чем нейросеть», ― добавляет он. 

Анатолий Бобунов рассказывает, что сталкивался с тем, что джуниоры тестировщики и программисты уже искренне верят в непогрешимость ИИ. 

«Когда они начинают писать код с помощью нейросетей, им сложно объяснить, почему этот красиво написанный код, который вроде бы выполняет задачу, ― плохой. Почему нельзя это отдать в продакшн? Они искренне верят тому, что написала нейросеть. Большинство из них очень сильно недоумевают, когда я говорю, что это вранье, что написано неправильно. У людей иногда бывает такой стереотип: «Это же написано компьютером, профессиональным ПО, за которое я платил деньги», ― отмечает он. 

Александр Кольцов отмечает, что есть еще проблема, которая касается не только качества кода. «Есть гигантская пропасть между «просто работает», «работает как надо» и «работает эффективно». Нейросеть может сгенерировать вам правильное решение задачи, которое вас может не устроить. И объяснить, в чем именно загвоздка, довольно сложно. Тут уже не все критерии получится четко формализовать. Мы оцениваем код зачастую не просто набором формальных критериев по методичке. У нас есть и какие-то неформальные вещи. Опять же, если нейросети когда-нибудь научатся отделять зерна от плевел, тогда можно будет поговорить», ― резюмирует он.

f6683bc48ed960dc04ef874ecda1e693.png

Но все существующие недостатки ИИ в разработке ПО могут  исчезнуть. Вопрос только в прогрессе нейросетей. Об этом говорит Денис Кондратьев, старший программист в крупной компании по разработке игровых продуктов.

«Может быть, мы действительно подошли к той точке, когда нужна принципиально другая в плане качества модель, которая способна на большую абстракцию. И непонятно, насколько в этой ситуации может помочь большее количество данных, ведь их и сейчас уже огромное количество», ― отмечает он.

«СhatGPT не пойдет с вами в бар» 

Артем Аментес, основатель ООО «Социальный код», рассуждает о практическом применении ChatGPT в разработке программного обеспечения. Он уверен, что технология может сократить время и снять нагрузку с разработчика, выполняя определенные функции. Но это далеко не все, что определяет программиста в его работе.

c669c584e9c9175f4c41b87c9f7ce687.png

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

Аментес также подчеркивает, что ChatGPT не может заменить человеческое взаимодействие и эмоциональный обмен, которые часто происходят во время неформальных встреч разработчиков: «ChatGPT не пойдет в бар вместе с остальными разработчиками, не поделится эмоциями. А вы знаете, что большинство задач решается как раз на неформальных встречах. Вы вообще в курсе, когда разработчики идут в бары, о чем они говорят? Они точно также обсуждают код и дальнейшие задачи», ― говорит он.  

Увы, по мнению Дениса Кондратьева, с развитием ИИ программистов станет значительно меньше. Это, по сути, вымирающая профессия. «Количество необходимых для разработки ПО людей, я думаю, сократится. В противном случае, зачем сейчас идет бурное развитие ИИ? Зачем компании вкладывают огромные деньги в искусственный интеллект? Я думаю, только для того, чтобы потом сократить свой штат и использовать готовый инструмент дешевле», ― считает он. 

Александр Кольцов не согласен. «Мы не можем просто избавиться от низкоуровневых разработчиков, заменить их на какой-то инструмент, поставить за ним сторожа и рассчитывать, что все будет так же. Отдельные бизнес-процессы заменять мы можем, с этим я не спорю. Но целиком рассчитывать на то, что у нас все останется как было, а большую часть работ будет выполнять автоматика, не приходится», ― отмечает он. 

А что думаете вы? Поделитесь своим мнением в комментариях к этому материалу или видео. Расскажите, ощущаете ли вы глобальные изменения в подходах к разработке ПО с применением ИИ или нет. Если вы хотите доказательств, что искусственный интеллект делает большие успехи в этой сфере, то заходите на телеграм-канал AI4Dev. Там собрано уже много реальных кейсов применения нейросетей для эффективной разработки.

© Habrahabr.ru