Umetna inteligenca zna več programskih jezikov, a površno

Matej Huš

22. apr 2023 ob 12:52:14

Kmalu po izidu ChatGPT in kasneje tudi njegovega brata Chat Binga smo se navduševali nad njuno sposobnostjo pisanja programske kode. Za zdaj še ne znata napisati nove igre, a za pisanje posameznih gradnikov ali pa zgolj ogrodja zanje sta povsem sposobna. Tega sta se naučila z analizo dostopne kode na spletu, ki je ni malo. Github, Stack Overflow in podobne storitve so polne zgledov.

Čeprav je ta koda na spletu dostopna prosto, pa upravljavci zbirk ugotavljajo, da ustvarjalci velikih jezikovnih modelov s tem kujejo dobičke na njihov račun. Reddit je že napovedal, da bo dostop v ta namen zaračunaval. Enako kani storiti tudi Stack Overflow. Ni namreč skrivnost, da so se modeli učili tudi z vsebinami s Stack Overflowa. Ob tem lahko spomnimo na GitHub Copilot, ki sta ga skupaj pripravila OpenAI in GitHub za pomoč programerjem pri pisanju kode, pa ju je na koncu doletela tožba zaradi kršitev avtorskih pravic. Tudi ta se je učil na kodi, ki so jo prispevali drugi. Z licenčnega vidika pa odločitev Stack Overflowa pojasnjuje izvršni direktor Prashanth Chandrasekar. Koda je objavljena pod licenco Creative Commons, ki zahteva ustrezno priznanje avtorstva, česar pa veliki jezikovni modeli ne počnejo, torej jo kršijo.

Drugo vprašanje pa je, kako dobro kodo pišejo ti jezikovni modeli. Za manjše koščke, denimo napiši skripto, ki se sprehodi skozi vse mape in v njih požene manjšo kodo, to ni težava. Ko pa govorimo o kompleksnejši kodi, ki mora biti tudi varna pred napadalci, se razmere zapletejo. ChatGPT piše večidel kodo, ki ima varnostne pomanjkljivosti, čeprav to ve. Raziskovalci z Univerze v Quebecu so ugotovili, da čeprav zna na podvprašanja pravilno odgovoriti in opozoriti na nevarnosti v lastni kodi, v prvem poizkusu še vedno odda ne-varno kodo. Težko je predvideti, kaj se bo zgodilo, saj isti problem v različnih jezikih rešuje konceptualno drugače. Včasih napiše varno kodo, spet drugič izrazito luknjičasto.

Ob tem so najnovejše Microsoftove navedbe, da Bing govori 20 programskih jezikov, videti zelo blede. Pisanje delujoče kode je le en, manjši del ustvarjanja. Pravi izzivi tičijo drugje.