Met als doel de reproduceerbaarheid te vergroten en anderen in staat te stellen gemakkelijker voort te bouwen op gepubliceerd werk, presenteren we een checklist voor de volledigheid van ML-code. De ML Code Completeness Checklist evalueert het codearchief op basis van de scripts en artefacten die erin worden geleverd.
Invoering
Vorig jaar bracht Joel Pino een reproduceerbaarheidschecklist uit om reproduceerbaar onderzoek te vergemakkelijken, gepresenteerd op grote OA-conferenties (NeurIPS, ICML,…). De meeste items op de checklist zijn gericht op de onderdelen van het papier. Een item op deze checklist is "geef een link naar de broncode", maar verder zijn er weinig aanbevelingen gedaan.
Best practices zijn samengevat in de ML Code Completeness Checklist, die nu deel uitmaakt van het officiële NeurIPS 2020-code-indieningsproces en beschikbaar zal zijn voor gebruik door reviewers naar eigen goeddunken.
Checklist voor ML-volledigheid
De M Code Completeness Checklist controleert de codestore op:
- Afhankelijkheden - Heeft de repository afhankelijkheidsinformatie of instructies voor het instellen van de omgeving?
- Trainingsscenario's - Bevat de repository een manier om de in het document beschreven modellen te trainen/passen?
- Evaluatiescenario's - Bevat de repository een script voor het berekenen van de prestaties van de getrainde model(len) of het uitvoeren van experimenten op modellen?
- Voorgetrainde modellen - Biedt de repository gratis toegang tot vooraf getrainde modelgewichten?
- Resultaten - bevat de repository een tabel/grafiek van de belangrijkste resultaten en een script om die resultaten te reproduceren?
Elke repository kan 0 (heeft geen) tot 5 (heeft alle) vinkjes ontvangen. Meer informatie over de criteria voor elk item is te vinden in de Github-repository.
Wat is het bewijs dat checklistitems bijdragen aan meer bruikbare repositories?
De community gebruikt GitHub-sterren over het algemeen als een proxy voor het nut van de repository. Daarom wordt verwacht dat repo's met een hogere score op de ML-volledigheidschecklist ook meer GitHub-sterren hebben. Om deze hypothese te testen, werden 884 GitHub-repo's ingediend als officiële implementaties in de documenten van NeurIPS 2019. Een subset van 25% van deze 884 repo's werd willekeurig geselecteerd en handmatig gecontroleerd in de ML-volledigheidschecklist. Ze hebben dit voorbeeld van NeurIPS 2019 GitHub-repo's gegroepeerd op het aantal vinkjes dat ze hebben in de checklist voor volledigheid van de ML-code en hebben de GitHub-mediaansterren in elke groep in kaart gebracht. Het resultaat staat hieronder:
NeurIPS 2019-repo's met 0 selectievakjes hadden een mediaan van 1,5 sterren op GitHub. Daarentegen hadden repo's met 5 selectievakjes een mediaan van 196,5 GitHub-sterren. Slechts 9% van de repo's had 5 ticks en de meeste repo's (70%) hadden 3 ticks of minder. De Wilcoxon rank sum-test werd uitgevoerd en vond dat het aantal sterren in de 5 tick-klasse significant (p.value <1e-4) hoger is dan in alle andere klassen behalve 5 versus 4 (waar p.value de grens is). bij 0,015). U kunt de gegevens en code voor deze figuur zien in de Github-repository.
Om te testen of deze relatie breder is, is een script gemaakt om de berekening van een checklist uit de README-repository en bijbehorende code te automatiseren. Vervolgens hebben we de volledige set van 884 NeurIPS 2019-repositories opnieuw geanalyseerd, evenals de bredere set van 8926 coderepositories voor alle ML-artikelen die in 2019 zijn gepubliceerd. In beide gevallen verkregen de specialisten een kwalitatief identiek resultaat met mediaansterren die monotoon toenamen van teken op een statistisch significante manier (p.waarde <1e-4). Ten slotte vonden we met behulp van robuuste lineaire regressie dat vooraf getrainde modellen en resultaten de grootste positieve impact hadden op GitHub-sterren.
Dit wordt door de analisten als nuttig bewijs beschouwd dat het aanmoedigen van onderzoekers om alle componenten die vereist zijn door de ML-volledigheidschecklist op te nemen, zal leiden tot meer bruikbare repositories, en dat de score op de checklist inzendingen van betere kwaliteit aangeeft.
Momenteel beweren experts niet dat de voorgestelde 5 checklistitems de enige of zelfs de belangrijkste factor zijn in de populariteit van de repository. Andere factoren kunnen de populariteit beïnvloeden, zoals: omvang van wetenschappelijke bijdragen, marketing (bijv. blogposts en Twitter-posts), documentatie (uitgebreide README's, tutorials en API-documentatie), codekwaliteit en eerder werk.
Enkele voorbeelden van NeurIPS 2019-repositories met 5 selectievakjes:
Deskundigen erkennen dat, hoewel ze hebben geprobeerd de checklist zo algemeen mogelijk te maken, deze mogelijk niet volledig van toepassing is op alle soorten documenten, bijvoorbeeld theoretische documenten of reeksen documenten. Maar zelfs als het hoofddoel van het artikel is om een gegevensset weer te geven, kan het nog steeds profiteren van de release van basislijnmodellen, inclusief trainingsscenario's, evaluatiescenario's en resultaten.
Start gebruiken
Om het voor reviewers en gebruikers gemakkelijker te maken om te begrijpen wat er in de repository staat en voor experts om het correct te evalueren, is er een verzameling van best practices voor het schrijven van README.md-bestanden, het definiëren van afhankelijkheden en het vrijgeven van vooraf getrainde modellen, datasets en resultaten. Het wordt aanbevolen dat u deze 5 elementen duidelijk in uw repository definieert en ze koppelt aan externe bronnen zoals documenten en scoreborden om uw gebruikers meer context en duidelijkheid te bieden. Dit zijn de officiële richtlijnen voor het indienen van een code bij NeurIPS 2020.