shikhalev.org
Автоматически сгенерированная картинка

С вы­хо­дом ChatGPT как-то внезапно обострились апокалиптические настроения в ду­хе: заменит программистов, оставит нас всех без ра­бо­ты, и прочее «мы все умрем». По­след­нее, конечно, верно, но не ново.

Сразу скажу, что самолично я с Chat­GPT не экспериментировал, так что размышлять буду в це­лом от­вле­чен­но-те­о­ре­ти­че­с­ки, опираясь, впрочем, на мно­жест­во «свидетельских показаний» в ин­тер­не­те, касающихся как этой нейросети, так и разных прочих.

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

И да, КДПВ сгенерирована нейросетью по запросу «deep learned girl in fantasy style».

О смерти профессий

Здесь хочу проговорить следующие моменты:

  • Нейросеть не ре­ша­ет по-нас­то­я­ще­му творческих задач. Хотя зачастую решает задачи, которые до сих пор было принято считать творческими, но это означает лишь то, что наши представления о твор­чес­ком и нетворческом, новом и скомпилированном придется пересматривать. Хотя некоторые и считают, что на са­мом деле разницы тут нет, и вопрос скорее количественный, однако это не так, ниже еще постараюсь раскрыть поподробнее.

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

  • Вопросы целеполагания и принятия решений железяченькам неподвластны.

    Тут надо разделять принятие решений как выбор путей действия с оп­ти­ми­за­ци­ей по ка­ким-то па­ра­мет­рам — в этом компьютеры хороши, правда, могут не учесть какой-то критически важный, но на­столь­ко очевидный для че­ло­ве­ка, что никогда не про­го­ва­ри­ва­ет­ся, параметр, но это как раз технический вопрос; и решения, связанные собственно с це­ле­по­ла­га­ни­ем — субъектность… Не то, чтобы субъектность была полностью недоступна творениям рук человеческих, но оно нам надо?

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

  • Чем собственно нейросети отличаются от клас­си­чес­ких алгоритмов? Тем, что работают с не­фор­ма­ли­зо­ван­ны­ми и потенциально неполными массивами информации, выдавая непредсказуемый, в том числе в пла­не правильности и полезности, результат. Да, это неизбежная цена работы с не­фор­ма­ли­зо­ван­ны­ми данными, что человеком, что машиной.

    И в пол­ный рост встает вопрос контроля и, главное, ответственности. За ре­зуль­тат, если он вообще имеет ка­кое-то значение, должен кто-то отвечать. А что­бы отвечать, этот кто-то должен иметь возможность результат контролировать. Сейчас в экс­пе­ри­мен­тах с Chat­GPT раз за разом повторяется паттерн, когда человек ставит (довольно простую) задачку, смотрит, что не так, уточняет требования и, на ка­кой-то итерации, получает подобающий ответ. На­до ли говорить, что экспериментатор во всех этих случаях обладает достаточной квалификацией? Да, процесс очень похож на ра­бо­ту с ма­ло­ква­ли­фи­ци­ро­ван­ны­ми исполнителями, обычно называемыми джунами, что по инер­ции создает впечатление, как буд­то надо еще немного обучения и машина будет работать уже на уров­не мидла или сеньора… Но см. два предыдущих пун­к­та — этого не про­и­зо­й­дет, то есть обучать и улучшать можно бесконечно, но принятие решений и контроль делегировать не по­лу­чит­ся. Зато на боль­ших объемах проведение код-ре­вью выйдет за пре­де­лы возможностей даже очень квалифицированного и специально тренированного человека. Об ав­то­ма­ти­чес­ких вариантах контроля кода будет далее, пока замечу, что того, что сейчас широко пра­к­ти­ку­ет­ся — недостаточно.

Думаю, мой вывод уже понятен. Профессии никуда не де­нут­ся, хотя и сократится постепенно количество псевдоинтеллектуальных работ, а учиться придется больше и немного не то­му, что предлагают многочисленные он­лайн-кур­сы. Просто пора понять, что code-monkey — это не про­фес­сия, а ругательство.

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

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

Меняться придется

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

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

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

Я бы, пожалуй, заострил внимание на сле­ду­ю­щих аспектах:

  • Навык систематизации и формализации. Причем как для фор­му­ли­ро­ва­ния задач, так и для по­ни­ма­ния, че­го же нам железяченька в ка­чес­т­ве результата выдала, поскольку, вообще говоря, результат этот может быть произвольным.

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

  • Умение читать результаты чужой работы.

    Что интересно, как раз программистам, которые не co­de-mon­key, это все уже знакомо и потребно.

  • Умение верифицировать произвольную информацию. Это, вероятно, самое сложное, но с дру­гой стороны, необходимое уже давно, с мо­мен­та появления интернета, умение.

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

Учиться, учиться и еще раз учить­ся — это, конечно, хорошо… Но хотелось бы отметить и другое направление, а имен­но — развитие инструментов.

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

И вернуться на этом этапе к пол­но­му код-ре­вью и ответственности на че­ло­ве­ке.

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

Само собой, это все не па­на­цея. Для ка­ких-то задач нам не удас­т­ся полностью формализовать требования, а на ка­ких-то мы столкнемся с про­б­ле­мой останова и прочим содержимым кроличей норы… Но да­же в об­лас­ти возможного работы непочатый край (и отделение возможного от не­воз­мож­но­го — часть этой работы).

Новые горизонты

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

И это будет очень существенный сдвиг, поскольку позволит преодолеть первое ограничение, о ко­то­ром я говорил вначале, т.е. — решение творческих задач. Да, с ло­вуш­ка­ми локальных оптимумов и прочими проблемами, но все-таки.


А самое интересное, что тем же путем можно преодолеть и проблему же­ле­зя­чень­ки­но­го целеполагания… Но я, пожалуй, пока воздержусь от рас­суж­де­ний на эту тему, поскольку это напрямую противоречит заголовку поста.