Lekcije inženjerke iz Shopifya: kako koristiti AI za brži, bolji i lakši razvoj softvera?

Lekcije inženjerke iz Shopifya: kako koristiti AI za brži, bolji i lakši razvoj softvera?

Umjetna inteligencija i inženjeri. Nekada se vole, nekada mrze, ali činjenica je da AI inženjerima može olakšati pisanje koda... (ako i sami znaju što rade).

AI ubrzava razumijevanje novih stvari, izvršavanje starih procesa, ubacuje naš um i kreativnost u petu brzinu i uočava tipfelere koje inženjerske oči više ne vide. Ovo je u ono što vjeruje Monica Restrepo, inženjerka u Shopifyju koja je bila na Digital Labinu, konferenciji koja pretvara mali rudarski gradić u središte IT scene u Hrvatskoj na jedan dan.

Monica smatra kako je Hollywood najviše utjecao na samu percepciju AI-a pa vjerojatno mnogi ljudi AI asociraju s likom HAL 9000 iz filma Odiseja u svemiru, ali stvarnost je posve drugačija. Govorimo o tehnologiji koja se oslanja na tehnike strojnog učenja, čiji razvoj još uvijek trebaju nadzirati i voditi ljudi.

AI koristi neuronske mreže, stablo odlučivanja i natural language processing kako bi mogao upijati ogromne količine podataka i potom iz njih učiti te na temelju tih saznanja raditi predviđanja, ali to ne može raditi samostalno, istaknula je Monica na početku svog predavanja:

Ipak, ovdje se Monica pita što AI može učiniti za developere. U svom predavanju Better, Faster, Stronger: Incorporating AI to your development process, uronila je u načine kako najbolje iskoristiti AI alate u svakodnevnom stvaranju tehnoloških proizvoda.

3 načina kako AI može ubrzati pisanje koda i smanjiti mogućnost pogreške

U pripremi boilerplate koda

AI danas može pomoći sa stvaranjem koda, a svi inženjeri znaju bolne trenutke kada moraju pisati boilerplate kod (dio  koda koji je kod svake aplikacije potpuno isti). Govorimo o zadatku koji je u većini slučajeva vrlo repetitivan za inženjere, ali im AI može pomoći.

S ispravnim upitom, koji je vrlo važan kada je riječ o korištenju umjetne inteligencije, alati kao što je Chat GPT mogli bi generirati onaj početni boilerplate za učenje koji nam je potreban za aplikacije, pod uvjetom da je taj alat pravilno obučen.

Ovako inženjeri mogu uštediti mnogo vremena kako bi mogli više vremena posvetiti kreativnom procesu stvaranja same aplikacije, a konkretan alat koji preporučuje developerima je Codex, iza kojeg stoji OpeanAI:

Codex može generirati funkcije transformacije podataka u mnogim programskim jezicima i uzeti te neobrađene podatke te ih pripremiti za analizu. Možda ste također upoznati s alatima kao što je GitHub Copilot koje također pokreće Codex. Oni mogu predvidljivo pisati cijele funkcije na temelju vaših inline komentara.

Lakše debuggiranje

Standardni debugger pokazuje inženjerima gdje je kod pogrešan, ali AI može napraviti korak više, može pokazati zašto je kod pogrešan, objašnjava Monica:

Programi za debugging koje pokreće AI mogu identificirati manje očite probleme, poput race conditionsa, ili čak predložiti kako poboljšati performanse.

Naravno, ovo ovisi o tome koliko ste dobri u treniranju samog AI-ja. Tvrtke poput Mete već su stvorile ovakve alate. Njihov SapFix je bot koji generira popravke za bot koji je prisutan u kodu. SapFix je sposoban raditi pull zahtjeve, ali treba čovjekovo odobrenje prije integracije. Također, DeepCode, osim što može identificirati probleme, on pruža i kontekst koji programeri trebaju znati kako bi razumjeli zašto je greška – greška.

Za automatsko testiranje

