mlflow不是机器学习框架,而是与机器学习框架无关的机器学习过程管理平台。

它是轻量极,侵入性比较低。

我把它单独拿出来是因为qlib平台的workflow工作流是使用mlflow来管理的。

https://www.mlflow.org/

MLflow Documentation — MLflow 1.28.0 documentation

用来管理机器学习生命周期的平台,我们平常使用的sklearn和pytorch都兼容。

01 安装

pip install mlflow

依赖包还比较多,numpy, scipy, 还有整个flask技术栈,这个是给mlflow ui用的。

Installing collected packages: numpy, zipp, importlib-resources, MarkupSafe, typing-extensions, importlib-metadata, Mako, greenlet, sqlalchemy, alembic, pyyaml, pytz, pyparsing, packaging, click, pyjwt, oauthlib, charset-normalizer, idna, urllib3, certifi, requests, tabulate, six, databricks-cli, gunicorn, smmap, gitdb, gitpython, Werkzeug, itsdangerous, Jinja2, Flask, sqlparse, querystring-parser, scipy, cloudpickle, protobuf, entrypoints, websocket-client, docker, python-dateutil, pandas, prometheus-client, prometheus-flask-exporter, mlflow

02 mlflow UI

mlflow ui

打开本机的5000端口,可以看到精美的界面:

目前还没有在运行的实验与模型。

03 hello mlflow

import os
from random import random, randint
from mlflow import log_metric, log_param, log_artifactsif __name__ == "__main__":# 给参数打日志 (key-value 对), 参数1:随机整形log_param("param1", randint(0, 100))# Log a metric; metrics can be updated throughout the runlog_metric("foo", random())log_metric("foo", random() + 1)log_metric("foo", random() + 2)# 当前目录下创建outputs文件夹,并写text.txt。if not os.path.exists("outputs"):os.makedirs("outputs")with open("outputs/test.txt", "w") as f:f.write("hello world2!")log_artifacts("outputs")

写入三种日志: 参数,metric-指标,artifacts一些输出文件。

param,metric都是key-value的形式写入。

artifacts是备份文件夹。

04 tutorial

到github上下载代码:

GitHub - mlflow/mlflow: Open source platform for the machine learning lifecycle

github如果不稳定,可以通过gitee下载:

MLflow: MLflow 是由 Apache Spark 技术团队开源的一个机器学习平台,主打开放性: 开放接口:可与任意 ML 库、算法、部署工具或编程语言一起使用

pip install mlflow[extras]

这里会安装sklearn。

或者单独安装sklearn:

pip install scikit-learn

在examples目录下会有不少官方的例子可以学习。

# The data set used in this example is from http://archive.ics.uci.edu/ml/datasets/Wine+Quality
# P. Cortez, A. Cerdeira, F. Almeida, T. Matos and J. Reis.
# Modeling wine preferences by data mining from physicochemical properties. In Decision Support Systems, Elsevier, 47(4):547-553, 2009.import os
import warnings
import sysimport pandas as pd
import numpy as np
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score
from sklearn.model_selection import train_test_split
from sklearn.linear_model import ElasticNetimport mlflow
import mlflow.sklearndef eval_metrics(actual, pred):rmse = np.sqrt(mean_squared_error(actual, pred))mae = mean_absolute_error(actual, pred)r2 = r2_score(actual, pred)return rmse, mae, r2if __name__ == "__main__":warnings.filterwarnings("ignore")np.random.seed(40)# Read the wine-quality csv file (make sure you're running this from the root of MLflow!)wine_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "wine-quality.csv")data = pd.read_csv(wine_path)# Split the data into training and test sets. (0.75, 0.25) split.train, test = train_test_split(data)# The predicted column is "quality" which is a scalar from [3, 9]train_x = train.drop(["quality"], axis=1)test_x = test.drop(["quality"], axis=1)train_y = train[["quality"]]test_y = test[["quality"]]alpha = float(sys.argv[1]) if len(sys.argv) > 1 else 0.5l1_ratio = float(sys.argv[2]) if len(sys.argv) > 2 else 0.5with mlflow.start_run():lr = ElasticNet(alpha=alpha, l1_ratio=l1_ratio, random_state=42)lr.fit(train_x, train_y)predicted_qualities = lr.predict(test_x)(rmse, mae, r2) = eval_metrics(test_y, predicted_qualities)print("Elasticnet model (alpha=%f, l1_ratio=%f):" % (alpha, l1_ratio))print("  RMSE: %s" % rmse)print("  MAE: %s" % mae)print("  R2: %s" % r2)mlflow.log_param("alpha", alpha)mlflow.log_param("l1_ratio", l1_ratio)mlflow.log_metric("rmse", rmse)mlflow.log_metric("r2", r2)mlflow.log_metric("mae", mae)mlflow.sklearn.log_model(lr, "model")

sklearn里fit, predict之后,把参数,结果指标还是模型一并保存。

相当于帮我们管理整个实验过程。

