Med det formål at øge reproducerbarheden og give andre lettere mulighed for at bygge på offentliggjort arbejde, præsenterer vi en ML-kode-kompletitetscheckliste. ML-kodens kompletitetscheckliste evaluerer kodelageret ud fra de scripts og artefakter, der findes i det.
Introduktion
Sidste år udgav Joel Pino en tjekliste til reproducerbarhed for at lette reproducerbar forskning, der blev præsenteret på større OA-konferencer (NeurIPS, ICML, …). De fleste af emnerne på tjeklisten fokuserer på papirets komponenter. Ét punkt på denne tjekliste er "give et link til kildekoden", men bortset fra det blev der kun få anbefalinger.
Bedste fremgangsmåder er opsummeret i ML-kodens kompletitetscheckliste, som nu er en del af den officielle NeurIPS 2020-indsendelsesproces og vil være tilgængelig til brug for korrekturlæsere, når de finder det passende.
ML Tjekliste for fuldstændighed
Tjeklisten for fuldstændighed af M-kode kontrollerer kodelageret for:
- Afhængigheder - Har lageret afhængighedsinformation eller instruktioner om, hvordan man indstiller miljøet?
- Træningsscenarier - Indeholder lageret en måde at træne / tilpasse de modeller, der er beskrevet i dokumentet?
- Evalueringsscenarier - Indeholder lageret et script til beregning af præstationen for de (n) uddannede model (er) eller kørsel af eksperimenter på modeller?
- Foruddannede modeller - Giver lageret fri adgang til foruddefinerede modelvægte?
- Resultater - indeholder lageret en tabel / graf med de vigtigste resultater og et script til at gengive disse resultater?
Hvert lager kan modtage fra 0 (har ingen) til 5 (har alle) flåter. Flere oplysninger om kriterierne for hvert element findes i Github-arkivet.
Hvad er beviset for, at tjeklisteelementer bidrager til mere nyttige opbevaringssteder?
Samfundet bruger generelt GitHub-stjerner som en proxy for lagerets anvendelighed. Derfor forventes repos med en højere score på ML-kontrollisten også at have flere GitHub-stjerner. For at teste denne hypotese var der 884 GitHub-repoer indsendt som officielle implementeringer i NeurIPS 2019-dokumenterne. En 25% delmængde af disse 884 repos blev tilfældigt valgt og kontrolleret manuelt i ML-komplet-tjeklisten. De grupperede denne prøve NeurIPS 2019 GitHub repos efter antallet af flåter, de har i checklisten for fuldstændighed af ML-kode og kortlagde GitHub-medianstjernerne i hver gruppe. Resultatet er nedenfor:
NeurIPS 2019 repos med 0 afkrydsningsfelter havde en median på 1,5 stjerner på GitHub. I modsætning hertil havde repos med 5 afkrydsningsfelter en median på 196,5 GitHub-stjerner. Kun 9% af repos havde 5 flåter, og de fleste repos (70%) havde 3 flåter eller mindre. Wilcoxon-rangsummen blev udført og viste, at antallet af stjerner i 5-kryds-klassen er signifikant (p.værdi <1e-4) højere end i alle andre klasser undtagen 5 versus 4 (hvor p.-værdi er grænsen). ved 0,015). Du kan se dataene og koden til dette tal i Github-arkivet.
For at teste, om dette forhold strækker sig bredere, blev der oprettet et script til at automatisere beregningen af en tjekliste fra README-arkivet og tilhørende kode. Vi genanalyserede derefter hele sættet med 884 NeurIPS 2019-arkiver såvel som det bredere sæt 8926-kodelagre for alle ML-artikler, der blev offentliggjort i 2019. I begge tilfælde opnåede specialisterne et kvalitativt identisk resultat med medianstjerner, der steg monotont fra flåter på en statistisk signifikant måde (s. Værdi <1e-4). Endelig, ved hjælp af robust lineær regression, fandt vi foruddannede modeller og resultater at have den største positive indvirkning på GitHub-stjerner.
Dette betragtes som nyttigt bevis af analytikerne, der opmuntrer forskere til at inkludere alle de komponenter, der kræves af ML-kompletitetschecklisten, vil føre til mere nyttige arkiver, og at scoren på tjeklisten indikerer indsendelser af bedre kvalitet.
I øjeblikket hævder eksperter ikke, at de foreslåede 5 tjeklisteelementer er den eneste eller endog den mest betydningsfulde faktor i depotets popularitet. Andre faktorer kan påvirke popularitet, såsom: videnskabeligt bidrag, markedsføring (f.eks. Blogindlæg og Twitter-indlæg), dokumentation (omfattende README'er, tutorials og API-dokumentation), kodekvalitet og tidligere arbejde.
Nogle eksempler på NeurIPS 2019-arkiver med 5 afkrydsningsfelter:
Eksperter erkender, at selvom de har forsøgt at gøre tjeklisten så generel som muligt, er den muligvis ikke fuldt anvendelig på alle typer dokumenter, for eksempel teoretiske eller dokumentsæt. Men selvom hovedformålet med artiklen er at repræsentere et datasæt, kan det stadig drage fordel af frigivelsen af baseline-modeller, herunder træningsscenarier, evalueringsscenarier og resultater.
Begynd at bruge
For at gøre det nemmere for korrekturlæsere og brugere at forstå, hvad der findes i arkivet, og for eksperter at evaluere det korrekt, findes der en samling af bedste fremgangsmåder til at skrive README.md-filer, definere afhængigheder og frigive foruddannede modeller, datasæt og resultater. Det anbefales, at du tydeligt definerer disse 5 elementer i dit arkiv og knytter dem til eventuelle eksterne ressourcer såsom dokumenter og leaderboards for at give mere brugerkontekst og klarhed. Dette er de officielle retningslinjer for indsendelse af en kode til NeurIPS 2020.