Menulis dan memvisualisasikan pipeline DVC

Pengantar Versioning Data dengan DVC

Ravi Bhadauria

Machine Learning Engineer

Pipeline DVC

  • Urutan tahap yang mendefinisikan alur kerja Machine Learning dan dependensi

    • Di-versi dan dilacak dengan Git
  • Didefinisikan di file dvc.yaml

    • Data masukan dan skrip (deps)
    • Parameter (params)
    • Perintah eksekusi tahap (cmd)
    • Artefak keluaran (outs)
      • Data khusus mis. metrics dan plots
Pengantar Versioning Data dengan DVC

Menambahkan tahap praproses

  • Buat tahap dengan dvc stage add
dvc stage add \
-n preprocess \
-p params.yaml:preprocess \
-d raw_data.csv \
-d preprocess.py \
-o processed_data.csv \
python3 preprocess.py
stages:
  preprocess:
    cmd: python3 preprocess.py
    params:
      # Keys from params.yaml
      - params.yaml
        - preprocess
    deps:
    - preprocess.py
    - raw_data.csv
    outs:
    - processed_data.csv
Pengantar Versioning Data dengan DVC

Menambahkan tahap pelatihan dan evaluasi

  • Tambah langkah pelatihan menggunakan keluaran dari langkah sebelumnya
dvc stage add \
-n train_and_evaluate \
-p train_and_evaluate \
-d train_and_evaluate.py \
-d processed_data.csv \
-o plots.png \
-o metrics.json \
python3 train_and_evaluate.py
  • Directed Acyclic Graph (DAG)
stages:
  train_and_evaluate:
    cmd: python3 train_and_evaluate.py
    params:
      # Lewati penentuan file parameter
      # Default ke params.yaml
      - train_and_evaluate
    deps:
    - processed_data.csv
    - train_and_evaluate.py
    outs:
    - plots.png
    - metrics.json
Pengantar Versioning Data dengan DVC

Memperbarui tahap

  • Menjalankan dvc stage add beberapa kali
ERROR: Stage 'train_and_evaluate' 
sudah ada di 'dvc.yaml'.
Gunakan '--force' untuk menimpa.
  • Gunakan dvc stage add --force
dvc stage add --force \
-n train_and_evaluate \
-p train_and_evaluate \
-d train_and_evaluate.py \
-d processed_data.csv \
-o plots.png \
-o metrics.json \
python3 train_and_evaluate.py
Pengantar Versioning Data dengan DVC

Memvisualisasikan pipeline DVC

# Cetak DAG di terminal
dvc dag
# Tampilkan DAG hingga langkah tertentu
dvc dag <target>
            +------------+     
            | preprocess |     
            +------------+     
                   *           
                   *           
                   *           
        +--------------------+ 
        | train_and_evaluate | 
        +--------------------+
Pengantar Versioning Data dengan DVC

Memvisualisasikan pipeline DVC

# Tampilkan keluaran langkah sebagai node
dvc dag --outs
                    +-------------------------------+              
                    | processed_dataset/weather.csv |              
                    +-------------------------------+              
                          ***               ***                    
                       ***                     ***                 
                     **                           **               
          +--------------+                    +-----------+ 
          | metrics.json |                    | plots.png | 
          +--------------+                    +-----------+
Pengantar Versioning Data dengan DVC

Memvisualisasikan pipeline DVC

dvc dag --dot
strict digraph  {
"preprocess";
"train_and_evaluate";
"preprocess" -> "train_and_evaluate";
}

DAG DVC dua tahap digambar sebagai grafik dari file DOT

1 https://dreampuf.github.io/GraphvizOnline/
Pengantar Versioning Data dengan DVC

Ayo berlatih!

Pengantar Versioning Data dengan DVC

Preparing Video For Download...