В августе 2021 г. компания по разработке искусственного интеллекта OpenAI выпустила Codex — новую систему, которая автоматически преобразует в код простые английские фразы. Codex основан на GPT-3, революционной платформе глубокого обучения. Она владеет почти всеми общедоступными письменными текстами, созданными человечеством до 2019 года.
«Заменит ли он программистов?» — cамый частый вопрос, который задают о Codex. Вдруг 12-значные долларовые вклады мировых держав в обучение айтишников окажутся напрасными? Томас Смит, ранний бета-тестер GPT-3 и Codex, испытал систему и отвечает на вопрос в этой статье.
Спойлер: нет. Если вы разработчик или ваша компания тратит кучу денег на IT-специалистов, можете вздохнуть спокойно. Codex в ближайшее время не заменит людей, зато может сделать их более эффективными.
Почему Codex не отнимет у тебя работу?
Несколько лет назад Томас Смит работал над проектом правительственной базы данных с аналитиком и разработчиком высокого уровня из крупной американской консалтинговой фирмы. Их задачей было разобраться, как госучреждение использует базу данных для назначения грантов организациям и предложить улучшения.
В начале совместной работы у Томаса было много стереотипных представлений о работе коллеги. Томас воображал, как тот, ссутулившись за ноутбуком, будет весь день кодить в R или генерировать блестящие формулы в Mathematica, чтобы понять базу данных клиента. Представлялись безумные каракули в стиле «Игр разума», регрессионный анализ и бесконечные часы у монитора за написанием километров кода Python.
Вместо этого коллега-разработчик начал взаимодействие с клиентом и потратил несколько дней, чтобы изучить процесс предоставления грантов. Он встречался с отдельными сотрудниками, акционерами, представителями организации. Только после нескольких месяцев такой работы он наконец сел за аналитику, используя R и различные графические библиотеки. Фактически написание кода и анализ заняли всего два дня. Результаты были точными, программа работала блестяще. Клиент был в восторге.
Позже он пояснил, что на самом деле написание кода и анализ занимает около 1% его времени. Остальное тратится на работу с клиентами, изучение их проблем, выбор правильного ПО и математических моделей, сбор и очистку фактических данных и представление результатов. В большинстве случаев, кодирование и математика сами по себе являются крошечной, почти механической частью процесса разработки.
«Полразработчика» и ошибки в коде
Согласно Tech Republic, написание реального кода часто занимает менее половины, а во многих случаях всего 20% времени разработчика. Даже если бы такие системы как Codex работали идеально, они заменили бы максимум половину работы живого человека, а часто и меньше четверти. Если кто-то не научит Codex сидеть с клиентами, завоевывать доверие, понимать проблемы и разбивать их на решаемые составные части — делать то, что делал коллега Томаса во время совместного проекта, — система не будет угрожать опытным разработчикам в ближайшее время.
В анонсе Codex учёные OpenAI признают это. По их словам, «инженеры не тратят весь день на написание кода». Большая часть времени уходит на совещания с коллегами, написание проектных спецификаций и обновление существующих программных стеков. Создатели Codex ожидают, что система может «несколько снизить общую стоимость производства программного обеспечения», позволив разработчикам «быстрее писать хороший код». Но они сомневаются, что это отнимет рабочие места. Учёные предполагают, что автоматизация рутинной работы сделает разработку доступной более широкому кругу людей. Это также может создать новую специальность — prompt engineering, т.е. разработку текстовых подсказок, которые позволяют системам ИИ вроде Codex творить чудеса.
Другие эксперты не так оптимистичны. Как отмечает журналист Стивен Леви в Wired, Codex не украдёт работу у отдельных разработчиков. Но если это сделает каждого разработчика намного более эффективным, компании могут обойтись меньшим количеством специалистов. Если раньше для проекта требовалось десять разработчиков, при использовании Codex понадобится только восемь. Это приведёт к чистой потере двух рабочих мест.
Когда-нибудь это может стать реальностью, но этот день наступит нескоро. Учитывая что в 2020 году спрос на разработчиков во всем мире вырос на 25%, несмотря на пандемию, реальная угроза рабочим местам со стороны Codex кажется минимальной. По крайней мере, на данный момент. Если ведущие компании станут обходиться меньшим количеством разработчиков, это сделает их доступными для компаний среднего уровня или стартапов, что приведет к улучшению программного обеспечения на всех уровнях технологической экосистемы. В настоящее время стартапам часто сложно привлечь талантливых разработчиков. Если бы мировые Гуглы и Фейсбуки переманили меньшее количество ведущих разработчиков, новые инновационные компании могли бы получить больше талантливых специалистов.
Также важно помнить, что предположение основано на идее, что Codex или подобные ему системы могут писать код так же, как человек. На данный момент это невозможно. OpenAI признает, что при запуске код Codex содержит ошибки или просто не работает в 63% случаев. Написание совершенного кода в 37% случаев — большое дело для машины. Тот день, когда не-программист сможет сесть за Codex, написать спецификацию и запустить работающее программное обеспечение, ещё далеко.
Полностью заменить разработчика не получится (комментарий команды @GetMeIT_bot)
Если попытаться делать прогнозы, вероятно, в ближайшие 10 лет Codex не удастся заменить кодера, тестера, аналитика и даже менеджера. Сначала замещение коснётся более простых в автоматизации профессий — специалиста по документообороту, продавца, обслуживающего персонала. Стремление к замене human в отделе human recourses, хотя бы частично, логично: машины освободят людей для более квалифицированного и интеллектуального труда, стимулируя развитие талантов. Но что касается инженеров, позиций, где требуется новаторский, необычный подход к решению задач, — это не линейный путь, который легко повторить. Похожие noCode системы существуют уже не первый год. Когда-то про них говорили, что они заменят программистов. В итоге, где сейчас noCode? На хакатонах, в школах, в простых пет проектах. А что в компаниях? Как много из них находится в недостатке айти персонала? От 500 тысяч до 1 млн человек — это показатель по России. Если бы Codex мог закрыть этот гигантский пробел в короткие сроки, он бы спас рынок. Тем не менее, вопрос о реорганизации системы образования и подготовке огромного количества технических кадров обсуждается не только IT-элитой, но и на государственном уровне. Открываются корпоративные университеты, на это выделяются серьёзные бюджеты. Значит, мировое IT-сообщество всё ещё делает главную ставку на живого человека в своих прогнозах на ближайшие несколько лет.
Технологичные кентавры vs авиация
Вот почему многие в техническом сообществе считают Codex не столько генератором нового кода, сколько мощным инструментом помощи разработчикам. На вопрос, заменит ли Codex разработчиков ПО, футурист Дэниел Джеффрис ответил: «Нет шансов. Вероятно, пройдут годы, прежде чем у нас появится механизм, который сможет генерировать стабильно хороший стандартный код и продуманный новый код».
Джеффрис считает, что такие системы как Codex создают «кентавров, гибридов людей и ИИ, работающих вместе, чтобы делать что-то быстрее и лучше, чем каждый из них мог бы по отдельности». Кентавры уже доказали свою ценность в таких играх как шахматы, где пары из людей и машин неизменно превосходят как людей-гроссмейстеров, так и компьютеры без оператора. Кентавр из человека и искусcтвенного интеллекта мог бы работать быстрее, чем отдельный разработчик, зато был бы гораздо точнее и лучше приспособлен к реальным задачам, чем система вроде Codex в одиночку.
Популярный репозиторий кода Github произвел фурор, когда запустил Copilot — платформу поддержки кода на базе Codex. Copilot работает как автокоррекция на стероидах, предоставляя код для выполнения целых функций или автозаполнение повторяющегося кода по типу разработчика. Если кентавры действительно являются будущим искусственного интеллекта, то название системы вводит в заблуждение. В авиации второй пилот — это полностью квалифицированный пилот, который при необходимости может взять на себя управление самолетом от капитана. С другой стороны, автопилот может управлять самолетом автоматически в определённых условиях (например, при крейсерском движении по прямой и горизонтальной плоскости), но должен передать управление пилоту-человеку, когда ситуация становится рискованной (например, при посадке в плохую погоду).
Copilot GitHub действительно больше похож на автопилота, чем на настоящего второго пилота. Он может писать код самостоятельно, когда задачи простые и повторяющиеся, но как только они становятся сложными, требуется вмешательство человека. «Как разработчик, — говорит Github на своей странице о Copilot, — вы всегда главный». В конечном счете, это не критика Copilot или Codex. В авиации автопилоты — невероятно полезные системы.
На конкретном коммерческом рейсе самолет может находиться на автопилоте до 90% времени. Но что очень важно, за системой всегда следят пилоты-люди. Без их 10% участия самолеты терпели бы крушение гораздо чаще. Пилоты уже являются опытными, безопасными и эффективными кентаврами. Они могут служить примером для подобных кентавров в мире разработки ПО. Вероятно, отсюда и авиационная метафора GitHub и OpenAI.
Выводы
Если в ближайшие несколько лет Codex резко не улучшится, разработчикам бояться нечего. Однако учитывая потенциальный прирост эффективности, компаниям и отдельным разработчикам стоит начать изучать технологии кентавров уже сегодня. Если вы разработчик, освежите в памяти навыки prompt engineering и подайте заявку на доступ к Copilot и Codex. Получайте опыт заранее. Если вы возглавляете IT-компанию, начните думать о том, как использование кентавров может сделать ваши процессы разработки более эффективными. А если вы преподаете информатику или программирование, знакомьте студентов с системами ИИ и применением кентавров уже сегодня, чтобы они были готовы работать с такими платформами как Codex или Copilot, когда выйдут на рынок труда.
Сегодня Codex проигрывает, когда ему противостоит опытный разработчик. Однако по мере совершенствования подобных систем, люди, которые будут комбинировать свои навыки с продвинутым ИИ и превратятся в кентавров, могут стать мощной и непобедимой технологической силой.