Лого vc.ru

Будущее разработчиков: как технологии искусственного интеллекта изменят профессию

Будущее разработчиков: как технологии искусственного интеллекта изменят профессию

Директор по науке и технологиям шопинг-мессенджера «Алоль» Роман Душкин написал для vc.ru колонку о том, что ждёт профессию разработчика с распространением технологий искусственного интеллекта и как программист может остаться востребованным на рынке.

Поделиться

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

Код, который пишет код

Три года назад разработчик Кори Бекер опубликовал подробный материал о своём подходе, при помощи которого можно заставить эволюционировать код на языке Brainfuck. Этот подход на деле демонстрирует принципы «генетического программирования».

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

Простыми словами: вы ставите программе задачу написать другую программу, которая выведет на экран слово "Hello!" — и она это делает. Технически это означает воплощение решения при помощи искусственного интеллекта неформализованных задач. Похожий подход используется в персональном помощнике Viv, над которым работают создатели голосового ассистента Siri.

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

Язык программирования Brainfuck является Тьюринг-полным, а это значит, что на нём можно написать программу, которая вычислит любую теоретически вычислимую функцию. Это язык общего назначения, и подобным методом можно «вырастить» программу, которая, скажем, будет представлять собой операционную систему, по сложности не уступающую Windows, Unix или macOS.

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

От программирования к управлению программами

В феврале в компании Google сменили Амита Сингхала, главного специалиста по поисковым алгоритмам, на Джона Джинандреа, ставшего руководителем направления технологий искусственного интеллекта. Эта перестановка иллюстрирует переход от разработки и написания алгоритмов к управлению нейросетями глубокого обучения.

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

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

Сегодня бизнес, условно говоря, держит одного высокоуровневого системного архитектора, который описывает задачи и передаёт их десятке кодеров, чтобы они перевели задачи на синтаксис заданного языка. Получается парадоксальная ситуация: при наличии языков высокого уровня, чем сложнее ставятся задачи, тем проще нанять кучу кодеров в Бангалоре для их решения. Но в ближайшие 7-10 лет такой подход будет вытеснен — функции «переводчика» возьмёт на себя ИИ.

«Индустриализация» в программировании

Приход методов искусственного интеллекта в профессии — это не апокалипсис в духе фильмов про Терминатора, это про деньги. Прогресс и растущая экономика требуют разделения труда и появления узких специалистов. При подъёме тренда спрос на специалистов растёт, что мы и наблюдаем сегодня.

Чем больше перенасыщается рынок и чем больше специалистов вовлекается в «производство», тем больше возникает потребность снижать затраты, в том числе и путём сокращения расходов на персонал.

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

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

Деньги ускоряют технологии

Разработки в области искусственного интеллекта сегодня смещаются из научной области в бизнес, поэтому развитие технологий будет ускорятся. Одна из приоритетных задач в индустрии — вывести анализ естественных языковых запросов на новый уровень. За последние 20 лет удалось снизить процент неправильно распознаваемых слов с 43% до 6–7%. Сегодня нужно сосредоточиться на обучении ИИ тому, как адекватно реагировать на запросы в случаях языковой неопределённости.

В проекты, связанные с ИИ и анализом естественного языка, инвестируют гиганты индустрии: Microsoft, Google, Amazon, IBM и многие другие. Прогнозируется, что к 2025 году рынок продуктов на основе методов искусственного интеллекта вырастет в шесть раз и составит примерно $36 млрд. За 10 лет денежные вливания и требования рынка заставят ИИ, который сегодня пишет примитивный код, «закрыть» более сложные участки работы: поиск и исправление ошибок, анализ и оптимизацию алгоритмов и так далее.

Вместо заключения

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

  • Изучать фундаментальную математику (линейную алгебру, формальную логику, теорию автоматов и другие разделы дискретной математики) как методологию символьных вычислений. Эти знания помогут лучше понять, как работают искусственный интеллект.
  • Изучать такие прикладные области знаний, как лингвистика (необходимо понимать, как устроено общение на естественном языке), психология (это поможет разобраться в том, как устроено мышление) и биохимия (чтобы изучить, какое «железо» лежит в основе сознания и процессов мышления и общения).
  • Изучать современные достижения, методы и техники, связанные с искусственным интеллектом: искусственные нейронные сети, машинное обучение, обработка естественного языка, символьные вычисления и др.
  • Решать практические задачи, связанные с ИИ, участвовать в хакатонах, общаться с другими разработчиками. Могу рекомендовать наших друзей AI Сommunity, которые активно создают тусовку ИИ-специалистов в России.

