将 DevOps 方法应用于机器学习 (MLOps) 和数据管理 (DataOps) 越来越普遍。对于一个完善的 MLOps 平台来说,需要囊括资源编排(为模型训练提供服务器)、模型测试(验证模型推理)、模型部署到生产,以及模型监控和反馈等机器学习生命周期各个环节。 DVC 可以管理数据/模型和重现 ML 流水线,而 CML 可以协助编排、测试以及监控。
网络异常,图片无法展示
|
ML 的 CI/CD(持续集成和持续交付)的主要好处如下:
首先,我们可以自动化和强制执行测试。这包括通过特定于应用程序的测试来加强完整性:
- 数据验证:例如,针对schema进行验证或验证流水线的一致性(正确的形状、数据类型等)。
- 模型验证:例如,输入/输出和性能验证(所有依赖项都存在,以进行推理,并且模型得分在阈值内)。
通常,ML 流水线需要基础架构编排:让 CI 系统配置和启动 GPU 实例、训练模型、干净利索地终止并拉取结果。
- 调配:在
pull
请求 (PR) 中添加/更改数据或代码时,自动在云环境中运行验证测试。 - 指标:自动生成指标报告。
最后,通过在线运行整个实验/研究能够更进一步的优化模型:
- 按计划进行微调:设置作业以从定期更新的外部源中提取新数据,以重新训练和优化部署的模型。
- 运行超参数搜索:让重量级资源和大数据在 CI 服务器上运行整晚,让您的笔记本电脑进入睡眠状态。
通常情况下,CI/CD 管理非常困难(设置、配置和维护),尤其是对于数据和机器学习流水线。
网络异常,图片无法展示
|
DVC 和 CML 消除了 ML 中的大部分管理难题。您可以自动执行上述所有操作,而无需任何其他配置。
以下是一些功能亮点:
- 模型、数据和指标就像代码一样:DVC 消除了必需创建版本控制数据库、使用特殊文件/文件夹结构或编写定制接口代码。相反,DVC 将元信息存储在 Git 中(对数据和 ML 模型进行“编码”),同时将实际数据内容推送到云存储。 DVC 还在 Git 存储库中提供了以指标驱动方式找到合适的实验模型(在跨提交的更改中表格化和图表模型指标)。
- 低冲突:我们的姊妹项目 CML 提供轻量级机器资源编排,让您可以使用预先存在的基础设施。 DVC 和 CML 都提供抽象与编码,并且不需要外部服务。
- 数据验证:通常的做法是每次将代码更改推送到Git存储库分支时触发测试。 DVC 可以以类似的方式用于检查不同的数据版本,以进行测试和运行健全性检查。可以自动捕获错误,而无需贡献者在本地设置复杂的测试。拥抱敏捷开发,这样您就可以自信地每天多次打包、部署和交付新版本(甚至在周末之前),而不必担心出现错误。
- 指标(模型验证):无论何时提交更改,DVC 都可以检查流水线(包括数据、参数、代码和指标)是否是最新的,从而确保 Git 提交和模型制品是同步的。 DVC 还可以在将新模型发布到生产之前针对先前部署的模型运行基准测试。 CML 提供了有用的工具来简化此过程。
- 在云中改进:DVC 和 CML 让您可以在云中重新训练与优化模型,而不是频繁地在本地更新模型。例如,CI 提供者允许定期的作业调度。每一天,一个作业都可以使用 CML 提供一个GPU服务器,DVC将从定期更新的源中提取数据,检查预先存在的模型,然后部署一个更新的模型(基于增加的数据改进)。
- 在云端进行实验:DVC 和 CML 可用于在云端进行研究和运行实验,例如,一个完整的超参数搜索!