为什么是MLOps?
机器学习运维,或者更常见的简称MLOps,是一个在数据领域频繁出现的术语。
尽管我们大多数人在学校或者通过在线课程学习了关于机器学习和创建机器学习模型的知识,但在大多数地方,MLOps依然是一个未被触及的话题。
在我们深入了解MLOps的“内容”之前,想象一下这个场景 —— 你的初创公司销售各种商品,如服装、鞋子、个人护理用品等等。你们每个月卖出1000+件商品。但你想把销量提高,以此来降低这些商品的生产成本。假设每月销售10,000+件商品可以显著降低生产成本。但你怎么才能卖这么多呢?你想到的一个点子是建立一个推荐系统,来基于用户的浏览和购买行为给予建议。你为你的业务构建了一个强大的机器学习模型,这个模型能向你的用户推荐产品,并且你已经测试过了。
但这就是主要问题出现的时候 —
那么什么是MLOps呢?
上面提到的问题构成了我们所说的机器学习运营或简称MLOps的基础。正如名称所暗示的,MLOps是一种实践,它允许你自动化一个机器学习流程的端到端生命周期。
MLOps不仅帮助开发模型,还帮助处理其它关键方面,这些方面有助于构建一个生产就绪的模型,比如跟踪不同的机器学习实验、检测数据偏移、部署、提供和监控模型。
构成MLOps平台有效性的关键组件
MLOps平台还有更多组件,如安全性、模型治理、文档和A/B测试,这些都需要考虑并根据需要利用。
如何有效使用MLOps平台?
MLOps不能被视为一个独立的努力,因为它需要多个团队的合作,例如数据工程、数据科学、机器学习和DevOps。构建一个跨职能和协作的团队是有效构建和发布机器学习模型的关键第一步。
数据工程师应该专注于通过帮助将正确的数据呈现到数据湖或数据仓库中来简化机器学习工程师和数据科学家的工作。所有基本的数据清理都必须在上游处理,因为这会使数据科学家和机器学习工程师更容易专注于他们最擅长的事情,生成洞察力和构建高效的预测模型。为简单起见,假设数据工程团队已经将所有相关数据推送到像Snowflake这样的数据仓库。这样,机器学习工程师可以轻松地检索数据,因为大多数MLOps平台都有连接器连接并从不同来源获取数据。
数据科学家和机器学习工程师必须合作进行实验。进行实验时,应该通过使用连接器简单地使用数据工程师提供的数据。然而,数据科学家和机器学习工程师的工作是从数据中构建训练、验证和测试数据集。一旦完成这项工作,模型开发、版本控制和模型注册这些有趣的部分就变得至关重要。当不同的实验被执行时,跟踪每个实验所做的工作以及下一个或下一些实验与前一个或前一些实验有何不同变得非常重要,这就是版本控制发挥作用的地方。每当你认为有一个基线模型或一个高性能模型或你想要储存并稍后回到的模型时,就可以轻松地将模型本身上传到注册表。
一旦数据科学家和机器学习工程师对某个模型感到满意,下一步就是部署模型并确定如何提供服务。虽然某些MLOps平台非常容易为模型提供服务,但有些平台可能没有强大的服务模型的能力。如果你想通过API端点为你的模型提供服务,你可以使用Flask或FastAPI创建这样的API。
DevOps在最初阶段和最后阶段成为一个关键组成部分,尤其是当你有一个协助你进行MLOps的工具时。他们将协助从基础设施的角度建立MLOps工具,并应处理该工具的任何可用更新,如果被认为有必要进行定期维护,并确保平台的安全。在最后阶段,一旦从开发到部署到提供服务的一切都完成了,DevOps工程师也可以和机器学习工程师一起建立一个CI/CD过程,以自动化推送给模型的任何新更新,同时为新变化的反映设定一定的基准并启用必要的监控能力。
如何选择一个MLOps平台?
你可以考虑设置的MLOps工具有很多。虽然有些是付费的,但也有一些开源替代品。
开源MLOps工具 —— MLFlow、Kubeflow、Pachyderm、数据版本控制(Data Version Control)是一些开源MLOps工具。
付费MLOps工具 —— AWS SageMaker、Databricks、Snowpark是一些由行业领先者提供的工具。
确定哪个MLOps工具最适合你的团队取决于很多因素:
这些只是一些问题,但回答这些问题(以及任何其他你认为相关的问题)将帮助你做出一个明智的决定,选择哪个工具。许多提供付费MLOps平台的公司通常提供免费试用和演示。
在你决定使用哪个工具之前,通过一个现场演示并通过一个快速的试用/概念验证(PoC)来测试事情是一个好主意。
结论
虽然构建ML/AI模型很有趣,但也很重要的是要考虑一个前瞻性问题——“我如何部署和提供这些模型,同时简化重新训练和运营方面?”
你现在必须已经意识到我为什么说MLOps不是一个孤立的努力。MLOps是一个概念,一种实践,使你能够快速推出机器学习模型的同时简化操作方面。有工具允许你遵循这一实践,但即使在获取工具之后,它仍然是一个跨职能的努力。
MLOps可能看起来不好玩,但正是这一实践使你能够构建那些“酷”的机器学习模型并简化操作部分!