Присылайте колонки, соответствующие требованиям редакции, на secret@vc.ru

Статьи по теме
5 профессий, которые заменят чат-боты и искусственный интеллект в ближайшие 5-10 лет27 августа 2016, 12:14
Популярные статьи
Показать еще
Комментарии отсортированы
как обычно по времени по популярности

Напишите еще что изучать школьнику, с 5 класса (без шуток). А то начнешь учить детей, а через пять лет это роботы будут кодить... Хотя понятно что знать азы надо... Чтоб этих роботов гонять...

Чтобы "автонаписание кода" хотя бы теоретически было возможным, задача должна быть математически точно формализована, а это или просто невозможно, или сложнее, чем написать сам код.

Ничего полностью детерминировать во Вселенной невозможно, поэтому только стохастические модели, только хардкор.

0

Нет, это неверно.

0

Автор статьи где-то углядел "растущую экономику". Я-то думал, что мировая экономика последние лет 20 растет только на бумаге и в биржевых "пузырях", так как предел замкнутой системы (планета Земля) уже достигнут, кризис перепроизводства, опять же, бушует уже с десяток лет. А тут экономика растет оказывается, чудеса.

сказки - сказочки я посмотрю как он сам себя напишет в масштабных проектах.

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

Генетические алгоритмы это полный перебор с полиномиальной сложностью порядка О(n^3). Улучшается фитнес-функция до тех пор, пока код не будем выдавать нужный результат. На каждом этапе часть кода мутируется (несколько процентов) и новые участки генерируются используя своих предшевственников. Мутация в данном случае это приобретение особенностей не характерных для своих родителей. Поэтому чтобы таким алгоритмом написать простую программу, которая бы на вход получала два числа, а на выходе результат, нужно очень много времени, прежде чем этот код вообще скомпилируется или интерпретируется. Забудьте об этой романтике будущего.

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

Я хоть и программист, но уверен, что когда-нибудь машина сможет заменить программистов.
По крайней мере, джуниоров уж точно в ближайшие лет пять.
Думаю, что и до миддла сможет дотянуть через какое-то время.
Я не понимаю, почему так обожествляют программистов. Ведь среди нас есть куча кодеров, которые машинально пишут код или даже просто копипастят из StackOverflow с минимальными изменениями.
Компьютер уже научился обыгрывать человека в сложнейшую непросчитываемую методами шахмат игру Го, где считалось, что для выигрыша необходимо обладать человеческой интуицией.
Машина уже пишет музыку и рисует картины, которые не может нарисовать герой Уилла Смита из фильма "Я, робот".
Машина уже пишет книги, которые становятся бестселлерами в Америке и Японии...
Так почему бы и программу ей не научиться писать?
Я понимаю, вам страшно и вы этого не хотите. Но реальность такова.
Вот первые попытки машины писать код на основе изучения ядра Linux
karpathy.github.io/2015/05/21/rnn-effectiveness/

Да, это пока имитация программирования. Но это начало.

0

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

0

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

0

Машина и это сможет зделаиь. Здесь нет никакой сокровенной магии

0

Слова дилетанта. С какими конкретными бизнес процессами вы лично сталкивались?

0

А что за книги-бестселлеры, написанные ИИ?

0

Дочитал до слова "BrainFuck" и стало очевидно, что это полная шляпа, из разряда космических кораблей, которы бороздят Большой театр.

Не хочу огорчать автора, но программисты уже давно не пишут код, а только инструкции, а в машинный код это переводит компьютер. По большому счету, то что вы описываете - еще более высокоуровневый язык программирования, на котором что? Правильно! Нужно будет уметь программировать. И опять же, если появятся баги, кто их будет искать и исправлять, а это 70% времени занимает.

