Ще вземе ли изкуственият интелект хляба на програмистите?

авг. 6, 2021 | Технологии

Ще вземе ли изкуственият интелект хляба на програмистите?

6 август 2021 | Технологии

Да си програмист е много куул, особено в България. Търсенето не спира да лети нагоре, тенденциите са да изкарваш още и още пари (+20% през 2021-а, ако вярваме на това проучване), докато редовите лекари, учители… всички останали представители на, нека не си кривим душата, по-важни за обществото професии, едва свързват двата края.

Логично, после, ако си представител на този бранш, който има проблеми с егото, бързо започваш да се възприемаш като последна инстанция, crème de la crème. И онлайн ставаш стихия с вечно тежащо мнение.

Междувременно обаче, с възхода на технологиите и изкуствения интелект, все по-често се повтаря прогнозата, че скоро много професии ще изчезнат, заменени от машините. Че живеем в период, подобен на началото на техническия прогрес, когато представители на цели поприща ще останат без поминък. Както сполучливо засегна темата Светлин Наков, скоро най-вероятно няма да има дори шофьори.

Ами програмистите? Този страх съвсем не е преувеличен, нито е нов. Проучване още от 2016 г. на „Евънс дейта корпорейшън“ сред 550 програмисти показва, че най-големият им страх в кариерен план е именно този – да не бъдат заменени от изкуствения интелект.

Като по програма

Може ли изкуственият интелект да ни остави на улицата? И ако да, време ли е вече ние, хората, които си изкарваме хляба с кодене, да започваме курсове за зидаро-мазачи и плочкаджии, където дефицитът става все по-голям, а изкуственият интелект даже и не прохожда?

Е, това, разбира се, е шега. Дори да се стигне до създаването на алгоритми, които да пишат код, по всичко личи, че няма да е прекалено скоро моментът, когато те ще могат да го правят автономно. Сами да вършат работата на днешните, поне според мен, поразглезени от обществената си позиция програмисти.

 

изкуствен интелект програмиране

Снимка: Tara Winstead, Pexels

 

Бодри програмисти

Но пък… такъв тип проекти могат вместо това, да ни помагат в работата – да отхвърлят вместо нас част от писането на повтаряем код, т.нар. boilerplate, за който не само си нямаме българска дума, но дори ми е странно да го напиша на кирилица.

Много погледи към темата привлече преди месец проектът GitHub Copilot. Дойде и за да подгрее старите страхове на програмистите, че ще останат без работа.

Платформата е създадена от най-популярната мрежа за споделяне на код. Нещо като програмистки фейсбук с повече качества на програмистки туитър, ако и у нас тази мрежа имаше някаква тежест. Copilot говори почти всички популярни компютърни езици и се твърди, че с помощта на заложения вътре изкуствен интелект може да спестява много работа на програмистите. Авторите определят проекта си като нещо много по-мощно от познатите туулчета за автоматично завършване на думичките код, които пък, пак непреводимо на български, се наричат autocomplete.

Както ми написа един колега по темата, пращайки линк към Copilot: „Днес изглежда яко. Утре си уволнен“.

Ще се научат ли наистина компютрите сами да пишат програми?

 

Програмата програмист

1. -><[>-<+++]->>++++[++++++++++++++++++<+]>.---.+-+++++++..+++.+>+<><+[+><><>+++++++++.+-<

2. -++++[++[.--------.+++.------],.-----]]

Hello, world!. „Здравей, свят!“. Добре познатото най-базово изреченийце, което съставлява една компютърна програма. С него обичайно започва всеки, който учи нов език за програмиране. В случая е на един езотеричен (така се наричат нишовите и по-малко познати езици за програмиране) език на име… и това няма да го превеждаме, въпреки че можем: Brainfuck.

Езикът е особено интересен с това, че има точно 8 команди, а всяка от тях „се събира“ в един байт. И с това всичко в него приключва. Въпреки това изпълнява всички изисквания за цялостност по Тюринг. (Които велики програмисти още не са ни изоставили с гарнитура – някое кратко, но сочно коментарче, ще го направят сега.) Това ще рече, съвсем опростено, че с него може да се направи на практика всичко, на което са способни днешните компютри.

