dvc:data version control

CML · Continuous Machine Learning

什么是DVC?

DVC是一种利用现有软件工程工具集的数据科学工具。它帮助机器学习团队管理大型数据集,使项目具有可复制性,并更好地进行协作。

选型比较:DVC vs

概念

模型注册

模型注册/登记是记录并索引所有ML模型和版本的工具。通过模型注册,来自ML项目的模型可以被发现、测试、分享和审查。DVC studio的模型注册建立在git的基础上,因此不会割裂。
输入图片说明

数据注册

实验跟踪

DVC如何安装

1
pip install dvc

使用vscode可以装插件

DVC如何使用?

教程是data+code跟踪,所以比较复杂

DVC创建项目

1
2
3
git init
dvc init #必须在git init之后
git commit -m "Initialize DVC" #无须add,自动添加暂存区

主要是这三个文件
new file: .dvc/.gitignore
new file: .dvc/config
new file: .dvcignore

dvc下载

1
dvc [url] [path]

dvc get将任何Git仓库变成“数据注册表”。dvc get可以下载dvc存储库中跟踪的任何文件或目录。

dvc文件管理

1
2
3
4
dvc add <文件名>
# 此时,<文件名>.dvc将被创建,并自动将<文件名>添加到.gitignore
git add 'data\data.xml.dvc' 'data\.gitignore' # 必要
git commit -m "Add raw data"

dvc远程仓库数据

1
2
dvc remote add -d myremote /tmp/dvcstore
dvc push/pull #上传和拉取数据

dvc数据管道——DAG

记录流水线允许依赖的python文件和数据,通过dvc stage创建dvc.yaml,这个文件包含了执行的命令、依赖和输出

添加流程

1
2
3
4
5
dvc stage add -n prepare \
-p prepare.seed,prepare.split \
-d src/prepare.py -d data/data.xml \
-o data/prepared \
python src/prepare.py data/data.xm

提交

1
2
3
4
git add .gitignore data/.gitignore dvc.yaml

git commit -m "pipeline defined"

复现流水线结果

1
dvc repro

dvc.lock文件会被创建,类似npm中package-lock.json,即锁定依赖文件

对dvc.lock进行管理

1
git add dvc.lock && git commit -m "first pipeline repro"

可视化流程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
dvc dag
+---------+
| prepare |
+---------+
*
*
*
+-----------+
| featurize |
+-----------+
*
*
*
+-------+
| train |
+-------+

评估结果

dvc.yaml-evaluate阶段

1
2
3
4
5
6
7
8
evaluate:
cmd: python src/evaluate.py model.pkl data/features
deps:
- data/features
- model.pkl
- src/evaluate.py
outs:
- eval
1
dvc metrics show

生成html文件展示图片

1
2
dvc plots show
file:///Users/dvc/example-get-started/dvc_plots/index.html

DVC资料在哪?

Home | Data Version Control · DVC