Привет, Хабр! Поговорим о роли ИИ в жизни разработчика — мы в блоге beeline cloud часто обсуждаем темы, которые волнуют ИТ-сообщество. 

Увольнения, увольнения, увольнения, кажется, они никогда не закончатся. На сайте layoffs.fyi есть даже трекер увольнений в технологической сфере. Финансирование стартапов опускается на минимальный за последние 5 лет уровень, пишет Crunchbase. Помимо общих экономических проблем, на горизонте маячит страх, что ИИ и вовсе вытеснит программистов. 

Техноновости напоминают репортажи о конце света. Так ли это?

Как человек, который начал свою карьеру программиста сразу после того, как лопнул пузырь доткомов, я могу с уверенностью утверждать, что все не так уж плохо. Когда я только начинал свою профессиональную деятельность, люди говорили мне, что «Интернет мертв» и мне стоит поискать настоящую работу. А проблемы, с которыми боролись доткомовские стартапы, никуда не делись. Причём многие из найденных в начале 2000-х решений были зарыты в землю, лишь для того, чтобы вновь объявиться несколько лет спустя.

Это еще не конец, равно как и в 2000 году

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

Сказка судного дня «Интернет умер» в итоге оказалась несостоятельной. Интернет, технологии и программное обеспечение развивались быстрее, чем когда-либо прежде. Это не было концом тогда и не является концом сегодня. Глубоко вдохните и оглянитесь вокруг. Мы по-прежнему летаем на дозвуковых самолетах, до сих пор не существует летающих машин, и я даже не могу заказать себе ховерборд. 3D без очков — это полная ерунда, у нас до сих пор нет технологий видеозвонка, показанных в «Звездных войнах» в 1980-е годы.

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

ИИ в ближайшее время не сможет заменить ни одного разработчика

«Новые средства разработки и увеличение вычислительных мощностей означает, что нам понадобится меньше программистов» — таково было кредо начала 2000-х годов. На самом деле все обстояло с точностью до наоборот. Несмотря на то что отдельные программные проекты обходились меньшим количеством разработчиков, общее стремление к технологиям означало, что проектов становится всё больше, а следовательно, нужно привлекать новых и новых разработчиков. ИИ и облачные технологии радикально повышают производительность труда разработчиков. Однако они порождают новые проблемы и возможности, для решения которых нужно еще больше разработчиков.

Если вы хотя бы раз использовали Github Copilot, ChatGPT, Google Gemini или Chevrolet Chat для создания кода, то наверняка заметили, что обучение и область применения этих моделей существенно ограничены.

Обучение LLM и «дилемма ИИ»

Если попросить любой LLM написать на Swift код для in-app purchase на iOS, то, скорее всего, на выходе получится реализация StoreKit1, состоящая примерно из 50-60 строк. Однако StoreKit2, анонсированный 2 года назад, значительно упрощает процесс in-app purchase и сокращает код всего до нескольких строчек. При обучении LLM, таких как ChatGPT или Copilot, либо используются устаревшие данные, либо в выборке преобладает реализации StoreKit1, что заставляет LLM всегда использовать именно его, так как нейросеть «считает» его самым подходящим.

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

«Создай фотографию программиста в 2050 году, который пишет приложения для компьютера» — Что, что? Экраны компьютеров снова уменьшатся, и мы снова начнем носить галстуки в процессе работы с кодом? ;)

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

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

Единственное жизнеспособное решение на данный момент? Вмешательство человека.

Есть вещи, которые LLM могут никогда не узнать

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

Человек: Сколько рейхсмарок стоила первая поездка в первом классе из Кельна в Барселону в 1931 году?

Copilot: К сожалению, у меня нет точных данных о стоимости проезда для этого конкретного маршрута в 1931 году. 

ChatGPT: Сложно предоставить точную информацию о стоимости поездки на поезде первого класса из Кёльна в Барселону в 1931 году, так как исторические цены на билеты могут варьироваться и не всегда хорошо документированы.