qlib的工作流管理:mlflow机器学习生命周期管理平台相关推荐

  1. 助力绵阳市商业银行,打造高效项目生命周期管理平台

    金融市场捷报连连,近日,TechExcel公司再次凭借产品和服务实力直签下绵阳市商业银行,打造项目全生命周期管理平台.DevSuite研发与项目管理平台为绵阳市商业银行员工提供了一套必不可少的信息化工 ...

  2. 基于BIM+GIS钢结构全生命周期管理平台项目

    "BIM+GIS钢结构全生命周期管理平台"平台平台由业务平台.交互平台.移动端三端组成.平台通过BIM技术.信息化技术.GIS技术.物联网技术.集成技术的应用,有效推进钢结构BIM ...

  3. 重磅发布 | Serverless 应用中心:Serverless 应用全生命周期管理平台

    随着 Serverless 架构的不断普及与应用,Serverless 工具链体系的匮乏.更新/部署流程复杂.资源零散以及管理难度大等问题也随之显露.尽管 2020 年 11月,Serverless ...

  4. 发布 | Serverless 应用中心:Serverless 应用全生命周期管理平台

    作者:江昱|阿里云 Serverless 产品经理 参加文末有奖体验活动,快速上手 Serverless 应用中心. 随着 Serverless 架构的不断普及与应用,Serverless 工具链体系 ...

  5. 从数据备份保护到完整生命周期管理平台,爱数全新发布 AnyBackup Family 8

    编辑 | 宋慧 出品 | CSDN 云计算 从2003年创业,开始做数据备份技术,爱数已经走过了近20年的时间.现在,数据的价值被越来越多的业界与用户看到,数据分析应用赛道近年一直持续火热.而现在的爱 ...

  6. PPT 下载 | 神策数据孙文亮:客户全生命周期管理从方法到实践全解析

    在以"场景赋能·驱动有数"为主题的神策 2018 数据驱动大会现场,神策数据技术经理孙文亮发表了名为<客户全生命周期管理从方法到实践>的主题演讲. 温馨提示:点击文末阅 ...

  7. 对话《旅行青蛙》制作团队:游戏就是将现实中的不可能变为可能 | 覆盖客户全生命周期管理,神州云动六朵云来袭

    每一个企业级的人  都置顶了 中国软件网 中国软件网  为你带来最新鲜的行业干货 小编点评 自从我养了青蛙以后 心里多了一份牵挂 娃儿的吃的够不够 帐篷好不好 当然啦 作为一个互联网人 我一边牵挂我得 ...

  8. 37.索引生命周期管理—kibana 索引配置

    37.1 背景 引入索引生命周期管理的一个最重要的目的就是对大量时序数据在es读写操作的性能优化 如通过spark streaming读取Kafka中的日志实时写入es,这些日志高峰期每天10亿+,每 ...

  9. 从全生命周期管理角度看大数据安全技术研究

    从全生命周期管理角度看大数据安全技术研究 李树栋1,2, 贾焰2, 吴晓波3, 李爱平2, 杨小东4, 赵大伟5 1. 广州大学网络空间先进技术研究院,广东 广州 510006 2. 国防科技大学计算 ...

最新文章

  1. docker常用命令详解
  2. 史上最详细微信小程序授权登录与后端SprIngBoot交互操作说明,附源代码,有疑惑大家可以直接留言,蟹蟹 2021.11.29完善更新小程序代码,
  3. 打印三角形、已三角形方式 输出数组中的内容
  4. [Leetcode总结] 102.二叉树的层序遍历
  5. 虚拟服务器关机返回用户信息,在Linux服务器关机前向用户显示一条自定义消息...
  6. (9)进程---JoinableQueue队列
  7. storm如何集成kafka
  8. OpenCV中cvLoadImage()函数和cvCreateImage()函数的异同之处!
  9. 对servelet路径的总结
  10. 利用SQL语句查询数据库中具体某个字段的重复行
  11. 分布式系统常见的事务处理机制
  12. Awesome-Windows
  13. 利用python编写个性二维码制作工具(支持微信名片二维码),并打包成EXE可执行文件。——001
  14. 2021年4月2日 星期五 农历二月 阴
  15. 儿童用灯哪个品牌好?推荐专业的儿童护眼台灯
  16. Ubuntu20.04之IDEA安装及idea项目运行演示,手把手教学|超级详细,建议收藏
  17. 利用Python求解八数码难题
  18. 好像还挺好玩的GAN重制版4——Pytorch搭建SRGAN平台进行图片超分辨率提升
  19. 手机号校验正则表达式
  20. python基本数据类型1

热门文章

  1. 期待第二届云计算大会
  2. xPC信号采集和分析(2)
  3. 短信发送一次显示两条之谜
  4. 【我的OpenGL学习进阶之旅】介绍一下 绘制图元
  5. java连接qq邮箱_java如何使用ssl连接qq邮箱
  6. discuz 如何去掉:导读-最新发表
  7. 记录:数据分析在业务中的一些应用
  8. iPhone历代产品,从3GS到7Plus详尽参数
  9. android listview固定内容,android ListView详解
  10. Opencv学习笔记完整版