Eesmärgiks suurendada reprodutseeritavust ja anda teistele volitused avaldatud töödele kergemini tugineda, esitame ML-koodi täielikkuse kontroll-loendi. ML koodi täielikkuse kontrollnimekiri hindab koodipoodi selles sisalduvate skriptide ja artefaktide põhjal.
Sissejuhatus
Eelmisel aastal avaldas Joel Pino reprodutseeritavuse kontroll-loendi, et hõlbustada reprodutseeritavaid uuringuid, mida esitleti suurtel OA konverentsidel (NeurIPS, ICML,…). Enamik kontrollnimekirja üksusi keskenduvad paberi komponentidele. Selle kontroll-loendi üks element on „lingi lähtekoodile”, kuid peale selle tehti vähe soovitusi.
Parimad tavad on kokku võetud ML Code Completeness Checklist'is, mis on nüüd osa ametlikust NeurIPS 2020 koodi esitamise protsessist ja on ülevaatajatele kasutamiseks nende äranägemise järgi.
ML täielikkuse kontroll-loend
M-koodi täielikkuse kontroll-loend kontrollib koodihoidlat:
- Sõltuvused - kas hoidlas on teavet sõltuvuse kohta või juhiseid keskkonna seadistamiseks?
- Koolitusstsenaariumid - kas hoidla sisaldab viisi, kuidas koolitada / sobitada dokumendis kirjeldatud mudeleid?
- Hindamisstsenaariumid - kas hoidla sisaldab skripti koolitatud (te) mudeli (te) jõudluse arvutamiseks või katsetega mudelitel?
- Eelkoormatud mudelid - kas hoidla annab tasuta juurdepääsu eelnevalt ettevalmistatud mudelikaaludele?
- Tulemused - kas hoidla sisaldab põhitulemuste tabelit / graafikut ja skripti nende tulemuste reprodutseerimiseks?
Igas hoidlas on võimalik saada vahemikku 0 (pole ühtegi) kuni 5 (sisaldab kõiki) puuke. Lisateavet iga üksuse kriteeriumide kohta leiate Githubi hoidlast.
Mis on tõendid selle kohta, et kontroll-loendi üksused aitavad kaasa kasulikumate hoidlate loomisele?
Kogukond kasutab tavaliselt hoidla kasulikkuse puhverserverina GitHubi tähti. Seetõttu eeldatakse, et ML täielikkuse kontroll-loendis kõrgema punktisummaga repodel on ka rohkem GitHubi tähti. Selle hüpoteesi kontrollimiseks esitati NeurIPS 2019 dokumentides ametlike rakendustena 884 GitHubi repot. Nende 884 repo 25% alamhulk valiti juhuslikult ja kontrolliti käsitsi ML täielikkuse kontroll-loendis. Nad rühmitasid selle NeurIPS 2019 GitHubi repo näidised vastavalt ML koodide täielikkuse kontrollnimekirjas olevate puukide arvule ja kaardistasid igas grupis GitHubi mediaantähed. Tulemus on järgmine:
0 märkeruuduga NeurIPS 2019 repodel oli GitHubis mediaan 1,5 tärni. Seevastu viie märkeruuduga repodes oli mediaan 196,5 GitHubi tähte. Ainult 9% repotest oli 5 puukiga ja enamus reposid (70%) oli 3 või vähem. Tehti Wilcoxoni auastmete summa test ja leiti, et tähtede arv 5 puugiklassis on oluliselt (p.väärtus <1e-4) suurem kui kõigis teistes klassides, välja arvatud 5 versus 4 (kus p.väärtus on piir). 0,015 juures). Selle joonise andmeid ja koodi näete Githubi hoidlas.
Selle suhte laiema laiuse testimiseks loodi skript, et automatiseerida kontrollnimekirja arvutamine README-hoidlast ja seotud koodist. Seejärel analüüsisime uuesti kogu 884 NeurIPS 2019 hoidla komplekti, samuti laiema 8926 koodihoidla komplekti kõigi 2019. aastal avaldatud ML-artiklite jaoks. Mõlemal juhul saavutasid spetsialistid kvalitatiivselt identse tulemuse, kusjuures tähtedest mediaanväärtusega statistiliselt olulisel viisil monotoonselt suurenevad keskmised tähed (p.väärtus <1e-4). Lõpuks leidsime tugeva lineaarse regressiooni abil eelnevalt ettevalmistatud mudelid ja tulemused, millel on suurim positiivne mõju GitHubi tähtedele.
Analüütikud peavad seda kasulikuks tõendiks, et teadlaste julgustamine kaasama kõik ML-i täielikkuse kontrollnimekirjas nõutavad komponendid toovad kaasa kasulike hoidlate olemasolu ja et kontroll-loendi skoor näitab parema kvaliteediga esildisi.
Praegu ei väida eksperdid, et pakutud 5 kontroll-loendi üksust on ainus või isegi kõige olulisem tegur hoidla populaarsuses. Populaarsust võivad mõjutada muud tegurid, näiteks: teadusliku panuse suurus, turundus (nt ajaveebipostitused ja Twitteri postitused), dokumentatsioon (põhjalikud README-d, õpetused ja API-dokumentatsioon), koodi kvaliteet ja eelmine töö.
Mõned näited NeurIPS 2019 viie märkeruuduga hoidlatest:
Eksperdid tunnistavad, et kuigi nad on proovinud kontrollnimekirja muuta võimalikult üldiseks, ei pruugi see olla täielikult kohaldatav igat liiki dokumentide puhul, näiteks teoreetiliste või dokumendikomplektide puhul. Isegi kui artikli peamine eesmärk on esindada andmekogumit, võib see siiski lähtemudelite, sealhulgas koolitusstsenaariumide, hindamisstsenaariumide ja tulemuste avaldamisest kasu saada.
Alustage kasutamist
Et ülevaatajatel ja kasutajatel oleks hõlpsam aru saada, mis on hoidlas, ja ekspertidel seda õigesti hinnata, pakutakse parimate tavade kogumit failide README.md kirjutamiseks, sõltuvuste määratlemiseks ning eelnevalt ettevalmistatud mudelite, andmekogumite ja tulemuste avaldamiseks. Kasutajatele suurema konteksti ja selguse pakkumiseks on soovitatav need 5 elementi oma hoidlas selgelt määratleda ja linkida väliste ressurssidega, näiteks dokumentide ja edetabelitega. Need on ametlikud juhised koodi esitamiseks NeurIPS 2020-sse.