Machine Learning のための CI/CD
Ravi Bhadauria
Machine Learning Engineer

ML ワークフローと依存関係を定義するステージの連続
dvc.yaml ファイルで定義します
deps)cmd)outs)metrics や plots などの特殊なデータGitHub Actions のワークフローに類似
dvc stage add を使ってステージを作成しますdvc stage add \
-n preprocess \
-d raw_data.csv -d preprocess.py \
-o processed_data.csv \
python preprocess.py
dvc.yaml の内容stages:
preprocess:
cmd: python preprocess.py
deps:
- preprocess.py
- raw_data.csv
outs:
- processed_data.csv
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.csvtrain: cmd: python train.py deps: - processed_data.csv - train.py outs: - plots.png
dvc repro を使ってパイプラインを再現します-> dvc repro Running stage 'preprocess': > python preprocess.pyRunning stage 'train': > python train.py Updating lock file 'dvc.lock'
dvc.lock が生成されます.dvc ファイルと同様に MD5 ハッシュを記録しますgit add dvc.lock && git commit -m "first pipeline repro"`-> dvc repro
Stage 'preprocess' didn't change, skipping
Running stage 'train' with command: ...
-> dvc dag
+------------+
| preprocess |
+------------+
*
*
*
+-------+
| train |
+-------+
dvc.yaml と dvc.lock による再現性dvc stage add でパイプラインを生成しますdvc repro で再現・実行しますdvc dag で可視化しますMachine Learning のための CI/CD