Развитие через преодоление конфликтов

Сибирский Центр медиации

Развитие через преодоление конфликтов 

Нейронные сети вытесняют программистов

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

Я считаю, что мне повезло, что на экзаменах не было перфокарт.

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

Если вы работаете программистом, то Вы будете рады услышать, что они ошибаются. Нам еще долго будут нужны люди-программисты. В этой статье я объясню почему.

Нейронные сети и программирование

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

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

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

Затем есть самое захватывающее применение нейронных сетей в программировании: исследование, проводимое командой из Intel, MIT и Технологического института Джорджии. Эти исследователи разработали систему под названием Machine Inferred Code Similarity, или MISIM, которая, как они утверждают, способна извлекать «смысл» фрагмента кода так же, как системы НЛП могут читать абзац текста, созданного человеком.

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

Такие системы, как MISIM, обещают сделать процесс написания кода намного более эффективным, чем сейчас, но они все еще имеют значительные ограничения. Давайте посмотрим на некоторые.

Ограничения

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

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

Во-вторых, такие инструменты, как Aroma и языковая модель OpenAI GPT-3, могут создавать простые фрагменты кода даже из описаний на естественном языке, но только под руководством людей. Они работают очень хорошо, когда им нужно решить ограниченную, управляемую проблему, но (пока) они неспособны взглянуть на проектное задание и выработать лучший подход.

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

А как насчет творчества?

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

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

Автор Nahla Davies,

Добровольные пожертвования 

ПожертвованияСоюз "Сибирский Центр медиации"  ИНН 5406195342 КПП 860201001 Расч. счёт 40703810967170001448 в ЗАПАДНО-СИБИРСКОЕ ОТДЕЛЕНИЕ№8647 ПАО СБЕРБАНК в городе Тюмени.,  БИК 047102651 Корр. Счёт 30101810800000000651 Назн. платежа: добровольные пожертвования  НДС нет

 

Поиск