Viết và trực quan hóa pipeline DVC

Nhập môn Quản lý Phiên bản Dữ liệu với DVC

Ravi Bhadauria

Machine Learning Engineer

Pipeline DVC

  • Chuỗi stage xác định quy trình ML và phụ thuộc

    • Được tạo phiên bản và theo dõi bằng Git
  • Định nghĩa trong tệp dvc.yaml

    • Dữ liệu đầu vào và script (deps)
    • Tham số (params)
    • Lệnh chạy stage (cmd)
    • Tạo phẩm đầu ra (outs)
      • Dữ liệu đặc biệt, ví dụ metricsplots
Nhập môn Quản lý Phiên bản Dữ liệu với DVC

Thêm stage tiền xử lý

  • Tạo stage bằng 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
Nhập môn Quản lý Phiên bản Dữ liệu với DVC

Thêm stage huấn luyện và đánh giá

  • Thêm bước huấn luyện dùng đầu ra của bước trước
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
  • Đồ thị có hướng không chu trình (DAG)
stages:
  train_and_evaluate:
    cmd: python3 train_and_evaluate.py
    params:
      # Bỏ chỉ định tệp tham số
      # Mặc định là params.yaml
      - train_and_evaluate
    deps:
    - processed_data.csv
    - train_and_evaluate.py
    outs:
    - plots.png
    - metrics.json
Nhập môn Quản lý Phiên bản Dữ liệu với DVC

Cập nhật stage

  • Chạy dvc stage add nhiều lần
ERROR: Stage 'train_and_evaluate' 
đã tồn tại trong 'dvc.yaml'.
Dùng '--force' để ghi đè.
  • Dùng 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
Nhập môn Quản lý Phiên bản Dữ liệu với DVC

Trực quan hóa pipeline DVC

# In DAG trên terminal
dvc dag
# Hiển thị DAG đến một bước nhất định
dvc dag <target>
            +------------+     
            | preprocess |     
            +------------+     
                   *           
                   *           
                   *           
        +--------------------+ 
        | train_and_evaluate | 
        +--------------------+
Nhập môn Quản lý Phiên bản Dữ liệu với DVC

Trực quan hóa pipeline DVC

# Hiển thị output của bước dưới dạng node
dvc dag --outs
                    +-------------------------------+              
                    | processed_dataset/weather.csv |              
                    +-------------------------------+              
                          ***               ***                    
                       ***                     ***                 
                     **                           **               
          +--------------+                    +-----------+ 
          | metrics.json |                    | plots.png | 
          +--------------+                    +-----------+
Nhập môn Quản lý Phiên bản Dữ liệu với DVC

Trực quan hóa pipeline DVC

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

Một DAG DVC gồm hai stage được vẽ từ tệp DOT

1 https://dreampuf.github.io/GraphvizOnline/
Nhập môn Quản lý Phiên bản Dữ liệu với DVC

Ayo berlatih!

Nhập môn Quản lý Phiên bản Dữ liệu với DVC

Preparing Video For Download...