Une utilisation simple et typique de DVC pour mettre en avant ses avantages

.dvc chore(dvc): Initialisation de DVC 1 year ago
.vscode chore(dvc): Initialisation de DVC 1 year ago
.dvcignore chore(dvc): Initialisation de DVC 1 year ago
LOG.md chore(dvc): Initialisation de DVC 1 year ago
README.md docs: Données de départ 1 year ago
README.md

dvc-simple

Une utilisation simple et typique de DVC pour mettre en avant ses avantages.

Le but est de construire un modèle fasttext qui classifie une adresse d'affiliation en identifiants RNSR.

Pour ce faire, il faut régler les hyperparamètres de fasttext.
Et donc expérimenter diverses combinaisons de ces paramètres, puis comparer les évaluations de chacun de ces modèles.

Sans DVC, on finit, sauf si on extrêmement bien organisé, par avoir beaucoup de modèles différents, par être obligé d'écrire des scripts pour estimer les performances des modèles, les visualiser... et ne plus savoir quel fichier on ajoute à git ou non (parce qu'ils peuvent être très gros).
Mais surtout, pour savoir quel modèle correspond à quels paramètres, on nomme ces modèles différemment, en fonction des hyperparamètres utilisés, et ça finit en capharnaüm.

À titre d'exemple, ma première étude a terminé avec 68 fichiers dans le répertoire des modèles, et 71 fichiers dans le répertoire des données.

La synthèse ds expérience est fastidieuse: il m'avait fallu construire à la main des tableaux contenant les paramètres et les résultats (voir cet exemple).

DVC est un outil (en ligne de commande, un peu comme git), qui permet:

  1. de versionner de gros fichiers (ce que git fait difficilement)
  2. de partager des modèles, via des dépôts (un peu comme git pour le code)
  3. de formaliser les dépendances entre données, programme(s), paramètre(s) et résultat(s) --les modèles.
  4. de comparer des expériences

Pour nos usages actuels, les points 1 et 2 sont anecdotiques, alors que les points 3 et 4 sont très intéressants.
C'est sur eux que nous allons nous concentrer.

Préparation des données

TODO: ici, on pourra voir l'intérêt de préparer une étape (stage) reproductible à partir d'un fichier de données d'origine.

Le résultat de la préparation des données, c'est un fichier d'entraînement et un fichier de test.

Pour l'instant, on repart de ceux de l'étude précédente: addresses-40-cnrs-rnsr-big-classes-train.txt et addresses-40-cnrs-rnsr-big-classes-test.txt (renommés train.txt et test.txt).

Paramétrage des modèles

Expériences (experiments)