Е, невероятната комбинация от знаци по-горе може да я напише дори маймунка, така че е трудно да си представим, че е на компютърен език.

Но пък именно в това е и едно от интересните ѝ приложения, което можем да намерим тук, още от добрата стара 2013-а година.

 

програмист

Снимка: cottonbro, Pexels

 

Code monkeys

Основната идея накратко: ако дадете на достатъчно, ама наистина достатъчно, голям брой маймуни по една пишеща машина и ги накарате да блъскат достатъчно дълго по клавишите, рано или късно все някоя от тях ще напише същото произведение, което би създал и Шекспир.

Кори Бекер дълго избира подходящ език, на който да експериментира, най-близо е Assembly, но дори той се оказва прекалено богат на синтаксис. Докато в Brainfuck всичко е толкова просто и семпло, че просто няма как да бъде повече. Спира се на генетични алгоритми, които групират отделните единици данни, като изпробват бързо огромен брой варианти.

И така, невронната мрежа на Бекер започва да генерира комбинации от команди, докато втората ѝ част, която проверява резултатите, потвърди, че е на прав път. Първата думичка, зададена като цел – “Hi“, отнема 5700 генерирани комбинации, на програмата е нужна само 1 минута. За да се стигне до традиционното стартово изречение по-горе, са необходими 580 900 комбинации, което вече отнема 2 часа.

По-нататък, през 2015-а Бекер показва и как програмата може да се научи да генерира функции, а не просто резултати – основополагащо умение, стане ли дума за програмирането.

(Целия код на начинанието можете да намерите в GitHub.)

 

Аз те създадох… ти ще ме унищожиш

Да бе, 2 часа за най-най-елементарната стартова програмка, която дори и най-скараният с компютрите непрограмист би могъл да създаде за секунди, ако му се обяснят най-простите правила?!

Да, обаче показва, че все пак генерирането на код е възможно. Разбира се, нещата стават доста по-драматични, когато става дума за реални програми. Те са сложни, комплексни, не се побират в главата дори на работещия върху тях опитен специалист.

Програмирането е такава професия, в която основната работа се състои в разбиването на проблема на подпроблеми. А те се решават едва тогава, когато са сведени до възможно най-опростена логика. SOLID е акроним за най-базовите правила за качествен код, с които започва (или поне би трябвало) обучението на всеки начинаещ програмист. И още първата му буква – ”S”, идва за “Single Responsibility“ – всеки компонент, който прави повече от едно нещо, трябва да бъде разделян, докато се стигне до такива, които са отговорни само за една задача.

 

План програма

И така, след като компютърът все пак може да изпълнява тези прости задачи, значи може да прави всичко? Като се имат предвид и предимствата му пред обичайния програмист – времето му е доста по-евтино, не мрънка за карта „Мултиспорт“ и… може едновременно да върши доста задачи.

Да, ще стават грешки, точно както е и в момента – например, базираните на изкуствен интелект алгоритми на фейсбук припознаха публикацията на Дигитални истории за навлизането на алгоритмите в политиката за агитация за кого да гласуваме на предстоящите избори.

И все пак, постепенно в доста направления машинното самообучение започва да работи по-добре и по-добре – отново пример с фейсбук, само че този път със системите за лицево разпознаване. Почти без грешка те могат да предложат кой от приятелите ви е на кадъра, дори да не се вижда добре, дори с времето чертите му да са се променили.

 

програмиране

Снимка: Pexels

 

От дума на дума, код

Неотдавна ви разказахме Дигиталната история за алгоритъма GPT-3. Той неслучайно се смята за изключително важна стъпка в развитието на изкуствения интелект, защото обработва огромен обем информация и на нейна база предлага продължението на нещо, което му е зададено.

GTP-3 е създаден със съвсем различна цел – да обработва текстове, да стои зад програми, които имитират разговор с човек, да помага в машинния превод.

