| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 谷歌工程师谈MLOps :机器学习中的持续交付和自动化流水线 -> 正文阅读 |
|
[人工智能]谷歌工程师谈MLOps :机器学习中的持续交付和自动化流水线 |
背景数据科学和机器学习正逐渐成为解决复杂现实问题以及在所有领域创造价值的核心功能。现在,有效运用机器学习技术的各种要素都已具备:
因此,许多企业正在投资打造数据科学团队和机器学习功能,以开发出能够为用户带来商业价值的预测模型。 MLOps 简述MLOps?是一种旨在统一机器学习系统开发 (Dev) 和机器学习系统运营 (Ops)的机器学习工程文化和实践。实施 MLOps 意味着您将在机器学习系统构建流程的所有步骤(包括:集成、测试、发布、部署和基础架构管理)中实现自动化和监控。 数据科学家可以在给定的相关训练数据集的情况下实现并训练一个机器学习模型,可在留出的离线数据集上实现出色的预测性能。但是,真正的挑战不是构建机器学习模型,而是构建集成的机器学习系统以及在生产环境中持续运行该系统。 在实际的机器学习系统中,只有一小部分是由机器学习代码组成的。所需的相关元素既庞大又复杂,如下图展示了机器学习系统的元素。 在此图中,系统的其余部分包括配置、自动化、数据收集、数据验证、测试和调试、资源管理、模型分析、过程和元数据管理、服务基础架构和监控。如需开发和运行类似的复杂系统,您可以将 DevOps 原则应用于机器学习系统 (MLOps)。 下面将介绍在为您的数据科学实践(例如 :ML 中的 CI、CD 和 CT)设置 MLOps 环境时,要考虑的概念。 DevOps 与 MLOps 的对比DevOps 是开发和运行大规模软件系统的一种常见做法。这种做法具有诸多优势,例如:缩短开发周期、提高部署速度、实现可靠的发布。如需获得这些优势,您需要在软件系统开发中引入两个概念: 机器学习系统是一种软件系统,因此类似的做法有助于确保您能够可靠地大规模构建和运行机器学习系统。 但是,机器学习系统在以下方面与其他软件系统不同:
ML 和其他软件系统(在源代码控制的持续集成、单元测试、集成测试以及软件模块或包的持续交付等方面)类似,但是,在 ML 中,有一些显着的区别:
机器学习生命周期的各个步骤在任何机器学习项目中,定义业务用例并确定成功标准后,将机器学习模型交付给生产环境的过程涉及以下步骤。这些步骤可以手动完成,也可以由自动流水线完成。
这些步骤的自动化级别决定了机器学习过程的成熟度,成熟度反映了使用新数据训练新模型或者使用新实现训练新模型的速度。 MLOps 成熟度等级下面来介绍 MLOps 成熟度的三个等级,从最常见的等级(该级别不涉及自动化)开始,一直到自动执行机器学习和 CI/CD 流水线。 MLOps 等级 0:手动过程许多团队都有数据科学家和机器学习研究人员,他们可以构建领先的模型,但他们构建和部署机器学习模型的过程完全是手动的。这样的级别被视为基本成熟度等级(等级 0)。下图展示了此过程的工作流。 特性以下列表突出显示了 MLOps 等级 0 流程的特性,如上图所示:
工程团队可能会对 API 配置、测试和部署(包括安全、回归以及负载测试和金丝雀测试)进行自己的复杂设置。此外,在升级模型以处理所有预测请求流量之前,新版机器学习模型的生产部署通常会进行 A/B 测试或在线实验。 挑战MLOps 等级 0 在许多开始将机器学习应用于其用例的企业中很常见。如果难得更改或训练模型,则由数据科学家驱动此手动过程可能就足够了。实际上,在现实环境中部署模型时,模型通常会失效。模型无法适应环境的动态变化或描述环境的数据的变化。如需了解详情,请参阅为什么机器学习模型会在生产环境中崩溃和失效。 如需战胜这些挑战并保持模型在生产环境中的准确性,您需要执行以下操作:
为了战胜此手动过程的挑战,具有 CI/CD 和 CT 的 MLOps 做法将很有用。通过部署机器学习训练流水线,您可以启用 CT,并且可以设置 CI/CD 系统以快速测试、构建和部署机器学习流水线的新实现。 MLOps 等级 1:自动化机器学习流水线等级 1 的目标是通过自动执行机器学习流水线来持续训练模型;这样可以持续交付模型预测服务。如需自动执行在生产环境中使用新数据重新训练模型的过程,您需要在流水线中引入自动化数据和模型验证步骤,以及触发流水线和元数据管理。 下图是针对 CT 的自动化机器学习流水线的示意图。 特性以下列表突出显示了 MLOps 等级 1 设置的特性,如上图所示:
组件本部分讨论您需要添加到架构以实现机器学习持续训练的组件。 数据和模型验证将机器学习流水线部署到生产环境时,机器学习流水线触发器部分中讨论的一个或多个触发器会自动执行流水线。流水线需要新的实时数据来生成使用新数据进行训练的新模型版本(如上图 所示)。因此,生产流水线需要自动化数据验证和模型验证步骤,以确保实现以下预期行为:
除了离线模型验证之外,新部署的模型在为在线流量提供预测之前会进行在线模型验证(在金丝雀部署或 A/B 测试设置中进行)。 特征平台(Feature store)等级 1 机器学习流水线自动化的一个可选附加组件是特征平台。特征平台是一个集中式存储区,您可以在其中对特征的定义、存储和访问进行标准化处理,以方便训练和提供服务。特征平台需要为特征值提供高吞吐量批量服务和低延时实时服务的 API,以及支持训练和服务工作负载。 特征平台可帮助数据科学家执行以下操作:
元数据管理系统会记录有关机器学习流水线每次执行情况的信息,以帮助实现数据和制品血缘、可重现性以及比较。这些信息还有助于您调试错误和异常情况。每次执行流水线时,机器学习元数据存储区都会记录以下元数据:
机器学习流水线触发器您可以自动执行机器学习生产流水线,以根据您的用例使用新数据重新训练模型:
挑战假设流水线的新实现不会频繁部署,并且您只管理几条流水线,则您通常需要手动测试流水线及其组件。此外,您需要手动部署新的流水线实现。您还需要将经过测试的流水线源代码提交给 IT 团队,以部署到目标环境。如果您根据新数据(而不是新的机器学习理念)部署新模型,则此设置是合适的。 但是,您需要尝试新的机器学习理念,并快速部署机器学习组件的新实现。如果您在生产环境中管理多条机器学习流水线,则需要设置 CI/CD 以自动构建、测试和部署机器学习流水线。 MLOps 等级 2:自动化 CI/CD 流水线如需在生产环境中快速、可靠地更新流水线,您需要一个可靠的自动化 CI/CD 系统。此自动化 CI/CD 系统可让您的数据科学家快速探索有关特征工程、模型结构和超参数的新想法。他们可以实现这些想法,并自动构建、测试新的流水线组件,以及将其部署到目标环境。 下图显示了使用 CI/CD 进行机器学习流水线的实现,它具有自动化机器学习流水线设置以及常规的自动化 CI/CD 的特性。 此 MLOps 包含以下组件:
特性下图展示了机器学习 CI/CD 自动化流水线的各个阶段: 流水线包括以下阶段:
在流水线开始实验的新迭代之前,数据分析步骤仍然是数据科学家手动执行的过程。模型分析步骤也是手动执行的过程。 持续集成在此设置中,当新代码提交或推送到源代码库时,您会构建、测试和封装流水线及其组件。除了构建软件包、容器镜像和可执行文件之外,CI 过程还可以包含以下测试:
持续交付在此等级中,您的系统会向目标环境持续交付新的流水线实现,从而交付新训练的模型的预测服务。如需快速、可靠地持续交付流水线和模型,您应考虑以下事项:
总结总而言之,在生产环境中实现机器学习并不仅仅意味着将模型部署为用于预测的 API。相反,它意味着部署可自动重新训练和部署新模型的机器学习流水线。 通过设置 CI/CD 系统,您可以自动测试和部署新的流水线实现。此系统可让您应对数据和业务环境的快速变化。您不必立即将所有过程从一个等级迁移到另一个等级。您可以逐步实现这些做法,以帮助改进机器学习系统的开发和生产自动化。 原文链接:MLOps: Continuous delivery and automation pipelines in machine learning |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/8 4:16:25- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |