AI-bot gebruikt deep learning om code automatisch te vervolledigen

Een student computerwetenschappen heeft een AI-bot ontwikkeld die gebruik maakt van deep learning om onafgewerkte code automatisch te vervolledigen. De tool maakt gebruik van een aangepaste versie van het GPT-2-taalmodel van OpenAI.

OpenAI maakte eerder dit jaar nieuws met GPT-2, door de AI-tekstgenerator te bestempelen als ‘zo goed, dat het te gevaarlijk is om op de markt te brengen’. Het neuraal netwerk achter GPT-2 kan op basis van niets meer dan een openingszin van een nieuwsartikel of roman voorspellen wat er vervolgens moet volgen. Daarvoor werd het getraind op miljoenen webpagina’s.

Jacob Jackson, een student computerwetenschappen aan de University of Waterloon in Canada en ontwikkelaar van de code-aanvultool TabNine, heeft een versie van zijn software gemaakt die steunt op een aangepaste versie van GPT-2 om onafgewerkte coderegels aan te vullen met behulp van deep learning.

Deep TabNine

Er zijn vandaag weliswaar al verschillende auto-aanvultools voor code op de markt, maar de toevoeging van GPT-2 als onderliggend motor, maakt Deep TabNine – zoals Jackson de AI-versie van zijn tool heeft gedoopt – enigszins opmerkelijk. Door een beter begrip van de context, moet Deep TabNine in theorie slimmer zijn dan vergelijkbare tools zonder AI.

Eenmaal Deep TabNine in een code-editor is geïnstalleerd, analyseert de tool in realtime elke lijn code die wordt getypt en worden mogelijke aanvullingen gesuggereerd. De programmeur kan zo sneller de juiste suggestie kiezen om de codelijn aan te vullen.

“Auto-aanvullen is een geweldige use-case voor dit type technologie”, zegt Jackson in een interview met The Register. “Alle programmeurs besteden veel tijd aan het schrijven van code die met AI aannemelijk sneller kan worden gemaakt. In vergelijking met het voltooien van taal, is automatisch aanvullen in code technisch gezien een eenvoudiger probleem.”

In de cloud

Momenteel is de tool nog vrij computerintensief, waardoor een laptop mogelijk niet volstaat om Deep TabNine op uit te voeren. Jackson werkt daarom aan een cloudaanbod met GPU-acceleratie, dat momenteel in bèta beschikbaar is, en wil ook graag een enterprise-versie in het leven roepen die bedrijven on-premises kunnen draaien.

DeepTab Nine werd in Rust geschreven enh ondersteunt de belangrijkste programmeertalen: Python, JavaScript, Java, C++, C, PHP, Go, C#, Ruby, Objective-C, Rust, Swift, TypeScript, Haskell, OCaml, Scala, Kotlin, Perl, SQL, HTML, CSS en Bash.