DVC में मैट्रिक और प्लॉट्स की तुलना

Machine Learning के लिए CI/CD

Ravi Bhadauria

Machine Learning Engineer

DVC YAML फ़ाइल कॉन्फ़िगर करना

  • कई एक्सपेरिमेंट्स में मैट्रिक ट्रैक करने के लिए DVC YAML कॉन्फ़िगर करें
  • outs से बदलें
stages:
  preprocess:
    ...
  train:
    ...
    outs:
    - metrics.json
    - confusion_matrix.png
  • metrics में
stages:
  preprocess:
    ...
  train:
    ...
    outs:
    - confusion_matrix.png

metrics: - metrics.json: cache: false
Machine Learning के लिए CI/CD

DVC मैट्रिक क्वेरी और तुलना करना

-> dvc metrics show

Path accuracy f1_score precision recall metrics.json 0.947 0.8656 0.988 0.7702

एक हाइपरपैरामीटर बदलें और dvc repro फिर चलाएँ

-> dvc metrics diff

Path Metric HEAD workspace Change metrics.json accuracy 0.947 0.9995 0.0525 metrics.json f1_score 0.8656 0.9989 0.1333 metrics.json precision 0.988 0.9993 0.0113 metrics.json recall 0.7702 0.9986 0.2284
1 https://dvc.org/doc/command-reference/metrics
Machine Learning के लिए CI/CD

DVC Github Action सेट करना

  • setup-dvc GitHub Action जोड़ें
  • Python स्क्रिप्ट चलाने के बजाय DVC पाइपलाइन चलाएँ
steps:
  ...
  - name: Setup DVC
    uses: iterative/setup-dvc@v1

- name: Run DVC pipeline run: dvc repro
Machine Learning के लिए CI/CD

DVC Github Action सेट करना

- name: Write CML report
  env:
    REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  run: |
    # वर्तमान ब्रांच की मैट्रिक प्रिंट करें
    dvc metrics show --md >> report.md

# main ब्रांच से मैट्रिक तुलना करें git fetch --prune dvc metrics diff --md main >> report.md
# CML रिपोर्ट बनाएँ cml comment create report.md
Machine Learning के लिए CI/CD

पाइपलाइन इन ऐक्शन

मुख्य ब्रांच के मुकाबले मैट्रिक डिफ़ दिखाती पुल रिक्वेस्ट टिप्पणी का स्क्रीनशॉट

Machine Learning के लिए CI/CD

DVC में प्लॉट के प्रकार

  • scatter - स्कैटर प्लॉट
  • linear - इंटरएक्टिव लीनियर प्लॉट
  • simple - नॉन-इंटरएक्टिव कस्टमाइज़ेबल लीनियर प्लॉट
  • smooth - स्मूदिंग वाला लीनियर प्लॉट
  • confusion - कन्फ्यूज़न मैट्रिक्स
  • confusion_normalized - मानों को <0, 1> रेंज में नॉर्मलाइज़ किया हुआ कन्फ्यूज़न मैट्रिक्स
  • bar_horizontal - हॉरिज़ॉन्टल बार प्लॉट
  • bar_horizontal_sorted - बार साइज के अनुसार सॉर्ट किया हुआ हॉरिज़ॉन्टल बार प्लॉट
1 https://dvc.org/doc/user-guide/experiment-management/visualizing-plots#plot-templates-data-series-only
Machine Learning के लिए CI/CD

प्लॉट्स के लिए DVC YAML कॉन्फ़िगर करना

stages:
  train:
    ...
    plots:
    - predictions.csv: # प्रेडिक्शंस वाली फ़ाइल का नाम
        template: confusion # प्लॉट की शैली

x: predicted_label # CSV फ़ाइल में X-अक्ष का कॉलम नाम y: true_label # CSV फ़ाइल में Y-अक्ष का कॉलम नाम x_label: 'Predicted label' y_label: 'True label' title: Confusion matrix
cache: false # Git में सेव करें
Machine Learning के लिए CI/CD

कन्फ्यूज़न मैट्रिक्स प्लॉट करना

-> dvc plots show predictions.csv
file:///path/to/index.html

DVC द्वारा जनरेट किया गया कन्फ्यूज़न मैट्रिक्स डिस्प्ले प्लॉट

Machine Learning के लिए CI/CD

कन्फ्यूज़न मैट्रिक्स की तुलना

-> dvc plots diff --target predictions.csv main
file:///path/to/index.html

DVC द्वारा जनरेट किया गया कन्फ्यूज़न मैट्रिक्स डिफ़ प्लॉट

Machine Learning के लिए CI/CD

ROC कर्व्स की तुलना

# Python में बदलाव
y_proba = model.predict_proba(X_test)
fpr, tpr, _ = roc_curve(y_test, 
                        y_proba[:, 1])
# dvc.yaml में बदलाव
plots:
- roc_curve.csv:
    template: simple
    x: fpr
    y: tpr
    x_label: 'False Positive Rate'
    y_label: 'True Positive Rate'
    title: ROC curve
    cache: false

DVC द्वारा जनरेट किया गया ROC कर्व डिफ़ प्लॉट

Machine Learning के लिए CI/CD

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

Machine Learning के लिए CI/CD

Preparing Video For Download...