De TransCoder van Facebook gebruikt machinevertalingen om met behulp van AI code van de ene programmeertaal automatisch om te zetten in een andere taal. Het systeem zou een revolutie kunnen betekenen voor programmeurs.


Hoe heeft technologie een impact op je business?
Ontvang elke week het zakelijk IT-nieuws rechtstreeks in je inbox!



In een onderzoekspaper kondigen medewerkers van Facebook een nieuwe methode aan om programmeertalen te converteren. Ze ontwikkelden een TransCoder om code in een high-level taal als Java, C++ en Python om te zetten in een andere taal. Aan de basis van deze nieuwe tool ligt artificiële intelligentie. Met behulp van patronen in datasets en minimale menselijke interventie slaagt de TransCoder erin om andere vertaalsystemen te overtroeven.

Code omzetten naar een andere programmeertaal is een tijdrovende en vooral moeilijke klus. Om de vertaling goed te laten verlopen, moeten programmeurs vertrouwd zijn met de beide talen. Hoewel een transcompiler – een softwaretool waarmee je de code kan omzetten in een andere taal – in theorie wel helpt, blijken er in de praktijk een aantal problemen te zijn. Compilers gebruiken vertaalregels die door mensen in het programma worden ingegeven. De resultaten zijn vaak echter ‘niet leesbaar, respecteren de taalregels niet en moeten achteraf door mensen worden gecorrigeerd.’

Heel nauwkeurig

De TransCoder van Facebook pakt die problemen aan met ‘unsupervised learning’. Onderzoekers geven de tool in een training eerst heel wat data in meerdere programmeertalen te verwerken. Als input gebruiken ze daarbij twee stukjes code in twee verschillende talen die dezelfde instructie uitdrukken. Daarbij baseert het systeem zich op een aantal vaste tokens of ankerpunten in de talen: keywords als ‘and’ en ‘if’, maar ook cijfers of wiskundige operatoren. Met een auto-encodingproces leert het systeem daarna om juiste vertalingen te genereren wanneer de input veel ruis bevat.

Het systeem van de TransCoder wordt getraind op broncode van het opensourceplatform GitHub. Na de pretraining voeren de onderzoekers ook de auto-encoding uit. De autonome transcompiler van Facebook werd getest met 825 parallelle functies in C++, Java en Python verzameld op GeeksforGeeks. In veel gevallen bereikte de TransCoder een hoge nauwkeurigheidsgraad. Bij vertalingen van Java naar C++ was de output in 91,6 procent van de gevallen juist. Voor de andere talencombinaties schommelt dat tussen 50 en 80 procent.

De uitvinding van Facebook zou wel eens een revolutie in applicatieontwikkeling kunnen ontketenen. ‘Je kan TransCoder gemakkelijk uitbreiden naar elke programmeertaal, het vereist geen vakkennis en presteert ruimschoots beter dan commerciële oplossingen,’ schijven de coauteurs in de paper. ‘Onze resultaten suggereren dat we veel fouten die door het model zijn gemaakt gemakkelijk kunnen verhelpen door eenvoudige beperkingen aan de decoder toe te voegen.’

LAAT EEN REACTIE ACHTER

Please enter your comment!
Please enter your name here