diff --git a/.dvc/.gitignore b/.dvc/.gitignore new file mode 100644 index 0000000..528f30c --- /dev/null +++ b/.dvc/.gitignore @@ -0,0 +1,3 @@ +/config.local +/tmp +/cache diff --git a/.dvc/config b/.dvc/config new file mode 100644 index 0000000..6c7e51f --- /dev/null +++ b/.dvc/config @@ -0,0 +1,4 @@ +[core] + remote = local +['remote "local"'] + url = /home/parmentf/data/dvc diff --git a/.dvcignore b/.dvcignore new file mode 100644 index 0000000..5197305 --- /dev/null +++ b/.dvcignore @@ -0,0 +1,3 @@ +# Add patterns of files dvc should ignore, which could improve +# the performance. Learn more at +# https://dvc.org/doc/user-guide/dvcignore diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..aa35d29 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "dvc.dvcPath": "dvc" +} diff --git a/LOG.md b/LOG.md new file mode 100644 index 0000000..9edab10 --- /dev/null +++ b/LOG.md @@ -0,0 +1,55 @@ +# Historique DVC + +Je sépare du README l'historique des commandes (surtout DVC, mais peut-être +aussi git), dans un souci de clarté. + +Nous partons d'un dépôt git minimal, et utiliserons l'exemple de fasttext et du +RNSR (ça permettra de comparer avec le dépôt +[rnsr-ml](https://gitbucket.inist.fr/parmentf/rnsr-ml)). + +## Initialisation du répertoire + +```bash +dvc init +Initialized DVC repository. + +You can now commit the changes to git. + ++---------------------------------------------------------------------+ +| | +| DVC has enabled anonymous aggregate usage analytics. | +| Read the analytics documentation (and how to opt-out) here: | +| | +| | ++---------------------------------------------------------------------+ + +What's next? +------------ +- Check out the documentation: +- Get help and share ideas: +- Star us on GitHub: +``` + +Cette commande crée plusieurs fichiers de configuration et les ajoute au +prochain commit git. + +## Ajout d'un dépôt de fichier local + +```bash +$ mkdir -p ~/data/dvc +$ dvc remote add -d local ~/data/dvc +Setting 'local' as a default remote. +``` + +Cette commande modifie le fichier `.dvc/config`. + +## Optionnel: Setup the Workspace VSCode + +VSCode a une extension DVC (datant du milieu de 2022). +On peut cliquer sur `Setup the Workspace`. +Ou lancer, via la palette de commande: `DVC: Setup the Workspace`. + +Il demande où trouver l'exécutable de `dvc`. +Comme je l'ai installé via `apt`, il est disponible globalement, mais on peut se +servir de `pip` pour l'installer, et donc bénéficier d'une version locale au +répertoire (à condition d'activer l'environnement virtuel, je n'ai pas testé). diff --git a/README.md b/README.md index f7b7749..1bba0a1 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,45 @@ -dvc-simple -=============== +# dvc-simple -Une utilisation simple et typique de DVC pour mettre en avant ses avantages \ No newline at end of file +Une utilisation simple et typique de [DVC](https://dvc.org/) 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](https://gitbucket.inist.fr/parmentf/rnsr-ml/) 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](https://gitbucket.inist.fr/parmentf/rnsr-ml/blob/master/notes/2022-05-31.md#parame%cc%80tres-inspire%cc%81s-d%26%2339%3bautotune)). + +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 + +## Paramétrage des modèles + +## Expériences (experiments) +