W celu zwiększenia powtarzalności i ułatwienia innym korzystania z opublikowanej pracy przedstawiamy listę kontrolną kompletności kodu ML. Lista kontrolna kompletności kodu ML ocenia magazyn kodu na podstawie dostarczonych w nim skryptów i artefaktów.
Wstęp
W zeszłym roku Joel Pino opublikował listę kontrolną odtwarzalności, aby ułatwić powtarzalne badania, prezentowane na głównych konferencjach OA (NeurIPS, ICML,…). Większość pozycji na liście kontrolnej skupia się na komponentach papieru. Jednym z elementów tej listy kontrolnej jest „zapewnienie linku do kodu źródłowego”, ale poza tym przedstawiono kilka zaleceń.
Najlepsze praktyki zostały podsumowane na liście kontrolnej kompletności kodu ML, która jest teraz częścią oficjalnego procesu przesyłania kodu NeurIPS 2020 i będzie dostępna do użytku przez recenzentów według własnego uznania.
Lista kontrolna kompletności ML
Lista kontrolna kompletności kodu M sprawdza magazyn kodów pod kątem:
- Zależności - czy repozytorium zawiera informacje o zależnościach lub instrukcje dotyczące konfiguracji środowiska?
- Scenariusze szkoleniowe - czy repozytorium zawiera sposób na szkolenie/dopasowanie modeli opisanych w dokumencie?
- Scenariusze oceny - czy repozytorium zawiera skrypt do obliczania wydajności wytrenowanych modeli lub uruchamiania eksperymentów na modelach?
- Wstępnie wytrenowane modele - czy repozytorium zapewnia bezpłatny dostęp do wstępnie wytrenowanych wag modeli?
- Wyniki – czy repozytorium zawiera tabelę/wykres głównych wyników oraz skrypt do odtworzenia tych wyników?
Każde repozytorium może otrzymać od 0 (nie ma żadnego) do 5 (ma wszystkie) tiki. Więcej informacji na temat kryteriów dla każdego elementu można znaleźć w repozytorium Github.
Jakie są dowody na to, że elementy listy kontrolnej przyczyniają się do tworzenia bardziej użytecznych repozytoriów?
Społeczność zazwyczaj używa gwiazdek GitHub jako proxy dla użyteczności repozytorium. W związku z tym oczekuje się, że repozytoria z wyższym wynikiem na liście kontrolnej kompletności ML mają również więcej gwiazdek GitHub. Aby przetestować tę hipotezę, w dokumentacji NeurIPS 2019 przesłano 884 repozytoria GitHub jako oficjalne implementacje. 25% podzbiór tych 884 repozytoriów zostało losowo wybranych i ręcznie sprawdzonych na liście kontrolnej kompletności ML. Pogrupowali te przykładowe repozytoria NeurIPS 2019 GitHub według liczby tików, które mają na liście kontrolnej kompletności kodu ML i zmapowali medianę gwiazd GitHub w każdej grupie. Wynik znajduje się poniżej:
Repozytoria NeurIPS 2019 z 0 polami wyboru miały medianę 1,5 gwiazdki na GitHubie. W przeciwieństwie do tego, repozytoria z 5 polami wyboru miały medianę 196,5 gwiazdek GitHub. Tylko 9% repozytoriów miało 5 tyknięć, a większość repo (70%) miała 3 lub mniej tyknięć. Przeprowadzono test sumy rang Wilcoxona i stwierdzono, że liczba gwiazdek w klasie 5 ticków jest znacząco (wartość p <1e-4) wyższa niż we wszystkich innych klasach z wyjątkiem 5 w porównaniu z 4 (gdzie wartość p jest granicą). przy 0,015)). Możesz zobaczyć dane i kod dla tego rysunku w repozytorium Github.
Aby sprawdzić, czy ta relacja rozciąga się szerzej, stworzono skrypt automatyzujący obliczanie listy kontrolnej z repozytorium README i powiązanego kodu. Następnie ponownie przeanalizowaliśmy cały zestaw 884 repozytoriów NeurIPS 2019, a także szerszy zestaw 8926 repozytoriów kodu dla wszystkich artykułów ML opublikowanych w 2019 roku. W obu przypadkach specjaliści uzyskali jakościowo identyczny wynik z medianą gwiazd monotonicznie rosnących od kleszczy w sposób istotny statystycznie (wartość p <1e-4). Wreszcie, używając solidnej regresji liniowej, odkryliśmy, że wstępnie wytrenowane modele i wyniki mają największy pozytywny wpływ na gwiazdy GitHub.
Jest to uważane przez analityków za przydatny dowód, że zachęcanie badaczy do uwzględnienia wszystkich komponentów wymaganych przez listę kontrolną kompletności ML doprowadzi do bardziej użytecznych repozytoriów, a wynik na liście kontrolnej wskazuje na lepszą jakość zgłoszeń.
Obecnie eksperci nie twierdzą, że proponowane 5 pozycji listy kontrolnej jest jedynym lub nawet najważniejszym czynnikiem popularności repozytorium. Na popularność mogą wpływać inne czynniki, takie jak: rozmiar wkładu naukowego, marketing (np. posty na blogu i posty na Twitterze), dokumentacja (kompleksowe pliki README, samouczki i dokumentacja API), jakość kodu i poprzednie prace.
Kilka przykładów repozytoriów NeurIPS 2019 z 5 polami wyboru:
Eksperci zdają sobie sprawę, że chociaż starali się, aby lista kontrolna była jak najbardziej ogólna, może ona nie mieć pełnego zastosowania do wszystkich rodzajów dokumentów, na przykład dokumentów teoretycznych lub zbiorów dokumentów. Jednak nawet jeśli głównym celem artykułu jest reprezentowanie zestawu danych, nadal można skorzystać z wydania modeli podstawowych, w tym scenariuszy szkoleniowych, scenariuszy oceny i wyników.
Zacząć używać
Aby ułatwić recenzentom i użytkownikom zrozumienie, co znajduje się w repozytorium, a ekspertom, aby poprawnie je ocenić, udostępniono zbiór najlepszych praktyk dotyczących pisania plików README.md, definiowania zależności i wydawania wstępnie wytrenowanych modeli, zestawów danych i wyników. Zaleca się jasne zdefiniowanie tych 5 elementów w repozytorium i powiązanie ich z wszelkimi zasobami zewnętrznymi, takimi jak dokumenty i tabele wyników, aby zapewnić użytkownikom więcej kontekstu i przejrzystości. Oto oficjalne wytyczne dotyczące przesyłania kodu do NeurIPS 2020.