• 云原生丨MLOps与DevOps的区别


    MLOps 是机器学习 (ML) 工程的很重要的一个部分,专注于简化和加速将 ML 模型交付到生产以及维护和监控它们的过程。

    MLOps 涉及不同团队之间的协作,包括数据科学家、DevOps 工程师、IT 专家等。

    MLOps 可以帮助组织创建和提高其 AI 和机器学习解决方案的质量。

    采用 MLOps 允许机器学习工程师和数据科学家通过实施持续集成和持续部署 (CI/CD) 实践来协作提高模型性能。

    它通过整合 ML 模型的适当监控、治理和验证来加速 ML 模型开发过程。

    什么是 DevOps?  

    DevOps 结合了开发和运营的概念,将单独的应用程序开发和 IT 运营团队结合起来。

    /图片来源网络

    从最广泛的意义上说,DevOps 是一种哲学,它鼓励组织内团队之间改进沟通与合作。

    在最狭义的意义上,DevOps 是指采用能够部署和维护迭代应用程序开发、自动化和可编程基础架构的实践。

    它还包括工作场所文化的变化,例如开发人员、系统管理员和其他团队成员之间的信任建立和联系。

    DevOps使技术与业务目标保持一致,可以改变软件交付链、工作职能、服务、工具和最佳实践。

    MLOps与DevOps的差异化 

    以下是MLOps和传统 DevOps之间的一些主要区别。

    #   发展

    开发的概念是指每个模型中的不同事物,CI/CD 管道略有不同。

    开发运维:

    • 通常,代码会创建一个接口或应用程序

    • 在使用一组检查进行部署和测试之前,将代码包装到可执行文件或工件中

    • 理想情况下,这个自动化循环将一直持续到最终产品准备好

    MLOps: 

    • 该代码使团队能够构建或训练机器学习模型

    • 输出工件包括可以接收数据输入以生成推理的序列化文件

    • 验证涉及根据测试数据检查训练模型的性能

    • 这个循环也应该持续到模型达到指定的性能阈值

    #   版本控制

    开发运维:

    • 版本控制通常只跟踪代码和工件的更改

    • 可以跟踪的指标很少

    MLOps: 

    • MLOps 管道通常有更多的因素需要跟踪。构建和训练 ML 模型涉及一个迭代实验周期,需要跟踪每个实验的各种指标和组件(对于以后的审计至关重要

    • 要跟踪的其他组件包括训练数据集、模型构建代码和模型工件

    • 指标包括超参数和模型性能指标,例如错误率

    #  可重用性

    开发运维:

    • DevOps 管道专注于可重复的流程。

    • 团队可在不遵循特定工作流程的情况下混合和匹配流程

    MLOps: 

    • MLOps 管道重复应用相同的工作流。跨项目的通用框架有助于提高一致性并允许团队更快地取得进展,因为他们从熟悉的流程开始

    • 项目模板提供结构,支持定制以满足每个用例的独特要求

    • 使用集中式数据管理来整合组织的数据,以加速发现和培训过程。集中化的常见方法包括单一事实来源和数据仓库

    #   持续监控

    监控对于 DevOps 和 MLOps 都是必不可少的,但原因略有不同。

    开发运维:

    • 站点可靠性工程 (SRE) 在过去几年中一直呈趋势,强调从开发到生产部署都需要监控软件

    • 该软件不会像 ML 模型那样退化

    MLOps: 

    • 机器学习模型会迅速退化,需要持续监控和更新

    • 生产环境中的条件会影响模型的准确性。部署到生产环境后,模型开始根据来自现实世界的新数据生成预测。这些数据不断变化和适应,降低了模型性能

    • MLOps 通过合并程序以促进持续监控和模型再培训,确保算法保持生产就绪

    #   基础设施

    DevOps 和 MLOps 都严重依赖云技术,但有不同的操作要求。

    DevOps依赖于基础设施:

    • 基础设施即代码 (IaC)构建服务器

    • 构建服务器

    • CI/CD 自动化工具

    MLOps依赖于以下基础设施:

    • 深度学习和机器学习框架

    • 大型数据集的云存储

    • 用于深度学习和计算密集型 ML 模型的

    DevOps 和 MLOps 趋势 

    以下是推动 DevOps 和 MLOps 发展的一些主要趋势。

    #  GitOps

    作为 DevOps 工作流程的新演变,GitOps 是一种用于控制和自动化基础架构的新范例。面向 Kubernetes 的范例使开发人员和运营团队能够使用 Git 管理 Kubernetes 集群并交付容器化应用程序。

    为运营和开发团队实施 Git 工作流程允许开发人员利用 Git 拉取请求来管理软件部署和基础设施。

    GitOps 整合了现有的开发工具,通过 CI/CD 管理云原生和基于集群的应用程序。它使用 Git 存储库作为单一事实来源,自动部署、监控和维护云原生应用程序。

    GitOps 是一种在 Kubernetes 中实现和维护集群的方法。持续交付和部署允许开发人员通过增量发布更快地构建、测试和部署软件。

    Kubernetes 持续集成和运行时管道必须能够读取和写入文件、更新容器存储库以及从 Git 加载容器。

    GitOps 通过版本控制、实时监控和配置更改警报来帮助企业管理其基础架构。

    #  综合数据

    合成数据是人工生成的任何信息,而不是从真实事件中收集的信息。算法生成合成数据,用作操作和生产测试数据集的替代品。

    合成数据集也可用于验证数学模型和训练机器学习模型。

    合成数据的好处包括:

    • 最大限度地减少与使用敏感和受监管数据相关的限制

    • 根据实际数据中不可用的特定要求和条件自定义数据

    • 为 DevOps 团队生成用于测试软件质量和性能的数据

    #  无代码机器学习和人工智能

    机器学习通常涉及计算机代码来设置和处理模型训练,但情况并非总是如此。

    无代码机器学习是一种编程方法,它消除了 ML 应用程序通过耗时过程的需要。

    Codeless ML 消除了专家开发系统软件的需要。

    它的部署和实施也更简单、更便宜。在机器学习过程中使用拖放输入可以通过以下方式简化培训工作:

    • 评估结果

    • 拖放训练数据

    • 创建预测报告

    • 使用纯文本查询

    Codeless ML 使开发人员可以轻松访问机器学习应用程序,但它不能替代高级、细致入微的项目。

    这种方法适用于缺乏资金来维持内部数据科学团队的小型企业。

    #  TinyML

    TinyML 是一种机器学习和人工智能模型开发的新方法。它涉及在具有硬件限制的设备上运行模型,例如为智能汽车、冰箱和电表供电的微控制器。

    这种策略最适合这些用例,因为它加快了算法的速度——数据不需要在服务器上来回传输。它在大型服务器上尤为重要,可以加快整个 ML 开发过程。

    在物联网边缘设备上运行 TinyML 程序有很多好处:

    • 降低能耗

    • 减少延迟

    • 用户隐私保证

    • 降低带宽要求

    使用 TinyML 提供了更大的隐私,因为计算过程完全是本地的。它消耗更少的功率和带宽,从而降低延迟,因为它不需要将数据发送到中央位置进行处理。

    正在利用这一创新的行业包括农业和医疗保健。

    他们通常使用嵌入了 TinyML 算法的物联网设备,使用收集到的数据来监控和预测现实世界的事件。

    写在最后 

    本文中,我介绍了 MLOps 和 DevOps 之间的主要区别:

    开发——DevOps 管道专注于开发软件产品的新版本,而 MLOps 专注于提供有效的机器学习模型。

    版本控制——DevOps 主要关注跟踪二进制文件和软件工件,而 MLOps 跟踪其他因素,如超参数和模型性能。

    可重用性——DevOps 和 MLOps 都努力创建可重用的流程和管道,但使用不同的策略来实现可重复性。

    持续监控——监控对 DevOps 很重要,但在 MLOps 中更重要,因为模型和数据漂移会导致模型性能下降。

    最后,介绍了一些将在不久的将来改变 DevOps 和 MLOps 的关键趋势。

    我希望这将有助于您在新的、令人兴奋的开发生态系统中发现自己的位置。

  • 相关阅读:
    冷知识:SSD或U盘或FLASH闪存要温度高通电使用,温度低断电保存,数据才能更久不丢失!
    Java入门项目——读书管理系统
    使用HBuilder X开发Vue3+node+element-plus(一)
    文件下载的其他方法
    JAVA定时任务原理入门
    并查集及相关变形
    windows 查看防火墙设置命令使用方法
    C++基础语法
    【洛谷题解】P2066 机器分配
    ES6——ES6相关面试题分享
  • 原文地址:https://blog.csdn.net/CBGCampus/article/details/128126643