Но пък дава поле и за какви ли не експерименти. Програмистът Шариф Шамеем му дава задача в уеб дизайна. Моли го да създаде „бутон на уеб страница с цвят на диня“… и като отговор идват HTML и CSS, които успешно покриват критериите. Това сигурно е доста обнадеждаващо за уеб програмистите, на които им е писнало да подпипват тези по-рутинни части от продукта. Неслучайно най-лесният начин да си изпросите боя (или грубите шегички) в компанията на софтуерни хора, е да им кажете, че HTML е език за програмиране.

После Шамеем продължава със задачи от същинското програмиране, в които отново GPT-3 дава ако не блестящи и точни решения, то поне резултати, които доста се доближават до такива. И биха могли да заработят с доста по-малко усилия от страна на програмиста, отколкото, ако започне всичко отначало.

 

Програмистче, не се притеснявай ти!

Е, добре, може би вече е очевидно, че алгоритмите могат да ни помагат с малки парчета код и да ни улесняват. Но реално ли е един ден да ни изхвърлят зад борда?

Известният футуролог Герд Леонард прогнозира, че професията на програмистите ще изчезне само след 10 години, погълната от изкуствения интелект. Нещо повече, вече е изгубено време да учим програмиране. Изведнъж много милиони специалисти по цял свят ще останат на улицата. (Е, явно г-н Леонард не се е включвал скоро в българските програмистки форуми, защото у нас почти всеки се е засилил да става софтуерен инженер.) Много по-разумно според него е да се насочим към хуманитарните знания, които никога няма да бъдат погълнати от машините.

 

Лале ли си, робот ли, С?

Ето че е време да се върнем на провокиралия толкова много коментари по темата GitHub Copilot. GitHub е нещо като онлайн Мека на програмирането. Огромно хранилище за код, ползвано от страхотен брой софтуерни компании. През 2018 г. беше купен от „Майкрософт“ и именно инициатива на новите собственици е копилотът.

„Трениран с милиарди редове код, той ви пести огромно количество време, позволявайки ви да останете концентрирани над важните неща“, рекламират го създателите. Вече е достъпен за използване и като разширение за популярната среда за програмиране Visual Studio Code.

Името му идва от следната идея – ние пилотираме, той просто помага. Удря едно рамо там, където ни е нужно.

Или пък е троянският кон, който ще ни изхвърли от тази хубава професия?

 

програмиране

Снимка: Pexels

 

Кодекс на честта

Твърди се, че Copilot разбира значително повече контекст от всички досегашни софтуерни помощници. Зад него се крие на практика същият проект, който прави възможен и споменатия GPT-3 – OpenAI.

Неправителствената организация е създадена през 2015-а от Елън Мъск и съмишленици, които даряват общо над милиард долара. Целта ѝ е да разработва изкуствен интелект, който да диктува бъдещето в тази област. Влизайки в пряка конкуренция с DeepMind на Google (аргументите на Мъск защо е важна тази битка ще намерите тук).

Конкретно се използва системата за изкуствен интелект OpenAI Codex. Тя е тренирана с огромни обеми от свободнодостъпен код и човешки езици.

Нещо повече. Създателите твърдят, че е достатъчно да създадете конвенция, според която копилотът ще пише кода вместо вас. После просто да оставяте коментари какво искате да се постигне, а асистентът сам да пише кода, с който това се случва.

 

Код е гот

Копилотът е полезен в последната стъпка от програмирането, както я представихме преди малко. А именно – ако сте разделили кода си на малки функции с разбираеми имена, добре именувани входни и изходни параметри и точни коментари. После идва копилотът и запълва празното място.

Може би защото не съм чак толкова отдавна в тази сфера, дори само по това описание ми звучи като да отнема доста голяма част от чистото удоволствие на програмирането. Със сигурност обаче повечето колеги биха се зарадвали на такава отмяна.

За момента използва контекста само от файла, в който е отворен, а не целия проект, но идеята е това съвсем скоро да се промени.

 

Код-машина

Мотивиращи и доста амбициозни обещания, дотук добре. А как изглеждат нещата в практиката след първите опити на програмистите да поканят копилота в самолета си?

Вътрешните проучвания с проект на Python показали, че копилотът дава предложение, което веднага е готово за използване, в 43% от случаите, а процентът нараства до 57, ако му позволим до 10 опита. Много или малко е това, при това при проверка от самите му създатели, оставяме ви да прецените сами.

