Esecuzione delle pipeline DVC

Introduzione al versionamento dei dati con DVC

Ravi Bhadauria

Machine Learning Engineer

Ricapitoliamo

  • Stage di preprocessing
stages:
  preprocess:
    cmd: python3 preprocess.py
    params:
      - preprocess
    deps:
    - preprocess.py
    - raw_data.csv
    outs:
    - processed_data.csv
  • Training e valutazione
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
Introduzione al versionamento dei dati con DVC

Riprodurre una pipeline

  • Riproduci la pipeline con dvc repro
$ dvc repro
Esecuzione stage 'preprocess':                                      
> python preprocess.py

Esecuzione stage 'train_and_evaluate': > python train_and_evaluate.py Aggiornamento del file di lock 'dvc.lock'
  • Viene generato un file di stato dvc.lock
    • Come il file .dvc, salva hash MD5
$ git add dvc.lock && git commit -m "first pipeline run"
Introduzione al versionamento dei dati con DVC

Uso dei risultati in cache

  • Usa i risultati in cache per iterare più velocemente
$ dvc repro
Stage 'preprocess' invariato, salto
Esecuzione stage 'train_and_evaluate' con comando: ...
Introduzione al versionamento dei dati con DVC

Caching degli stage in DVC

Diagramma di flusso del funzionamento della cache degli stage in DVC

Introduzione al versionamento dei dati con DVC

Dry run di una pipeline

  • Usa il flag --dry per stampare i comandi senza eseguire la pipeline
$ dvc repro --dry
Esecuzione stage 'preprocess':
> python3 preprocess_dataset.py

Esecuzione stage 'train_and_evaluate':
> python3 train_and_evaluate.py
Introduzione al versionamento dei dati con DVC

Argomenti aggiuntivi

  • Eseguire file specifici dvc repro linear/dvc.yaml
    • Non sono permessi più dvc.yaml nella stessa cartella
  • Eseguire stage specifici dvc repro <target_stage>
    • Questo esegue anche le dipendenze a monte
  • Forzare l'esecuzione di pipeline/stage dvc repro -f
  • Non salvare gli output in cache dvc repro --no-commit
    • Usa dvc commit dopo
Introduzione al versionamento dei dati con DVC

Esecuzione parallela degli stage

Schema dell'esecuzione parallela degli stage (DAG) in DVC

  • Esegui passi indipendenti in parallelo
# Esegui A2 e le sue dipendenze a monte
$ dvc repro A2
# Esegui B2 e le sue dipendenze a monte
$ dvc repro B2
  • Usa la cache per velocizzare l'esecuzione
$ dvc repro train
Stage 'A2' invariato, salto
Stage 'B2' invariato, salto
Esecuzione stage 'train' con comando: ...
Introduzione al versionamento dei dati con DVC

Passons à la pratique !

Introduzione al versionamento dei dati con DVC

Preparing Video For Download...