A megismételhetőség növelése és a másoknak a publikált munkára való könnyebb építkezés felhatalmazása céljából bemutatunk egy ML kód teljességi ellenőrzőlistát. Az ML kód teljességének ellenőrzőlista a benne található parancsfájlok és műtermékek alapján értékeli a kódtárat.
Bevezetés
Tavaly Joel Pino kiadott egy reprodukálhatósági ellenőrzőlistát, hogy megkönnyítse a reprodukálható kutatásokat, amelyeket a nagy OA konferenciákon (NeurIPS, ICML,…) mutattak be. Az ellenőrzőlista legtöbb tétele a papír összetevőire összpontosít. Az ellenőrzőlista egyik eleme a „hivatkozás megadása a forráskódra”, de ezen kívül kevés ajánlás hangzott el.
A bevált gyakorlatokat az ML Code Completeness Checklist foglalja össze, amely immár része a hivatalos NeurIPS 2020 kód benyújtási folyamatnak, és a véleményezők számára tetszésük szerint elérhetővé fogják tenni.
ML teljességi ellenőrzőlista
Az M kód teljességének ellenőrzőlista ellenőrzi a kódtárat:
- Függőségek - Rendelkeznek-e a tárolóval kapcsolatos információk vagy utasítások a környezet beállításáról?
- Képzési forgatókönyvek - Tartalmaz-e a tár a módját a dokumentumban leírt modellek betanítására / illesztésére?
- Értékelési forgatókönyvek - Tartalmaz-e az adattár egy szkriptet a betanított modell (ek) teljesítményének kiszámításához vagy modelleken végzett kísérletek futtatásához?
- Előképzett modellek - A tárház ingyenes hozzáférést biztosít az előzetesen előkészített modell súlyokhoz?
- Eredmények - tartalmaz-e a tár a táblázatot / grafikont a fő eredményekről és egy szkriptet az eredmények reprodukálásához?
Minden adattár 0 (nincs) és 5 (mindegyik) kullancsot fogadhat. Az egyes elemekre vonatkozó kritériumokról további információt a Github adattárban talál.
Mi bizonyítja, hogy az ellenőrzőlista-elemek hozzájárulnak a hasznosabb tárakhoz?
A közösség általában a GitHub csillagokat használja proxyként az adattár hasznosságához. Ezért az ML teljességi ellenőrzőlistán magasabb pontszámmal rendelkező repóknál várhatóan több GitHub csillag is lesz. Ennek a hipotézisnek a tesztelésére 884 GitHub repót küldtek be hivatalos megvalósításként a NeurIPS 2019 dokumentumokba. E 884 repók 25% -os részhalmazát véletlenszerűen választották ki, és manuálisan ellenőrizték az ML teljességi ellenőrzőlistáján. A NeurIPS 2019 GitHub repók mintáját az ML kód teljességének ellenőrzőlistáján szereplő kullancsok száma alapján csoportosították, és minden csoportban feltérképezték a GitHub medián csillagokat. Az eredmény a következő:
A 0 jelölőnégyzetet tartalmazó NeurIPS 2019 repók mediánja 1,5 csillag volt a GitHubon. Ezzel szemben az 5 jelölőnégyzetet tartalmazó repók mediánja 196,5 GitHub csillag volt. A repóknak csak 9% -ában volt 5 kullancs, a repók többségében (70% -ában) legfeljebb 3 kullancs volt. A Wilcoxon rangösszeg-tesztet elvégeztük, és azt találtuk, hogy az 5 kullancsosztályban a csillagok száma szignifikánsan (p.érték <1e-4) magasabb, mint az összes többi osztályban, kivéve az 5-et a 4-vel szemben (ahol a p.érték a határ). 0,015-nél). Ennek az ábrának az adatait és kódját a Github adattárban láthatja.
Annak tesztelésére, hogy ez a kapcsolat tágabban terjed-e, létrehoztak egy szkriptet, hogy automatizálják az ellenőrzőlista kiszámítását a README adattárból és a hozzá tartozó kódból. Ezután újra elemeztük a 884 NeurIPS 2019 adattár teljes készletét, valamint a szélesebb 8926 kódos tárházat az összes, 2019-ben megjelent ML cikk számára. Mindkét esetben a szakemberek minőségileg azonos eredményt értek el, a statisztikailag szignifikáns módon a kullancsoktól monoton módon növekvő medián csillagokkal (p.érték <1e-4). Végül a robusztus lineáris regresszió alkalmazásával azt találtuk, hogy az előképzett modellek és eredmények a legnagyobb pozitív hatással vannak a GitHub csillagokra.
Az elemzők ezt hasznos bizonyítéknak tekintik arra vonatkozóan, hogy a kutatók ösztönzése az ML teljességi ellenőrzőlista által előírt összes komponens felvételére hasznosabb adattárakhoz vezet, és hogy az ellenőrzőlista pontszáma jobb minőségű beadványokat jelez.
Jelenleg a szakértők nem állítják, hogy a javasolt 5 ellenőrzőlista elem az egyetlen, sőt a legjelentősebb tényező a tárház népszerűségében. Más tényezők befolyásolhatják a népszerűséget, mint például: tudományos hozzájárulás nagysága, marketing (pl. Blogbejegyzések és Twitter-bejegyzések), dokumentáció (átfogó README-k, oktatóanyagok és API-dokumentációk), kódminőség és korábbi munka.
Néhány példa a NeurIPS 2019 tárolókra 5 jelölőnégyzettel:
A szakértők elismerik, hogy bár megpróbálták az ellenőrzőlistát a lehető legáltalánosabbá tenni, előfordulhat, hogy ez nem minden dokumentumtípusra, például elméleti vagy dokumentumkészletre alkalmazható teljesen. Még akkor is, ha a cikk fő célja egy adatkészlet képviselete, ennek ellenére előnyére válhat az alapmodellek - beleértve a képzési forgatókönyveket, az értékelési forgatókönyveket és az eredményeket - kiadása.
Kezdje el használni
Annak érdekében, hogy az ellenőrök és a felhasználók könnyebben megértsék, mi van a tárban, és a szakértők számára, hogy helyesen értékeljék azokat, a README.md fájlok írásához, a függőségek meghatározásához, valamint az előzetesen elkészített modellek, adatkészletek és eredmények kiadásához a legjobb gyakorlatok gyűjteménye biztosított. Javasoljuk, hogy egyértelműen határozza meg ezt az 5 elemet a tárában, és kapcsolja össze azokat bármilyen külső erőforrással, például dokumentumokkal és ranglistákkal, hogy nagyobb kontextust és egyértelműséget biztosítson a felhasználók számára. Ezek a hivatalos irányelvek a kód beküldéséhez a NeurIPS 2020-hoz.