Foto 65.jpg
AI automatiserar allt och kan det ersätta programmerare? Foto: Midjourney

Ett forskarteam har just publicerat en omfattande karta över de utmaningar som artificiell intelligens (AI) står inför inom mjukvaruutveckling, och föreslagit en forskningsplan för att driva området vidare.

Föreställ dig en framtid där AI i tysthet tar över de vardagliga uppgifterna inom mjukvaruutveckling: att refaktorera trasslig kod, migrera äldre system och jaga kapplöpningsförhållanden, vilket ger mänskliga mjukvaruingenjörer frihet att fokusera på systemarkitektur, design och kreativa problem som maskiner ännu inte kan lösa. De senaste framstegen inom AI verkar föra den visionen närmare.

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

”Många säger att programmerare inte längre behövs eftersom AI kan automatisera allt”, säger Armando Solar-Lezama, professor i elektroteknik och datavetenskap vid MIT, seniorforskare vid CSAIL och studiens huvudförfattare. ”Vi har faktiskt gjort betydande framsteg. De verktyg vi har idag är mycket kraftfullare än de var tidigare. Men vi har fortfarande en lång väg att gå för att förverkliga automatiseringens fulla potential.”

Professor Armando Solar-Lezama menar att den allmänna uppfattningen om programvaruutveckling är att det är en uppgift som liknar en studentprogrammeringsuppgift: ta en liten funktion och skriv kod för att hantera den, eller gör en LeetCode-liknande övning. Verkligheten är mycket mer komplex: från kodomstruktureringar för att optimera design, till storskaliga migreringar med miljontals kodrader från COBOL till Java som förändrar hela ett företags teknikstack.

Mätning och kommunikation är fortfarande svåra problem

Kodoptimeringar i industriell skala – som justeringar av GPU-kärnor eller flerskiktsförbättringar i Chrome V8-motorn – är fortfarande svåra att utvärdera. Nuvarande riktmärken är mestadels avsedda för små, paketerade problem. Det mest praktiska måttet, SWE-Bench, ber helt enkelt en AI-modell att fixa en bugg på GitHub – en programmeringsövning på låg nivå som involverar några hundra rader kod och potentiellt exponerar data, och ignorerar ett brett spektrum av verkliga scenarier, som AI-assisterad refactoring, programmering mellan människa och maskin eller omskrivningar av högpresterande system med miljontals rader kod. Tills riktmärkena utökas till att täcka dessa scenarier med högre risk kommer det att förbli en öppen utmaning att mäta framsteg – och därmed accelerera dem.

Dessutom är människa-maskin-kommunikation också ett stort hinder. Doktoranden Alex Gu – huvudförfattaren – sa att interaktion med AI för närvarande fortfarande är som "en ömtålig kommunikationslinje". När han ber AI att generera kod får han ofta tillbaka stora, ostrukturerade filer, tillsammans med några enkla och skissartade testuppsättningar. Denna lucka återspeglas också i det faktum att AI inte effektivt kan dra nytta av programvaruverktyg som är bekanta för människor, såsom felsökare, statiska analysatorer etc.

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 ska behållas, vilken kod som ska tas bort, hur kod omstruktureras över tid, etc.); gemensamma bedömningsverktyg för omstruktureringskvalitet, patchhå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 leverera. Solar-Lezama föreställer sig att framsteg sker i små, stegvisa steg – ”forskningsresultat som löser en del av problemet i taget” – och omvandlar AI från ett ”kodförslagsverktyg” till en sann ingenjörspartner.

”Varför spelar detta roll? Programvara är redan grunden för finans, transport, sjukvård och nästan vardagsaktiviteter. Men den mänskliga ansträngningen att bygga och underhålla den på ett säkert sätt håller på att bli en flaskhals”, sa Gu. ”En AI som kan göra det tunga arbetet utan att göra dolda fel skulle frigöra programmerare så att de kan fokusera på kreativitet, strategi och etik. Men för att komma dit måste vi förstå att det är den enkla delen att färdigställa en kod – den svåra delen är allt annat.”

(Kort översatt från MIT News)

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