S ciljem povećanja ponovljivosti i osnaživanja drugih da lakše nadovezuju na objavljeni rad, predstavljamo kontrolni popis za potpunost ML koda. Kontrolna lista cjelovitosti ML koda procjenjuje spremište koda na temelju skripti i artefakata koji su u njemu navedeni.
Uvod
Prošle godine, Joel Pino objavio je kontrolnu listu reproduktivnosti kako bi olakšao ponovljiva istraživanja predstavljena na glavnim OA konferencijama (NeurIPS, ICML, …). Većina stavki na kontrolnoj listi usredotočena je na komponente papira. Jedna stavka na ovoj kontrolnoj listi je "pružite vezu do izvornog koda", ali osim toga dato je nekoliko preporuka.
Najbolje prakse sumirane su u Kontrolnoj listi kompletnosti ML koda, koja je sada dio službenog postupka predaje koda NeurIPS 2020 i bit će dostupna recenzentima po njihovoj ocjeni.
Kontrolna lista kompletnosti ML
Kontrolna lista cjelovitosti M koda provjerava spremište kodova za:
- Zavisnosti - ima li spremište informacije o zavisnosti ili upute o tome kako postaviti okruženje?
- Scenariji obuke - Sadrži li spremište način obuke / uklapanja modela opisanih u dokumentu?
- Scenariji procjene - Sadrži li spremište skriptu za izračunavanje performansi obučenih modela ili izvođenja eksperimenata na modelima?
- Pretraženi modeli - pruža li spremište besplatan pristup unaprijed pripremljenim težinama modela?
- Rezultati - sadrži li spremište tablicu / grafikon glavnih rezultata i skriptu za reprodukciju tih rezultata?
Svako spremište može primiti od 0 (nema ih) do 5 (ima sve) oznake. Više informacija o kriterijima za svaku stavku možete pronaći u spremištu Github.
Koji su dokazi da stavke kontrolne liste doprinose korisnijim spremištima?
Zajednica obično koristi GitHub zvijezde kao proksi za korisnost spremišta. Prema tome, očekuju se da će repo oglasi s višim rezultatom na kontrolnoj listi kompletnosti ML-a imati i više GitHub zvijezda. Da bi se testirala ova hipoteza, u dokumentima NeurIPS 2019 prijavljeno je 884 GitHub repo poslova kao zvanična implementacija. Podskup od ovih 884 repo reta 25% nasumično je odabran i ručno provjeren na kontrolnoj listi kompletnosti ML. Oni su grupirali ovaj uzorak NeurIPS 2019 GitHub repo zapisa po broju krpelja koje imaju na kontrolnoj listi za kompletnost ML koda i mapirali srednje GitHub zvijezde u svakoj grupi. Rezultat je ispod:
Repo poslovi NeurIPS 2019 sa 0 potvrdnih okvira imali su medijanu od 1,5 zvjezdice na GitHubu. Suprotno tome, repo snimci sa 5 potvrdnih okvira imali su medijanu od 196,5 GitHub zvijezda. Samo 9% repozicija imalo je 5 krpelja, a većina repo poslova (70%) imalo je 3 krpelja ili manje. Izvršen je test zbrajanja Wilcoxon-ovog ranga i utvrđeno je da je broj zvijezda u klasi 5 krpelja značajno (p.value <1e-4) veći nego u svim ostalim klasama, osim 5 nasuprot 4 (gdje je p.value granica). na 0,015). Podatke i kod za ovu sliku možete vidjeti u spremištu Github.
Da bi se ispitalo širi li se ovaj odnos šire, kreirana je skripta za automatizaciju izračunavanja kontrolne liste iz README spremišta i pridruženog koda. Zatim smo ponovno analizirali čitav set od 884 NeurIPS 2019 spremišta, kao i širi skup od 8926 spremišta koda za sve ML članke objavljene u 2019. godini. U oba slučaja specijalisti su dobili kvalitativno identičan rezultat sa srednjim zvijezdama koje su se monotono povećavale od krpelja na statistički značajan način (p.value <1e-4). Konačno, koristeći robusnu linearnu regresiju, otkrili smo da prethodno obučeni modeli i rezultati imaju najveći pozitivan utjecaj na GitHub zvijezde.
Analitičari ovo smatraju korisnim dokazom da će poticanje istraživača da uključe sve komponente potrebne na kontrolnoj listi za cjelovitost ML dovesti do korisnijih spremišta i da rezultat na kontrolnoj listi ukazuje na kvalitetnije prijave.
Trenutno stručnjaci ne tvrde da su predloženih 5 stavki kontrolnog popisa jedini ili čak najvažniji faktor popularnosti spremišta. Ostali faktori mogu utjecati na popularnost, kao što su: veličina znanstvenog doprinosa, marketing (npr. Postovi na blogu i postovi na Twitteru), dokumentacija (sveobuhvatni README-ovi, vodiči i API dokumentacija), kvaliteta koda i prethodni rad.
Neki primjeri NeurIPS 2019 spremišta s 5 potvrdnih okvira:
Stručnjaci prepoznaju da, iako su pokušali kontrolnu listu učiniti što općenitijom, ona možda nije u potpunosti primjenjiva na sve vrste dokumenata, na primjer, teorijske ili skupove dokumenata. Međutim, čak i ako je glavna svrha članka predstavlja skup podataka, on i dalje može imati koristi od objavljivanja osnovnih modela, uključujući scenarije obuke, scenarije evaluacije i rezultate.
Počnite koristiti
Da bi recenzenti i korisnici lakše razumjeli što se nalazi u spremištu, a stručnjaci da ga ispravno procijene, pruža se zbirka najboljih praksi za pisanje datoteka README.md, definiranje ovisnosti i objavljivanje prethodno obučenih modela, skupova podataka i rezultata. Preporučuje se da ovih 5 elemenata jasno definirate u spremištu i povežete ih s bilo kojim vanjskim resursima, poput dokumenata i ploča s rezultatima, kako biste svojim korisnicima pružili više konteksta i jasnoće. Ovo su službene smjernice za slanje koda na NeurIPS 2020.