DeepMind heeft een systeem voor kunstmatige intelligentie ontwikkeld, AlphaCode genaamd, dat zegt "computerprogramma's op een competitief niveau te schrijven". Het systeem werd getest op coderingsuitdagingen die werden gebruikt in menselijke competitie en behoorde tot de top 54% van het programma.
Dit is een belangrijke stap voorwaarts voor offline coderen volgens DeepMind, hoewel AlphaCode-vaardigheden niet noodzakelijk representatief zijn voor de programmeertaken waarmee de gemiddelde codeur wordt geconfronteerd.
Oriol Vinyals, hoofdwetenschapper bij DeepMind, merkt op dat het onderzoek zich nog in de beginfase bevindt, maar de bevindingen hebben het bedrijf dichter bij het bouwen van flexibele AI gebracht om complexe codeerproblemen op te lossen. "We zijn enthousiast over het potentieel van AlphaCode om programmeurs en niet-programmeurs te helpen code te schrijven, de productiviteit te verbeteren of nieuwe manieren te creëren om software te bouwen", aldus Vinyals.
In een voorbeeldprobleem waarbij AlphaCode werd getest, werd de deelnemers gevraagd een manier te vinden om een enkele reeks willekeurige herhaalde letters s en t om te zetten met een beperkte set invoer:
“Je krijgt twee strings s en t, die elk uit kleine Latijnse letters bestaan. U gaat de tekenreeks teken afdrukken, beginnend met het eerste teken en eindigend met het laatste.
Wanneer u op het punt staat een teken te typen, kunt u in plaats van op de knop waarmee dat teken wordt afgedrukt, op de knop "Backspace" drukken. Als u op deze knop drukt, wordt het laatst getypte teken dat nog niet is verwijderd, verwijderd (of doet er niets als alle reeds afgedrukte tekens zijn verwijderd of als u nog geen teken hebt getypt). Als de tekenreeks s bijvoorbeeld "abcbd" is en u drukt op de Backspace-knop in plaats van de eerste en vierde tekens af te drukken, is het resultaat de tekenreeks "bd" (de eerste keer dat u op Backspace drukt, worden geen tekens verwijderd en de tweede als u op deze knop drukt, wordt het teken "c" verwijderd). Nog een voorbeeld: als s "abcaa" is en je drukt op Backspace in plaats van de laatste twee letters, dan is het "a".
U moet bepalen of u de tekenreeks t kunt krijgen als u de tekenreeks s probeert te typen door op Backspace te drukken in plaats van op de knoppen die overeenkomen met enkele (mogelijk geen) letters in de tekenreeks s."
AlphaCode genereerde meer mogelijke antwoorden en verwijderde ze door de code uit te voeren en de uitvoer te controleren, net zoals een menselijke concurrent zou doen.
Het systeem is getest op 10 problemen, die door 5000 gebruikers op de Codeforces-website zijn opgelost. Gemiddeld staat ze in de top 54,3% van de reacties.
DeepMind merkt op dat de huidige vaardigheden van AlphaCode momenteel alleen van toepassing zijn op het gebied van competitief programmeren, maar de mogelijkheden ervan openen de deur naar het creëren van toekomstige tools die programmeren toegankelijker maken.
Veel andere bedrijven werken aan soortgelijke toepassingen. Zo bracht OpenAI in augustus 2021 Codex uit, een nieuw systeem dat eenvoudige Engelse zinnen automatisch omzet in code. Codex is gebaseerd op GPT-3.
Tot nu toe nemen systemen echter nog lang niet het werk van menselijke programmeurs over. De code die ze produceren is vaak buggy, en omdat de algoritmen meestal worden getraind in openbare codebibliotheken, reproduceren ze soms auteursrechtelijk beschermd materiaal.
Dus in juni 2021 introduceerden Microsoft en GitHub de Copilot-programmeerassistent op basis van het Codex neurale netwerk van Open AI. Het systeem is getraind om met verschillende frameworks en programmeertalen te werken. In augustus werd een verbeterde versie van de Codex uitgebracht, die Engelse zinnen vertaalt in programmacode.
De ontwikkelaars merkten op dat de neurale netwerkassistent lijnen genereert uit open source-projecten en niet voldoet aan de oorspronkelijke licentie. Ze klaagden ook dat Copilot tientallen regels met citaten en opmerkingen van open source-projecten genereerde in plaats van slechts een paar regels code. GitHub verduidelijkte dat Copilot doorgaans geen exacte codefragmenten reproduceert, maar afgeleide werken maakt van eerder ontvangen invoer. Het bedrijf beweert dat dit slechts 0,1% van de tijd gebeurt.
GitHub gaf toen toe dat de ontwikkelaars bij het trainen van Copilot alle openbare code gebruikten die beschikbaar was in de repositories van de service, ongeacht het type licentie.
Ook bleek dat ongeveer 40% van de door Copilot geproduceerde code fouten en kwetsbaarheden bevat.
bbabo.Net