Da bi povečali obnovljivost in omogočili drugim, da lažje nadgrajujejo objavljeno delo, predstavljamo kontrolni seznam popolnosti kode ML. Kontrolni seznam za popolnost kode ML ocenjuje shrambo kod na podlagi skriptov in artefaktov v njem.
Uvod
Lani je Joel Pino izdal kontrolni seznam obnovljivosti, da bi olajšal ponovljive raziskave, predstavljene na večjih konferencah OA (NeurIPS, ICML, …). Večina elementov na kontrolnem seznamu se osredotoča na sestavne dele papirja. Ena točka na tem kontrolnem seznamu je "navedite povezavo do izvorne kode", vendar je bilo le nekaj priporočil.
Najboljše prakse so povzete v kontrolnem seznamu za popolnost kode ML, ki je zdaj del uradnega postopka oddaje kode NeurIPS 2020 in ga bodo pregledovalci lahko uporabili, kot se jim zdi primerno.
Kontrolni seznam za popolnost ML
Kontrolni seznam za popolnost kode M preverja, ali je v kodi shranjeno:
- Odvisnosti - Ali ima skladišče informacije o odvisnosti ali navodila za nastavitev okolja?
- Scenariji usposabljanja - Ali skladišče vsebuje način za usposabljanje / prileganje modelom, opisanim v dokumentu?
- Ocenjevalni scenariji - Ali skladišče vsebuje skript za izračun uspešnosti izurjenih modelov ali izvajanje poskusov na modelih?
- Preizkušeni modeli - ali skladišče omogoča prost dostop do predhodno usposobljenih uteži modelov?
- Rezultati - ali skladišče vsebuje tabelo / graf glavnih rezultatov in skript za reprodukcijo teh rezultatov?
Vsako repozitorij lahko prejme od 0 (nima nobenega) do 5 (ima vse) kljukice. Več informacij o merilih za posamezne postavke je na voljo v skladišču Github.
Kateri dokazi so, da elementi kontrolnega seznama prispevajo k bolj uporabnim skladiščem?
Skupnost na splošno uporablja zvezde GitHub kot proxy za koristnost skladišča. Zato naj bi imeli ponovni zapisi z višjim rezultatom na kontrolnem seznamu popolnosti ML tudi več zvezd GitHub. Za preizkus te hipoteze je bilo v dokumentih NeurIPS 2019 kot uradne izvedbe oddanih 884 repozitov GitHub. 25% teh 884 repozitov je bilo naključno izbranih in ročno preverjenih na kontrolnem seznamu popolnosti ML. Ti vzorčni repo posnetki NeurIPS 2019 GitHub so razvrstili po številu klopov, ki jih imajo na kontrolnem seznamu popolnosti kod ML, in v vsaki skupini preslikali srednje zvezde GitHub. Rezultat je spodaj:
Repo posnetki NeurIPS 2019 z 0 potrditvenimi polji so imeli na GitHubu mediano 1,5 zvezdice. Nasprotno pa so bili repo-oglasi s 5 potrditvenimi polji srednji 196,5 zvezd GitHub. Samo 9% ponovitev je imelo 5 klopov, večina ponovitev (70%) pa 3 ali manj. Opravljen je bil test vsote Wilcoxonovega ranga, ki je ugotovil, da je število zvezd v razredu 5 klopov znatno (p.vrednost <1e-4) večje kot v vseh drugih razredih, razen 5 v primerjavi s 4 (kjer je p.value meja). 0,015). Podatke in kodo za to sliko si lahko ogledate v skladišču Github.
Da bi preizkusili, ali se to razmerje širi širše, je bil ustvarjen skript za avtomatizacijo izračuna kontrolnega seznama iz repozitorija README in pripadajoče kode. Nato smo ponovno analizirali celoten sklop 884 repozitorijev NeurIPS 2019, pa tudi širši nabor 8926 repozitorij kod za vse članke ML, objavljene leta 2019. V obeh primerih so strokovnjaki dobili kvalitativno enak rezultat, pri čemer so se srednje zvezde, ki se monotono povečujejo od klopov, statistično značilno (p.vrednost <1e-4). Na koncu smo z uporabo robustne linearne regresije ugotovili, da imajo predhodno usposobljeni modeli in rezultati največji pozitiven vpliv na zvezde GitHub.
Analitiki menijo, da je to koristen dokaz, da bo spodbujanje raziskovalcev k vključitvi vseh komponent, ki jih zahteva kontrolni seznam za popolnost ML, pripeljal do bolj uporabnih skladišč in da ocena na kontrolnem seznamu kaže na bolj kakovostno oddajo.
Trenutno strokovnjaki ne trdijo, da je predlaganih 5 elementov kontrolnega seznama edini ali celo najpomembnejši dejavnik priljubljenosti odlagališča. Drugi dejavniki lahko vplivajo na priljubljenost, kot so: velikost znanstvenega prispevka, trženje (npr. Objave v spletnih dnevnikih in objave na Twitterju), dokumentacija (obsežni README-ji, vadnice in dokumentacija API-ja), kakovost kode in predhodno delo.
Nekaj primerov repozitorijev NeurIPS 2019 s 5 potrditvenimi polji:
Strokovnjaki priznavajo, da čeprav so poskušali kontrolni seznam narediti čim bolj splošen, morda ne bo v celoti veljal za vse vrste dokumentov, na primer teoretične ali sklope dokumentov. Kljub temu, da je glavni namen članka predstaviti nabor podatkov, lahko še vedno koristi izdaji osnovnih modelov, vključno s scenariji usposabljanja, scenariji vrednotenja in rezultati.
Začnite uporabljati
Da pregledovalci in uporabniki lažje razumejo, kaj je v repozitoriju, strokovnjaki pa to pravilno ocenijo, je na voljo zbirka najboljših praks za pisanje datotek README.md, definiranje odvisnosti in sprostitev predhodno pripravljenih modelov, naborov podatkov in rezultatov. Priporočljivo je, da teh 5 elementov jasno definirate v svojem skladišču in jih povežete z vsemi zunanjimi viri, kot so dokumenti in lestvice najboljših, da svojim uporabnikom zagotovite več konteksta in jasnosti. To so uradne smernice za pošiljanje kode na NeurIPS 2020.