Kako dobro zna ChatGPT programirati? Pri preizkusu reševanja določenih programerskih nalog pokaže, da zna na trenutke tudi fascinirati. Vedno pa se na koncu izrazi njegova največja slabost, nesposobnost razmišljanja. Je poklic prihodnosti nekakšen "AI komunikator"?
ChatGPT je lanskega novembra ugledal luč sveta in takoj postal spletni hit. Uporabljati so ga začeli praktično vsi, nekateri zgolj za zabavo, drugi pa tudi kot priročnega pomočnika pri delovnih opravilih. ChatGPT, ki bo kmalu dobil konkurenco v Googlovem Bardu, je prepričljiv v veliko stvareh.
Med opravili, ki se jih zna bolj ali manj uspešno lotiti, je tudi programiranje, torej segmenta, katerega produkt je tudi sam. Toda ali je v “obrti svojih staršev” prepričljiv do te mere, da bi lahko ogrozil programerski poklic?
Prvi hiter preizkus ChatGPT v programiranju s trenutno najbolj razširjenim programskim jezikom Python pokaže, da zna naloge, ki jih tečajniki dobijo po osnovnem spletnem tečaju programiranja, praviloma rešiti brezhibno. Prav tako zna na videz delujočo kodo* ustvariti iz teksta spletne ponudbe podjetja, ki je za določen programerski projekt želelo najeti programerja in ga za to plačati okoli 200 evrov. Toda ali to pomeni, da je ChatGPT tudi dober programer?
Preberite še: Google predstavil klepetalnega robota Barda: bo lahko konkuriral ChatGPT?
Zna dobro vrteti jezik, ne zna pa razmišljati
S programerske perspektive se je njegovih sposobnosti lotil dr. Janez Demšar, profesor na Fakulteti za računalništvo Ljubljana. “Res je, del rutinskega dela bo sedaj res lahko opravil ChatGPT. A kolikor sem ga sam preizkusil, je težava v tem, da kar naredi, je sicer videti zelo prepričljivo, v kakšni podrobnosti pa pogosto popolnoma zgreši. Zato lahko nekoga, ki določenega področja ne pozna dobro, tudi zavede, saj zna napake tudi dobro skriti. Mislim, da pri programiranju dela enako kot z besedilom ali kakšnimi matematičnimi nalogami.” uvodoma opiše Demšar.
ChatGPT tako hitro pokaže, kje je njegov osnovni problem. To je, da nima možganov. “Zna le dobro vrteti jezik, razmišljati pa ne zna,” pravi Demšar. Sestavlja torej podobne programe, kot jih je nekoč že videl, naša navodila pa ga le usmerjajo, kje naj se razgleduje po podatkih.
“Podobno kot pri izpitih programiranja. Nekateri študenti programsko funkcijo napišejo tako, da je na prvi pogled videti v redu, nato pa ugotoviš, da so v njej deli programa, ki jih je študent videl na predavanjih ali v literaturi, in je to nekako sestavil skupaj. Po nekaj minutah ugotoviš, da v kodi ni neke logike, ker študent ni razmišljal, ampak samo nekaj sestavljal skupaj. Na enak način programira ChatGPT, torej kot študent, ki se je za izpit programiranja želel naučiti na pamet. Ko pa bi moral problem rešiti z nekoliko razmišljanja, pa tega ne zna več,” primerja Demšar.
Tu se skriva tudi razlog, da ChatGPT zna odlično sprogramirati naloge s spletnega tečaja, ali preproste naloge z izpita, saj je takšne naloge ‘videl’ velikokrat. Pri kompleksnejših (bolj specifičnih) nalogah pa se že zapleta. Od reševanja na podlagi napačnih predpostavk do pisanja enakih napačnih kod na različne načine.
Napake po opozorilu vedno tudi prizna, se opraviči in jih pogosto tudi pravilno popravi. Ob daljši interakciji začne opravičilo postajati njegov najpogostejši uvod v odgovor, njegove rešitve pa je vedno težje pregledovati. “In dlje, ko se pogovarjaš, bolj vidiš, da obstaja neka bariera, ki je s temi možgani ne bo presegel. Programska koda, ki jo uspe pravilno kreirati pa je dolgočasna kot umetno komponirana glasba.” Poleg tega je še iritirajoče samoprepričan in ponižno vljuden hkrati, “nemogoč karakter, ne bi ga zaposlil,” doda Demšar.
Težko bo zamenjal človeka
Umetna inteligenca bo v prihodnosti verjetno uspela sprogramirati vedno bolj zapletene stvari, ker bo znala vedno bolj pravilno razbirati informacije. “Predstavljajmo si ChatGPT kot študenta, ki se je skušal programiranja naučiti na pamet. Ta študent bo poznal vedno več nalog, vedno bolj uspešno bo ugibal, kateri nalogi izmed teh, ki jih je že delal na izpitu oz. kakšni kombinaciji je naloga podobna, zato bo lahko reševal tudi vedno bolj zapletene naloge. Še vedno pa tega ne bo razumel in znal razmišljati o rešitvi,” ponazori.
Način programiranja, kot ga izvaja ChatGPT, zato po mnenju Demšarja nikoli ne bo vodil k zamenjavi človeka. Če že, lahko predstavlja grožnjo le tistim, ki programiranja ne razumejo povsem in programirajo preproste stvari. Varni pa so predvsem tisti, ki imajo o programiranju in izvajanju programov neko globlje razumevanje. Praviloma (ne pa nujno) so to tisti, ki končajo študij računalništva. “Če pa bodo v prihodnosti ustvarili nekaj, kar bo znalo “razmišljati” podobno kot človek, bi pa lahko imelo večji potencial.”
Da ni ogrožen prav noben programer, ne glede na kvaliteto, pa meni strokovnjak za umetno inteligenco Mladen Borovič s Fakultete za elektrotehniko, računalništvo in informatiko v Mariboru. “Kvaliteta programerja se namreč lahko čez čas spreminja, prav tako pa kvaliteto programerja na neki način definira tudi njegova kreativnost in ročnost z raznimi programskimi konstrukti in podatkovnimi strukturami.”
Čeprav ChatGPT lahko vrne kodo, ki je rešitev neke naloge objavljene na ‘freelance’ portalih, pa se moramo zavedati, da poklic programerja ne vključuje samo izdelave delujoče kode, gre tudi za vzdrževanje te kode in predvsem varnost te kode, doda Borovič. Pričakuje pa, da se bo s pojavljanjem orodij, kot je ChatGPT, spremenil način dela programerjev.
Preberite še: Poklepetali smo z viralnim programom ChatGPT: bo izpodrinil Google?
Programerji in umetna inteligenca z roko v roki
Umetna inteligenca ne ‘ogroža’ ampak lahko kvečjemu pomaga pri delu programerjev, meni Borovič. “Predvsem s tem mislim dele ponavljajoče se kode (boilerplate code) in manjše preprostejše funkcije, ki jih programerjem ne bi bilo več treba pisati.”
Že sedaj sicer svoje delo opravljajo s pomočjo raznih spletnih primerov v smislu dokumentacije. Velik del tega predstavlja tudi spletna stran StackOverflow, kjer na določen problem z rešitvami odgovarjajo drugi programerji. “V zadnjem času je zanimivo tudi orodje GitHub Copilot, ki lahko bistveno pohitri proces programiranja, vendar menim, da takšna orodja trenutno še niso dovolj dovršena, da bi popolnoma slepo zaupali v njihov rezultat,” pravi Mladen Borovič.
Se bo pa v prihodnosti verjetno zgodilo, da bodo enostavnejše zadeve lahko popolnoma avtomatizirane, vendar do tega trenutka še nekoliko manjka. Se bo pa v naslednjih letih delež dela, opravljenega z umetno inteligenco, hitro povečeval, je prepričan.
Do kakšne mere pa lahko ločimo med programerskim delom človeka in računalnika? Janez Demšar odgovarja, da pri preprostih nalogah verjetno ne bi mogel ločiti med delom človeka in ChatGPT-ja. “Pri tistih nekoliko bolj zapletenih nalogah, ki zahtevajo razmišljanje, pa bi verjetno težko ločil le še med slabim programerjem in ChatGPT, ker bi najbrž oba počela podobne neumnosti.”
Je poklic prihodnosti nekakšen “AI komunikator”?
Ob čedalje hitrejšem razvoju spletnih pripomočkov in programov, ki temeljijo na umetni inteligenci, se postavi logično vprašanje. Je morda eden izmed poklicev prihodnosti tudi nekakšen “AI komunikator”, torej človek, ki bo znal učinkovito komunicirati z umetno inteligenco in iz nje pridobiti najboljše informacije in rešitve.
Borovič meni, da bo to vlogo najverjetneje prevzel ravno poklic programerja s tem, da se bo spremenil način dela. “Programer bo v bližnji prihodnosti pri svojem delu uporabljal orodja, podprta z umetno inteligenco, kjer bo morda takšnemu orodju zastavil nalogo v naravnem jeziku, nazaj pa bo dobil dovršeno kodo, ki predstavlja delno rešitev, ki jo bo zgolj dopolnil in izboljšal. Torej nekako v smislu popravljanja napak, ki ga že sedaj programerji izvajajo v sklopu vzdrževanja kode,” zaključi.
*ob zagonu kode napako javi zgolj v funkciji kode, ki se nanaša na povezavo do baze podatkov dotičnega podjetja
Spremljajte N1 na družbenih omrežjih Facebook, Instagram in Twitter.
Naložite si našo aplikacijo: na voljo za android in za iOS.
Kakšno je tvoje mnenje o tem?
Bodi prvi, ki bo pustil komentar!