Treća stvar s kojom AI može pomoći inženjerima je automatsko testiranje. Sposoban je prilagoditi se promjenama baze koda pa čak i generirati nove testne slučajeve. U Shopifyju se već pokazao sposobnim pri optimiziranju unit testova.

Ako je AI dobro treniran, on može pružiti strukturu testa već dok ste u fazi developmenta.

Ovo je definitivno nešto za što koristimo AI u Shopifyju, a posebno je jako korisno kada je u pitanju samo izrada mape načina na koji će testovi biti napisani, ovisno o promjeni koju tada radite na bazi koda.

Gdje će inženjeri naletjeti na probleme s AI-jem?

Usprkos tome što AI može pomoći inženjerima da se usredotoče na kreativni dio u razvoju softvera, AI nije savršen alat. On primarno ima veliki manjak kreativnosti, točnije, sposobnosti kreativnog rješavanja problema…

AI trenutno ne može zamjeniti ljudsku intuiciju.

Na primjer, ako razvijamo algoritam za blockchain sigurnost, on nije na potrebnoj razini jer njegovo znanje ovisi o zadnjem danu kada je AI bio treniran. Ako uzmemo alate poput Chat GPT-a, koji je treniran s podacima do 2021. godine, on nije u skladu s današnjim tehnologijama kao što je blockchain sigurnost, ističe Monica:

Ako tražite od AI-ja da optimizira dio vašeg koda, a pritom nije pravilno obučen ili samo drugačije tumači ono što pokušavate tražiti, AI može predložiti širenje funkcija na različite stvari kako bi napravio kod više “suhim” što može rezultirati uvođenjem stvari koje nisu u skladu s logikom vaše aplikacije.

Monica zato napominje da ne očekujte čuda prije nego LLM istrenirate na vlastitim podacima…

Kada smo odlučili koristiti verziju ChatGPT-a za tvrtke, trebali smo ga neko vrijeme hraniti podacima kako bi on naučio što je Shopify i kakvi su naši projekti.

Kvaliteta odgovora ovisi o LLM-ovom, ali i vašem predznanju

Također, koliko će vam AI biti koristan ovisi o kvaliteti podataka na kojima je treniran. Ako radite aplikaciju na području zdravlja, a AI je treniran na podacima iz e-commercea, onda sigurno nećete dobivati dobre rezultate. Slično je i s debuggingom:

Ako je AI treniran na Pythonu, a počnete uklanjati greške u Ruby kodu ili bilo kojem drugom jeziku, nećete dobiti dobre rezultate. Ovo je poznato kao problem prilagodbe domene u strojnom učenju.

Za kraj, kao najstrašniju stranu AI-ja, Monica navodi “halucinacije”, točnije, lažne pozitivne rezultate. Dakle, ovo je situacija kada se AI pretvara da zna što pitate i da zna odgovor:

Od ChatGPT-a nećete dobiti nešto poput “žao mi je, ne znam o čemu govorite.” Uvijek ćete dobiti neki nasumični odgovor, a ako ne znate da je to nasumičan odgovor, možete primijeniti nešto vrlo krivo u kod.

Sukladno članku 94. Zakona o elektroničkim medijima, komentiranje članaka na Netokraciji dopušteno je samo korisnicima koji ostave svoje ime i prezime te mail adresu i prihvate pravila ponašanja.

Pravila ponašanja

Na Netokraciji za vas stvaramo kvalitetan, autorski potpisan sadržaj i zaista se veselimo vašim kvalitetnim, kontruktivnim komentarima. Poštujmo stoga jedni druge prilikom komentiranja, kao i Zakon, držeći se sljedećih pravila ponašanja:

  • Ne budite 💩: Nema vrijeđanja, diskriminiranja, ni psovanja (osim ako nije osobni izričaj, ali onda neka psovka bude općenita, a ne usmjerena prema nekome). Također, upoznajte se sa stavkom 2. članka 94. Zakona o elektroničkim medijima prije no što ostavite komentar.
  • Samo kvalitetna rasprava, manje trolanja: Ne morate se ni sa kim slagati, ali budite konstruktivni i doprinesite raspravi! Svako trolanje, flameanje, koliko god "plesalo" na granici, leti van.
  • Imenom i prezimenom, nismo Anonymous 👤: Autor sadržaja stoji iza svog sadržaja, stoga stojite i vi iza svog komentara. Koristimo ime i prezime te pravu email adresu.

