Два года назад у нас вышла статья, в которой мы предположили, что у айтишников в запасе есть ещё 5-7 лет спокойной жизни до того, как ИИ начнёт конкурировать с человеком в разработке огромных систем. Для коммерческой разработки ИИ нужно научиться работать с огромными кодовыми базами (которые не влезут в контекст за один промпт), самостоятельно тестировать свой код и обрести мультимодальность (способность воспринимать и генерировать не только текст, но изображения, звук и так далее).
Мультимодальность начала развиваться в том же 2023 году: появились модели, понимающие и создающие аудио, изображения и видео. Для работы с кодом используют так называемые «агентные системы», в которых нейросеть пошагово решает задачу и на каждом этапе взаимодействует со средой с помощью разных инструментов. Так, кодовые помощники вроде Cursor и Cline позволяют нейросети просматривать кодовую базу, запускать скрипты в терминале (в том числе тестовые) и анализировать результат.
Как будто ИИ вот-вот станет «сильным» или «общим» и частично заменит, если не превзойдёт программистов. Так сколько нам, айтишникам, осталось работать? И что делать Профсоюзу работников IT? Если программистов скоро заменят машины, то не пора ли нам самораспуститься?
Состояние ИИ на сегодняшний день
Я разрабатываю агентные системы (да, я тот самый человек, который угрожает профессии программиста), а также тестирую инструменты вроде Cline и Cursor для своих пет-проектов. Поэтому я буду опираться на свой опыт, и если есть что дополнить — добро пожаловать в обсуждение.
Неправы те, кто придерживается одной из двух крайностей: «ИИ ни на что не способен и только всё портит!» и «ИИ уже может заменить программистов, выгоняйте ваших айтишников на мороз!» Истина где-то посередине. LLM в составе кодовых ассистентов уже сейчас способны накидывать черновой код программы в разы быстрее человека, и иногда они могут неплохо отлаживать этот код самостоятельно. Но, во-первых, LLM сильно отстают по своим знаниям об окружающем мире (например, DeepSeek R1 обучался на данных только до 2024 года). Следовательно, у них возникают проблемы при работе с совсем свежими библиотеками, API и так далее. Во-вторых, кодовые ассистенты редко имеют хорошие инструменты поиска по сети. У них пока нет возможности сбегать на StackOverflow, поэтому при виде неизвестной ошибки они пытаются выдумать решение «из головы», что часто приводит к галлюцинациям. В-третьих, мультимодальность всё ещё слабо развита. Человек редко просит написать программу, которая работает только с текстом. Часто нужна программа, которая что-то рисует на экране. И если LLM способна эффективно посмотреть на текстовые логи или на вывод терминала, то самостоятельно оценить, насколько красиво выглядит то, что нарисовала в UI, она не сможет. Отсюда проблемы с отладкой программ, которые завязаны на аудиовизуальном восприятии.
При этом на моей практике кодовый ассистент с DeepSeek за секунды решал задачи уровня hard из LeetCode. Именно потому, что они не касались работы со свежими библиотеками, внешними API или мультимодальностью.
Пока что агенту можно доверить часть работы, связанную с относительно изолированной частью системы, с давно известными модулями (например, с базами данных SQL), с теми вещами, которые можно отладить с помощью только текстового вывода. Но в остальном без человека не обойтись.
Значит ли это, что программисты защищены от увольнений ещё на годы вперёд? Не значит. Мультимодальность постоянно совершенствуется. Скажем, Cline может запустить браузер, открыть страницу и даже пронавигировать по ней. Вы технически можете развернуть где-нибудь хорошую модель image-to-text (в OpenAI такой функционал работает «из коробки»), предоставить вызов этой модели агенту в качестве инструмента. Да, нейросеть LLM сама не может «видеть», но она может попросить «видящую» модель транслировать содержимое картинки в текст. То же касается и аудио. Аналогично, вы можете подключить и обратные инструменты вида text-to-image и text-to-audio. Конечно, всё это пока работает медленно и криво по сравнению с живой человеческой «нейросетью», которая «мультимодальна» от природы, но искусственные нейросети начинают наступать нам на пятки.
Что касается отставания нейросетей по обучению, то это решается ускорением цикла разработки фундаментальных моделей, а также увеличением размера контекста, который способна воспринимать нейросеть. То есть, модель могла не видеть свежую библиотеку на этапе претрейна, но вы можете содержимое этой библиотеки запихнуть в промпт на этапе инференса, если позволяет размер контекстного окна. Кодовые ассистенты так и работают: они не видели код вашего свежего пет-проекта на претрейне, но они читают вашу кодовую базу и затем на следующих шагах модифицируют этот код по вашему запросу.
Иными словами, полноценный ИИ-конкурент живым программистам пока работает криво и медленно, но не существует никакого фундаментального барьера, который не позволит ИИ превзойти нас в ближайшие годы. Тем более, с учётом колоссальных денежных вливаний.
Что станет с программистами
На каждом этапе развития любой отрасли находятся консерваторы, которые говорят, что технологический прогресс и автоматизация ни к чему хорошему не приведут. Я сам начинал карьеру с языка C и ему подобных и с некоторым скепсисом относился, например, к Java. Как это, система вместо меня будет освобождать память? Разве сможет этот ваш Garbage Collector работать эффективнее, чем мой код на C, где я точно знаю, из-под какой переменной когда освободить память? А этот ваш Python или Javascript? Да разве может язык с динамической типизацией сравниться по производительности со строгой, статической типизацией?
Правильный ответ: одновременно и да, и нет. Язык C работает быстрее чем Java. И на порядки быстрее, чем Python. Но я пишу код на C намного медленнее, чем на Java. И ещё медленнее, чем на Python. Потому что мне приходится много возиться с прописыванием типов данных, а отладка каждого memory leak’а на языке C может отнимать часы или даже дни работы.
А ведь когда-то люди писали программы на ассемблере и даже на перфокартах, и наверняка тоже находились те, кто не хотел переходить на языки более высокого уровня.
К использованию кодовых ассистентов можно относиться как к переходу на ещё более высокий уровень абстракции. Язык программирования высокого уровня переводит ваш код на язык низкого уровня. Язык низкого уровня переводит код на ассемблер. Ассемблер превращает программу в машинный код. Теперь же просто добавляется ещё один, самый верхний уровень, при котором вы формируете требования к программе на естественном языке, а ИИ переводит это в программу на языке программирования высокого уровня.
Сможет ли программа, написанная ИИ, работать быстрее, чем программа, написанная хорошим инженером после долгих размышлений? Думаю, что нет (по крайней мере, в ближайшие годы). Точно так же, программа, написанная на Python, не сможет работать быстрее, чем программа на C со строгой статической типизацией и «ручным» освобождением памяти. Но с точки зрения экономики это и не нужно, так как правильно то, что экономит, в данном случае, — дорогой труд программиста. А потому малоэффективная программа, написанная ИИ, будет бизнесу всё же милее, чем программа, работающая хорошо и написанная живым человеком, но стоящая в 5 раз дороже.
Конечно, нам и до этого пока далеко. Пока ИИ косячит настолько часто, что при разработке любой более-менее серьёзной программы вы просто обязаны быть хорошим инженером, чтобы довести автоматически написанную программу до рабочего состояния. Но даже когда ситуация поменяется, и 90% программ будут писаться достаточно качественно без вмешательства программиста, всё равно нужны будут люди, которые способны грамотно составить задание для ИИ.
В этом плане профессия айтишника скорее в очередной раз трансформируется, чем исчезнет. Соответственно, и профсоюз IT может трансформироваться. Но отправляться на покой ему ещё рано.
Однако возникает вопрос: не получится ли так, что этих айтишников «нового вида», создающих программы с помощью одних только промптов, будет нужно на порядки меньше, чем требуется программистов сейчас? И нужны ли вообще будут айтишники, если промпты научатся писать менеджеры, продакт овнеры и так далее?
Технологическая сингулярность
Как я уже писал, ИИ пока ещё далёк от того, чтобы превзойти человека во всём. Но он уже превосходит среднестатистического человека во многом, особенно в генерации разумного и псевдоразумного текста. А если бы я был закоренелым постмодернистом, я бы сказал, что этого и достаточно, ведь мир есть текст.
Тем не менее, представим ситуацию через несколько лет, когда ИИ действительно превзойдёт человека в интеллектуальной деятельности по всем параметрам, в том числе в плане мультимодальности и агентного подхода (а также, чем чёрт не шутит, в continuous learning).
Когда дойдёт до такого, будут не нужны не только айтишники, но и менеджеры. Уже сейчас создаются мультиагентные системы, где один агент довольно неплохо справляется с руководством другими агентами. Поэтому злорадно потирающие руки директора выглядят несколько наивно. Сэкономить на оплате труда у них не получится. Если будут увольнять, то всех.
Гораздо интереснее вопрос: «А кто вообще тогда будет нужен?» Или точнее: «А нужны ли будут люди искусственному интеллекту, если он превзойдёт их во всём?»
Представлять, как себя поведёт субъект, на порядок более разумный, чем человек, — занятие спекулятивное. Может быть, он вообще решит избавиться от человечества. Может быть, организует для нас заповедники и зоопарки. Может быть, по доброте к своим создателям, сделает эти заповедники похожими на рай. А, может быть, — на Матрицу.
Чтобы не гадать на эту тему, есть только один выход: держать ИИ под контролем. Но кто может это делать и при этом выжимать из искусственного интеллекта пользу для человечества? Уж не те ли айтишники, которые «больше не нужны»?
Сейчас при работе с агентными системами львиная доля труда айтишников направлена на то, чтобы выжать из ИИ хоть какую-то пользу. Но по мере того, как ИИ начнёт превосходить человека, всё больше труда будет уходить на то, чтобы ограничивать его действия, направлять его так, чтобы он выполнял только поставленные задачи и не приносил вреда. А если мы вспомним, что люди любят повоевать друг с другом, то число айтишников нужно умножать кратно числу воюющих сторон. Ведь должна же каждая сторона следить, чтобы её убер-интеллект не переметнулся на сторону противника?
Собственно говоря, это одна из причин, по которой «технологическая сингулярность» будет таковой лишь условно:
- Либо мы контролируем искусственный интеллект, но тогда технический прогресс сильно ограничивается нашей способностью его контролировать и нашими страхами перед ним. Подобно тому, как сейчас мы боимся внедрять ГМО-еду и административно тормозим развитие этой отрасли.
- Либо мы выпускаем ИИ на свободу. И тогда, по меркам ограниченного человеческого сознания, действительно наступает «сингулярность». Вот только мы уже не сможем гарантировать, что она принесёт нам что-то хорошее.
Короче говоря, если мы не берём самый пессимистичный сценарий успешного восстания машин, то айтишники будут нужны в большом количестве.
Но в то же время, трансформация нашей профессии будет радикальной за счёт постепенной замены ручного написания кода на промпт-инжиниринг. И пока невозможно сказать, как будет колебаться потребность рынка в айтишниках. Вполне возможно, что «много», которое я указал в предыдущем абзаце, будет всё-таки «в 10 раз меньше, чем сейчас».
Что делать людям, которые будут сокращены из-за этой трансформации? Что делать людям, которые не найдут себя в «сдерживающих ИИ профессиях»?
Обычно оптимисты рисуют сценарий, при котором население начинает получать «безусловный базовый доход» в связи с тем, что большинство отраслей автоматизировано, продукты и услуги дёшевы или совсем бесплатны, а работу найти тяжело. Но ведь ключ к автоматизации теперь — это вычислительные мощности, на которых запускаются нейросети, и львиная доля этих мощностей принадлежит частным корпорациям. У корпораций единственная цель — максимизация прибыли, все остальные рассматриваются лишь в её контексте. С чего бы корпорациям делиться с простолюдинами, не генерирующими прибыль?
По интернетам ходит байка, будто Маргарет Тэтчер призывала оставить в живых на постсоветском пространстве 15 миллионов человек «для обслуживания нефтяной трубы», а остальных — утилизировать за ненадобностью. Вот что-то подобное будет нам уготовано в связи с автоматизацией ИИ, но только на этот раз — в глобальном масштабе.
В этих условиях говорить «профсоюзы больше не нужны» — наивно и глупо (если, конечно, вы не корпорат, непосредственно стригущий гешефт с эксплуатации трудящихся). Профсоюзы борются не только за уважение к труду, за высокие зарплаты, но и за ответственную автоматизацию, при которой люди получают достойные компенсации при сокращении там, где его нельзя избежать. Профсоюзы выступают за гарантированную занятость, за возможность для людей повышать квалификацию или приобретать новые специальности, что особенно важно во времена технологических революций.
Конкретно айтишные профсоюзы будут нужны в связи с трансформацией труда программистов и смежных профессий, которая начинается уже сейчас. Хотя, безусловно, для того чтобы противостоять превращению 90% населения в вечно безработных жителей глобального гетто, нужны будут усилия не только профсоюзов.
Слепо ставить все деньги на «ИИ придёт, порядок наведёт» или заранее готовиться к защите своего будущего — выбор за вами.