MLflow节点
综述
MLflow 是一个MLops领域一个优秀的开源项目, 用于管理机器学习的生命周期,包括实验、可再现性、部署和中心模型注册。
MLflow 组件用于执行 MLflow 任务,目前包含Mlflow Projects,和MLflow Models。(Model Registry将在不就的将来支持)。
- MLflow Projects: 将代码打包,并可以运行到任务的平台上。
- MLflow Models: 在不同的服务环境中部署机器学习模型。
- Model Registry: 在一个中央存储库中存储、注释、发现和管理模型 (你也可以在你的MLflow project 里面自行注册模型)。
目前 Mlflow 组件支持的和即将支持的内容如下中:
- MLflow Projects- BasicAlgorithm: 基础算法,包含LogisticRegression, svm, lightgbm, xgboost
- AutoML: AutoML工具,包含autosklean, flaml
- Custom projects: 支持运行自己的MLflow Projects项目
 
- MLflow Models- MLFLOW: 直接使用 mlflow models serve部署模型。
- Docker: 打包 DOCKER 镜像后部署模型。
 
- MLFLOW: 直接使用 
创建任务
- 点击项目管理-项目名称-工作流定义,点击“创建工作流”按钮,进入 DAG 编辑页面;
- 拖动工具栏的  任务节点到画板中。 任务节点到画板中。
任务样例
- 默认参数说明请参考DolphinScheduler任务参数附录默认任务参数一栏。
以下是一些MLflow 组件的常用参数
| 任务参数 | 描述 | 
|---|---|
| MLflow Tracking Server URI | MLflow Tracking Server 的连接,默认 http://localhost:5000 | 
| 实验名称 | 任务运行时所在的实验,若实验不存在,则创建。若实验名称为空,则设置为 Default,与 MLflow 一样 | 
MLflow Projects
BasicAlgorithm

| 任务参数 | 描述 | 
|---|---|
| 注册模型 | 是否注册模型,若选择注册,则会展开以下参数 | 
| 注册的模型名称 | 注册的模型名称,会在原来的基础上加上一个模型版本,并注册为Production | 
| 数据路径 | 文件/文件夹的绝对路径,若文件需以.csv结尾(自动切分训练集与测试集),文件夹需包含train.csv和test.csv(建议方式,用户应自行构建测试集用于模型评估)。详细的参数列表如下: LogisticRegression SVM lightgbm xgboost | 
| 算法 | 选择的算法,目前基于 scikit-learn 形式支持 lr,svm,lightgbm,xgboost | 
| 参数搜索空间 | 运行对应算法的参数搜索空间,可为空。如针对lightgbm 的 max_depth=[5, 10];n_estimators=[100, 200]则会进行对应搜索。约定传入后会以;切分各个参数,等号前的名字作为参数名,等号后的名字将以python eval执行得到对应的参数值 | 
AutoML

| 任务参数 | 描述 | 
|---|---|
| 注册模型 | 是否注册模型,若选择注册,则会展开以下参数 | 
| 注册的模型名称 | 注册的模型名称,会在原来的基础上加上一个模型版本,并注册为Production | 
| 数据路径 | 文件/文件夹的绝对路径,若文件需以.csv结尾(自动切分训练集与测试集),文件夹需包含train.csv和test.csv(建议方式,用户应自行构建测试集用于模型评估) | 
| 参数 | 初始化AutoML训练器时的参数,可为空,如针对 flaml 设置 time_budget=30;estimator_list=['lgbm']。约定传入后会以; 切分各个参数,等号前的名字作为参数名,等号后的名字将以python eval执行得到对应的参数值。详细的参数列表如下: flaml,autosklearn | 
| AutoML工具 | 使用的AutoML工具,目前支持 autosklearn,flaml | 
Custom projects

| 任务参数 | 描述 | 
|---|---|
| 参数 | mlflow run中的 —param-list 如-P learning_rate=0.2 -P colsample_bytree=0.8 -P subsample=0.9 | 
| 运行仓库 | MLflow Project的仓库地址,可以为github地址,或者worker上的目录,如MLflow project位于子目录,可以添加 #隔开,如https://github.com/mlflow/mlflow#examples/xgboost/xgboost_native | 
| 项目版本 | 对应项目中git版本管理中的版本,默认 master | 
现在你可以使用这个功能来运行github上所有的MLflow Projects (如 MLflow examples )了。你也可以创建自己的机器学习库,用来复用你的研究成果,以后你就可以使用DolphinScheduler来一键操作使用你的算法库。
MLflow Models
| 任务参数 | 描述 | 
|---|---|
| 部署模型的URI | MLflow 服务里面模型对应的URI,支持 models:/<model_name>/suffix格式 和runs:/格式 | 
| 监听端口 | 部署服务时的端口 | 
MLFLOW

Docker

环境准备
conda 环境配置
请提前安装anaconda 或者安装miniconda
方法A:
配置文件:/dolphinscheduler/conf/env/dolphinscheduler_env.sh。
在文件最后添加内容
# 配置你的conda环境路径
export PATH=/opt/anaconda3/bin:$PATH
方法B:
你需要进入admin账户配置一个conda环境变量。

后续注意配置任务时,环境选择上面创建的conda环境,否则程序会找不到conda环境。

MLflow service 启动
确保你已经安装MLflow,可以使用pip install mlflow进行安装。
在你想保存实验和模型的地方建立一个文件夹,然后启动 mlflow service。
mkdir mlflow
cd mlflow
mlflow server -h 0.0.0.0 -p 5000 --serve-artifacts --backend-store-uri sqlite:///mlflow.db
运行后会启动一个MLflow服务。
可以通过访问 MLflow service (http://localhost:5000) 页面查看实验与模型。

内置算法仓库配置
如果遇到github无法访问的情况,可以修改common.properties配置文件的以下字段,将github地址替换能访问的地址。
# mlflow task plugin preset repository
ml.mlflow.preset_repository=https://github.com/apache/dolphinscheduler-mlflow
# mlflow task plugin preset repository version
ml.mlflow.preset_repository_version="main"
 我的书签
 我的书签
                                 添加书签
 添加书签 移除书签
 移除书签