Foto 65.jpg
AI automatiserer alt, og kan den erstatte programmerere? Foto: Midjourney

Et forskerteam har nettopp publisert et omfattende kart over utfordringene kunstig intelligens (KI) står overfor innen programvareutvikling, og foreslått en forskningsplan for å drive feltet videre.

Se for deg en fremtid der AI i stillhet tar over de trivielle oppgavene innen programvareutvikling: å refaktorere flokete kode, migrere eldre systemer og jakte på kappløpsforhold, slik at menneskelige programvareingeniører kan fokusere på systemarkitektur, design og kreative problemer som maskiner ennå ikke kan løse. Nylige fremskritt innen AI ser ut til å bringe den visjonen nærmere.

En ny studie utført av forskere ved Computer Science and Artificial Intelligence Laboratory (CSAIL) – MIT og partnerforskningsinstitutter har imidlertid vist at: for å realisere den fremtiden, må vi først se direkte på de svært reelle utfordringene i nåtiden.

«Mange sier at programmerere ikke lenger er nødvendige fordi AI kan automatisere alt», sa Armando Solar-Lezama, professor i elektroteknikk og informatikk ved MIT, seniorforsker ved CSAIL og hovedforfatter av studien. «Faktisk har vi gjort betydelige fremskritt. Verktøyene vi har i dag er mye kraftigere enn de var før. Men vi har fortsatt en lang vei å gå for å realisere det fulle potensialet til automatisering.»

Professor Armando Solar-Lezama argumenterer for at den vanlige oppfatningen av programvareutvikling er at det er en oppgave som ligner på en studentprogrammeringsoppgave: ta en liten funksjon og skriv kode for å håndtere den, eller gjør en LeetCode-lignende øvelse. Virkeligheten er mye mer kompleks: fra kodeomstrukturering for å optimalisere design, til storskala migreringer med millioner av kodelinjer fra COBOL til Java som endrer hele teknologistakken til et selskap.

Måling og kommunikasjon er fortsatt vanskelige problemer

Kodeoptimaliseringer i industriell skala – som justeringer av GPU-kjerne eller forbedringer i flere lag i Chrome V8-motoren – er fortsatt vanskelige å evaluere. Nåværende referansetester er stort sett for små, pakkede problemer. Den mest praktiske metrikken, SWE-Bench, ber ganske enkelt en AI-modell om å fikse en feil på GitHub – en programmeringsøvelse på lavt nivå som involverer noen hundre linjer med kode og potensielt eksponerer data, og ignorerer et bredt spekter av virkelige scenarier, som AI-assistert refaktorering, menneske-maskin-parprogrammering eller omskriving av høyytelsessystemer med millioner av linjer med kode. Inntil referansetester utvides til å dekke disse scenariene med høyere risiko, vil det å måle fremgang – og dermed akselerere den – forbli en åpen utfordring.

I tillegg er menneske-maskin-kommunikasjon også en stor barriere. Doktorgradsstudent Alex Gu – hovedforfatteren – sa at det å samhandle med AI for tiden fortsatt er som «en skjør kommunikasjonslinje». Når han ber AI om å generere kode, får han ofte tilbake store, ustrukturerte filer, sammen med noen få enkle og uoversiktlige testsett. Dette gapet gjenspeiles også i det faktum at AI ikke effektivt kan dra nytte av programvareverktøy som er kjent for mennesker, som feilsøkingsprogrammer, statiske analysatorer osv.

Oppfordring til handling fra fellesskapet

Forfatterne argumenterer for at det ikke finnes noen tryllestavløsning på disse problemene, og etterlyser innsats på fellesskapsnivå: å bygge data som gjenspeiler den faktiske utviklingsprosessen til programmerere (hvilken kode som skal beholdes, hvilken kode som skal fjernes, hvordan kode refaktoriseres over tid, osv.); felles vurderingsverktøy for refaktoreringskvalitet, patch-holdbarhet og nøyaktighet i systemoverganger; og å bygge transparente verktøy som lar AI uttrykke usikkerhet og invitere til menneskelig inngripen.

Doktorgradsstudent Alex Gu ser dette som en «oppfordring til handling» for store åpen kildekode-miljøer som ingen enkelt laboratorium kan levere. Solar-Lezama ser for seg at fremgangen kommer i små, trinnvise trinn – «forskningsfunn som løser én del av problemet om gangen» – og transformerer AI fra et «kodeforslagsverktøy» til en ekte ingeniørpartner.

«Hvorfor er dette viktig? Programvare er allerede grunnlaget for finans, transport, helsevesen og omtrent daglige aktiviteter. Men den menneskelige innsatsen for å bygge og vedlikeholde den sikkert er i ferd med å bli en flaskehals», sa Gu. «En AI som kan gjøre det tunge arbeidet uten å gjøre skjulte feil, ville frigjøre programmerere til å fokusere på kreativitet, strategi og etikk. Men for å komme dit må vi forstå at det å fullføre et kodestykke er den enkle delen – den vanskelige delen er alt annet.»

(Kort oversatt fra MIT News)

Kilde: https://vietnamnet.vn/hanh-trinh-dai-cua-ai-trong-ky-thuat-phan-mem-tu-dong-hoa-2426456.html