Bild för inlägg 65.jpg
AI automatiserar allt, och kan det ersätta programmerare? Foto: Midjourney

En grupp forskare har just publicerat en omfattande karta över de utmaningar som artificiell intelligens (AI) står inför inom mjukvaruutveckling, och föreslagit en forskningsfärdplan för att ytterligare utveckla området.

Tänk dig en framtid där AI i tysthet tar över de tråkiga uppgifterna inom mjukvaruutveckling: att refaktorera komplex kod, migrera äldre system och spåra rasbaserade buggar, så att mänskliga mjukvaruingenjörer kan fokusera helt på systemarkitektur, design och kreativa problem som maskiner ännu inte kan lösa. De senaste framstegen inom AI verkar ha fört den visionen mycket nära.

En ny studie av forskare vid MIT:s Computer Science and Artificial Intelligence Laboratory (CSAIL) och partnerforskningsinstitut har dock visat att för att förverkliga den framtiden måste vi först konfrontera de mycket verkliga utmaningarna i nuet.

”Många säger att programmerare inte längre är nödvändiga eftersom AI har automatiserat allt”, delade professor Armando Solar-Lezama, föreläsare i elektroteknik och datavetenskap vid MIT, seniorforskare vid CSAIL och huvudförfattare till studien. ”I verkligheten har vi gjort mycket betydande framsteg. De verktyg vi har nu är mycket kraftfullare än tidigare. Men för att nå automatiseringens fulla potential är det fortfarande en lång väg att gå.”

Professor Armando Solar-Lezama menar att den rådande uppfattningen förenklar programvaruutveckling till en uppgift som liknar en students programmeringsuppgift: att få en liten funktionsuppgift och skriva kod för att hantera den, eller att göra en LeetCode-liknande uppgift. Samtidigt är verkligheten mycket mer komplex: från kodomstrukturering för att optimera design, till storskaliga migreringar av miljontals kodrader från COBOL till Java som fundamentalt förändrar ett företags teknikplattform.

Mätning och kommunikation är fortfarande utmanande problem.

Kodoptimering i industriell skala – såsom justering av GPU-kärnor eller flernivåförbättringar i Chrome V8 – är fortfarande svårt att bedöma. Nuvarande riktmärken fokuserar främst på små, paketerade problem. Den mest praktiska mätvärden som finns tillgängliga för närvarande, SWE-Bench, kräver helt enkelt en AI-modell för att åtgärda ett fel på GitHub – motsvarande en programmeringsövning på låg nivå, som involverar några hundra rader kod, med potential för dataläckor, och ignorerar en mängd andra verkliga scenarier som AI-assisterad refactoring, programmering mellan människa och maskin eller omskrivning av högpresterande system med miljontals rader kod. Tills riktmärken utökas till att omfatta scenarier med högre risk kommer det att förbli en öppen utmaning att mäta framsteg – och därmed driva dem.

Dessutom är kommunikation mellan människa och maskin också ett stort hinder. Huvudförfattaren Alex Gu, en doktorand, uppgav att interaktion med AI för närvarande är som "en tunn kommunikationstråd". När han ber AI att generera kod får han ofta stora, ostrukturerade filer tillsammans med några enkla och rudimentära testfall. Denna lucka är också tydlig i AI:s oförmåga att effektivt använda programvaruverktyg som är bekanta för människor, såsom felsökare och statiska analysatorer.

En uppmaning till handling från samhället.

Författarna menar att det inte finns någon magisk lösning på dessa problem och efterlyser insatser på samhällsnivå: att bygga data som återspeglar programmerarnas faktiska utvecklingsprocess (vilken kod som behålls, vilken som kasseras, hur kod omstruktureras över tid, etc.), gemensamma bedömningsverktyg för omstruktureringskvalitet, patchars hållbarhet och noggrannhet i systemövergångar; och att bygga transparenta verktyg som gör det möjligt för AI att uttrycka osäkerhet och bjuda in mänsklig intervention.

Doktoranden Alex Gu ser detta som en ”uppmaning till handling” för storskaliga öppen källkodsgemenskaper som inget enskilt labb kan uppnå. Solar-Lezama föreställer sig framsteg som kommer från små, ömsesidigt förstärkande steg – ”forskningsresultat som sekventiellt tar itu med delar av problemet” – och därigenom omvandla AI från ett ”kodrekommendationsverktyg” till en sann ingenjörspartner.

”Varför är detta viktigt? Programvara är nu grunden för finans, transport, sjukvård och alla dagliga aktiviteter. Men mänskliga ansträngningar att bygga och underhålla dem på ett säkert sätt håller på att bli en flaskhals”, delade Gu. ”En AI som kan hantera det tunga arbetet utan att skapa dolda fel skulle göra det möjligt för programmerare att fokusera på kreativitet, strategi och etik. Men för att uppnå det måste vi förstå att det bara är den enkla delen att färdigställa en kod – den svåra delen ligger i allt annat.”

(Anpassad från MIT News)

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