Ответ, кстати, есть — 160 рейхсмарок (110 во втором классе и 70 в третьем). Откуда я знаю? Я могу прочитать исторические документы, которые никогда не сканировались и не доступны в цифровом виде.

Та же фундаментальная проблема касается и программирования. Когда я писал свою статью «Vintage Programming On Macintosh System 7.5 With Think C & ResEdit», я перепробовал несколько LLM. Ни одна из них не смогла создать даже простенькую кнопку, показывающую диалог с сообщением при нажатии. Они потерпели полный провал и выдавали либо тарабарщину, либо код, даже отдаленно не связанный с системой Macintosh. И все это лишь единичные примеры, ведь список ограничений LLM практически бесконечен.

Отдать на откуп LLM портирование приложения под Macintosh 90-х годов на современную macOS? Что ж, удачи.

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

Невозможно скопировать органический объект, который до конца не изучен

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

Наука понятия не имеет, как работает эта штука с мыслями.

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

Не поймите меня неправильно: Я люблю LLM и считаю, что мы добились больших успехов в области ИИ. Синтезированные голоса стали очень хороши, и их крайне сложно отличить от натуральных человеческих. Генерация изображений и видео — это фантастика. Однако я думаю, что мы еще очень далеки от того, чтобы увидеть полноценный голливудский блокбастер, полностью снятый компьютером без вмешательства человека.

Программы и технологии превзошли людей

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

Мой опыт вождения автономного автомобиля BMW показывает, что большинство проблем возникает из-за того, что люди создают беспорядок на дороге, например, рисуют невнятную разметку, с которой даже опытный водитель не справится. Противоречивые дорожные знаки — еще одна занятная проблема. И все это в Германии, стране, известной своей точностью и правовой щепетильностью. Тем, что в ней принято следовать очень конкретным и точным правилам. Казалось бы, идеальная среда для автономного автомобиля. Отнюдь.

Если даже люди не могут разобрать дорожную ситуацию, то как это сделает компьютер?

Именно хаос, свойственный человеку, мешает технологическому прогрессу.

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

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

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

Общество переживает кризис образования

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

Это касается не только условных Тома, Дика и Гарри, но и разработчиков программного обеспечения. Если взглянуть на внедрение современных облачных технологий, бессерверных приложений и таких подходов, как событийно-ориентированные архитектуры, а затем сравнить это с количеством «классических» трехуровневых веб-аппов, то можно заметить, что внедрение современных архитектур приложений — это долгий путь. Есть даже новые приложения, построенные на традиционных архитектурах, которые в современном мире не имеют смысла. Их создают так не потому, что это целесообразно, а потому, что разработчики не знают ничего более подходящего.

Сейчас перелет из Лондона в Нью-Йорк занимает в два раза больше времени, чем в 80-е годы.

Хотите верьте, хотите нет, но до сих пор существует немало сайтов, которые не оптимизированы под мобильные устройства (в 2024 году!). Я лично встречал веб-разработчиков, которые не смогли даже в самых общих чертах объяснить, как работает TCP/IP или даже HTTP. А ведь это сетевые протоколы, которые они используют и с которыми работают каждый день.

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

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

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

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

Кстати, мы в beeline cloud регулярно запускаем бесплатные курсы — ловите подборку по разным направлениям:

  • Base Cloud DevOps — основы гибкой разработки в облаке, лучшие практики DevOps и Kubernetes

  • Base Data Engineer — особенности управления данными, подходы к их хранению и визуализации

  • Base Cloud Security — основы и лучшие практики информационной безопасности

