Htjeli vi to ili ne, i bili toga manje ili više svjesni, gotovo da ne možete izbjeći susret s raznim tehnologijama umjetne inteligencije i strojnog učenja koje danas pokreću svijet. Od virtualnih asistenata, preko društvenih mreža i autonomnih automobila, pa do liječničkih ordinacija ili mobilnih aplikacija za rad i zabavu – sve njih omogućava neki oblik umjetne inteligencije kakav se razvija i u Hrvatskoj. Popričali smo o toj aktualnoj i zanimljivoj temi s Jasminom Kurtanovićem, inženjerom za strojno učenje (machine learning, ML) u domaćoj konzultantskoj tvrtki za razvoj softvera Serengeti.
.debug: Jasmine, recite nam za početak nešto o sebi
JK: Završio sam Elektrotehnički fakultet u Sarajevu, smjer informatika i računarstvo, a nakon fakulteta počeo sam raditi u struci. Zahvaljujući tome do danas sam skupio već 15 godina iskustva, većinom u području developmenta. Radio sam u gotovo svim programskim jezicima, a 2019. doselio sam u Zagreb (jer, kako kažu, od tamo si odakle ti je žena…). Od tada radim u Serengetiju, čija ekipa mi je mnogo pomogla u tome da se ovdje zaista osjećam kao kod kuće.
Zajedno smo Serengeti i ja zaplivali u vode strojnog učenja prije otprilike godinu dana, i za sada mi je to vrhunac karijere, jer mi je do sada strojno učenje bilo i pomalo skrivena ljubav.
.debug: Što Vas je privuklo da se odlučite prekvalificirati za ML eksperta?
JK: Prije svega činjenica da mi je strojno učenje blisko povezano sa strukom, elektroinženjerstvom, jer se kontinuirano bavi istraživanjem novoga i nepoznatoga. U ovom području nema šablone za rješavanje problema, prisutno je stalno eksperimentiranje, a redovito se javljaju novi izazovi u rješavanju problema. Problemi se, pak, rješavaju nestandardnim metodama i tu leži glavni izazov strojnog učenja naspram “običnog” programiranja.
Naveo bih tu primjer iz prakse – RedAI, aplikaciju na kojoj trenutačno radimo. Ona koristi tehnike računalnog vida i dubokog učenja kako bi omogućila fotografiranje polica u dućanima. Sustav potom prepoznaje objekte na slici kao proizvode i svrstava ih u kategorije te podatke u stvarnom vremenu šalje u bazu, gdje ih se odmah može analizirati – vidjeti što je i kako u kojoj trgovini na polici posloženo. Računalo na osnovu ranijih podataka “uči” i pokušava riješiti novu nepoznatu situaciju. Strojno učenje nas okružuje, primijetili mi to ili ne – od Facebookovih preporuka za prijateljstvo pa do autonomne vožnje u automobilima.
U našem slučaju ono se koristi za izvještavanje o policama i uvjetima na polici kao što su vrste proizvoda, pozicije, zauzete površine i slično. Klijenti RedAI-ja su proizvođači FMCG proizvoda koji na temelju podataka iz aplikacije mjere svoj udio na polici, pozicioniranje, prate konkurenciju i slično. Ova tehnologija predstavlja veliku uštedu na vremenu njihovim prodajnim predstavnicima koji više ne moraju “ručno” popisivati stanje na policama.
Sustav pruža “real time” informacije s police, izvještavanje je prilagođeno potrebama klijenta, i nema mogućnosti ljudske greške s obzirom da stroj slika, detektira, klasificira i šalje podatke. Drugim riječima, nema više “odokativnog” mjerenja udjela na polici, brojanja SKU-a ni mjerenja metrom.
.debug: Koliko je kompleksno za naučiti tehnike strojnog učenja?
JK: Prije svega rekao bih da je predznanje iz matematike bitno, ali nije presudno. Uz ponešto znanja Pythona i njegovih librabryja, ili jezika kao što su Java, C++ ili C#, netko s voljom ne bi trebao imati previše problema u savladavanju novih tehnika. Glavno je shvatiti osnovnu razliku od tradicionalnog programiranja – u strojnom se učenju pravila i instrukcije automatiziraju, umjesto kodiranja “po šabloni”. Najbitnije u svemu jest stalno eksperimentiranje i praksa. Uz malo matematike i puno vježbanja – sve je moguće.
.debug: Što biste savjetovali kolegama koji razmišljaju o sličnoj promjeni tehnologije?
JK: Ako su željni novog izazova, preporuka svima je da se upuste u taj novi svijet. Uz dobro predznanje, čak i u manje od godinu dana mogli bi postati eksperti za strojno učenje. Naravno, uz aktivno sudjelovanje u nekom projektu i podršku ostalih kolega i kompanije, kao što je to bilo u mojem slučaju. Dodao bih i da je programski jezik Python lak za učenje pa s njime sve u ovom polju ide brže, a ujedno je to i najzastupljeniji jezik u području strojnog učenja.
Mnoga istraživanja i akademski radovi dostupni su besplatno online pa se lako može učiti i napredovati. Tu je i velika količina besplatnog koda u tim znanstvenim radovima, odakle je moguće uzeti primjere i primijeniti ih kod sebe, u praksi.
Ako govorimo o razini zrelosti u developmentu – u strojno učenje nije nemoguće krenuti od nule, no potrebno je brzo usvajati znanje. Studentima koje ću sresti na .debugu preporučit ću da uče Python, odaberu usmjerenje unutar ML-a, (to može biti medicina, prepoznavanje objekata, razumijevanje jezika, autonomna vožnja…) te potom tamo fokusiraju svoj trud. Dakako, potrebni su im volja, želja i strast za radom – te opet, malo matematike.
.debug: Kako ste vi odabrali strojno učenje? Ili je ono odabralo Vas?
JK: Interno sam se u Serengetiju bavio istraživanjima, razvijao sam internu aplikaciju i tražio nova rješenja za razne probleme. Nadređeni su to prepoznali i usmjerili me u smjeru strojnog učenja kada se za to pokazala interna potreba. Istaknuo bih da ova tvrtka prepoznaje talente i daje im priliku – u Serengetiju, ne pretjerujem, nebo je granica za osobni razvoj na temelju vlastitih afiniteta i talenata, a napredovanje i učenje na poslu je zajamčeno.
“Kako sam prestao biti developer”
Jasmin će na .debugu održati predavanje u kojem će nam opisati svoj karijerni put, “kako je prestao biti developer” kada se bacio u strojno učenje. S publikom će podijeliti svoja iskustva iz prakse u izradi ML aplikacija i podučavanja strojeva da i sami uče. Svi koji poslušaju njegovo predavanje postat će bogatiji i za informacije o besplatnim resursima iz kojih i sami mogu početi učiti o ovom području, jer će ih Jasmin uputiti prema “online Bibliji deep learninga” i tečajevima Pythona koji su i njemu bili od velike pomoći.
Serengeti i dalje ima otvorene natječaje za 30-ak novih developera, a kakve profile ljudi točno traže možete provjeriti na njihovim stranicama.