Хари Едуардс от OpenAI казва, че копилотът го е изненадал с прецизността, с която е разбирал коментарите и е генерирал точни предложения. А после винаги е давал 10 варианта, от които да се избере най-добрият. Нормално, всички си харесваме своите деца, с все кусурите им.

 

програмист

Снимка: cottonbro, Pexels

 

На програмиста му е дебел вратът, защото…

Не всички са толкова ентусиазирани като Хари (аз също, може би си личи). Тук например са събрани доста добри аргументи защо Copilot сам по себе си няма как да промени програмирането. На първо място, основната част от времето си софтуерните инженери използват за решаването на по-генералните проблеми, разбиването на подпроблеми и доста по-малко се губи именно във финалните функции. Освен това, много по-често се налага да четем, разбираме и „подпипваме“ свой или чужд код, отколкото да създаваме редове с изцяло ново съдържание.

Доста хора ще го потвърдят – по-лесно е сам да седнеш и да напишеш една функция, отколкото да вникнеш в начина, по който някой друг я е направил. След като, дори според създателите си, Copilot се справя успешно в по-малко от половината случаи от първи опит, може да се каже, че ще губим повече време в четене, осмисляне и поправяне на предложенията му, отколкото ако просто хванем и си напишем решенията.

Дебъгването, грубо казано, е процес на проследяване на връзките в кода, за да се открие къде се крие даден проблем. При изкуствено генерирания код, особено ако той приеме наистина големи размери, тази дейност също ще стане още по-голям кошмар.

 

Алго… ритам!

Не е тайна, че голяма част от програмирането е и търсене на информация онлайн. Да, не са случайни шегичките, че ако StackOverflow, най-голямата мрежа с въпроси и отговори за програмиране, спре да работи, всички ще останем без работа.

Несъмнено изкуственият интелект може да ни е доста голям помощник в тази посока. Ако се замислим, ще стане ясно, че той даже вече е такъв. Самият факт, че гугъл доста бързо намира отговора на почти всеки проблем, на който сме се натресли в програмирането, показва, че алгоритмите могат да са ни от полза тук.

Но явно не достатъчно, поне за момента, че да направят безпредметна частта с ръчното търсене…

(Или с псуването. Допреди да се захвана професионално с програмирането, си мислех че шофирането в центъра на София е действието, което най-мощно провокира вътрешната ни нужда да каканижем пъстро мнението си за света с разнообразие, на което би завидял и герой на Кустурица.)

Ами сигурността? Един ден не може ли подобен софтуер да се използва, за да „вклини“ в кода ни уязмивости? Независимо дали нарочно, или случайно, просто защото алгоритъмът е избрал работещо решение, което да ни предложи. Но не и сигурно…

 

изкуствен интелект програмиране

Снимка: ThisIsEngineering, Pexels

 

Пенчо, бре, коди!

Има и други играчи с подобни претенции, например проектите на стартъпите Enzime и Debuild. И двата са обещаващи, но все още не са представени като масово достъпни решения.

Очевидно става дума за област, която тепърва извървява първите си плахи стъпки, но дали и колко бързо ще напредва? Чакат я доста предизвикателства.

Така, поне за момента, работните ни места изглеждат сигурни, независимо от заплахите на г-н Ленард. След като флагманът на най-напредналите системи за изкуствен интелект едва-едва прохожда в най-ниското ниво на програмирането, изглежда, ако не невъзможен, то прекалено далечен моментът, когато софтуерът ще може да взема комплексни решения, да подготвя завършени проекти, да решава архитектурни въпроси.

 

Код-кудяк

А дали наистина това е възможно, времето ще покаже.

Аз лично му стискам палци.

Не знам за вас, но за мен ще е облекчение, ако трябва да водя спор с изкуствен интелект кодер. Защото, как да си го кажем, програмистите не са най-благите събеседници, ако се опиташ да отвориш по-провокативна тема. Да не говорим пък, ако допуснеш грешка в поста си. Или си на различно от тяхното Абсолютно мнение.

