在将任何机器学习模型投入生产之前,需要许多实验周期来确定正确的 ML 模型以实现业务目标。这个实验阶段在任何 ML 项目中都增加了额外的复杂性,因为它包括三个主要制品:数据、模型和代码。为了管理这种复杂性,我们需要定义明确的结构、流程和适当的软件工具来管理 ML 制品并涵盖机器学习周期。
MLOps 必须是与语言、框架、平台和基础设施无关的实践。MLOps 应该遵循“约定优于配置”的实现。
MLOps 技术堆栈应包括用于以下任务的工具:
- 数据工程,
- 数据、机器学习模型和代码的版本控制,
- 持续集成和持续交付流水线,
- 自动化部署和实验,
- 模型性能评估,以及
- 生产中的模型监控。
为了解决 MLOps 挑战,有很多选择,从使用现成的机器学习平台到通过编写开源库来实施内部解决方案。现有的云提供商已经致力于提供机器学习平台,例如 Google Cloud 的 AI Platform、AzureML 和 AWS 的 SageMaker。Kubeflow 项目由 Google 发起,提供了一个选项来管理一组用于 MLOps 的开源工具并将它们组装到 Kubernetes 上。这种机器学习平台的采用取决于组织的云战略。如果首选 MLOps 的内部托管解决方案,则MLFlow[1]、Sacred[2]或DVC[3]等非云系统可能是首选工具。
目前,MLOps 技术的格局正在频繁变化。由于每个工具的范围可能跨越 MLOps 流程的多个组件,因此每个用例都需要仔细考虑 MLOps 技术堆栈。例如,模型版本控制和监控的要求可能因用例而异。服务于金融或医疗等受监管行业的监控模型将比不受监管的行业更复杂。进行 MLOps 技术堆栈选择的结构化方法是使用 MLOps 堆栈模板。此模板将机器学习工作流程分解为九个组件,如MLOps 原则中所述。在选择工具或框架之前,需要收集和分析每个组件的相应需求。最后,工具选择应与该分析保持一致。
以下 MLOps 堆栈模板由Henrik Skogström (Valohai)[4]提供:
技术堆栈的一个示例可能包括以下开源工具:
MLOps 设置组件 | 工具 |
数据分析 | Python, Pandas |
源代码控制 | Git |
测试和构建服务 | PyTest & Make |
部署服务 | Git, DVC |
模型和数据集注册表 | DVC[aws s3] |
特征存储 | 项目代码库 |
机器学习元数据存储 | DVC |
机器学习流水线编排器 | DVC & Make |
根据要求或约束,组织可以通过结合现有的开源库来实现自己的内部 MLOps 系统。要构建这样一个系统,应该对 MLOps 工具集合有一个概述。这种集合每天都在迅速发展和变化,因为不同的工具专注于不同的利基市场。Linux 基金会的 LF AI项目[5]为 ML/AI 和 MLOps 工具创建了可视化。另一个精选的生产机器学习工具列表由AI伦理研究所[6]维护。
图源:https://landscape.lfai.foundation/
关于 MLOps 技术堆栈的更多参考资料
- 敏捷生产机器学习:工具和框架[7]
- MLOps 敏捷堆栈[8]
- 揭开 AI 基础设施堆栈的神秘面纱[9]
- 介绍 TWIML 的新 ML 和 AI 解决方案指南[10]
- MLOps.community 资源[11]
参考资料
[1]
MLFlow: https://mlflow.org/
[2]
Sacred: https://github.com/IDSIA/sacred
[3]
DVC: https://dvc.org/
[4]
Henrik Skogström (Valohai): https://valohai.com/blog/the-mlops-stack/
[5]
LF AI项目: https://landscape.lfai.foundation/
[6]
AI伦理研究所: https://github.com/EthicalML/awesome-production-machine-learning
[7]
敏捷生产机器学习:工具和框架: https://github.com/EthicalML/awesome-production-machine-learning
[8]
MLOps 敏捷堆栈: https://ml-ops.org/img/mlops-agile-stack.png
[9]
揭开 AI 基础设施堆栈的神秘面纱: https://www.intel.com/content/www/us/en/intel-capital/news/story.html?id=a0F1I00000BNTXPUA5#/type=All/page=0/term=/tags=
[10]
介绍 TWIML 的新 ML 和 AI 解决方案指南: https://twimlai.com/solutions/introducing-twiml-ml-ai-solutions-guide/
[11]
MLOps.community 资源: https://mlops.community/learn/
https://ml-ops.org/content/state-of-mlops