Met behulp van AI geeft GitHub gebruikers aanraders voor problemen die bij hun interesses passen. Op die manier moet het minder intimiderend worden voor gebruikers om ergens te beginnen bij het bijdragen aan projecten.
Grote open-sourceprojecten op GitHub hebben vaak lange lijsten met problemen die aangepakt moeten worden. Om het makkelijker te maken om de meest urgente problemen op te sporen, heeft GitHub onlangs de functie “good first issues” geïntroduceerd. Die functie koppelt contributors aan problemen die waarschijnlijk bij hun interesses passen. De eerste versie, die in mei 2019 werd gelanceerd, bevatte aanbevelingen die gebaseerd waren op labels die door admins werden aangebracht op bepaalde problemen. De bijgewerkte versie, die vorige maand werd gelanceerd, bevat een AI-algoritme dat volgens GitHub in ongeveer 70% van de repositories problemen aan het licht brengt, die vervolgens aan gebruikers worden aanbevolen.
GitHub merkt op dat het het eerste deep-learning-product is dat op Github.com wordt gelanceerd.
Minder handmatig werk
Volgens Tiferet Gazit, senior machine learning engineer bij GitHub, heeft het bedrijf vorig jaar een analyse en een handmatig onderzoek uitgevoerd om een lijst van 300 labels op te stellen die in populaire open source repositories worden gebruikt. Deze labels waren allemaal synoniemen voor ‘good first issue’ of ‘documentation’, denk aan ‘beginner friendly’, ‘easy bug fix’ en ‘low-hanging-fruit’. Door op die labels te vertrouwen, leek het echter alsof slechts ongeveer 40% van de aanbevolen repositories problemen hadden die zo aan de oppervlakte konden komen. Bovendien moeten admins op die manier zelf problemen blijven labelen.
Het nieuwe AI-systeem is daarentegen grotendeels automatisch. Om het te bouwen moest er wel eerst een trainings-dataset van honderdduizenden samples worden gemaakt.
GitHub begon met issues die een van de ongeveer 300 labels in de lijst hadden, vervolgens werd dat aangevuld met een paar sets van issues die waarschijnlijk ook beginner-friendly waren. Na het opsporen en verwijderen van problemen die duplicaten vormden, werden er verschillende trainings-, validatie- en test-datasets ingedeeld, zodat de sets niet werden verstoord door niet-relevante data.