Все се надявам алгоритмите да са по-толерантни и комуникативни. Иначе, ако комуникират в духа на дискусиите например в тази група, тежко ни и горко. По-добре да не идват…

<a href="https://karamanev.me/author/georgik" target="_self">Георги Караманев</a>

Георги Караманев

Програмист, журналист на свободна практика и писател. Още за мен – четете тук.

Най-нови публикации:

София отвори вратата между поколенията

София отвори вратата между поколенията

„Почти всяко дете подсъзнателно възприема стаята си като най-безопасното място. Там то изразява най-чисто своите съкровени мисли и надежди“, казва София Симеонова. Младата фотографка представи...

повече информация
„Проблемът е, че станахме богоравни в главите си“

„Проблемът е, че станахме богоравни в главите си“

„Изведнъж се видя колко много всъщност са се раздалечили хората.“ Защо емпатията падна жертва на улавянето ни в социалните мрежи? Как да си я върнем? Защо егоизмът и стремежът към самодостатъчност...

повече информация
Лудити, те да са живи

Лудити, те да са живи

Ако някой грабне компютъра ви, удари го с все сила в Земята и го разполови… сигурно ще си помислите, че е луд! Всъщност може даже да се каже, че е повече, последовател на Луд, с главна буква....

повече информация

Още публикации по темата:

От рубриката:

Този сайт използва бисквитки… Как да му отговорим?

Този сайт използва бисквитки… Как да му отговорим?

Въпросът в заглавието виждаме всеки ден. Но как да отговорим? Кои бисквитки да изберем и кои – не? Има ли значение решението ни и можем ли да го променим? Какви са тези прословути кукита?
GDPR. Всички сме го чували, вярвам, че това ще да е съкращение от латинска попръжня, а ако не е, си струва да го приемат в латинския при следващата му нова версия. Докато всеки миниатюрен сайт е принуден от законодателството да спазва буква по буква прословутия регламент, онези страници на гигантски компании, в които прекарваме часове всеки ден, ни го показват веднъж и дотам.
Как стигнахме дотук? Струва ли си да четем въпросите, които ни задава всеки сайт за бисквитките? Има ли по-смислени решения в тази посока?

повече информация
GAN. ИИ започна да си измисля… хора

GAN. ИИ започна да си измисля… хора

Вижте добре тези лица. Няма как да срещнете хората на живо, защото… те не съществуват! Образите са „измислени“ от алгоритъм, наречен GAN.
Благодарение на него изкуственият интелект е способен да създава нови изображения на базата на подадени данни.
Две невронни мрежи влизат в състезание, в добрия стар сюжет на доброто и лошото ченге. Първата опитва да наподоби търсената цел, а втората преценява кога се е справила.

повече информация
Оптимус за оптимисти. Какво умее роботът на Мъск?

Оптимус за оптимисти. Какво умее роботът на Мъск?

„Съвсем скоро физическата работа ще е само въпрос на избор“, убеден е Мъск. През септември се очаква да бъде представена първата версия на Оптимус – робота, който според неговия създател има потенциала да се превърне в по-голям бизнес дори от „Тесла“. Обещанията са до 2 години той да навлезе масово и да „освободи“ хората от редица задължения. Какво още си струва да знаем за Оптимус?

повече информация

Най-новите:

София отвори вратата между поколенията

София отвори вратата между поколенията

18-годишната София Симеонова влиза с фотоапарата си в домовете на свои връстници, за да покаже най-личното място – собствената им стая. Единственото условие е тя да не е специално подредена за снимките, а да изглежда така, както всеки ден.
Почти всяко дете подсъзнателно възприема стаята си като най-безопасното място. Там то изразява най-чисто своите съкровени мисли и надежди“, казва София. С изложбата си „Стаята в теб“ тя буквално отваря вратата между поколенията.
Как ли изглежда най-личното пространство на младите хора днес?

повече информация
„Проблемът е, че станахме богоравни в главите си“

„Проблемът е, че станахме богоравни в главите си“

