Exécuter des pipelines DVC

Introduction au contrôle de versions des données avec DVC

Ravi Bhadauria

Machine Learning Engineer

Récapitulatif

  • Étape de prétraitement
stages:
  preprocess:
    cmd: python3 preprocess.py
    params:
      - preprocess
    deps:
    - preprocess.py
    - raw_data.csv
    outs:
    - processed_data.csv
  • Entraînement et évaluation
stages:
  train_and_evaluate:
    cmd: python3 train_and_evaluate.py
    params:
      - train_and_evaluate
    deps:
    - processed_data.csv
    - train_and_evaluate.py
    outs:
    - plots.png
    - metrics.json
Introduction au contrôle de versions des données avec DVC

Reproduire un pipeline

  • Reproduire le pipeline avec dvc repro
$ dvc repro
Running stage 'preprocess':                                      
> python preprocess.py

Running stage 'train_and_evaluate': > python train_and_evaluate.py Updating lock file 'dvc.lock'
  • Un fichier d'état dvc.lock est généré
    • Comme le fichier .dvc, il saisit des hachages MD5
$ git add dvc.lock && git commit -m "first pipeline run"
Introduction au contrôle de versions des données avec DVC

Utiliser les résultats en cache

  • Utiliser le cache pour accélérer l'itération
$ dvc repro
Stage 'preprocess' didn't change, skipping
Running stage 'train_and_evaluate' with command: ...
Introduction au contrôle de versions des données avec DVC

Mise en cache des étapes dans DVC

Organigramme du fonctionnement de la mise en cache des étapes dans DVC

Introduction au contrôle de versions des données avec DVC

Exécuter un aperçu à blanc

  • Utiliser l'option --dry pour afficher les commandes sans exécuter le pipeline
$ dvc repro --dry
Running stage 'preprocess':
> python3 preprocess_dataset.py

Running stage 'train_and_evaluate':
> python3 train_and_evaluate.py
Introduction au contrôle de versions des données avec DVC

Paramètres supplémentaires

  • Exécuter un fichier précis dvc repro linear/dvc.yaml
    • Plusieurs dvc.yaml dans un même dossier ne sont pas permis
  • Exécuter des étapes précises dvc repro <target_stage>
    • Cela exécutera aussi les dépendances en amont
  • Forcer l'exécution d'un pipeline/d'une étape dvc repro -f
  • Ne pas enregistrer les sorties dans le cache dvc repro --no-commit
    • Utilisez dvc commit plus tard
Introduction au contrôle de versions des données avec DVC

Exécution parallèle d'étapes

Schéma de l'exécution parallèle d'étapes (DAG) dans DVC

  • Exécuter en parallèle des étapes indépendantes
# Exécuter A2 et ses dépendances en amont
$ dvc repro A2
# Exécuter B2 et ses dépendances en amont
$ dvc repro B2
  • Utiliser le cache pour accélérer l'exécution
$ dvc repro train
Stage 'A2' didn't change, skipping
Stage 'B2' didn't change, skipping
Running stage 'train' with command: ...
Introduction au contrôle de versions des données avec DVC

Passons à la pratique !

Introduction au contrôle de versions des données avec DVC

Preparing Video For Download...