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


相关文章
|
JavaScript 前端开发 持续交付
Prettier 高级应用:集成 CI/CD 流水线与插件开发
【10月更文挑战第18天】Prettier 是一款流行的代码格式化工具,它能够自动将代码格式化成一致的风格,从而提高代码的可读性和维护性。对于希望进一步发挥 Prettier 潜力的高级用户而言,将 Prettier 集成到持续集成(CI)和持续部署(CD)流程中,确保每次提交的代码都符合团队标准,是非常重要的。此外,通过开发自定义插件来支持更多语言或扩展 Prettier 的功能也是值得探索的方向。本文将详细介绍这两方面的内容。
271 2
|
10月前
|
人工智能 Kubernetes jenkins
容器化AI模型的持续集成与持续交付(CI/CD):自动化模型更新与部署
在前几篇文章中,我们探讨了容器化AI模型的部署、监控、弹性伸缩及安全防护。为加速模型迭代以适应新数据和业务需求,需实现容器化AI模型的持续集成与持续交付(CI/CD)。CI/CD通过自动化构建、测试和部署流程,提高模型更新速度和质量,降低部署风险,增强团队协作。使用Jenkins和Kubernetes可构建高效CI/CD流水线,自动化模型开发和部署,确保环境一致性并提升整体效率。
|
5月前
|
Cloud Native 中间件 调度
云原生信息提取系统:容器化流程与CI/CD集成实践
本文介绍如何通过工程化手段解决数据提取任务中的稳定性与部署难题。结合 Scrapy、Docker、代理中间件与 CI/CD 工具,构建可自动运行、持续迭代的云原生信息提取系统,实现结构化数据采集与标准化交付。
169 1
云原生信息提取系统:容器化流程与CI/CD集成实践
|
存储 监控 Devops
DevOps实践:持续集成/持续部署(CI/CD)的实战指南
DevOps实践:持续集成/持续部署(CI/CD)的实战指南
|
12月前
|
机器学习/深度学习 传感器 运维
使用机器学习技术进行时间序列缺失数据填充:基础方法与入门案例
本文探讨了时间序列分析中数据缺失的问题,并通过实际案例展示了如何利用机器学习技术进行缺失值补充。文章构建了一个模拟的能源生产数据集,采用线性回归和决策树回归两种方法进行缺失值补充,并从统计特征、自相关性、趋势和季节性等多个维度进行了详细评估。结果显示,决策树方法在处理复杂非线性模式和保持数据局部特征方面表现更佳,而线性回归方法则适用于简单的线性趋势数据。文章最后总结了两种方法的优劣,并给出了实际应用建议。
670 7
使用机器学习技术进行时间序列缺失数据填充:基础方法与入门案例
|
存储 测试技术 持续交付
Docker与CI/CD的集成策略及其对软件开发效率和质量的提升作用
本文探讨了Docker与CI/CD的集成策略及其对软件开发效率和质量的提升作用。首先介绍了CI/CD的基本概念,接着阐述了Docker在环境一致性、快速部署、资源隔离和轻量化方面的优势。文章还详细讨论了构建、测试和部署阶段的具体集成方法,以及集成后带来的效率提升、可靠性增强、加速交付和易于管理等好处。最后,通过案例分析展示了集成的实际效果,强调了Docker与CI/CD结合的重要性和未来前景。
221 2
|
jenkins Java 持续交付
软件开发自动化程度的不断提高,持续集成(CI)和持续部署(CD)成为现代软件开发的重要组成部分
随着软件开发自动化程度的不断提高,持续集成(CI)和持续部署(CD)成为现代软件开发的重要组成部分。本文以电商公司为例,介绍如何使用 Jenkins 自动发布 Java 代码,包括安装配置、构建脚本编写及自动化部署等步骤,帮助团队实现高效稳定的软件交付。
138 3
|
存储 Java 调度
Sppring集成Quartz简单案例详解 包括(添加、停止、恢复、删除任务、获取下次执行时间等)
Sppring集成Quartz简单案例详解 包括(添加、停止、恢复、删除任务、获取下次执行时间等)
264 2
|
缓存 监控 测试技术
掌握容器化持续集成/持续部署(CI/CD)的最佳实践
【10月更文挑战第8天】本文介绍了容器化持续集成/持续部署(CI/CD)的最佳实践,涵盖容器化CI/CD的概念、优势和实施步骤。通过使用容器技术,可以实现环境一致性、快速迭代和易于扩展,提高软件开发的效率和可靠性。文章还详细讨论了编写高效的Dockerfile、自动化测试、安全性、监控和日志管理等方面的最佳实践。
|
Devops jenkins 测试技术
DevOps实践:持续集成与持续部署(CI/CD)的实现之路
【9月更文挑战第33天】在软件开发的海洋中,DevOps是一艘能够加速航行、提升航程质量的巨轮。本文将作为你的航海图,指引你理解并实现DevOps文化中的核心环节——持续集成(CI)与持续部署(CD)。我们将从基础概念出发,逐步深入到实际操作,带你领略代码到部署的全过程。准备好扬帆起航,让我们共同探索如何通过自动化工具和流程优化,让软件交付变得既高效又可靠。

热门文章

最新文章