GitHub-challenge moet probleem met zoeken naar code oplossen

Stay tuned, abonneer!

GitHub roept data scientists op om mee te helpen bij een groot probleem voor ontwikkelaars: hoe er gezocht moet worden naar code voor onderzoek of hergebruik. Het platform heeft hiervoor de CodeSearchNet-uitdaging opgezet, om code-zoekmodellen te evalueren en hun voortgang te versnellen.

Volgens Hamel Husain van GitHub is “het zoeken naar code voor hergebruik, om op te roepen of om te zien hoe anderen een probleem afhandelen één van de meest voorkomende taken in de dag van een software-ontwikkelaar”, schrijft Devclass

Zoekmachines werken niet goed

Probleem is echter dat er naar code gezocht wordt aan de hand van natural language. “Hoewel dat gerelateerd is aan andere taken om informatie te vinden, moet er hier een kloof overbrugd worden tussen de taal die gebruikt wordt in code (vaak afgekort en zeer technisch) en de natuurlijke taal die geschikter is om vage concepten en ideeën te beschrijven”, aldus de uitdaging.

“Zoekmachines voor code zijn vaak frustrerend en begrijpen nooit volledig wat we willen, in tegenstelling tot reguliere zoekmachines op het internet”, vertelt Husain. 

Door het eenvoudiger te maken om relevante code te vinden, wordt ontwikkelaars een grote hoeveelheid werk bespaard, evenals de bijbehorende frustraties vanwege de beperkingen van huidige aanpakken. De tijd die ze daarmee besparen kunnen ze inzetten om andere problemen op te lossen. 

De uitdaging

Om zoekmachines beter te laten zoeken naar code, heeft GitHub nu dus de CodeSearchNet-uitdaging opgezet. 

Om onderzoekers aan te moedigen heeft het platform samengewerkt met machine learning tracking-specialisten Weights & Biases, om de CodeSearchNet Challenge evaluatieomgeving en een leaderboard uit te brengen. Ook wordt er een grote dataset vrijgegeven om data scientists te helpen om modellen te bouwen, evenals “diverse baseline modellen om de huidige state of the art te tonen”. 

In de dataset zitten onder meer “functions met bijbehorende documentatie geschreven in Go, Java, JavaScript, PHP, Python en Ruby, van open source-projecten op GitHub.” In totaal zitten er 6 miljoen methods in. Een derde daarvan heeft bijbehorende documentatie.