DevOps 与数据和机器学习相遇
可直接在橱窗里购买,或者到文末领取优惠后购买:
你是否曾经在微博上点赞某件事,然后几乎立刻在动态中看到相关内容?或者在 Google 上搜索某件事,然后几分钟后就会收到大量与该事相关的广告?这些都是日益自动化的世界的症状。在幕后,它们是先进的 MLOps 管道的结果。我们来看看 MLOps 以及有效部署机器学习模型需要什么。
我们首先讨论 DevOps 的一些关键方面。然后我们解释引入数据和模型如何颠覆标准实践。这导致了 MLOps 的出现。现有实践(如 CI/CD 管道)需要调整。引入新实践(如持续训练)。最后,我们讨论受监管环境中的 MLOps 以及它与模型可解释性的关系。
DevOps
DevOps 是一套最佳实践、工具和公司文化,旨在提高软件开发、测试、部署和监控的效率。你可以拥有一个专门的 DevOps 团队来实施最佳实践。然而,它需要许多团队之间的参与和有效沟通。每家公司对 DevOps 的方法都不同。目标始终是相同的 - 快速部署优质软件。
CI/CD 管道
所有软件在使用之前都需要开发、彻底测试和部署。DevOps 试图通过构建和自动化 CI/CD 管道来提高此过程的效率。持续集成 (CI) 涉及开发软件的流程。持续部署/交付 (CD) 涉及将软件转移到生产环境的流程。最佳实践和文化嵌入在这些管道的管理中。
让我们考虑如何处理第一个方面,即持续集成。通常,这要求开发人员定期将代码更改推送到远程存储库。然后,运行自动单元和集成测试以立即识别代码中的任何问题。 DevOps 将定义实施这些步骤的最佳实践。我们使用 git 等工具来推送更改或使用 junit 来运行单元测试来实现它们。要做到这一点,需要形成定期提交代码的文化。这对大多数人来说并不自然。
监控
一旦软件投入使用,我们就需要确保它运行良好。这涉及根据系统延迟数据创建指标。DevOps 旨在自动化此过程,并使开发人员可以轻松访问这些指标。它还可以涉及使用预定义的指标截止值创建自动警告。最终目标是建立一个持续的监控系统。这将实时提供所有应用程序的指标。
沟通
传统上,开发人员和运营团队是孤立的。在这种情况下,开发人员将合作开发软件。完成后,他们会将其交给运营团队进行部署。开发和生产环境并不相同。这可能会导致交接过程中出现大量问题。最糟糕的情况是,你可能会发现软件根本无法部署。Dev