Het bedrijf DeepMind, dat bekendheid verwierf door zijn ontwikkelingen op het gebied van kunstmatige intelligentie en het creƫren van neurale netwerken die in staat zijn om computer- en bordspellen op menselijk niveau te spelen, heeft het project AlphaCode gepresenteerd. Dit project ontwikkelt een machine learning-systeem voor het genereren van code, dat kan deelnemen aan programmeerwedstrijden op het Codeforces-platform en een gemiddeld resultaat kan tonen. Een belangrijke eigenschap van de ontwikkeling is het vermogen om code te genereren in de programmeertalen Python of C++, waarbij tekst met de probleemstelling in het Engels als input wordt genomen.
Voor het testen van het systeem zijn 10 nieuwe Codeforces-wedstrijden geselecteerd met meer dan 5000 deelnemers, gehouden na de training van het machine learning-model. De resultaten van het oplossen van de opdrachten hebben ervoor gezorgd dat AlphaCode ongeveer in het midden van de ranking van deze wedstrijden is gekomen (54,3%). De verwachte totale score van AlphaCode bedroeg 1238 punten, wat betekent dat het in de Top 28% van alle deelnemers aan Codeforces komt, die in de afgelopen 6 maanden minstens ƩƩn keer aan wedstrijden hebben deelgenomen. Er wordt opgemerkt dat het project zich nog in een vroeg stadium van ontwikkeling bevindt en dat in de toekomst de kwaliteit van de gegenereerde code moet worden verbeterd, evenals de verdere ontwikkeling van AlphaCode richting systemen die helpen bij coderen of applicatie-ontwikkelingsmiddelen die gebruikt kunnen worden door mensen zonder programmeervaardigheden.
In het project wordt de architectuur van het neurale netwerk āTransformerā gebruikt in combinatie met sampling- en filtermethoden, die het mogelijk maken om verschillende onvoorspelbare codevarianten te genereren die overeenkomen met tekst in natuurlijke taal. Na filtering, clustering en rangschikking wordt de meest optimale werkende code uit de gevormde stroom van varianten geselecteerd, die vervolgens wordt gecontroleerd op het verkrijgen van het juiste resultaat (in elke wedstrijdopdracht wordt een voorbeeld van invoergegevens gegeven en het bijbehorende resultaat dat behaald moet worden na het uitvoeren van het programma).

Voor de ruwe training van het machine learning-systeem werd een codebase gebruikt die beschikbaar is in openbare GitHub-repositories. Na de voorbereiding van het initiƫle model werd de optimalisatiefase uitgevoerd op basis van een verzameling code met voorbeelden van problemen en oplossingen die werden aangeboden aan deelnemers van competities zoals Codeforces, CodeChef, HackerEarth, AtCoder en Aizu. In totaal werd 715 GB aan code van GitHub en meer dan een miljoen voorbeelden van oplossingen voor typische competitietaken gebruikt voor de training. Voorafgaand aan de codegeneratie onderging de probleemomschrijving een normalisatiefase, waarin alles overbodige werd verwijderd en alleen betekenisvolle delen werden behouden.

Bron: opennet.ru
