DVC 使用案例(三):机器学习持续集成与持续交互( CI/CD )

简介: 将 DevOps 方法应用于机器学习 (MLOps) 和数据管理 (DataOps) 越来越普遍。对于一个完善的 MLOps 平台来说,需要囊括资源编排(为模型训练提供服务器)、模型测试(验证模型推理)、模型部署到生产,以及模型监控和反馈等机器学习生命周期各个环节。 DVC 可以管理数据/模型和重现 ML 流水线,而 CML 可以协助编排、测试以及监控。

将 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 可用于在云端进行研究和运行实验,例如,一个完整的超参数搜索!


相关文章
|
6天前
|
测试技术 持续交付 开发工具
《Git 简易速速上手小册》第6章:Git 在持续集成/持续部署(CI/CD)中的应用(2024 最新版)
《Git 简易速速上手小册》第6章:Git 在持续集成/持续部署(CI/CD)中的应用(2024 最新版)
29 2
|
3月前
|
安全 jenkins 测试技术
自动化测试与持续集成/持续交付(CI/CD)的实践与应用
自动化测试是现代软件开发不可或缺的环节,它可以有效地提高测试效率、降低测试成本。而持续集成/持续交付(CI/CD)则是一种基于自动化的软件开发流程,能够将代码的开发、构建、测试和部署等过程无缝连接起来,从而实现快速迭代和部署。本文将结合实际案例,介绍自动化测试和CI/CD的实践与应用。
150 2
|
3月前
|
存储 测试技术 持续交付
自动化测试与持续集成/持续交付(CI/CD):优化软件开发流程的利器
自动化测试与持续集成/持续交付(CI/CD)是现代软件开发中至关重要的环节,通过将自动化测试与持续集成/持续交付相结合,可以实现开发流程的高效优化,提高软件质量和交付速度。本文将探讨自动化测试与CI/CD的概念、原理及其在软件开发中的重要性,以及如何实施这些技术以提升团队的协作效率和软件交付质量。
58 1
|
3月前
|
机器学习/深度学习 算法
机器学习 - [集成学习]Bagging算法的编程实现
机器学习 - [集成学习]Bagging算法的编程实现
32 1
|
8天前
|
机器学习/深度学习 存储 算法
PYTHON集成机器学习:用ADABOOST、决策树、逻辑回归集成模型分类和回归和网格搜索超参数优化
PYTHON集成机器学习:用ADABOOST、决策树、逻辑回归集成模型分类和回归和网格搜索超参数优化
30 7
|
9天前
|
机器学习/深度学习 数据采集 算法
探索NumPy与机器学习库的集成之路
【4月更文挑战第17天】本文探讨了NumPy在机器学习中的核心作用,它为各类机器学习库提供基础数据处理和数值计算能力。NumPy的线性代数、优化算法和随机数生成等功能,对实现高效模型训练至关重要。scikit-learn等库广泛依赖NumPy进行数据预处理。未来,尽管面临大数据和复杂模型的性能挑战,NumPy与机器学习库的集成将继续深化,推动技术创新。
|
1月前
|
敏捷开发 监控 Devops
深入理解软件测试中的持续集成与持续部署(CI/CD)
【2月更文挑战第30天】 在快速发展的软件开发周期中,持续集成(Continuous Integration, CI)与持续部署(Continuous Deployment, CD)已成为确保产品质量和加快交付速度的重要实践。本文旨在探讨CI/CD在软件测试领域中的应用与挑战,解析其对测试流程、自动化及团队协作的影响,并分享最佳实践案例。通过深入了解CI/CD,测试人员可以更好地适应敏捷开发模式,提高测试效率,降低发布风险。
28 1
|
1月前
|
Devops 开发工具 数据安全/隐私保护
Docker Swarm总结+CI/CD Devops、gitlab、sonarqube以及harbor的安装集成配置(3/5)
Docker Swarm总结+CI/CD Devops、gitlab、sonarqube以及harbor的安装集成配置(3/5)
55 0
|
2月前
|
机器学习/深度学习 自然语言处理 JavaScript
GEE机器学习——最大熵分类器案例分析(JavaScript和python代码)
GEE机器学习——最大熵分类器案例分析(JavaScript和python代码)
45 0
|
17天前
|
消息中间件 Java Kafka
Springboot集成高低版本kafka
Springboot集成高低版本kafka

热门文章

最新文章