И как это вообще будет выглядеть по вашему? "Напиши как мне компьютер социальную сеть, как в контакте, и чтобы в ней можно было продавать и покупать! Платежную систему прикрути. " И он такой шух-шух и гонгнал, пишет такой, а где сложные моменты, дописывает сам себя и в себя рендерит.

Зачем так сложно, будет так: "Напиши как мне компьютер программу чтобы я стал неприлично богат"

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

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

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

Программирование ещё не скоро постигнет эта участь. Ручное тестирование для начала передать бы ИИ, а там посмотрим.

Я уважаю мнение Романа Душкина, но мне кажется, что нам еще до полноценного синтеза человеческого текста далеко, не говоря уже о написании алгоритмики.

В базе StackOverflow и на гите огромное количество поставленных задач и решений. Решение большинства типизированных задач можно автоматизировать. Уровень языка станет выше. Узкие инженерные задачи все также будут решать специалисты. Кодеры будут вытеснены технологиями, инженеры и архитекторы никуда не денутся, просто будет новый инструмент, который повысит производительность труда и позволить меньшему количеству народа решать более сложные задачи. Это происходит постоянно. То, что 50 лет назад решала целая компания высококлассных инженеров, сегодня решает один студент младших курсов. Ничего нового или страшного. Раньше дрова в котел специальный человек подкидывал, чтобы машина ехала, было лучше?

Алексей, об этом Роман и пишет

0

Прошу прощения, но Роман пишет о другом. О том, что кодеров вытеснит ИИ. Это в корне ошибочное представление.Кодеры никуда не денутся. Они просто станут писать на более высокоурвневом языке. Подобная эволюция непрерывно происходит уже десятки лет. Так что статья в духе КО. Выглядит будто Романа попросили написать "что-нибудь о будущем программирования". Он и написал "что-нибудь" )

0

То, что можно автоматизировать — автоматизировано в разнообразных библиотеках. Для этого не нужен искусственный интеллект.

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

0

Ага а фантасты еще в 60-х писали что человечество колонизирует солнечную систему в 2000-х.

Так вот кто нам Half Life 3 запилит ) Заменят Гейба и +100500 программистов на одного специалиста по нейронкам, как сделали в гугле и современный 3D движок готов... ue4 плачет в сторонке.

Ну а если серьёзно, то как нейросетка сможет бизнес логику писать? ЯП по сути наиболее оптимален для этой работы. Я не могу придумать, что может быть выше уровнем или параллельным решением для описания бизнес логики?

И именно это работа наиболее популярна среди программистов.

Все, что здесь можно сделать это усовершенствовать фреймворки. Чтобы можно было на ЯП записать структуры и логику взаимодействия между ними. А всё остальное сгенерит фреймворк. Нейросетки здесь вообще ни каким местом не вяжутся. Но даже этого до сих пор нет.

Хочется уже увидеть сайт ucoz-mobile-apps.ru, давайте поскорее!!!!

0

А еще, этот www.primaryobjects.com/kory-becker/ теперь стала женщина. Видимо, не только программа мутировала

Возможность комментирования статьи доступна только в первые две недели после публикации.

Сейчас обсуждают
Константин Чегемов

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

✅виртуальные помощники.
✅переводчик на нейросетях.

«Через 50 лет стран не будет — останутся только города»: основные тезисы лекции Кьелла Нордстрема о будущем
0
Τамара Ρодионова

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

Креативный директор «Афиши» сообщил о закрытии журнала
0
Artem Prokopenko

Хорошая история, только почему bankir, с доменом com должно быть banker) однако не понятно, в чем ценность для работников. Проф сообществ полно, но они микроскопические

Основатель «Банки.ру» Филипп Ильин-Адаев объявил о запуске социальной сети для банкиров — Bankir.com
0
Михаил Коренев

И что? А в офис к работодателю можно ходить, когда настроение хорошее?) и уходить, когда вдруг захотелось?

Штаб-квартира: Гамбургский офис сервиса для отзывов Yelp
0
Georgy Bukov

P.s. Не только военных, ведь там завязаны и химическая промышленность, машиностроение и т.д. И частенько компании с государством не разлей вода.

«Через 50 лет стран не будет — останутся только города»: основные тезисы лекции Кьелла Нордстрема о будущем
0
Показать еще