在软件开发中,版本控制是一个不可或缺的部分。同样地,数据版本控制(DVC)是一个开源的、基于Git的版本管理工具,专为机器学习开发设计,它在团队中推广最佳实践。数据版本控制系统管理和跟踪数据及机器学习模型的变化,以协作和可复现的方式进行。它从软件开发中使用的版本控制系统(如Git)中汲取灵感,但专门针对数据科学项目进行定制。
通过本文,将初步了解以下内容:
DVC允许连接到各种存储提供商,如AWS S3、Microsoft Azure Blob Storage、Google Drive、Google Cloud Storage、HDFS等,以存储机器学习模型和数据集。
机器学习实验管理:它有助于自动跟踪指标的轻松导航。
部署与协作:DVC引入了管道,帮助将机器学习模型、数据和代码轻松捆绑到生产环境、远程机器或同事的计算机上。
通过PyPi仓库使用以下命令安装DVC:
pip install dvc
根据将要使用的远程存储类型,需要安装可选依赖项:[s3]、[gdrive]、[gs]、[azure]、[ssh]、[hdfs]、[webdav]、[oss]。使用[all]包括所有。在这篇博客中,将使用Google Drive作为远程存储,因此安装gdrive依赖项的命令是:
pip install dvc[gdrive]
在这篇博客中,将看到如何使用DVC跟踪数据和机器学习模型,以gdrive作为远程存储。想象一下包含以下结构的Git仓库:
现在,需要配置gdrive远程存储。前往Google Drive并创建一个名为dvc_storage的文件夹。打开dvc_storage文件夹。从URL中获取dvc_storage文件夹的folder-id:
https://drive.google.com/drive/folders/folder-id
例如:https://drive.google.com/drive/folders/0AIac4JZqHhKmUk9PDA
现在,使用以下命令将创建在Google Drive中的dvc_storage文件夹作为远程存储:
dvc remote add myremote gdrive://folder-id
例如:dvc remote add myremote gdrive://0AIac4JZqHhKmUk9PDA
现在,需要将更改提交到git仓库,使用以下命令:
git add -A
git commit -m "configure dvc remote storage"
要将数据推送到远程存储,使用以下命令:
dvc push
然后,使用以下命令将更改推送到git:
git push
要从DVC拉取数据,可以使用以下命令:
dvc pull
stages:
prepare:
cmd: source src/cleanup.sh
deps:
- src/cleanup.sh
- data/raw
outs:
- data/clean.csv
train:
cmd: python src/model.py data/model.csv
deps:
- src/model.py
- data/clean.csv
outs:
- data/predict.dat
evaluate:
cmd: python src/evaluate.py data/predict.dat
deps:
- src/evaluate.py
- data/predict.dat