DVC पाइपलाइन्स लिखना और विज़ुअलाइज़ करना

DVC के साथ डेटा वर्ज़निंग परिचय

Ravi Bhadauria

Machine Learning Engineer

DVC Pipelines

  • स्टेज़ का क्रम जो Machine Learning वर्कफ़्लो और डिपेंडेंसीज़ तय करता है

    • Git से वर्शन किया और ट्रैक किया जाता है
  • dvc.yaml फ़ाइल में परिभाषित

    • इनपुट डेटा और स्क्रिप्ट्स (deps)
    • पैरामीटर्स (params)
    • स्टेज चलाने के कमांड्स (cmd)
    • आउटपुट आर्टिफैक्ट्स (outs)
      • विशेष डेटा जैसे metrics और plots
DVC के साथ डेटा वर्ज़निंग परिचय

प्रिप्रोसेसिंग स्टेज जोड़ना

  • 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
DVC के साथ डेटा वर्ज़निंग परिचय

ट्रेनिंग और इवैल्युएशन स्टेज जोड़ना

  • पिछले स्टेप के आउटपुट से ट्रेनिंग स्टेप जोड़ें
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:
      # Skip specifying parameter file
      # Defaulted to params.yaml
      - train_and_evaluate
    deps:
    - processed_data.csv
    - train_and_evaluate.py
    outs:
    - plots.png
    - metrics.json
DVC के साथ डेटा वर्ज़निंग परिचय

स्टेज अपडेट करना

  • dvc stage add कई बार चलाने पर
ERROR: Stage 'train_and_evaluate' 
already exists in 'dvc.yaml'.
Use '--force' to overwrite.
  • 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
DVC के साथ डेटा वर्ज़निंग परिचय

DVC पाइपलाइन्स विज़ुअलाइज़ करना

# टर्मिनल पर DAG प्रिंट करें
dvc dag
# किसी लक्ष्य स्टेप तक DAG दिखाएँ
dvc dag <target>
            +------------+     
            | preprocess |     
            +------------+     
                   *           
                   *           
                   *           
        +--------------------+ 
        | train_and_evaluate | 
        +--------------------+
DVC के साथ डेटा वर्ज़निंग परिचय

DVC पाइपलाइन्स विज़ुअलाइज़ करना

# स्टेप आउटपुट्स को नोड्स की तरह दिखाएँ
dvc dag --outs
                    +-------------------------------+              
                    | processed_dataset/weather.csv |              
                    +-------------------------------+              
                          ***               ***                    
                       ***                     ***                 
                     **                           **               
          +--------------+                    +-----------+ 
          | metrics.json |                    | plots.png | 
          +--------------+                    +-----------+
DVC के साथ डेटा वर्ज़निंग परिचय

DVC पाइपलाइन्स विज़ुअलाइज़ करना

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

DOT फ़ाइल से प्लॉट किया गया दो-स्टेज DVC DAG का ग्राफ़

1 https://dreampuf.github.io/GraphvizOnline/
DVC के साथ डेटा वर्ज़निंग परिचय

अभ्यास करते हैं!

DVC के साथ डेटा वर्ज़निंग परिचय

Preparing Video For Download...