一站式机器学习开业平台 MLflow 怎么样?

简介:

机器学习工作流程

机器学习(ML)通常需要使用广泛的数据集、数据预处理步骤和算法逻辑进行实验,以构建最优指标的模型。模型构建成功后,还需要将其部署到生产系统,监控其效果和性能,并根据新数据不断对其进行重新训练和迭代模型工作,如下:1

早期,各种算法烟花齐放,多种框架各自为政,因此,如何保障 ML 流程的生产可靠性和共通性成了一个棘手问题,具体如下:

追踪实验困难:如果只是在笔记本电脑或 Jupyter Book [0] 上处理文件,你如何汇总数据、代码、参数和对应的结果呢?
复现代码困难:有时候我们对代码版本和参数进行细致的保存,由于环境的不一致或某个第三方依赖包版本的不一致,换平台复现代码,通常也比较困难。
缺少统一的打包、部署模型标准:多团队协作或多深度框架协作时,都有各自的一套模型管理方式,导致不通用。
缺少模型管理Hub:缺乏统一的模型管理服务,各自维护自己的算法,重复造轮子常态化。

MLflow 解决了什么问题?

MLflow是一个用于管理 ML 生命周期的开源平台,旨在简化机器学习的开发流程,提供实验追踪、将代码打包成可重现的运行模块以及共享和部署模型功能。支持多种工具和内嵌算法,使算法开发者能更加专注于算法本身的工作。

项目架构

MLflow提供了一组轻量级 API,可用于任何现有的机器学习应用程序或库,如:TensorFlow、PyTorch、XGBoost 等。
MLflow还支持在任何环境中运行 ML 代码,如:本地笔记本电脑、独立应用程序或者云环境中
MLflow目前提供四个组件,具体如下:

MLflow Tracking

用于记录机器学习实验中的参数、代码、数据和结果,并提供交互式 UI 和 API 支持实验对比和查看。

MLflow Projects

可在任何平台上重复运行的打包格式,基于 Conda 和 Docker 构建,因此你可以很方便的与他人共享你的 ML 代码,并且可在任何平台上重复运行它们。

MLflow Models

将模型发送到各种部署工具的通用格式,支持让你轻松的将相同模型(如:来自其他任务 ML 库)部署到 Docker、Apache Spark Azure ML 和 AWS SageMaker 等平台的批处理或实时处理任务。

MLflow Registry

一个集中的模型存储库,提供了简单的 API 和UI,支持在公共存储库中存储、注释、发现和管理模型,主要用于协作管理 MLflow 模型的整个生命周期。

API 算法服务构建

  • Anaconda环境搭建,可以便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本

mlflow安装

pip install mlflow
OR
conda install mlflow

UI启动

git clone https://github.com/mlflow/mlflow.git
cd mlflow/examples
mlflow ui

模型运行

# 模型生成
python sklearn_logistic_regression/train.py

# 启动算法服务
mlflow models serve -m runs:/<Model_id>/model --port 1234
可能报错:mlflow.utils.process.ShellCommandException: Non-zero exitcode: 1
mlflow models serve -m runs:/<Model_id>/model --port 1234 --no-conda

# API 推理验证
curl -d '{"columns":["x"], "data":[[1], [-1]]}' -H 'Content-Type: application/json; format=pandas-split' -X POST localhost:1234/invocations

# 结果:[1, 0]

对于简单的输入->推理->结果场景,通过使用MLflow平台功能,我们只需要专注于train.py代码开发即可很方便的完成一个算法的训练和上线工作。

但生产场景多种多样,有时候并不仅仅是一个简单的算法API就可以满足,算法直接还可能存在层级关系、依赖关系、转换关系,我们接着往下。

流处理服务构建

API算法服务MLflow旨在输出一个完全独立的算法服务,而流处理服务中描述了如何将多个API算法服务链接在一起,每个运行都封装一个转化或者训练步骤,定义各个流程间的接口和允许缓存和重用中间结果,如下:

该流程包含四个步骤:

  • Load 流程:加载数据集
  • ETL 流程: ETL 预处理数据集
  • ML 流程: ML 预处理数据集
  • Train流程:模型训练

具体代码参见:[3]

总结一下

