DVC로 배우는 데이터 버저닝 입문
Ravi Bhadauria
Machine Learning Engineer
머신러닝 워크플로와 의존성을 정의하는 단계들의 시퀀스
dvc.yaml 파일에 정의됨
deps)params)cmd)outs)metrics, plotsdvc 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 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
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 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
# 터미널에 DAG 출력
dvc dag
# 특정 단계까지 표시
dvc dag <target>
+------------+
| preprocess |
+------------+
*
*
*
+--------------------+
| train_and_evaluate |
+--------------------+
# 단계 출력물을 노드로 표시
dvc dag --outs
+-------------------------------+
| processed_dataset/weather.csv |
+-------------------------------+
*** ***
*** ***
** **
+--------------+ +-----------+
| metrics.json | | plots.png |
+--------------+ +-----------+
dvc dag --dot
strict digraph {
"preprocess";
"train_and_evaluate";
"preprocess" -> "train_and_evaluate";
}

DVC로 배우는 데이터 버저닝 입문