„Единствената голяма надежда, която имам за човечеството, е че няма да загубим любопитството и креативността си. И смятам, че загубата е по-възможно да се случи поради забавления, които ни правят безлични и незаинтересовани. А не заради това, че някой изкуствен интелект ще ни е взел работата…“
Струва ли си днес да започнем да учим програмиране или науките, свързани с данните? Не е ли обречено бъдещето на софтуерните инженери? Всеки ли би могъл да стане специалист в тези област? Защо понякога университетското образование се превръща в пречка?
Йордан Даракчиев има много какво да каже по темата, за 8-и път той започва да преподава първия у нас едногодишен модул, в който човек може да получи достатъчно знания, за да започне работа в областта на науката за данните и изкуствения интелект.
При предишното му гостуване поговорихме за дефинициите и възможностите на машинното самообучение, невронните мрежи, изкуствения интелект. За това как почти случайно астрофизикът по образование започва да преподава на хора, които после стават част от ИИ-екипите във фирми като „Тесла“ и „Мета“, в обещаващи стартъпи.
Сега ще надникнем към предизвикателствата, пред които ни изправят генеративните алгоритми. Ще си говорим за разработването на софтуер и системи с изкуствен интелект като професионално предизвикателство, вълнуваща област… и възможност, която си струва повече хора да опитат.
– Какви са според теб последствията от това, че все по-трудно различаваме създадено от генерирано? Вече го имаме и в компютърния код дори…
– Преди беше фотошоп, правеше го човек с помощта на инструмент. Преди фотошоп беше човекът в тъмната стаичка, който си прави колажи. Преди това е било рисуване…
Ние, хората, сме безкрайно креативни, когато търсим начин да заблудим някого, било то с художествена или с по-лоша цел.
Но също така… това сме го виждали и преди. Да, не можем да разграничим лесно нещо, генерирано от ИИ и такова, създадено от човека. Но нали все пак и двете моделират един и същи процес на мислене?
Виждам много голяма промяна в парадигмата в друга посока. Стандартната компютърна програма е нещо, на което знаеш, че задаваш въпрос и получаваш отговор. Гарантирано ти е, че отговорът е бърз и точен, но не и че е много интелигентен.
Сега обаче се получава точно обратното. Имаш срещу себе си „нещо като“ човек.
Едно приятелче, което знае много, обаче може да бърка много и да лъже.
Опасности лично аз виждам с авторските права. На тези хора, които създават нещо, трябва да им гарантираме, че това, което им харесва, което е тяхната цел и призвание в живота, няма да остане изведнъж излишно.
Този въпрос дори в някакъв момент стои пред мен като преподавател. Едно от нещата, с които аз съм ценен, е именно човешкият контакт и разбиране. Това, че мога не само да отговарям правилно на въпроси, ами и да познавам човека срещу себе си, да го разбирам и съчувствам, да му споделя от собствения си опит.
Трудно ми е да си представя как създаденото от човека съдържание ще стане по-малко или по-малко релевантно от генерираното от ИИ. Но смятам, че винаги ще има тази нотка на автентичност, красота и… контакт. Тук не говорим само за съдържание. Мога да имам робот асистент. Мога да си представя как някой езиков модел се представя за мой приятел, но доколко автентично е това преживяване?
– Ако не знаеш кое от двете е, тогава защо да не е автентично? Ако си толкова убедителен, че аз не мога да различа дали ти наистина ми отговаряш, или си генериран от алгоритмите?
– Това са много философски въпроси, като например базилиска на Роко или как да убиеш своя клонинг. Имаш „човек“, който мисли абсолютно като теб, знае какво би направил… как да го убиеш? Когато говорим за ИИ, неизбежно влизаме в такава философска дискусия.
Обаче такива дискусии има не само в тази област. Изкуството не е изчезнало и няма да изчезне. Свещите и днес имат много приложения. Някои неща сме загубили безвъзвратно, но за сметка на това са се родили други. Освен това понякога преоткриваме стари знания.
Единствената, най-голяма надежда, която имам за човечеството, е, че няма да загубим любопитството и креативността си.
И смятам, че загубата е по-вероятно да се случи на базата на забавления, които ни правят безлични и незаинтересовани. А не на това, че някой изкуствен интелект ни е взел работата…
– Струва ли си днес да се учи програмиране, или, както каза един мой гост, е като да купиш фабрика на 8 септември 1944 г.? Дори шефът на Nvidia обяви, че не би губил времето на децата си с това занимание.
– Знаеш ли колко пъти са ми задавали този въпрос? Още докато учех програмиране, се чудехме дали си струва, защото мислехме, че всичко ще бъде автоматизирано и то наистина става. Но
програмирането, поне за мен, е едно от най-важните умения в съвременния свят.
Може да ти помогне за всичко, независимо дали се занимаваш с анализ на данни, дали си софтуерен инженер или пък искаш да автоматизираш някакви ежедневни задачи.
Програмирането е важно не само за професионалистите, но и за всички останали. То помага за развиването на мозъка, за решаването на толкова разнообразни задачи. И трето:
тези модели някой трябва да ги пише, този ИИ някой трябва да го прави!
Той се опитва да се създава сам от много време, но до момента не му се получава. В някакъв момент и това ще стане, но според мен тогава програмирането ще се промени в нещо, още по-подобно на естествения език, още по-визуално или интуитивно. Но винаги ще бъде важно. В крайна сметка езикът за програмиране също е език, а езикът, какъвто и да е той, е най-основното, което имаме като хора. Той ни дава възможността да изразяваме своите идеи и да ги споделяме с останалите.
– Въпросът е дали не сме близо до тази следваща фаза на абстракция, при която да кажеш: „Мили ChatGPT, напиши ми скрипт, който да решава тази задача“. И няма да са нужни много от ежедневните приложения, за които говориш.
– Чакай сега,
какво разбираш под програмиране? За мен не е писането на скриптове, а решаването на задачи.
Ще формулираш на ChatGPT някаква ежедневна задача, но с колко лесни ежедневни задачи се срещаш в практиката си? Можеш ли да напишеш алгоритъма Koprivshtitsa на Google с ChatGPT от край до край?
– Това го прави Веселин Райчев, може би не е нужно да го умеем всички. За голяма част от хората, работещи в бранша, днес работата е рутинна, решават злободневни, повтарящи се проблеми.
– Именно! Автоматизация на по-ежедневните задачи. Това е супер! Защо някой да пише скучен код? Защо някой да си мечтае да бъде програмист, който пише скучни или еднообразни скриптове? Не мога да си обясня.
Освен това, зависи какво работиш, но веднъж месечно може да ти се наложи да използваш сложни алгоритми. В моята работа само вчера съм използвал няколко вида статистика, тестване на хипотези, в един момент с едно префиксно дърво. Имам трениране, оценяване на модели, работа с данни. Да, тази работа може да бъде подобрена, да ми се дават идеи. Обаче в крайна сметка някой трябва да поеме отговорност за нещото, което е направено.
Колкото до програмирането, има толкова позиции, технологии, езици. Преди няколко години работех това, което правя и сега – приложни изследвания. Тогава моята позиция се водеше „инженер по машинно самообучение“,защото само това съществуваше. Сега съм „учен в областта на данните“ или „изследовател“. Оттогава има ML инженер, покрай него се зароди MLOps, облачни инженери, администратори на бази данни. Така от една позиция, която в началото правеше всичко, сега има десетки само в тази област. Вече
има доста по-голяма специализация и повече направления, към които човек да се насочи.
Наистина, може би дългосрочно ще има отпадане на някои позиции, но и много голяма диверсификация и повече необходимости.
– Обаче въпросът е не става ли дума за много по-малко работни места.
– Не е ли ставало дума за много по-малко работни места, когато сме минали от коне на автомобили и от парни на електрически и дизелови влакове? А сигурен ли си, че никъде по света в момента не съществува парен локомотив? Непрактично е, не е съвременно. Някои го правят за удоволствие, други от любов към историята, но все пак не е нещо, което умира.
– И все пак, ако се чудя сега да започна ли да се уча да програмирам, твоят отговор е: „безспорно да, защото не знаеш как ще ти е полезно, но ще бъде“?
– Моят отговор е да пробваш. Но има и другата страна – програмирането не е за всекиго. Струва си всеки да пробва, но не всеки трябва да го прави. Както не всеки трябва да се занимава с право или рисуване. Има хора, на които изобщо не им е интересно или пък не им съвпада с разбиранията. Всеки би трябвало да пробва, да не се страхува, но никой да не се чувства задължен.
– Кой и кога би трябвало да се насочи към твоята област – наука за данните, машинно самообучение, невронни мрежи, изкуствен интелект?
– Който и когато иска. Няма бариера за влизане и винаги е било така. Нашата професия се води малко по-елитарна, но истината е следната:
Много е лесно да се започне! Изглежда плашещо, но е много лесно.
Тази диверсификация на професиите наложи необходимостта от изключително много и разнообразни хора. В момента, както и в програмирането, има огромен недостиг на кадри. Всеки стартъп, всяка корпорация търси хора отчаяно и тези хора ги няма. Не защото са глупави и не кандидатстват, а защото просто е ограничен броят на кандидатите.
– Кои са първите стъпки, ако човек иска да се насочи към ИИ света?
– Това е нещо, което не ми е лесно да обясня на много хора.
Всъщност, трябват ти само желание за учене и умения за комуникация.
Не ти трябва да знаеш „това е тази регресия“, „този модел така работи“. В някакъв момент ще се наложи, но това винаги е на второ място.
Трябва ти огромно желание и способност да учиш, при това бързо, защото средата е динамична и нерядко трябва да измисляш това, което правиш. Много често няма рецепта, която да следваш, създаваш я ти на базата на предишния си опит и на това, което си прочел.
И второто – да умееш да комуникираш, за да може другите хора да ти помагат с идеи и ти да им помагаш. Това са двете умения, които са критично важни.
Оттам нататък, дори за най-високите позиции, пак това са фундаменталните умения, които се изискват. Много по-важни са, отколкото техническите – те се натрупват като резултат.
– Необходима ли е университетска диплома? Помага ли? Или… просто не пречи?
– Необходима ли е? Не. Помага ли? Зависи какво харесваш. Аз (почти) завърших докторантура по астрофизика. Харесвам науката от много малък, тя е оформила начина ми на мислене, на виждане на света. Но
по никакъв начин не ми е било предимство това, че имам някаква диплома.
Нека направим разлика между дипломата (т.е. формалното образование) и това, което съм учил по принцип.
Всичките си познания по машинно самообучение съм получил от интернет.
Може да научиш нещо от началото до добро, професионално ниво само от интернет.
Но трябва да искаш и да можеш да учиш.
„Не пречи“ е вече малко остаряло, през последните една-две години започна тенденция компаниите да не харесват хора с дипломи. Защото в някои случаи първо трябва да ги отучиш, после да ги научиш, спрямо това да имаш хора, при които да пишеш на чиста дъска.
Моят съвет: ако наистина много се интересуваш от нещо, искаш да го направиш за себе си, да се развиваш в академичната сфера, да правиш научни изследвания. Тогава да. INSAIT е много добър пример за това, приложен институт. Дипломата не пречи, но ако много искаш тези знания. А не ако мама и тате са ти казали, че трябва.
– И все пак, ако дойде някой кандидат с диплома от Харвард или MIT…
– Точно обратното. Имах много печален опит с мой шеф, който беше завършил подобен университет, хвалеше се много и не ставаше за абсолютно нищо. Работата е там, че
ако имаш знания, никой няма да те пита за диплома.
– Но аргументът е, че в университета получаваш фундаментални знания. Учиш повече математика, електроника, мрежи, преди да стигнеш до програмирането, а ако го правиш през академиите, може да ги прескочиш.
– Аз преподавам математика. Започнах с това да правим разлика между диплома и научаване. Научаването е нещо хубаво. Дипломата също, ако ти трябва за нещо, но важно е да знаеш, че не е задължителна. Тези фундаментални знания можеш да ги получиш по всякакъв друг начин. Честно казано, аз повечето ги имах от училище, завършил съм природо-математическа гимназия.
Виждал съм много успешни истории на хора, които не са помирисвали университет, но учат всеки ден по много. И после пишат научни статии.
Много ми е било тъжно да видя хора, които са загубили това любопитство, което имат от малки.
Понякога точно университетите и училищата го убиват. Виж резултатите от PISA и матурите.
– Защо въпреки големия шум покрай ИИ като че ли няма ръст на обявите за работа, а като цяло обявите за програмисти дори намаляват?
– Обявите напоследък наистина намаляват – имаме свиване на пазара, но то няма да е постоянно, защото тези хора са безкрайно необходими за всеки бизнес.
Дори да съществува, не мисля, че опасността от заменяне с машини е толкова близо.
Имаме световна рецесия, войни, свиване на потреблението. От друга страна умението на програмистите остава незаменимо. За мен всеки добър софтуерен инженер трябва да може да се адаптира и да има повече от едно умение. Не може да ми кажеш, че си добър софтуерен инженер, ако си писал на една и съща платформа цял живот.
В моята сфера, поне в България, много малко хора пишат обяви. По-често става с референции, директно, с рекрутъри.
– Не е ли по-голям проблем, че днес има много по-малко позиции, на които човек може да започне?
– Има позиции. Повечето от хората, които изкараха моя курс и завършиха преди месец, вече си намериха работа, останалите са в процес на интервюта и очаквам до половин година да си намерят.
Освен това много от хората, които навлизат, вече имат някакъв друг професионален опит, който има значение. „Начинаещ“ не означава да започнеш от нулата. Познавам един такъв, който цял живот е журналист и после става програмист…
– И аз го знам, даже от време на време си говоря с него…
– Добре е да вземеш това, което имаш. Ти имаш умението да разказваш. Окей, значи не ти е проблем да пишеш документация, да обясняваш, да комуникираш между екипите, особено ако ти е интересно.
Има хора с години опит в науката, инженери, архитекти. Всички те хора имат познания, които могат да ползват и много често дори не ги вземат на позиции за начинаещи, те са вече за по-нагоре.
Връщам се на меките умения – това са хора, които имат работна култура. Това е по-трудно за изграждане, отколкото да научиш как работи Python.
Още нещо важно: опитът в ученето също е опит. Караш някакъв курс, правиш проект и го добавяш в портфолиото си. Така можеш да докажеш, че нещо си научил.
– Има ли неща, които вече няма смисъл да започваме да учим?
– Толкова много неща вече няма да са нужни. Но аз съм човек, който много обича разнообразните познания. За мен никога не е било добре човек да бъде експерт само в едно нещо и да не разбира от друго.
Всичко, което знаеш, рано или късно може да ти потрябва. Всяко знание е полезно.
– Ако сега започваме, как да разберем в цялото море от курсове и академии кое е нашето място? Как да сме сигурни, че няма да си загубим времето и парите?
– С нарастването на интереса към сферата станаха много и хората, които я популяризират. Естествено, когато имаш повече курсове, имаш по-голямо разнообразие на качеството.
Как да си избереш? Аз доста разчитам на ревюта от други хора и на някакъв вид предварителна информация. Има курсове, които са записвани, може да видиш примерни видеа, други някой може да ти препоръча. Когато аз уча, обичам да не гледам само едно нещо, а да проуча дадена тема от много различни източници, било то научни статии, видеа, код, да получа различни гледни точки. Това не важи за всички, но е моето решение.
Хората учат по много различни начини. Някои го правят най-бързо от видеа, други – само ако слушат. Повечето от нас са визуални хора. Аз уча най-добре, когато чета, понякога видеата са ми много бавни, темпото не отговаря на моето. Всеки си има начини. Едно ново решение е да питаш някой ИИ и да знаеш, че може да халюцинира, да те излъже много убедително.
Моят съвет е да се пробват различни модалности, тоест различни начини на възприемане на информацията.
– Много хора не се решават да започнат с програмиране или работа с данни, защото се боят от математиката. Каква е истината, трябва ли тя да ти върви? Или може да се окаже, че ти върви, а ти не си го подозирал, защото в училище ти е била преподавана скучно…
– Стана дума, че работата с данни вече има много посоки. В някои трябва да си страшно добър по математика, в други може да не знаеш нищо.
За програмирането… нека говорим за софтуерно инженерство. То е доста сложно нещо. Имаш процеси, управление на екипи, автоматизация. Ужасно много неща, които са отвъд това да седиш и да пишеш код.
Писането на код на клавиатура е само част от работата, при това малка. Другото е, което те прави от програмист разработчик на софтуер и след това софтуерен инженер.
При нас, в работата с данни, писането на код е още по-малко, може да се разминеш с по няколко реда за почти всичко. Нещо, което обаче наистина ти трябва, е да знаеш какво искаш. Това ли ми се трябва? Какви скрити зависимости има в тези данни? Какви скрити проблеми съдържат? Все въпроси, които се питаме всеки ден и тук има огромна необходимост от това, което се нарича математическо мислене. Да имаш логиката, да знаеш кое какво означава, да следваш някакви интуиции или по-формални методи. Да можеш да вземаш сложни решения, да разбиваш една задача на части, това е незаменимо умение за всички, не само за хората в моята област.
Конкретно моята работа на учен по данните е математическа. Много хора се стъписват – „Математика, въй!“. Но това, което ти трябва, ако си го научил и след една година се върнеш назад, ще видиш, че е много малко. Важни неща са, фундаментални, но точно затова едно малко парченце знание може да се използва на много места.
Освен това, честно казано, това може да помогне страшно много и на програмистите. Виждал съм много хора, които, като започнат да мислят математически, това им помага ежедневно. Да мислиш не какъв код е, а какво означава в една система, която има толкова много съставни части.
– Какво ще работи последният програмист?
– Изключвач на щепсели. Така си го представям, като някаква абсолютно крайна мярка за сигурност…
– Дано не е някой от нас…