优点:相比谷歌的 TFX、Facebook FBLearner Flow等平台,MLflow的创建为了统一多种深度框架训练标准和流程管理标准,立意更高。支持多种模型存储方式和软件插件机制,便于第三方集成和定制接入。
缺点:当前 MLflow Pipeline 还过度依赖代码,缺少平台功能,对于快速接入生产,需要一定的学习成本。

参考文档

❤️❤️❤️读者每一份热爱都是笔者前进的动力!
我是三十一,感谢各位朋友:求点赞、求评论、求转发,大家下期见!

相关文章
|
30天前
|
机器学习/深度学习 PyTorch 算法框架/工具
在阿里云机器学习平台上布置一个PyTorch模型
在阿里云机器学习平台上布置一个PyTorch模型【1月更文挑战第21天】【1月更文挑战第105篇】
106 1
|
2月前
|
机器学习/深度学习 算法 TensorFlow
【Python机器学习】梯度下降法的讲解和求解方程、线性回归实战(Tensorflow、MindSpore平台 附源码)
【Python机器学习】梯度下降法的讲解和求解方程、线性回归实战(Tensorflow、MindSpore平台 附源码)
42 0
|
1月前
|
机器学习/深度学习 人工智能 分布式计算
阿里云PAI:一站式AI研发平台,引领深度学习潮流
阿里云PAI:一站式AI研发平台,引领深度学习潮流 随着人工智能的飞速发展,深度学习框架已经成为AI研发的核心工具。然而,选择合适的深度学习框架并不容易,需要考虑的因素包括计算性能、易用性、支持的算法组件等多种因素。今天,我们就来介绍一款一站式AI研发平台——阿里云PAI,看看它如何解决这些痛点。
51 1
|
1月前
|
机器学习/深度学习 人工智能 算法
PAI:一站式机器学习平台,让你的数据智能之旅更加便捷
PAI:一站式机器学习平台,让你的数据智能之旅更加便捷 随着大数据和人工智能的飞速发展,越来越多的企业和开发者开始涉足机器学习的领域。然而,对于许多初学者来说,机器学习的复杂性和难度可能会让人望而生畏。这时,一个功能强大、易于使用的机器学习平台就显得尤为重要。今天,我就来为大家详细介绍一个来自阿里巴巴的PAI一站式机器学习平台,看看它是如何帮助开发者们轻松应对机器学习挑战的。
23 2
|
1月前
|
机器学习/深度学习 人工智能 物联网
Mixtral 8X7B MoE模型基于阿里云人工智能平台PAI实践合集
本文介绍如何在PAI平台针对Mixtral 8x7B大模型的微调和推理服务的最佳实践,助力AI开发者快速开箱。以下我们将分别展示具体使用步骤。
|
2月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
【Python机器学习】神经网络中全连接层与线性回归的讲解及实战(Tensorflow、MindSpore平台 附源码)
【Python机器学习】神经网络中全连接层与线性回归的讲解及实战(Tensorflow、MindSpore平台 附源码)
34 0
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
阿里云人工智能平台PAI多篇论文入选EMNLP 2023
近期,阿里云人工智能平台PAI主导的多篇论文在EMNLP2023上入选。EMNLP是人工智能自然语言处理领域的顶级国际会议,聚焦于自然语言处理技术在各个应用场景的学术研究,尤其重视自然语言处理的实证研究。该会议曾推动了预训练语言模型、文本挖掘、对话系统、机器翻译等自然语言处理领域的核心创新,在学术和工业界都有巨大的影响力。此次入选意味着阿里云人工智能平台PAI自研的自然语言处理算法达到了全球业界先进水平,获得了国际学者的认可,展现了中国人工智能技术创新在国际上的竞争力。
|
1月前
|
机器学习/深度学习 算法 数据挖掘
讲解机器学习中的 K-均值聚类算法及其优缺点。
讲解机器学习中的 K-均值聚类算法及其优缺点。
|
1月前
|
机器学习/深度学习 算法 数据挖掘
机器学习中的 K-均值聚类算法及其优缺点
机器学习中的 K-均值聚类算法及其优缺点
107 0
|
1月前
|
机器学习/深度学习 分布式计算 算法
Spark中的机器学习库MLlib是什么?请解释其作用和常用算法。
Spark中的机器学习库MLlib是什么?请解释其作用和常用算法。
16 0

相关产品