„Изведнъж се видя колко много всъщност са се раздалечили хората.“
Защо емпатията падна жертва на улавянето ни в социалните мрежи? Как да си я върнем? Защо егоизмът и стремежът към самодостатъчност се превърнаха в основната пречка пред това да сме щастливи?
Ани Владимирова e психолог с дълъг и пъстър опит, с винаги интересна гледна точка. Позната от многобройни телевизионни проекти, тя е и създател на първия у нас сайт за електронна терапия, още през 2003-а.
Срещаме се, за да поговорим за големите предизвикателства пред „малкия“ човек. За неусетните промени, които ни донесоха технологиите. За това, че те ни накараха да се почувстваме богоравни, макар да сме все същите крехки и раними същества. За инстинктите, които един ден ще ни накарат отново да ценим информацията.

повече информация
Лудити, те да са живи

Лудити, те да са живи

„Лудитите“ е името на британско течение, което преди два века се изправя срещу машините. Работниците търсят правата си, които падат жертва на автоматизацията и предизвикват такъв хаос, че срещу тях се налага да се изправят повече британски войници, отколкото срещу Наполеоновата армия.
Напредъкът на технологиите често е плашещ. Днес „лудити“ в западния свят наричат хората, които се притесняват от бъдещето, което ни носят уж неограничените възможности, дошли с компютрите. В този смисъл, донякъде всички сме, или поне е добре да бъдем малко или повече лудити.
Как изглежда историята на битката на скептиците срещу технологиите и дали тя винаги е била обречена?
Какво се променя, ако я погледнем от гледната точка на днешното време и въпросите, които то поставя?

повече информация
„Егоизмът е враг на предприемача“

„Егоизмът е враг на предприемача“

1 000 000 000 са посещенията всеки месец на сайтовете, за които се грижат днешният ни гост и неговият екип. Марио Пешев е впечатляваща личност с историята, с успехите, а най-вече – със светогледа си.
WordPress направи така, че днес всеки да може да има своето достойно място в мрежата. А Марио е автор на „парчета“ от кода, които използва днес всеки един от стотиците милиони сайтове, базирани на платформата. Неговата компания DevriX е сред 20-те най-търсени WordPress агенции в света.
Какво е да имаш свое „парченце код“ в WordPress? Какво се променя, когато от ентусиаст изведнъж се оказва начело на 50 души в свое начинание? Как изглежда бъдещето на дигиталния свят според Марио? А… дали и след десетилетие той ще ползва като запазена марка брадата си?

повече информация
WordPress. Мат, който хвърли интернет в джаза

WordPress. Мат, който хвърли интернет в джаза

2003-а, 19-годишният Мат Муленвег се вижда принуден да повика неволята. Той ползва безплатна платформа за блогове и има нужда от малко помощ, но няма кой да му я окаже. В резултат съвсем не на шега на 1 април се ражда WordPress, платформата с отворен код, благодарение на която всеки може с минимум усилия да си направи симпатичен сайт.
Днес на плещите на WordPress се крепят… 1/3 от интернет страниците по света!
Но какво общо има тук джазът? Тази история отпреди две десетилетия е колкото смислена, толкова и пълна с пъстри детайли.

повече информация
„Проблемът е в хората, не в правото“

„Проблемът е в хората, не в правото“

Защитени ли са наистина данните ни онлайн? Какви правила да спазваме, за да не бъдем изненадани неприятно? Как да сме сигурни, че не нарушаваме нечии авторски права и какво да правим, ако някой нарушава нашите? А чии ще са правата за „произведенията“ на изкуствения интелект?
И в онлайн света правото има огромно място. Рядко се сещаме за него, а сферата е изключително важна.
Христина Богиа е доктор по право, специализирала е в областта на всички тези важни теми, които технологиите отварят в юридическата наука. Преди няколко години, разочарована от системата, решава да смени попрището си и навлиза в софтуерния бранш.
Ще потърсим заедно отговора на всички тези въпроси. Ще се насочим към пресечните точки на технологиите, правото и правата на всеки от нас. Ще обсъдим много полезни ежедневни съвети, които могат да са полезни на всеки потребител. И, не на последно място, ще се докоснем до гледната точка на един смислен млад човек с особен поглед към толкова актуалната винаги у нас тема за неработещата съдебна система.

повече информация
Share This