ML Sjekkliste For Fullstendighet

Innholdsfortegnelse:

ML Sjekkliste For Fullstendighet
ML Sjekkliste For Fullstendighet

Video: ML Sjekkliste For Fullstendighet

Video: ML Sjekkliste For Fullstendighet
Video: Cobas Integra 400 Plus 2024, November
Anonim

Med sikte på å øke reproduserbarhet og styrke andre til å bygge videre på publisert arbeid lettere, presenterer vi en sjekkliste for fullstendighet i ML-koden. Sjekklisten for fullstendighet i ML-koden evaluerer kodelageret basert på skriptene og gjenstandene som er gitt i den.

Sjekkliste for ML-kode
Sjekkliste for ML-kode

Introduksjon

I fjor ga Joel Pino ut en sjekkliste for reproduserbarhet for å lette reproduserbar forskning som ble presentert på store OA-konferanser (NeurIPS, ICML, …). De fleste elementene på sjekklisten fokuserer på komponentene i papiret. Et element på denne sjekklisten er "gi en lenke til kildekoden", men bortsett fra det, ble det gitt få anbefalinger.

Beste praksis er oppsummert i sjekklisten for fullstendighet i ML-koden, som nå er en del av den offisielle innleveringsprosessen for NeurIPS 2020-kode, og vil være tilgjengelig for bruk av korrekturlesere etter eget ønske.

ML Sjekkliste for fullstendighet

Sjekklisten for fullstendighet av M-koden sjekker kodelageret for:

  1. Avhengigheter - Har depotet avhengighetsinformasjon eller instruksjoner om hvordan du setter opp miljøet?
  2. Treningsscenarier - Inneholder depotet en måte å trene / passe på modellene som er beskrevet i dokumentet?
  3. Evalueringsscenarier - Inneholder depotet et skript for å beregne ytelsen til de opplærte modellene eller kjøre eksperimenter på modeller?
  4. Pretrained Models - Gir depotet fri tilgang til forhåndsutdannede modellvekter?
  5. Resultater - inneholder depotet en tabell / graf med hovedresultatene og et skript for å reprodusere disse resultatene?

Hvert depot kan motta fra 0 (har ingen) til 5 (har alle) flått. Mer informasjon om kriteriene for hvert element finner du i Github-depotet.

Hva er beviset på at sjekklisteelementer bidrar til mer nyttige arkiver?

Samfunnet bruker vanligvis GitHub-stjerner som en fullmakt for nytten av depotet. Derfor forventes repoer med høyere poengsum på ML-sjekklisten også å ha flere GitHub-stjerner. For å teste denne hypotesen var det 884 GitHub-repoer sendt inn som offisielle implementeringer i NeurIPS 2019-dokumentene. En 25% delmengde av disse 884 repoene ble tilfeldig valgt og sjekket manuelt i ML-fullstendighetssjekklisten. De grupperte denne prøven NeurIPS 2019 GitHub repos etter antall flått de har i ML-kodens fullstendighetssjekkliste og kartla GitHub-medianstjernene i hver gruppe. Resultatet er nedenfor:

Bilde
Bilde

NeurIPS 2019 repos med 0 avkrysningsruter hadde en median på 1,5 stjerner på GitHub. I motsetning til dette hadde repos med 5 avkrysningsruter en median på 196,5 GitHub-stjerner. Bare 9% av repoene hadde 5 flått, og de fleste repoer (70%) hadde 3 flått eller mindre. Wilcoxon rang sum test ble utført og fant at antall stjerner i 5 flåttklassen er signifikant (p.verdi <1e-4) høyere enn i alle andre klasser unntatt 5 versus 4 (der p.verdi er grensen). ved 0,015). Du kan se dataene og koden for denne figuren i Github-depotet.

For å teste om dette forholdet strekker seg bredere, ble det laget et skript for å automatisere beregningen av en sjekkliste fra README-depotet og tilhørende kode. Vi analyserte deretter hele settet med 884 NeurIPS 2019-repositories, så vel som det bredere settet med 8926 code repositories for alle ML-artikler publisert i 2019. I begge tilfeller oppnådde spesialistene et kvalitativt identisk resultat med medianstjerner som monotont økte fra flått på en statistisk signifikant måte (s. Verdi <1e-4). Til slutt, ved å bruke robust lineær regresjon, fant vi at forutdannede modeller og resultater hadde størst positiv innvirkning på GitHub-stjerner.

Dette regnes som nyttig bevis av analytikerne som oppmuntrer forskere til å inkludere alle komponentene som kreves av ML-fullstendighetssjekklisten, vil føre til mer nyttige arkiver, og at poengsummen på sjekklisten indikerer innleveringer av bedre kvalitet.

Foreløpig hevder ikke eksperter at de foreslåtte fem sjekklisteelementene er den eneste eller til og med den viktigste faktoren i depotets popularitet. Andre faktorer kan påvirke popularitet, for eksempel: vitenskapelig bidragsstørrelse, markedsføring (f.eks. Blogginnlegg og Twitter-innlegg), dokumentasjon (omfattende README, tutorials og API-dokumentasjon), kodekvalitet og tidligere arbeid.

Noen eksempler på NeurIPS 2019-arkiver med 5 avkrysningsruter:

Eksperter erkjenner at selv om de har prøvd å gjøre sjekklisten så generell som mulig, kan den ikke være fullt anvendelig for alle typer dokumenter, for eksempel teoretiske eller sett med dokumenter. Selv om hovedformålet med artikkelen er å representere et datasett, kan det likevel ha nytte av utgivelsen av baseline-modeller, inkludert treningsscenarier, evalueringsscenarier og resultater.

Begynn å bruke

For å gjøre det lettere for korrekturlesere og brukere å forstå hva som er i depotet og for eksperter å evaluere det riktig, er det gitt en samling av beste fremgangsmåter for å skrive README.md-filer, definere avhengigheter og frigjøre forhåndsøvde modeller, datasett og resultater. Det anbefales at du tydelig definerer disse 5 elementene i depotet ditt og kobler dem til eventuelle eksterne ressurser som dokumenter og leaderboards for å gi brukerne mer kontekst og klarhet. Dette er de offisielle retningslinjene for å sende inn en kode til NeurIPS 2020.