Bilde for innlegg 65.jpg
AI automatiserer alt, og kan det erstatte programmerere? Foto: Midjourney

En gruppe forskere har nettopp publisert et omfattende kart over utfordringene kunstig intelligens (KI) står overfor innen programvareutvikling, og foreslått en forskningsplan for å videreutvikle feltet.

Se for deg en fremtid der AI i stillhet tar over de kjedelige oppgavene innen programvareutvikling: refaktorering av kompleks kode, migrering av eldre systemer og sporing av rasebaserte feil, slik at menneskelige programvareingeniører kan fokusere utelukkende på systemarkitektur, design og kreative problemer som maskiner ennå ikke kan løse. Nylige fremskritt innen AI ser ut til å ha brakt den visjonen svært nær.

En ny studie utført av forskere ved MITs datavitenskapelige og kunstige intelligenslaboratorium (CSAIL) og partnerforskningsinstitutter har imidlertid vist at for å realisere den fremtiden må vi først konfrontere de svært reelle utfordringene i øyeblikket.

«Mange sier at programmerere ikke lenger er nødvendige fordi AI har automatisert alt», delte professor Armando Solar-Lezama, foreleser i elektroteknikk og informatikk ved MIT, seniorforsker ved CSAIL og hovedforfatter av studien. «I virkeligheten har vi gjort svært betydelige fremskritt. Verktøyene vi har nå er langt kraftigere enn før. Men det er fortsatt en lang vei å gå for å nå det fulle potensialet for automatisering.»

Professor Armando Solar-Lezama argumenterer for at den nåværende rådende oppfatningen forenkler programvareutvikling til en oppgave som ligner på en students programmeringsoppgave: å motta en liten funksjonsoppgave og skrive kode for å håndtere den, eller å gjøre en LeetCode-lignende oppgave. Samtidig er virkeligheten langt mer kompleks: fra kodeomstrukturering for å optimalisere design, til storskala migreringer av millioner av kodelinjer fra COBOL til Java som fundamentalt endrer et selskaps teknologiplattform.

Måling og kommunikasjon er fortsatt utfordrende problemer.

Kodeoptimalisering i industriell skala – som justering av GPU-kjerner eller forbedringer på flere nivåer i Chrome V8 – er fortsatt vanskelig å vurdere. Nåværende benchmarks fokuserer primært på små, pakkede problemer. Den mest praktiske metrikken som er tilgjengelig for øyeblikket, SWE-Bench, krever ganske enkelt en AI-modell for å fikse en feil på GitHub – tilsvarende en programmeringsøvelse på lavt nivå, som involverer noen hundre linjer med kode, med potensial for datalekkasjer, og ignorerer en rekke andre virkelige scenarier som AI-assistert refaktorering, menneske-maskin-programmering eller omskriving av høyytelsessystemer med millioner av linjer med kode. Inntil benchmarks utvides til å omfatte scenarier med høyere risiko, vil det å måle fremgang – og dermed drive den – forbli en åpen utfordring.

Videre er menneske-maskin-kommunikasjon også en stor barriere. Hovedforfatter Alex Gu, en masterstudent, uttalte at samhandling med AI for tiden er som «en tynn kommunikasjonstråd». Når han ber AI om å generere kode, mottar han ofte store, ustrukturerte filer sammen med noen få enkle og rudimentære testtilfeller. Dette gapet er også tydelig i AIs manglende evne til effektivt å bruke programvareverktøy som er kjent for mennesker, for eksempel feilsøkingsprogrammer og statiske analysatorer.

En oppfordring til handling fra lokalsamfunnet.

Forfatterne argumenterer for at det ikke finnes noen tryllestavløsning på disse problemene, og etterlyser innsats på fellesskapsnivå: å bygge data som gjenspeiler programmerernes faktiske utviklingsprosess (hvilken kode som beholdes, hvilken som forkastes, 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-fellesskap som ingen enkelt laboratorium kan oppnå. Solar-Lezama ser for seg fremgang som kommer fra små, gjensidig forsterkende trinn – «forskningsresultater som sekvensielt adresserer deler av problemet» – og dermed transformerer AI fra et «kodeanbefalingsverktøy» til en ekte ingeniørpartner.

«Hvorfor er dette viktig? Programvare er nå grunnlaget for finans, transport, helsevesen og alle daglige aktiviteter. Men menneskelig innsats for å bygge og vedlikeholde dem sikkert er i ferd med å bli en flaskehals», delte Gu. «En AI som kan håndtere det tunge arbeidet uten å skape skjulte feil, vil tillate programmerere å fokusere på kreativitet, strategi og etikk. Men for å oppnå det, må vi forstå at det å fullføre et kodestykke bare er den enkle delen – den vanskelige delen ligger i alt annet.»

(Tilpasset fra MIT News)

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