【mflow系列6】mlflow model registry

简介: 【mflow系列6】mlflow model registry

是什么


本文基于mlflow 1.11.0版本

正如官网说的:

The MLflow Model Registry component is a centralized model store, set of APIs, and UI, to collaboratively manage the full lifecycle of an MLflow Model. It provides model lineage (which MLflow experiment and run produced the model), model versioning, stage transitions (for example from staging to production), and annotations

model registry 是一个集中的模型存储,apis,UI,用来全周期的管理model,他能提供一种模型血缘,模型版本,以及模型的阶段切换。


那它究竟能做什么呢,我们看看前面mlflow系列1 这篇文章,如果没用到model registry,我们启动服务的时候,得按照如下方式:

 export MLFLOW_TRACKING_URI=http://localhost:5002        
  mlflow models serve -m runs:/e69aed0b22fb45debd115dfc09dbc75a/model -p 1234 --no-conda       

这里我们得提供RUN_ID,也就是e69aed0b22fb45debd115dfc09dbc75a

而如果我们采用model registry的话,启动服务的时候,我们可以按照如下方式:

export MLFLOW_TRACKING_URI=http://localhost:5002
mlflow models serve -m "models:/sk-learn-random-forest-reg-model/Production"

其中sk-learn-random-forest-reg-model是model的名字,Production 是stage阶段,详细的我们会接下里介绍

那具体有什么作用呢:

model registry让我们在启动服务的时候,不需要指定RUN_ID,这样的话,我们在每次启动服务的时候,不需要再去查找RUN_ID,这样的话我们在每次重启的时候就不需要再进行文件的修改,对于算法人员来说,方便很多,而且model registry从逻辑上进行了stage的划分,且可以stage的切换,这样我们管理model的时候,就能很直观的知道当前算法服务是基于那个模型来的


怎么操作


我们现在来演示怎么进行model registry的操作,假设我们已经按照mlflow系列1进行了多次python wine.py 操作,这样我们在界面上就能看到一个实验的多个版本,如下:

image.png

点击Registry model如下:

image.png

这样我们就可以注册模型,模型的名字(假设我们这里为wine)可以自己选择输入

点击wine,

image.png

image.png

这样我们就可以进行stage的切换,默认stage是None,

Staging 表示正在筹备阶段,Production表示已经在线上环境阶段,Archived 表示存档阶段,也就是处于抛弃状态

image.png

当然也可以具体的删除某个版本的model,只要点击版本,之后删除位置和上面的位置一样

这样我们按照如下方式启动和访问服务即可,不需要关心具体的RUN_ID,只需要在界面上把stage切换成Production就行

# 启动服务
mlflow models serve -m "models:/wine/Production" -p 12346 -h 0.0.0.0 --no-conda
# 访问服务
curl -X POST -H "Content-Type:application/json; format=pandas-split" --data '{"columns":["alcohol", "chlorides", "citric acid", "density", "fixed acidity", "free sulfur dioxide", "pH", "residual sugar", "sulphates", "total sulfur dioxide", "volatile acidity"],"data":[[12.8, 0.029, 0.48, 0.98, 6.2, 29, 3.33, 1.2, 0.39, 75, 0.66]]}' http://localhost:12346/invocations 

至此,mlflow model registry的主要部分就介绍完了

相关文章
|
消息中间件 Java Shell
在CentOS7上安装RocketMQ 4.8.0
本文是博主在CentOS7上安装RocketMQ 4.8.0的记录,希望对大家有所帮助。
1158 0
|
4月前
|
数据采集 传感器 人工智能
英伟达Newton与OpenTwins如何重构具身智能“伴随式数采”范式
大规模真实数据的采集成本极为高昂,需要投入大量的人力、物力与时间。在复杂的环境中布置大量传感器和监测设备,其采购、安装、维护和更新费用都十分昂贵。物理世界的场景极其丰富且动态多变,要穷尽所有可能的情况几乎是不可能完成的任务。机器人可能需要在各种气候、地形和社会环境中工作,全面采集这些场景数据在现实中是无法企及的。不同机器人构型之间的差异使得数据难以复用,例如人形机器人和轮式机器人的数据因其运动和交互方式不同,通用性很低。这种缺乏实体间数据共享的局面,加剧了重复劳动和资源浪费,形成了阻碍行业发展的“数据孤岛”。
208 2
|
机器学习/深度学习 自然语言处理 Linux
【专栏】Linux 中的机器学习:Whisper适用于语音助手、翻译等领域,随着技术发展,其应用前景广阔
【4月更文挑战第28天】本文探讨了在Linux环境下,先进自动语音识别系统Whisper的运用与实现高效ASR。Whisper基于PyTorch,支持多语言识别,具有高准确性和实时性。文中介绍了安装配置Whisper的步骤,包括安装依赖、下载代码、配置环境变量及编译安装。通过数据准备、模型训练和识别,可实现语音识别功能。Whisper适用于语音助手、翻译等领域,随着技术发展,其应用前景广阔。
637 1
|
存储 机器学习/深度学习 算法
【mlflow系列1】mlflow 的搭建使用
【mlflow系列1】mlflow 的搭建使用
1582 0
【mlflow系列1】mlflow 的搭建使用
|
Java 程序员 调度
【JavaEE】线程创建和终止,Thread类方法,变量捕获(7000字长文)
创建线程的五种方式,Thread常见方法(守护进程.setDaemon() ,isAlive),start和run方法的区别,如何提前终止一个线程,标志位,isinterrupted,变量捕获
|
缓存 Ubuntu 网络协议
ubuntu ifconfig命令找不到
通过上述指导,无论你是面临 `ifconfig`命令缺失的困惑,还是希望深入了解Ubuntu系统下的网络管理技巧,都能找到针对性的解决方案,进一步提升你的系统管理能力。
577 2
|
安全 Linux 网络安全
|
算法 程序员 C语言
【C++ 模板和迭代器的交融】灵活多变:使用C++模板精准打造自定义迭代器
【C++ 模板和迭代器的交融】灵活多变:使用C++模板精准打造自定义迭代器
216 0
|
弹性计算 负载均衡 Cloud Native
阿里云负载均衡SLB版本CLB、ALB和NLB有什么区别如何选择?
最初阿里云只有一种传统的负载均衡SLB,这款SLB实例是四层负载均衡;后来在传统的SLB基础上推出七层负载均衡ALB,原四层SLB改名为CLB;后来又推出基于NFV虚拟化平台,支持弹性伸缩的网络型负载均衡NLB
10750 24
阿里云负载均衡SLB版本CLB、ALB和NLB有什么区别如何选择?