Pipeline DVC

CI/CD cho Machine Learning

Ravi Bhadauria

Machine Learning Engineer

Nhu cầu về data pipeline

  • Chỉ version hóa dữ liệu thì ít hữu ích
  • Theo dõi nguồn gốc dữ liệu là quan trọng
    • Lọc, làm sạch, biến đổi
    • Huấn luyện mô hình
  • Chỉ chạy phần cần thiết
  • Các bước trong Đồ thị Có hướng Phi chu trình (DAG)

Sơ đồ DAG mô tả quan hệ giữa tiền xử lý, huấn luyện và artifact của mô hình

CI/CD cho Machine Learning

Pipeline DVC

  • Chuỗi stage định nghĩa quy trình ML và phụ thuộc

  • Được định nghĩa trong tệp dvc.yaml

    • Dữ liệu đầu vào và script (deps)
    • Lệnh chạy stage (cmd)
    • Artifact đầu ra (outs)
      • Dữ liệu đặc biệt như metricsplots
  • Tương tự workflow GitHub Actions

    • Tập trung vào tác vụ ML thay vì CI/CD
    • Có thể trừu tượng thành một bước trong GHA
CI/CD cho Machine Learning

Định nghĩa stage của pipeline

  • Tạo stage bằng dvc stage add
dvc stage add \
-n preprocess \
-d raw_data.csv -d preprocess.py \
-o processed_data.csv \
python preprocess.py
  • Nội dung dvc.yaml
    stages:
    preprocess:
      cmd: python preprocess.py
      deps:
      - preprocess.py
      - raw_data.csv
      outs:
      - processed_data.csv
    
CI/CD cho Machine Learning

Đồ thị phụ thuộc

  • Thêm bước huấn luyện dùng đầu ra từ bước trước
    dvc stage add \
    -n train \
    -d train.py -d processed_data.csv \
    -o plots.png -o metrics.txt \
    python train.py
    
stages:
  preprocess:
    cmd: python preprocess.py
    deps:
    - preprocess.py
    - raw_data.csv
    outs:
    - processed_data.csv

train: cmd: python train.py deps: - processed_data.csv - train.py outs: - plots.png
CI/CD cho Machine Learning

Tái tạo một pipeline

  • Tái chạy pipeline bằng dvc repro
-> dvc repro
Running stage 'preprocess':                                      
> python preprocess.py

Running stage 'train': > python train.py Updating lock file 'dvc.lock'
  • Tệp trạng thái dvc.lock được tạo
    • Tương tự .dvc, lưu băm MD5
    • Commit ngay vào Git để ghi nhận trạng thái git add dvc.lock && git commit -m "first pipeline repro"`
CI/CD cho Machine Learning

Dùng kết quả cache

  • Dùng kết quả cache để tăng tốc lặp
-> dvc repro
Stage 'preprocess' didn't change, skipping
Running stage 'train' with command: ...
CI/CD cho Machine Learning

Trực quan hóa pipeline DVC

-> dvc dag
+------------+ 
| preprocess | 
+------------+ 
       *       
       *       
       *       
  +-------+    
  | train |    
  +-------+
1 https://dvc.org/doc/command-reference/dag
CI/CD cho Machine Learning

Tóm tắt

  • Pipeline DVC hữu ích cho
    • Lặp nhanh nhờ cache
    • Tái lập với dvc.yamldvc.lock
    • Kích hoạt CI/CD
  • Tạo pipeline bằng dvc stage add
  • Tái tạo/chạy bằng dvc repro
  • Trực quan bằng dvc dag
CI/CD cho Machine Learning

Ayo berlatih!

CI/CD cho Machine Learning

Preparing Video For Download...