[服务开发组林昌大]
在 DevOps 之前,本地服务器被称为本地服务器,每个公司都有自己的服务器,并且有服务器管理员、开发人员和 QA。在这种情况下,如果服务无法访问,我购买了一个实际的物理服务器,制作了一个机架,并通过插入来安装服务器。因为一直在这种情况下开发,所以没有DevOps的概念,也觉得没有必要。但是,随着数据中心的出现,只需几行代码即可创建服务器,而只需几行代码,您就可以轻松快速地创建具有所需规范的服务。
在 Devops 环境中,开发者甚至可以执行部署和维护任务,这意味着引入现有 Rack 或管理服务器的角色已经来到了开发者身上。但是当您构建服务并开始在您的业务流程中使用它们时,新的障碍必然会出现。在这种情况下,开发人员可以通过采用 Devops 来避免向 IT 部门请求资源。您可以自行部署所需的资源,在需要时进行扩展,并进行在自行管理模型时必须进行的跟踪、版本控制和数据处理。
在这个 Devops 环境中,软件开发过程(代码编写 -> 测试 -> 打包 -> 部署)是 ML 服务开发(数据收集/预处理 -> 模型训练 -> 测试 -> 部署)和稳定构建系统的循环. 它有一个类似的形式,它允许它进行操作和操作。
与传统 Devops 环境中的开发不同,ML 的不同之处在于数据管理和持续学习过程至关重要:
- 团队技能:在 ML 项目中,团队通常包括专注于探索性数据分析、模型开发和实验的数据科学家或 ML 研究人员。其中一些成员可能没有能够构建生产级服务的软件工程师。
- 发展:机器学习本质上是实验性的。您应该尝试各种属性、算法、建模技术和参数配置,以尽快找到最适合您的问题的一种。挑战在于跟踪哪些有效,哪些无效,在保持可重复性的同时最大限度地提高代码的可重用性。
- 测试:测试机器学习系统比测试其他软件系统更复杂。除了通常的单元和集成测试之外,还需要数据验证、经过训练的模型质量评估和模型验证。
- 部署:在 ML 系统上部署并不像将离线训练的 ML 模型部署为预测服务那么简单。使用 ML 系统,您可能需要部署多阶段管道来自动重新训练和部署您的模型。这条管道增加了复杂性,需要数据科学家自动执行必须手动执行的步骤,以在部署前训练和验证新模型。
- 生产:ML 模型可能会受到优化不佳的编码以及不断发展的数据配置文件的影响。这意味着必须考虑这种降级,因为与传统软件系统相比,模型可能会以更多方式受到损害。因此,您需要跟踪数据中的汇总统计信息并监控模型的在线性能,以便在值偏离您的预期时发送通知或回滚。
MLOps 是一种 ML 工程文化和实践,旨在统一 ML 系统开发 (Dev) 和 ML 系统运营 (Ops)。通过 MLOps,通过在 ML 系统配置的所有阶段(包括系统集成、测试、发布、部署和基础设施管理)建立自动化和监控环境,建立高效的开发文化将是一件好事。
MLOps:机器学习的持续部署和自动化管道: https://cloud.google.com/architecture/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning?hl=ko