一站式机器学习开业平台 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 还过度依赖代码,缺少平台功能,对于快速接入生产,需要一定的学习成本。

参考文档

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

相关文章
|
22天前
|
机器学习/深度学习 人工智能 Shell
人工智能平台PAI操作报错合集之在分布式训练过程中遇到报错,是什么原因
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
22天前
|
机器学习/深度学习 人工智能 数据处理
人工智能平台PAI操作报错合集之任务重启后出现模型拆分报错,该怎么办
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
11天前
|
机器学习/深度学习 API 网络架构
"解锁机器学习超级能力!Databricks携手Mlflow,让模型训练与部署上演智能风暴,一触即发,点燃你的数据科学梦想!"
【8月更文挑战第9天】机器学习模型的训练与部署流程复杂,涵盖数据准备、模型训练、性能评估及部署等步骤。本文详述如何借助Databricks与Mlflow的强大组合来管理这一流程。首先需在Databricks环境内安装Mlflow库。接着,利用Mlflow跟踪功能记录训练过程中的参数与性能指标。最后,通过Mlflow提供的模型服务功能,采用REST API或Docker容器等方式部署模型。这一流程充分利用了Databricks的数据处理能力和Mlflow的生命周期管理优势。
31 7
|
21天前
|
数据采集 人工智能 自然语言处理
阿里云百炼平台深度体验:智能问答与模型训练的创新之旅
在人工智能的浪潮中,阿里云百炼平台以其强大的大模型开发能力,为企业和个人开发者提供了一站式的解决方案。本文将从知识检索应用搭建、模型训练调优以及流程管理功能三个角度,全面评测阿里云百炼平台的实际使用体验。
105 3
|
22天前
|
机器学习/深度学习 人工智能 Java
人工智能平台PAI使用问题之alink安装部署卡住不动,是什么导致的
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
22天前
|
机器学习/深度学习 人工智能 运维
人工智能平台PAI使用问题之一直显示"正在等待在云端的gateway资源",该如何处理
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
7天前
|
机器学习/深度学习 人工智能 Linux
【机器学习】Dify:AI智能体开发平台版本升级
【机器学习】Dify:AI智能体开发平台版本升级
32 0
|
22天前
|
机器学习/深度学习 人工智能 分布式计算
人工智能平台PAI操作报错合集之引用github.com/alibaba/pairec包时报错,该如何解决
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
22天前
|
机器学习/深度学习 人工智能 网络协议
人工智能平台PAI操作报错合集之报错 "curl: (35) TCP connection reset by peer" 表示什么
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
22天前
|
机器学习/深度学习 人工智能 PyTorch
人工智能平台PAI使用问题之如何布置一个PyTorch的模型
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。