Комментарии (19)


  1. AlexeichD
    15.04.2024 14:18
    +9

    Ну как-то так, да. Согласен. Фигня этот ИИ полная, а хорошему программисту - работа всегда найдется.


  1. Batalmv
    15.04.2024 14:18

    Очень хорошая статья

    Мне кажется очень хорошо подмечено, почему LLM на данный момент имеет ограничения и не только

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

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

    Поэтому это тоже фактор, которые может многое объяснять


  1. Sun-ami
    15.04.2024 14:18
    +1

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


    1. anonymous
      15.04.2024 14:18

      НЛО прилетело и опубликовало эту надпись здесь


    1. Robastik
      15.04.2024 14:18

      Кроме оптимизации есть еще специализация. Мозг состоит из сотни отделов, каждый из которых специализируется на своей задаче.


  1. Alohahwi
    15.04.2024 14:18
    +4

    Помню лет 10-15 назад вводил на одном форуме такое понятие - синтаксическое мышление(оно же гуманитарное). Смысл его в том, что сказанное/написанное считается истиной если оно синтаксически безошибочно/непротиворечиво. В противовес ему определяется техническое мышление - если сказанное/написанное соответствует физической реальности, то это верно. По иронии судьбы сейчас автоматизировали тот самый тип мышления, носителей которого общество и так не знает куда пристроить, вводя например такие понятия как "гуманитарный склад ума".


    1. engine9
      15.04.2024 14:18

      Так это ж схоластика! Как Аристотель сказал что у мухи восемь лап, так две тысячи лет это повторяли.


  1. dprotopopov
    15.04.2024 14:18
    +3

    https://habr.com/ru/companies/avito/articles/741390/comments/#comment_25696114

    ИИ в ближайшее время не сможет заменить ни одного разработчика ...

    Оно сможет его заменить НИКОГДА см. https://en.wikipedia.org/wiki/Turing's_proof

    Первое доказательство: что не существует "вычислительной машины", которая могла бы решать, является ли произвольная "вычислительная машина" (представленная целым числом 1, 2, 3, . . .) "не содержит кругов" (т. Е. продолжает печатать свое число в двоичном формате до бесконечности): "...у нас нет общего процесса для выполнения этого за конечное число шагов" (стр. 132, там же.). Доказательство Тьюринга, хотя оно, кажется, использует "диагональный процесс", на самом деле показывает, что его машина (называемая H) не может вычислить свое собственное число, не говоря уже обо всем диагональном числе (диагональный аргумент Кантора): "Ошибочность аргумента заключается в предположении, что B [диагональное число] вычислимо"[3] Для доказательства не требуется много математики.

    Второе доказательство: Это, возможно, более знакомо читателям как теорема Райса: "Далее мы можем показать, что не может быть машины E, которая, будучи снабженной S.D ["программой"] произвольной машины M, будет определять, печатает ли M когда-либо данный символ (скажем, 0)"[a]

    Третье доказательство: "В соответствии с каждой вычислительной машиной M мы строим формулу Un (M) и показываем, что, если существует общий метод определения того, доказуемо ли Un (M), то существует общий метод определения того, выводит ли M когда-либо 0"

    https://habr.com/ru/articles/726420/comments/#comment_25401108

    Лично я не так пессимистично настроен с точки зрения работы для программистов

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

    Техника становится всё сложнее, появляется робототехника - даже для формулирования простой задачи её надо разложить на элементарные действия, а не просто поставить конечную цель - так что люди, способные сделать это (запрограммировать последовательность действий) будут пользоватся спросом, причём думаю что спрос будет постоянно расти

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

    Не всем же быть техно-магами и промт-магами

    https://habr.com/ru/articles/716146/comments/#comment_25216144

    Прирост количества информации по Шеннону будет 0, а энтропия может только возрастать

    и по поводу прогнозов от "умных" людей https://habr.com/ru/posts/773238/

    СОЧИ, 20 окт 2017 — РИА Новости. Председатель правления Сбербанка Герман Греф заявил, что программисты сейчас не востребованы и не стоит всем гнаться за этой профессией.

    Так он возразил главе Минкомсвязи Николаю Никифорову, который считает, что России нужен миллион айтишников.
    "Кстати, Индия, имеющая четыре миллиона айтишников, страдает теперь от этого. Потому что век айтишников закончился. Сейчас век очень энергичных людей", — отметил Греф, выступая на XIX Всемирном фестивале молодежи и студентов.

    "Очень важно не попасть на эту эмоциональную волну — побежать за всеми. У нас век инженеров — все побежали на инженеров. Закончили вузы, 10% остались работать, все остальные пошли работать продавцами в пивных киосках. Потом у нас век юристов и экономистов, которые работали официантами… Не нужны сегодня программисты. У нас огромное количество программистов, с которыми мы боремся", — продолжил глава Сбербанка.

    21 сентября 2023
    Греф оценил дефицит IT-специалистов в России более чем в 1 млн человек
    Дефицит IT-специалистов в России составляет больше 1 млн человек, заявил Греф. Компенсировать эту нехватку в ближайшие годы не получится: по всем оценкам Сбербанка, пока дефицит будет только увеличиваться
    Дефицит IT-специалистов в России составляет сейчас больше 1 млн человек, заявил глава Сбербанка Герман Греф, его цитирует «Прайм».


    1. Ilusha
      15.04.2024 14:18
      +5

      Ну то, что есть задачи, которые нельзя алгоритмически решить - ок. Как это доказывает то, что 90% программистов крудов не сможет заменить ИИ достаточной силы?


      1. Alohahwi
        15.04.2024 14:18

        Давайте на другие профессии посмотрим, где замена уже произошла, например шахматист. Замена заменой, а шахматистов меньше не стало, скорее даже наоборот.


        1. AlexCzech01
          15.04.2024 14:18

          Не произошло там никакой замены. Там произошло огораживание - компьютеры отдельно, люди отдельно. Люди с компьютерами не играют, потому что это бессмысленно


          1. Alohahwi
            15.04.2024 14:18

            Насколько я помню, когда Каспаров проигрывал дипблю, смерть шахмат ещё как обещалась. Однако как то выкрутились.


          1. molnij
            15.04.2024 14:18

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

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


    1. MainEditor0
      15.04.2024 14:18
      +1

      Пусть Греф уволит всех своих IT‑специалистов и заменит их своим сберовским GigaChat... Но только пусть я сначала оттуда все деньги выведу для безопасности.


  1. KuramoriReika
    15.04.2024 14:18
    +2

    Я хотел бы посмотреть на компанию, которая возьмёт на себя риски и заменит программистов на ИИ. Будет забавно наблюдать, как ИИ штампует кучу уязвимостей, некорректных данных и теряет миллиарды рублей, покупая партию детских велосипедов по 200 млн рублей за штуку. Это будет золотая пора для всяких хакеров, чтобы начать ломать такие системы и воровать огромные суммы.


    1. dprotopopov
      15.04.2024 14:18

      было такое - был стартап который утверждал что кодит с помощью ии.

      а потом оказалось, что они сливали задачи индусам, а те ручками-ручками

      в сми публиковали эту историю

      ну и, соответственно, стартап собирал деньги инвесторов ....


  1. Viktor_Vita
    15.04.2024 14:18

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


  1. pavelsc
    15.04.2024 14:18
    +1

    Видно старая статья, уже серийные авто в Китае ездят сами и паркуются в самые сложные места. Они могут даже довезти человека ко входу в ТЦ и запарковаться после этого на другом уровне паркинга (Valet Parking называется функция). А потом точно так же забрать его от двери, запомнив маршрут внутри паркинга. А всего то нужно было, что 3 лидара поставить. Сколько лет прошло от выхода статьи? Ещё столько же пройдёт, и с учётом лавинообразного развития ИИ ещё половина статьи устареет.


  1. Germanjon
    15.04.2024 14:18

    На рубеже тысячелетий люди делились на единицы, которые знают HTML и миллионы, кто нет. Тех, кто знает HTML кодили в блокноте и размещали "хомяки" на narod.ru. Те, кто не знает - тихо им завидовали.
    Потом появились MS Frontpage и Macromedia Dreamweaver и элита HTML стала тихо ворчать, что убивается культура создания сайтов и завтра любой "ламер" сможет прикоснуться к святому и создать бездушный сайт "ниачём".
    Прошло 20+ лет, вёрстка эволюционировала во Frontend-разработку, а сегодняшние сайты в сотни раз приятнее на вид, чем вырвиглазные поделки многолетней давности.