Afbeelding voor bericht 65.jpg
AI automatiseert alles, en zou het programmeurs kunnen vervangen? Foto: Midjourney

Een groep onderzoekers heeft onlangs een uitgebreide kaart gepubliceerd van de uitdagingen waar kunstmatige intelligentie (AI) voor staat op het gebied van softwareontwikkeling, en een onderzoeksroutekaart voorgesteld om het vakgebied verder te ontwikkelen.

Stel je een toekomst voor waarin AI geruisloos de saaie taken van softwareontwikkeling overneemt: het herstructureren van complexe code, het migreren van verouderde systemen en het opsporen van op ras gebaseerde bugs, zodat menselijke softwareontwikkelaars zich volledig kunnen concentreren op systeemarchitectuur, ontwerp en creatieve problemen die machines nog niet kunnen oplossen. Recente ontwikkelingen in AI lijken die visie heel dichtbij te hebben gebracht.

Een nieuwe studie van wetenschappers van het Computer Science and Artificial Intelligence Laboratory (CSAIL) van MIT en partneronderzoeksinstituten heeft echter aangetoond dat we, om die toekomst te realiseren, eerst de zeer reële uitdagingen van het huidige moment moeten aanpakken.

"Veel mensen zeggen dat programmeurs niet meer nodig zijn omdat AI alles heeft geautomatiseerd", aldus professor Armando Solar-Lezama, docent elektrotechniek en computerwetenschappen aan MIT, senior onderzoeker bij CSAIL en hoofdauteur van de studie. "In werkelijkheid hebben we aanzienlijke vooruitgang geboekt. De tools die we nu hebben, zijn veel krachtiger dan voorheen. Maar om het volledige potentieel van automatisering te benutten, hebben we nog een lange weg te gaan."

Professor Armando Solar-Lezama betoogt dat de huidige heersende opvatting software-engineering simplificeert tot een taak die vergelijkbaar is met een programmeeropdracht voor een student: het ontvangen van een kleine functieopdracht en het schrijven van code om deze af te handelen, of het uitvoeren van een LeetCode-achtige opdracht. De realiteit is echter veel complexer: van code-refactoring om het ontwerp te optimaliseren tot grootschalige migraties van miljoenen regels code van COBOL naar Java die het technologieplatform van een bedrijf fundamenteel veranderen.

Meten en communiceren blijven lastige problemen.

Codeoptimalisatie op industriële schaal – zoals het optimaliseren van GPU-cores of het verbeteren van meerdere lagen in Chrome V8 – blijft lastig te beoordelen. De huidige benchmarks richten zich voornamelijk op kleine, afgebakende problemen. De meest praktische meetmethode die momenteel beschikbaar is, SWE-Bench, vereist simpelweg dat een AI-model een bug op GitHub oplost – vergelijkbaar met een programmeeropdracht op laag niveau, bestaande uit een paar honderd regels code, met het risico op datalekken, en waarbij een hele reeks andere praktijkscenario's zoals AI-ondersteunde refactoring, mens-machine-programmering of het herschrijven van hoogwaardige systemen met miljoenen regels code buiten beschouwing wordt gelaten. Zolang benchmarks niet worden uitgebreid met scenario's met een hoger risico, blijft het meten van vooruitgang – en daarmee het stimuleren ervan – een grote uitdaging.

Bovendien vormt de communicatie tussen mens en machine een grote barrière. Hoofdauteur Alex Gu, een promovendus, stelde dat de interactie met AI momenteel aanvoelt als "een flinterdunne communicatiedraad". Wanneer hij AI vraagt ​​om code te genereren, ontvangt hij vaak grote, ongestructureerde bestanden samen met een paar eenvoudige en rudimentaire testgevallen. Deze kloof is ook duidelijk zichtbaar in het onvermogen van AI om effectief gebruik te maken van softwaretools die mensen kennen, zoals debuggers en statische analyseprogramma's.

Een oproep tot actie vanuit de gemeenschap.

De auteurs stellen dat er geen magische oplossing is voor deze problemen en pleiten voor gezamenlijke inspanningen op gemeenschapsniveau: het verzamelen van data die het daadwerkelijke ontwikkelingsproces van programmeurs weerspiegelt (welke code behouden blijft, welke wordt weggegooid, hoe code in de loop der tijd wordt herzien, enz.), gemeenschappelijke beoordelingsinstrumenten voor de kwaliteit van herzieningen, de duurzaamheid van patches en de nauwkeurigheid bij systeemovergangen; en het bouwen van transparante tools waarmee AI onzekerheid kan uiten en menselijke interventie mogelijk maakt.

Promovendus Alex Gu ziet dit als een "oproep tot actie" voor grootschalige open-sourcegemeenschappen, iets wat geen enkel laboratorium alleen kan bereiken. Solar-Lezama ziet vooruitgang voortkomen uit kleine, elkaar versterkende stappen – "onderzoeksresultaten die stapsgewijs delen van het probleem aanpakken" – waardoor AI transformeert van een "tool voor codeaanbevelingen" naar een echte engineeringpartner.

“Waarom is dit belangrijk? Software vormt tegenwoordig de basis van financiën, transport, gezondheidszorg en vrijwel elke dagelijkse activiteit. Maar de menselijke inspanningen om deze software veilig te bouwen en te onderhouden, vormen een knelpunt”, aldus Gu. “Een AI die het zware werk kan doen zonder verborgen fouten te creëren, zou programmeurs in staat stellen zich te concentreren op creativiteit, strategie en ethiek. Maar om dat te bereiken, moeten we begrijpen dat het voltooien van een stuk code slechts het makkelijke deel is – het moeilijke deel zit hem in al het andere.”

(Gebaseerd op MIT News)

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