Kunstig intelligens (AI) har ikke bare lært seg å herme etter måten vi skriver og snakker på. De kan nå også skrive kode.
AlphaCode, en kunstig intelligens utviklet av selskapet DeepMind, kan løse kode-nøtter på linje med mennesker.
AI-en presterte bedre enn omtrent halvparten av programmerere som deltok i konkurranser på nett.
Nyheten ble først gjort kjent 2. februar 2022. Nå er en vitenskapelig artikkel om resultatene publisert i tidsskriftet Science.
AI-en får en beskrivelse av en oppgave som skal løses. Deretter produserer den haugevis av forslag til kode. Dette siles ned til maks ti løsninger som leveres.
– Dette er et imponerende arbeid, sier Morten Goodwin, professor i kunstig intelligens ved Universitetet i Agder.
Goodwin forteller at AlphaCode er en av flere AI-er som kan hjelpe til med koding.
– Det som er litt spesielt med AlphaCode, er at den skriver hele koden selv. Riktignok er det på litt begrensede oppgaver, men dette viser et enormt potensial til å hjelpe utviklere.
Goodwin sier at denne typen verktøy absolutt kan være nyttig for programmerere, for eksempel ved å kutte ned på tidsbruken i arbeidet.
Har laget andre verktøy tidligere
AlphaCode er skapt av selskapet DeepMind. Det er et datterselskap av Alphabet Inc, morselskapet til Google.
DeepMind er kjent for å ha laget kunstig intelligens som er eksepsjonelt gode i brettspill.
Selskapet har også laget AlphaFold, et AI-verktøy som kan forutsi formen til proteiner. Dette er ventet å bli nyttig blant annet innen forskning på legemidler. Bragden ble kåret til årets vitenskapelige gjennombrudd i fjor av Science.
Rundt 20 linjer
AlphaCode er designet for å kunne løse nokså kompliserte oppgaver.
AI-en kan dermed hevde seg bedre i konkurranser enn det lignende systemer har klart før.
– AlphaCode klarer å skrive omtrent 20 linjers programkode, sånn det er nå, sier Goodwin.
Annonse
Det er ikke så mye. Du kan ikke be den om å lage et helt dataprogram, som har millioner av linjer med kode, eller be den lage en julekalender på nett for deg, bare ved å bruke vanlige ord. Den kan spytte ut kode for problemer som er formulert på en spesiell måte.
– Oppgavene presentert på en veldig spesifikk måte. Det er ingen mennesker som snakker sånn, sier Goodwin.
Trent opp
AlphaCode ble først trent på et stort materiale fra kode-nettstedet GitHub. Slik ble AI-en kjent med kodespråk. Deretter ble den trent mer spesifikt på oppgaver gitt i kodekonkurranser på nett.
Teamet testet AI-en i konkurranser i regi av Codeforces. Det er ifølge DeepMind en plattform som jevnlig avholder konkurranser der programmerere kan teste seg og vise fram evnene sine. Deltakerne rangeres ut fra hvor mange oppgaver de klarer å løse.
AlphaCode ble testet i ti konkurranser mellom 1. og 28 desember i 2021. Minst 5000 deltakere var med per konkurranse.
Gjorde det bedre enn litt under halvparten
AlphaCode klarte å løse litt under en tredjedel av oppgavene og gjorde det bedre enn 45,7 prosent av deltakerne.
Teamet bak AlphaCode fant ut at AI-en gjorde mer enn å bare kopiere lengre partier fra treningsdataene. Den skapte noe nytt. Denne kreativiteten var overraskende, sier Kevin Ellis ved Cornell University som jobber med AI og koding, til Science.
Selv om AlphaCode tok et nytt skritt fremover, er den fremdeles langt unna å slå de beste programmererne i denne typen konkurranser.
AI-ens prestasjon tilsvarer omtrent en nybegynner innen koding med noen måneder til et år med erfaring, skriver forskerne i studien.
Annonse
Lærer ved å gjette hva som kommer etter
AlphaCode er en språkmodell. Den lærer kodespråk og koding på samme måte som andre AI-er lærer seg å bruke språk og produsere tekster.
– Den er trent på masse eksisterende oppgaver og programkode, sier Goodwin.
– Den leverer mange, mange forslag på en oppgave. Deretter er det en annen kunstig intelligens som filtrerer ut de beste svarene.
Det kan minne litt om et tankeeksperiment om at hvis du setter uendelig mange aper foran en skrivemaskin, og de sitter og taster tilfeldig, så vil en til slutt skrive noe skikkelig bra, sier Goodwin. Men det blir ikke helt riktig å gjøre den sammenligningen når det gjelder AlphaCode.
Hvor mye skjønner egentlig AI-en av det den driver med?
AI-en trenes opp ved at den lærer seg hvilket tegn som pleier å komme etter det forrige.
– Du har en kodetekst, så fjerner du et ord, så skal den prøve å gjette hva som kommer etter. Slik er det med veldig mye av kunstig språk-intelligens.
– Men det betyr ikke at den ikke forstår. Den forstår ikke i en menneskelig forstand, men den forstår at hvis jeg for eksempel skal lage et login-system, eller finne et primtall, så er koden typisk sånn.
– Gi dem litt tid
Det at AlphaCode må lage så mange forslag for å finne et riktig svar, setter begrensninger på hvor mange linjer den kan skrive, bekrefter Goodwin.
– En programmerer vil ha en annen prosess.
Annonse
– Men det betyr ikke at potensialet ikke er der. Det er litt som sjakk-computere for 20 år siden. Man sa at de kunne jo bare slå kretsmesteren i sjakk. Men gi dem litt tid, så slår de Magnus Carlsen også.
I praksis vil programmer som kan skrive kode fungere som et hjelpeverktøy for kodere, heller enn å skulle generere koden helt alene.
Samme type AI som ChatGPT
En annen kunstig intelligens som har skapt overskrifter den siste tiden, er ChatGPT. Chatboten er laget av OpenAI, et ideelt forskningsforetak som er grunnlagt av blant andre Elon Musk.
Chatboten fascinerer med sin evne til å svare på spørsmål og kommandoer på en tilsynelatende naturlig måte. Den kan ifølge Aftenposten skrive utredninger om et tema «på forbløffende godt norsk». Tekstene henger ofte godt sammen, men kan inneholde feil.
Nylig meldte Khrono at chatboten kan løse eksamensoppgaver til ståkarakter.
Både ChatGPT og AlphaCode er kunstig intelligens av typen «store språkmodeller».
De trenes til å se mønstre i store mengder tekst. Hovedforskjellen mellom de to AI-ene er at de er trent på forskjellig type data, ifølge en artikkel i Nature.
Finnes flere programmer
ChatGPT kan generere noe kode. Det finnes også andre verktøy. De er laget spesielt for å fylle inn kode.
OpenAI har også tidligere laget Codex, en kunstig intelligens som er trent på data fra GitHub.
En tjeneste som kalles GitHub Copilot, er bygget på AI-en. Programmet kan levere kode ut fra en beskrivelse av hva koden skal gjøre.
Microsoft har IntelliCode. Ellers er det også et verktøy som kalles Ghostwriter.
Annonse
– Mange av verktøyene er på en måte autocomplete på steroider. Du skriver en bit av en kode, og så kommer resten av koden på plass for deg, sier Goodwin.
Mer effektivt?
Slike tjenester er allerede tatt i bruk av noen programmerere. Det kan gjøre kodingen mer effektiv, og frigjøre tid.
I en liten test brukte de som benyttet seg av Copilot en time og elleve minutter på å fullføre en oppgave. De som ikke brukte verktøyet, ble ferdig på to timer og 41 minutter.
Samtidig kan det være ulemper. Verktøyet kan gjøre feil som tar tid å sjekke opp, skrev Anders Løland i en tidligere kronikk på forskning.no.
– Feil i kode kan bety at koden ikke virker, men det kan også bety at den inneholder sikkerhetshull som er vanskelige å oppdage, skriver Løland.
Hvis AI-en er trent på data som den egentlig ikke har lov til å bruke og kopierer kode derfra, kan det oppstå juridiske problemer.
Goodwin tror likevel at kunstig intelligens som kan kode, vil endre bransjen fremover. Kundebehandling og det å forstå hva en kunde vil ha, må utviklere stå for. Men kode-robotene kan supplere programmereren med biter av kode for å øke effektiviteten eller for å hjelpe til med å løse et problem.
– Jeg tror vi nesten står overfor et paradigmeskifte innen programutvikling med disse verktøyene, sier Morten Goodwin.