当前位置: 首页 > 科技观察

MLOps与DevOps:有什么区别?_0

时间:2023-03-19 17:43:29 科技观察

机器学习操作,简称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管道略有不同。DevOps:通常,代码创建一个接口或应用程序。在使用一组检查进行部署和测试之前,将代码包装到可执行文件或工件中。理想情况下,这种自动化循环会一直持续到最终产品准备就绪。MLOps:此代码使团队能够构建或训练机器学习模型。输出工件包括可以接收数据输入以生成推理的序列化文件。验证涉及根据测试数据检查训练模型的性能。这个循环也应该继续,直到模型达到指定的性能阈值。版本控制  DevOps:版本控制通常只跟踪代码和工件的更改。可以跟踪的指标很少。MLOps:MLOps管道通常有更多的因素需要跟踪。构建和训练ML模型涉及一个迭代实验周期,需要跟踪每个实验的各种指标和组件(对于以后的审计至关重要)。其他要跟踪的组件包括训练数据集、模型构建代码和模型工件。指标包括超参数和模型性能指标,例如错误率。可重复使用的DevOps:DevOps管道专注于可重复的流程。团队可以在不遵循特定工作流程的情况下混合和匹配流程。MLOps:MLOps管道重复应用相同的工作流程。跨项目的通用框架有助于提高一致性,并允许团队在从熟悉的流程开始时更快地取得进展。项目模板提供结构并支持定制以满足每个用例的独特需求。使用集中式数据管理来整合您组织的数据,以加速发现和培训过程。集中化的常见方法包括单一事实来源和数据仓库。持续监控  监控对于DevOps和MLOps都是必不可少的,但原因略有不同。DevOps:站点可靠性工程(SRE)是过去几年的趋势,强调从开发到生产都需要部署监控软件。软件不会像ML模型那样退化。MLOps:机器学习模型会迅速退化,需要持续监控和更新。生产环境中的条件会影响模型的准确性。部署到生产环境后,该模型开始根据来自现实世界的新数据生成预测。这些数据不断变化和适应,降低了模型性能。MLOps通过合并程序以促进持续监控和模型再训练,确保算法保持生产就绪状态。Infrastructure  DevOps和MLOps都严重依赖云技术,但具有不同的操作要求。DevOps依赖于基础设施,例如:基础设施即代码(IaC)构建服务器CI/CD自动化工具MLOps依赖于以下基础设施:深度学习和机器学习框架用于深度学习和计算密集型ML模型的大型数据集的云存储GPUDevOps和MLOps趋势  以下是推动DevOps和MLOps的一些主要趋势。GitOps作为DevOps工作流的新演变,GitOps是一种控制和自动化基础架构的新范例。ParadigmforKubernetes使开发人员和运营团队能够使用Git来管理Kubernetes集群并交付容器化应用程序。为运营和开发团队实施Git工作流允许开发人员利用Git拉取请求来管理软件部署和基础设施。GitOps集成了现有的开发工具,通过CI/CD管理云原生和基于集群的应用程序。它使用Git存储库作为单一真实来源,自动部署、监控和维护云原生应用程序。GitOps是一种在Kubernetes中实现和维护集群的方法。持续交付和部署允许开发人员通过增量发布更快地构建、测试和部署软件。Kubernetes持续集成和运行时管道必须能够从Git读取和写入文件、更新容器存储库和加载容器。GitOps通过版本控制、实时监控和配置更改警报帮助企业管理其基础设施。合成数据  合成数据是任何人工生成的信息,而不是从真实事件中收集的信息。算法生成合成数据,用作操作和生产测试数据集的替代。合成数据集还可用于验证数学模型和训练机器学习模型。合成数据的好处包括最大限度地减少与使用敏感和受监管数据相关的限制。根据实际数据中没有的特定要求和条件定制数据。为DevOps团队生成数据以测试软件质量和性能。无代码机器学习和人工智能  机器学习通常涉及计算机代码来设置和处理模型训练,但情况并非总是如此。无代码机器学习是一种编程方法,它使ML应用程序无需经历耗时的过程。CodelessML消除了专家开发系统软件的需要。它的部署和实施也更简单、成本更低。在机器学习期间使用拖放输入可以通过以下方式简化培训工作:评估结果。拖放训练数据。创建预测报告。使用纯文本查询。无代码ML使开发人员可以轻松访问机器学习应用程序,但它不能替代高级、细致的项目。这种方法适用于缺乏资金来维持内部数据科学团队的小型企业。TinyML  TinyML是一种机器学习和人工智能模型开发的新方法。它涉及在具有硬件限制的设备上运行模型,例如为智能汽车、冰箱和电表供电的微控制器。这种策略最适合这些用例,因为它加快了算法——数据不需要在服务器上来回传输。在大型服务器上加速整个ML开发过程尤为重要。在IoT边缘设备上运行TinyML程序有很多好处:降低能耗。减少延迟。用户隐私保证。降低带宽要求。使用TinyML提供更好的隐私,因为计算过程完全是本地的。它消耗更少的功率和带宽,从而减少了延迟,因为它不需要将数据发送到中央位置进行处理。利用这项创新的行业包括农业和医疗保健。他们通常使用嵌入了TinyML算法的IoT设备来使用收集的数据来监控和预测现实世界的事件。结论本文介绍了MLOps和DevOps之间的主要区别:开发-DevOps管道侧重于开发新版本的软件产品,而MLOps侧重于提供高效的机器学习模型。版本控制——DevOps主要关注跟踪二进制文件和软件工件,而MLOps跟踪其他因素,例如超参数和模型性能。可重用性——DevOps和MLOps都致力于创建可重用的流程和管道,但使用不同的策略来实现可重复性。持续监控——监控在DevOps中很重要,但在MLOps中更为重要,因为模型和数据漂移会导致模型性能下降。最后,涵盖了一些将在不久的将来改变DevOps和MLOps的关键趋势。我希望这将帮助您在令人兴奋的新开发生态系统中找到自己的位置。