Liste De Contrôle De L'exhaustivité Du ML

Table des matières:

Liste De Contrôle De L'exhaustivité Du ML
Liste De Contrôle De L'exhaustivité Du ML

Vidéo: Liste De Contrôle De L'exhaustivité Du ML

Vidéo: Liste De Contrôle De L'exhaustivité Du ML
Vidéo: 20210107_Le contrôle de la petite caisse 2024, Peut
Anonim

Dans le but d'augmenter la reproductibilité et de permettre aux autres de s'appuyer plus facilement sur les travaux publiés, nous présentons une liste de contrôle d'exhaustivité du code ML. La liste de contrôle de complétude du code ML évalue le magasin de codes en fonction des scripts et des artefacts qui y sont fournis.

Liste de contrôle de l'exhaustivité du code ML
Liste de contrôle de l'exhaustivité du code ML

introduction

L'année dernière, Joel Pino a publié une liste de contrôle de reproductibilité pour faciliter la recherche reproductible présentée lors des principales conférences OA (NeurIPS, ICML,…). La plupart des éléments de la liste de contrôle se concentrent sur les composants du papier. Un élément de cette liste de contrôle est « fournir un lien vers le code source », mais à part cela, peu de recommandations ont été faites.

Les meilleures pratiques ont été résumées dans la liste de contrôle de l'intégralité du code ML, qui fait désormais partie du processus officiel de soumission de code NeurIPS 2020 et sera disponible pour les réviseurs comme bon leur semble.

Liste de contrôle de l'exhaustivité du ML

La liste de contrôle de l'intégralité du code M vérifie le magasin de codes pour:

  1. Dépendances - Le référentiel contient-il des informations sur les dépendances ou des instructions sur la configuration de l'environnement ?
  2. Scénarios de formation - Le référentiel contient-il un moyen de former/adapter les modèles décrits dans le document ?
  3. Scénarios d'évaluation - Le référentiel contient-il un script pour calculer les performances du ou des modèles entraînés ou exécuter des expériences sur des modèles ?
  4. Modèles pré-entraînés - Le référentiel offre-t-il un accès gratuit aux poids des modèles pré-entraînés ?
  5. Résultats - le référentiel contient-il un tableau/un graphique des principaux résultats et un script pour reproduire ces résultats ?

Chaque référentiel peut recevoir de 0 (n'en a pas) à 5 (en a tous). Vous trouverez plus d'informations sur les critères de chaque élément dans le référentiel Github.

Quelles sont les preuves que les éléments de la liste de contrôle contribuent à des référentiels plus utiles ?

La communauté utilise généralement les étoiles GitHub comme proxy pour l'utilité du référentiel. Par conséquent, les dépôts avec un score plus élevé sur la liste de contrôle de complétude ML devraient également avoir plus d'étoiles GitHub. Pour tester cette hypothèse, 884 dépôts GitHub ont été soumis en tant qu'implémentations officielles dans les documents NeurIPS 2019. Un sous-ensemble de 25 % de ces 884 dépôts a été sélectionné au hasard et vérifié manuellement dans la liste de contrôle d'exhaustivité du ML. Ils ont regroupé cet échantillon de dépôts GitHub NeurIPS 2019 par le nombre de ticks qu'ils ont dans la liste de contrôle de complétude du code ML et ont cartographié les étoiles médianes GitHub dans chaque groupe. Le résultat est ci-dessous:

Image
Image

Les dépôts NeurIPS 2019 avec 0 cases à cocher avaient une médiane de 1,5 étoiles sur GitHub. En revanche, les dépôts avec 5 cases à cocher avaient une médiane de 196,5 étoiles GitHub. Seuls 9 % des repos avaient 5 ticks, et la plupart des repos (70 %) avaient 3 ticks ou moins. Le test de somme des rangs de Wilcoxon a été effectué et a révélé que le nombre d'étoiles dans la classe à 5 ticks est significativement (p.value <1e-4) plus élevé que dans toutes les autres classes, à l'exception de 5 contre 4 (où p.value est la limite). à 0,015). Vous pouvez voir les données et le code de cette figure dans le référentiel Github.

Pour tester si cette relation s'étend plus largement, un script a été créé pour automatiser le calcul d'une liste de contrôle à partir du référentiel README et du code associé. Nous avons ensuite réanalysé l'ensemble des 884 référentiels NeurIPS 2019, ainsi que l'ensemble plus large des 8926 référentiels de code pour tous les articles de ML publiés en 2019. Dans les deux cas, les spécialistes ont obtenu un résultat qualitativement identique avec des étoiles médianes augmentant de façon monotone à partir des tiques de manière statistiquement significative (p.value <1e-4). Enfin, en utilisant une régression linéaire robuste, nous avons trouvé que les modèles et les résultats pré-entraînés avaient le plus grand impact positif sur les étoiles GitHub.

Ceci est considéré comme une preuve utile par les analystes qu'encourager les chercheurs à inclure tous les composants requis par la liste de contrôle d'exhaustivité du ML conduira à des référentiels plus utiles, et que le score sur la liste de contrôle indique des soumissions de meilleure qualité.

Actuellement, les experts ne prétendent pas que les 5 éléments de la liste de contrôle proposés sont le seul ou même le plus important facteur de la popularité du référentiel. D'autres facteurs peuvent influencer la popularité, tels que: la taille de la contribution scientifique, le marketing (par exemple, les articles de blog et les articles Twitter), la documentation (README complets, tutoriels et documentation API), la qualité du code et les travaux antérieurs.

Quelques exemples de référentiels NeurIPS 2019 avec 5 cases à cocher:

Les experts reconnaissent que bien qu'ils aient essayé de rendre la liste de contrôle aussi générale que possible, elle peut ne pas être pleinement applicable à tous les types de documents, par exemple, théoriques ou ensembles de documents. Cependant, même si l'objectif principal de l'article est de représenter un ensemble de données, il peut toujours bénéficier de la publication de modèles de base, y compris des scénarios de formation, des scénarios d'évaluation et des résultats.

Commencez à utiliser

Pour permettre aux réviseurs et aux utilisateurs de comprendre plus facilement ce qui se trouve dans le référentiel et aux experts de l'évaluer correctement, une collection de bonnes pratiques est fournie pour l'écriture de fichiers README.md, la définition des dépendances et la publication de modèles, d'ensembles de données et de résultats pré-entraînés. Il est recommandé de définir clairement ces 5 éléments dans votre référentiel et de les lier à des ressources externes telles que des documents et des classements pour fournir plus de contexte et de clarté à vos utilisateurs. Ce sont les directives officielles pour soumettre un code à NeurIPS 2020.

Conseillé: