Mit dem Ziel, die Reproduzierbarkeit zu erhöhen und anderen die Möglichkeit zu geben, leichter auf veröffentlichten Arbeiten aufzubauen, präsentieren wir eine Checkliste zur Vollständigkeit des ML-Codes. Die ML Code Completeness Checklist bewertet den Codespeicher basierend auf den darin bereitgestellten Skripten und Artefakten.
Einführung
Letztes Jahr hat Joel Pino eine Reproduzierbarkeits-Checkliste veröffentlicht, um reproduzierbare Forschung zu erleichtern, die auf großen OA-Konferenzen (NeurIPS, ICML,…) präsentiert wird. Die meisten Punkte der Checkliste konzentrieren sich auf die Bestandteile des Papiers. Ein Punkt auf dieser Checkliste ist „Link zum Quellcode bereitstellen“, aber ansonsten wurden nur wenige Empfehlungen ausgesprochen.
Best Practices wurden in der ML Code Completeness Checklist zusammengefasst, die jetzt Teil des offiziellen NeurIPS 2020-Code-Einreichungsprozesses ist und von den Prüfern nach eigenem Ermessen verwendet werden kann.
ML-Vollständigkeits-Checkliste
Die Checkliste zur Vollständigkeit des M-Codes überprüft den Codespeicher auf:
- Abhängigkeiten – Verfügt das Repository über Abhängigkeitsinformationen oder Anweisungen zum Einrichten der Umgebung?
- Trainingsszenarien - Enthält das Repository eine Möglichkeit, die im Dokument beschriebenen Modelle zu trainieren / anzupassen?
- Bewertungsszenarien - Enthält das Repository ein Skript zur Berechnung der Leistung des/der trainierten Modells/e oder zum Ausführen von Experimenten an Modellen?
- Vortrainierte Modelle - Bietet das Repository freien Zugriff auf vortrainierte Modellgewichtungen?
- Ergebnisse - enthält das Repository eine Tabelle / ein Diagramm der wichtigsten Ergebnisse und ein Skript zur Reproduktion dieser Ergebnisse?
Jedes Repository kann 0 (hat keine) bis 5 (hat alle) Häkchen empfangen. Weitere Informationen zu den Kriterien für jedes Element finden Sie im Github-Repository.
Was ist der Beweis dafür, dass Checklistenpunkte zu nützlicheren Repositories beitragen?
Die Community verwendet im Allgemeinen GitHub-Sterne als Proxy für die Nützlichkeit des Repositorys. Daher wird erwartet, dass Repos mit einer höheren Punktzahl auf der ML-Vollständigkeitscheckliste auch mehr GitHub-Sterne haben. Um diese Hypothese zu testen, wurden 884 GitHub-Repos als offizielle Implementierungen in den NeurIPS 2019-Dokumenten eingereicht. Eine 25%ige Teilmenge dieser 884 Repos wurde zufällig ausgewählt und manuell in der ML-Vollständigkeits-Checkliste überprüft. Sie haben dieses Beispiel für NeurIPS 2019 GitHub-Repositorys nach der Anzahl der Ticks in der Checkliste zur Vollständigkeit des ML-Codes gruppiert und die GitHub-Mediansterne in jeder Gruppe zugeordnet. Das Ergebnis ist unten:
NeurIPS 2019 Repos mit 0 Kontrollkästchen hatten auf GitHub einen Median von 1,5 Sternen. Im Gegensatz dazu hatten Repos mit 5 Checkboxen einen Median von 196,5 GitHub-Sternen. Nur 9% der Repos hatten 5 Ticks und die meisten Repos (70%) hatten 3 Ticks oder weniger. Der Wilcoxon-Rangsummentest wurde durchgeführt und ergab, dass die Anzahl der Sterne in der 5-Tick-Klasse signifikant (p.value <1e-4) höher ist als in allen anderen Klassen außer 5 gegenüber 4 (wo p.value die Grenze ist). bei 0,015). Sie können die Daten und den Code für diese Abbildung im Github-Repository sehen.
Um zu testen, ob diese Beziehung breiter angelegt ist, wurde ein Skript erstellt, um die Berechnung einer Checkliste aus dem README-Repository und dem zugehörigen Code zu automatisieren. Anschließend haben wir den gesamten Satz von 884 NeurIPS 2019-Repositorys sowie den breiteren Satz von 8926 Code-Repositorys für alle 2019 veröffentlichten ML-Artikel erneut analysiert. In beiden Fällen erhielten die Spezialisten ein qualitativ identisches Ergebnis mit statistisch signifikanten, monoton steigenden Mediansternen von Zecken (p. Wert <1e-4). Schließlich haben wir mit robuster linearer Regression festgestellt, dass vortrainierte Modelle und Ergebnisse den größten positiven Einfluss auf GitHub-Stars haben.
Dies wird von den Analysten als nützlicher Beweis angesehen, dass die Ermutigung von Forschern, alle von der ML-Vollständigkeitscheckliste geforderten Komponenten aufzunehmen, zu nützlicheren Repositorien führt und dass die Punktzahl auf der Checkliste eine bessere Qualität der Einreichungen anzeigt.
Derzeit behaupten Experten nicht, dass die vorgeschlagenen 5 Checklistenpunkte der einzige oder sogar der wichtigste Faktor für die Popularität des Endlagers sind. Andere Faktoren können die Popularität beeinflussen, wie zum Beispiel: Größe der wissenschaftlichen Beiträge, Marketing (z. B. Blog- und Twitter-Posts), Dokumentation (umfassende READMEs, Tutorials und API-Dokumentation), Codequalität und frühere Arbeiten.
Einige Beispiele für NeurIPS 2019-Repositorys mit 5 Kontrollkästchen:
Sachverständige erkennen an, dass die Checkliste, obwohl sie versucht hat, die Checkliste so allgemein wie möglich zu gestalten, möglicherweise nicht auf alle Arten von Dokumenten, beispielsweise theoretische oder Gruppen von Dokumenten, vollständig anwendbar ist. Aber auch wenn der Hauptzweck des Artikels darin besteht, einen Datensatz darzustellen, kann er dennoch von der Veröffentlichung von Basismodellen profitieren, einschließlich Trainingsszenarien, Bewertungsszenarien und Ergebnissen.
Beginnen Sie mit der Verwendung
Um es Gutachtern und Benutzern zu erleichtern, den Inhalt des Repositorys zu verstehen und Experten die korrekte Bewertung zu erleichtern, wird eine Sammlung von Best Practices zum Schreiben von README.md-Dateien, zum Definieren von Abhängigkeiten und zum Freigeben vortrainierter Modelle, Datensätze und Ergebnisse bereitgestellt. Es wird empfohlen, dass Sie diese 5 Elemente in Ihrem Repository klar definieren und mit externen Ressourcen wie Dokumenten und Bestenlisten verknüpfen, um Ihren Benutzern mehr Kontext und Klarheit zu bieten. Dies sind die offiziellen Richtlinien zum Einreichen eines Codes an NeurIPS 2020.