原标题 | Version Control ML Model
作 者 | Tianchen Wu
翻 译 | 呀啦呼(Tufts University)
具体情况请查看官网:https://dvc.org
和传统的软件开发操作(简称devOps)相比,机器学习操作(简称mlOps)。其中一个原因在于除了代码这种小型简单文件,机器学习实验需要大型数据库和模型组件。
本文介绍一个使用git和dvc(Data Version Control:https://dvc.org/doc/tutorial)来对机器学习模型版本控制的方案。
方案中伴随提供以下四个功能属性:
1. 机器学习模型需要具备可扩展性(scalability)、安全性(security)、可用性(availability)和几乎无限的存储空间;
2. 机器学习模型受到版本控制,举个例子,我们可以方便的标记或者访问任一个特定版本;
3. 通过分析代码和版本控制数据库,可以确保机器学习模型的可审计性(Auditability)、透明度(transparency)和可重复性(reproducibility);
4. 基于现有的模型设置,可以快速的启动新的实验。
方案包括两层版本控制:
1. git: 处理代码和数据集和模型组件的元数据;
2. dvc: 处理大型数据集和模型组件。
首先,准备好项目文件夹,安装好工具(按图索骥,一步一步的抄就行了)
然后把dvc连接上数据集和模型组件所在的后端数据库(以AWS S3为例)。
dvc remote add -d s3remote s3://my-test-bucket-dvc/myproject
现在在机器学习实验所在示例版本文件夹中,应该包含两个元数据子文件夹。
下一步我们从dvc.org下载数据和脚本来训练模型(宝贝们,继续开心地copy & paste)。
获取了模型(model.h5),使用dvc+ git来进行版本控制。
第一步,把模型元数据加入到dvc中
dvc add model.h5
输出如下:
咱们可以看到:
第二步,咱们把它推送到后端存储来保持模型
dvc push model.h5.dvc
在AWS s3中, 偶们阔以查看是否我们严格的遵循了模型元数据的指令来存储模型(看不懂?么事么事,下面有图)
第三步,使用git来保存模型元数据
模型元数据可以把我们引向存储在后端的真实模型对象。为了避免丢失,我们应该使用git把它添加到版本控制中。
使用"git tag"来记录模型版本。
第四步, 想嘛时候玩模型,就嘛时候
从git上可以查看到模型元数据。我们非常容易通过搜索 git branch上的tag来找到模型的特定版本。
git checkout tags/ -b
通过元数据,偶们阔以顺顺利利地找到模型对象并下载到现在的workspace。
dvc pull model.h5.dvc
通过类似的方法,机器学习实验中的大型数据集版本控制问题阔以被解决咯~其他还有些方法,有时间的话就看看mlflow(https://mlflow.org/), datanami (https://www.datanami.com/)和 sacred(https://github.com/IDSIA/sacred)呗。
via https://towardsdatascience.com/version-control-ml-model-4adb2db5f87c