Menjalankan pipeline DVC

Pengantar Versioning Data dengan DVC

Ravi Bhadauria

Machine Learning Engineer

Ringkasan

  • Stage prapemrosesan
stages:
  preprocess:
    cmd: python3 preprocess.py
    params:
      - preprocess
    deps:
    - preprocess.py
    - raw_data.csv
    outs:
    - processed_data.csv
  • Pelatihan dan evaluasi
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
Pengantar Versioning Data dengan DVC

Mereproduksi pipeline

  • Reproduksi pipeline dengan 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'
  • File status dvc.lock dibuat
    • Mirip .dvc, menyimpan hash MD5
$ git add dvc.lock && git commit -m "first pipeline run"
Pengantar Versioning Data dengan DVC

Menggunakan hasil cache

  • Gunakan hasil cache untuk mempercepat iterasi
$ dvc repro
Stage 'preprocess' didn't change, skipping
Running stage 'train_and_evaluate' with command: ...
Pengantar Versioning Data dengan DVC

Cache stage di DVC

Bagan alur cara kerja cache stage di DVC

Pengantar Versioning Data dengan DVC

Dry run pipeline

  • Gunakan flag --dry untuk hanya menampilkan perintah tanpa menjalankan pipeline
$ dvc repro --dry
Running stage 'preprocess':
> python3 preprocess_dataset.py

Running stage 'train_and_evaluate':
> python3 train_and_evaluate.py
Pengantar Versioning Data dengan DVC

Argumen tambahan

  • Menjalankan file tertentu dvc repro linear/dvc.yaml
    • Beberapa dvc.yaml dalam satu folder tidak diizinkan
  • Menjalankan stage tertentu dvc repro <target_stage>
    • Ini juga akan menjalankan dependensi upstream
  • Paksa jalankan pipeline/stage dvc repro -f
  • Jangan simpan output eksekusi di cache dvc repro --no-commit
    • Gunakan dvc commit nanti
Pengantar Versioning Data dengan DVC

Eksekusi stage paralel

Skema eksekusi stage paralel DAG di DVC

  • Jalankan langkah independen secara bersamaan
# Jalankan A2 dan dependensi upstream-nya
$ dvc repro A2
# Jalankan B2 dan dependensi upstream-nya
$ dvc repro B2
  • Gunakan caching untuk mempercepat eksekusi
$ dvc repro train
Stage 'A2' didn't change, skipping
Stage 'B2' didn't change, skipping
Running stage 'train' with command: ...
Pengantar Versioning Data dengan DVC

Ayo berlatih!

Pengantar Versioning Data dengan DVC

Preparing Video For Download...