DVC Boru Hatları

Machine Learning için CI/CD

Ravi Bhadauria

Machine Learning Engineer

Bir veri boru hattına ihtiyaç

  • Yalnızca veriyi versiyonlamak çok yararlı değildir
  • Veri soyağacını izlemek önemlidir
    • Filtreleme, temizleme ve dönüştürme
    • Model eğitimi
  • Yalnızca gerekeni çalıştırın
  • Yönlendirilmiş çevrimsiz grafik (DAG) içindeki adımlar

Model ön işleme, eğitim ve yapıların ilişkisini gösteren bir DAG şeması

Machine Learning için CI/CD

DVC boru hatları

  • ML iş akışı ve bağımlılıklarını tanımlayan aşama dizisi

  • dvc.yaml dosyasında tanımlıdır

    • Girdi verileri ve betikler (deps)
    • Aşama komutları (cmd)
    • Çıktı yapıtları (outs)
      • Özel veriler ör. metrics ve plots
  • GitHub Actions iş akışına benzer

    • CI/CD yerine ML görevlerine odaklı
    • GHA'de bir adım olarak soyutlanabilir
Machine Learning için CI/CD

Boru hattı aşamalarını tanımlama

  • dvc stage add ile aşamalar oluşturun
dvc stage add \
-n preprocess \
-d raw_data.csv -d preprocess.py \
-o processed_data.csv \
python preprocess.py
  • dvc.yaml içeriği
    stages:
    preprocess:
      cmd: python preprocess.py
      deps:
      - preprocess.py
      - raw_data.csv
      outs:
      - processed_data.csv
    
Machine Learning için CI/CD

Bağımlılık grafikleri

  • Önceki adımın çıktısını kullanan bir eğitim adımı ekleyin
    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
Machine Learning için CI/CD

Bir boru hattını yeniden üretme

  • Boru hattını dvc repro ile yeniden üretin
-> dvc repro
Aşama 'preprocess' çalıştırılıyor:                                      
> python preprocess.py

Aşama 'train' çalıştırılıyor: > python train.py Kilit dosyası 'dvc.lock' güncelleniyor
  • dvc.lock adlı bir durum dosyası oluşturulur
    • .dvc dosyasına benzer, MD5 karmalarını kaydeder
    • Durumu kaydetmek için hemen Git'e işleyin git add dvc.lock && git commit -m "first pipeline repro"`
Machine Learning için CI/CD

Önbelleklenmiş sonuçları kullanma

  • Yinelemeyi hızlandırmak için önbellekteki sonuçları kullanma
-> dvc repro
Aşama 'preprocess' değişmedi, atlanıyor
' train' aşaması şu komutla çalıştırılıyor: ...
Machine Learning için CI/CD

DVC boru hattını görselleştirme

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

Özet

  • DVC boru hatları şunlar için yararlıdır
    • Önbellekleme sayesinde hızlı yineleme
    • dvc.yaml ve dvc.lock ile yeniden üretilebilirlik
    • CI/CD etkinleştirme
  • dvc stage add ile boru hattı oluşturun
  • dvc repro ile yeniden üretin/çalıştırın
  • dvc dag ile görselleştirin
Machine Learning için CI/CD

Haydi pratik yapalım!

Machine Learning için CI/CD

Preparing Video For Download...