Kako koristimo podatke koje ostavljate? Bacite oko na našu izjavu o privatnosti.

Sve ostale komentare ćemo s guštom spaliti, jer ne zaslužuju svoje mjesto na internetu.

Odgovori

Tvoja e-mail adresa neće biti objavljena.

Popularno

Mobilne aplikacije

ZET-ov štrajk iznjedrio nova digitalna rješenja za prijevoz po Zagrebu

Zagreb je jutros ostao bez redovitog tramvajskog i autobusnog prometa, no građani su brzo počeli tražiti alternativna rješenja. Uz organiziranje zajedničkih vožnji, pojavilo se i nekoliko digitalnih projekata koji pokušavaju povezati vozače i putnike.

Vodič

Imate pretplatu na AI alate? Evo što računovođe kažu o ispravnom evidentiranju

U novoj kolumni Bruno Cvitanović, direktor računovodstvenog i konzultantskog servisa Brojevi objašnjava kako računovodstveno tretirati AI alate, što vrijedi za poduzetnike izvan sustava PDV-a i na koje pogreške treba paziti.

Programiranje

Tim od šest developera, dva QA-a i jednog Product Ownera postaje prošlost

Florian Krause ima trideset godina iskustva u razvoju softvera, jedan propali startup i čvrsto mišljenje: tim od šest developera, dva QA-a i jednog product ownera postaje prošlost. Na The Geek Gatheringu u Osijeku objasnio je čime se takva postava zamjenjuje.

Što ste propustili

Pametni automobili

Napokon smo se provozali Verneovim robotaksijem!

Nakon što smo u Zagrebu bezuspješno pokušali uhvatiti Verneov robotaksi putem Uberove aplikacije, zvijezde su se posložile i mi smo dobili poziv koji se ne odbija.

Umjetna inteligencija

Tko zbog AI-ja i dalje ulaže u ljude, a tko otpušta 50% radne snage?

Dok neke tvrtke nastavljaju i zapošljavati i ulagati u AI, druge su odabrale samo potonje. Kako različite tvrtke pristupaju promjenama na tržištu, doznali smo na Automation Summitu.

Novost

Gamepires najavio otpuštanja, smanjuje tim koji radi na SCUM-u

Gamepires, koji stoji iza igre SCUM, smanjuje broj zaposlenih zbog zahtjevnih tržišnih uvjeta. Objava dolazi nekoliko mjeseci nakon što je studio preuzeo britanski Splash Damage.

Vodič

Imate pretplatu na AI alate? Evo što računovođe kažu o ispravnom evidentiranju

U novoj kolumni Bruno Cvitanović, direktor računovodstvenog i konzultantskog servisa Brojevi objašnjava kako računovodstveno tretirati AI alate, što vrijedi za poduzetnike izvan sustava PDV-a i na koje pogreške treba paziti.

Veliki intervjui

Ako AI može napraviti film ili igru, što ostaje kreativcima? Odgovara CEO Nanobita

Može li umjetna inteligencija promijeniti način na koji nastaju filmovi i igre, a da pritom ne žrtvujemo kvalitetu priče i kreativnu viziju? Nanobit već testira odgovor na to pitanje, razvijajući AI produkcijske procese koji otvaraju mogućnost stvaranja sadržaja velikom brzinom.

Netokracija Podcast

Dekan FER-a: AI ne može zamijeniti temeljno znanje inženjera

Umjetna inteligencija mijenja način na koji radimo, ali bez temeljnih znanja nema ni kvalitetnih inženjera ni ozbiljnog tehnološkog napretka. U razgovoru s dekanom FER-a otkrivamo zašto je važno ulagati u istraživanje i razvoj, kako povezati fakultete i industriju te gdje se otvaraju nove prilike za Hrvatsku – od robotike i fizičke umjetne inteligencije do razvoja visokotehnoloških proizvoda.