For mange utviklere har spesialiserte AI-kodeassistenter som GitHub Copilot blitt nærmest uunnværlige. Men mange bruker også mer generelle generative AI-verktøy som ChatGPT for å få hjelp med kodingen.
Men hvor bra er egentlig ChatGPT til å skrive programkode sammenlignet med et menneske? Det har forskere prøvd å finne ut av i en vitenskapelig undersøkelse publisert i juni-utgaven av IEEE Transactions on Software Engineering.
– Resultatene viser at suksessraten til ChatGPT varierer svært mye når det gjelder å produsere funksjonell kode – fra så dårlig som 0,66 prosent til så bra som 89 prosent, avhengig av oppgavens vanskelighetsgrad, programmeringsspråk og en rekke andre faktorer, skriver IEEE Spectrum.
«Resultatene viser at suksessraten til ChatGPT varierer svært mye.»
Noen ganger bedre enn mennesker
I undersøkelsen vurderte forskerne både funksjonalitet, kompleksitet og sikkerhet for koden ChatGPT genererte.
Resultatene viser at ChatGPT noen ganger faktisk produserer kode som er bedre enn den produsert av mennesker, men det var også av og til noen sikkerhetsmessige utfordringer med koden.
Yutian Tang underviser på universitetet i Glasgow og er en av de som har vært med på å gjennomføre undersøkelsen.
Tang sier ifølge IEEE Spectrum at selv om AI-basert kodegenerering kan ha noen fordeler – som økt produktivitet og automatisering av oppgaver – så er det viktig å forstå styrkene og begrensningene til modellene som ligger i bunnen av AI-assistentene.
728 kodeproblemer
Forskerne lot ChatGPT bryne seg på 728 kodeproblemer fra LeetCode i fem ulike programmeringsspråk: C, C++, Java, JavaScript og Python.
I undersøkelsen brukte forskerne GPT-3.5 – altså ikke de nyere og kraftigere GPT-4- og GPT-4o-modellene. GPT-3.5 er den modellen som benyttes i gratisversjonen av ChatGPT, og ikke like kapabel som GPT-4 og GPT-4o som brukes i betalingsversjonen.
GPT 3.5 er heller ikke trent på data etter september 2021, mens GPT-4o som man får tilgang til i betalingsversjonen av ChatGPT har treningsdata opp til oktober 2023.
Dette viste seg også å påvirke resultatene i undersøkelsen:
Mens ChatGPT klarte ganske bra å løse kodeproblemer som eksisterte på LeetCode før 2021, så feilet den ofte på kodeoppgaver publisert etter 2021.
– Noen ganger klarer den ikke å skjønne spørsmålene, sier Tang.
«Mens ChatGPT klarte ganske bra å løse kodeproblemer som eksisterte på LeetCode før 2021, så feilet den ofte på kodeoppgaver publisert etter 2021.»
Mangler kritisk tenkning
For kodeoppgaver som eksisterte på LeetCode før 2021 var suksessraten slik:
- Enkle oppgaver: 89 %
- Vanskelige oppgaver: 40 %
For kodeoppgaver publisert etter 2021 slet ChatGPT mer:
- Enkle oppgaver: 52 %
- Vanskelige oppgaver: 0,66 %
– En rimelig hypotese for hvorfor ChatGPT kan gjøre det bedre med algoritmeproblemer fra før 2021, er at disse problemene ofte ses i treningsdatasettet, sier Tang.
En forklaring på hvorfor ChatGPT er bedre på gamle enn nye kodeproblemer, er kort fortalt at den mangler evnen til kritisk tenkning som menneskelige programmerere har – den takler bare problemer den har vært borti før.
Men noen ganger briljerer ChatGPT: Ifølge IEEE Spectrum klarte ChatGPT ofte å lage mer effektiv kode enn minst 50 prosent av hva menneskelige utviklere hadde svart på de samme LeetCode-problemene.