文章目录 1 mlflow Dockerfile 2 训练模型 3 对比模型 4 打包模型 5 模型部署 6 模型inference调用 mlflow的安装与使用,可以直接: pip install mlflow 1 mlflow Dockerfile 本来按照这个MLFlow教程(MLflow系列1:MLflow入门教程(Python)),找台机器跑起来没啥问题; 不过,看到项目的github有Dockerfile 每次运行完训练脚本,MLflow都会将信息保存在目录mlruns中。 3 对比模型 mlflow ui [OPTIONS] 在mlruns目录的上级目录中运行下边的命令:mlflow ui 但是由于是docker 之中,就需要考虑mlflow的IP + 端口的用法了,需要使用 那么模型部署和tensorflow-server蛮相似, 需要替换成你自己的目录 mlflow models serve -m /Users/mlflow/mlflow-prototype/mlruns
所以第一时间把MLFlow相关文档 浏览了一遍,并且将MLFlow源码 clone下来大致也看了一遍。 这里先说说我看完后的一个总结: MLFlow至少现阶段还是一款Python ML pipeline的辅助工具 MLFlow要解决的问题以及相应的方案 MLFlow解决了如下几个问题: 算法训练实验难于追踪 没有解决Spark和MLFlow的数据衔接问题,也就是说,MLFlow单个实例如何全量或者按批次获取数据? 而MLSQL 除了没有解决Tracking问题以外,已经解决了MLFlow解决的其他的两个问题,当然还有MLFlow没有解决的几个问题。 总结 当然,MLFlow目前的模式没有强行绑定到Spark上,而是作为ML的一个辅助工具和标准,最大程度的减少算法同学的学习和使用成本,减少对现有流程干扰,可以使得MLFlow更容易被算法同学接受,从而享受到它的好处
2 MLFlow 2.1 MLFlow优势 Matei Zaharia 宣布推出开源机器学习平台 MLflow,这是一个能够覆盖机器学习全流程(从数据准备到模型训练到最终部署)的新平台。 MLflow Projects:代码打包的一套方案 MLflow Models:一套模型部署的方案 MLflow Model Registry:一套管理模型和注册模型的方案 Tracking: Tracking 参考:如何用MLflow做机器学习实验效果比对 2.2 MLFlow劣势 观点来自:如何评价 Databricks 的开源项目 MLflow? 没有解决Spark和MLFlow的数据衔接问题,也就是说,MLFlow单个实例如何全量或者按批次获取数据? 2.4 MLFlow和MLSQL对比 来自:Spark团队新作MLFlow 解决了什么问题 在现阶段版本里,MLFlow 做算法训练是基于单机运行的,不过利用Pyspark可以很方便的实现多机同时运行。
CREATE USER mlflow WITH ENCRYPTED PASSWORD 'mlflow'; GRANT ALL PRIVILEGES ON DATABASE mlflow_db TO mlflow ---- MLflow 现在是时候开始MLflow了。 postgresql://mlflow:mlflow@localhost/mlflow_db --default-artifact-root file:/home/<your user>/mlruns 登录MLflow 要开始登录MLflow,你需要将MLflow_TRACKING_URI环境变量设置为MLflow正在服务的跟踪操作系统环境os.environ['MLFLOW_TRACKING_URI 实验,并记录模型、其参数和我们获得的度量: import mlflow mlflow.set_experiment('DecisionTreeClassifier') with mlflow.start_run
为什么使用托管式 MLflow? SageMaker 可扩展基础架构上的完全托管式 MLflow 为处理机器学习实验、模型跟踪和模型注册提供了一个弹性设置。 使用托管式 MLflow 进行实验跟踪和记录 Amazon SageMaker 上托管式 MLflow 的一个优势是启动和跟踪实验所需的设置极少。 将 SageMaker 模型注册中心与 MLflow 模型注册中心集成结合了两个平台的优势。 一些关键好处包括: 统一工作流 Managed MLflow统一了数据科学家和DevOps团队之间的流程。 基于角色的访问控制 在SageMaker上管理MLflow使用AWS身份和访问管理来支持安全协作。
MLflow/Feast实战手记:MLOps不是装工具,是治内伤副标题:工具装上5分钟,坑踩三个月这两年,MLOps火得不行。 今天咱就不吹概念,直接聊MLflow/Feast在真实项目里,哪些点真能救命,哪些地方最容易翻车。 二、MLflow:不是日志工具,是“模型的户口本”1️⃣MLflow真正该解决的问题很多人用MLflow,只干一件事:记录loss、accuracy说句实在的,这属于“买跑车拉白菜”。 ="lr_v1"):mlflow.log_param("lr",0.01)mlflow.log_param("max_iter",100)mlflow.log_metric("auc",0.82)mlflow.sklearn.log_model 我强烈建议额外记三类东西:展开代码语言:PythonAI代码解释mlflow.set_tag("data_version","ods_user_v202401")mlflow.set_tag("feature_view
MLflow 解决了什么问题? MLflow是一个用于管理 ML 生命周期的开源平台,旨在简化机器学习的开发流程,提供实验追踪、将代码打包成可重现的运行模块以及共享和部署模型功能。 MLflow还支持在任何环境中运行 ML 代码,如:本地笔记本电脑、独立应用程序或者云环境中 MLflow目前提供四个组件,具体如下: MLflow Tracking 用于记录机器学习实验中的参数、代码 mlflow UI启动 git clone https://github.com/mlflow/mlflow.git cd mlflow/examples mlflow ui 模型运行 # 模型生成 参考文档 [0] https://github.com/mlflow/mlflow [1] https://mlflow.org/docs/latest/index.html [3] https://github.com /mlflow/mlflow/tree/master/examples/multistep_workflow
Github 链接: https://github.com/databricks/mlflow MLflow:全新的开源机器学习平台 MLflow 从现有 ML 平台中得到灵感,在设计上拥有以下两项开放理念 图:MLflow Tracking UI MLflow Projects MLflow Projects 提供打包可重用代码的标准格式。 配合 MLflow Tracking,MLflow Project 可以为你提供在复现、扩展和实验中极其好用的工具。 MLflow Model MLflow Model 是一种约定,它将机器学习模型打包成多种格式(称为 flavor)。MLflow 提供多种工具来帮助你部署不同 flavor。 开始使用 MLflow 按照 mlflow.org(https://www.mlflow.org/) 的使用说明,或前往 GitHub 查看已经发布的代码。期待大家的反馈。
而MLflow和DVC等工具则专注于模型版本控制,记录模型的训练过程、参数设置、评估指标等关键信息。 二、MLflow在MySQL与AI模型版本控制集成中的角色实验跟踪与记录MLflow的核心功能之一是实验跟踪。 MLflow能够自动记录每个实验的详细信息,包括输入参数、输出指标、模型代码以及运行环境等。 日后,数据科学家可以通过MLflow的界面或API,轻松查询和分析这些实验数据,从而确定最佳的模型设置。模型注册与管理MLflow的模型注册功能允许将训练好的模型注册到模型注册表中。 当一个新的AI模型训练完成后,通过MLflow将其注册到模型注册表中,并将相关信息存储在MySQL中。
MLflow到底是什么?简单来说,MLflow就像是机器学习项目的"管家"。它有四个核心组件:MLflow Tracking(实验跟踪)这是最常用的功能! 动手安装MLflow安装超级简单,一行命令搞定:bashpip install mlflow如果你想要完整功能(包括数据库支持),可以这样:bashpip install mlflow[extras]安装完成后 对于常用框架,你只需要一行代码:```pythonimport mlflow.sklearn开启自动记录mlflow.sklearn.autolog()正常训练模型,MLflow会自动记录所有信息rf 在代码中连接远程服务器```pythonimport mlflow设置远程MLflow服务器mlflow.set_tracking_uri("http://mlflow-server:5000")正常使用 `总结:MLflow让机器学习更专业MLflow真的是机器学习工程师的神器!
传统的训练逻辑在 MLFlow 的增强下获得了更加丰富的功能支持。 从 MLFlow 跟踪的角度来看,该函数的重要价值在于返回每个训练周期的损失值和准确率指标,这些指标随后通过 mlflow.log_metric() 函数记录到 MLFlow 系统中。 MLFlow 可视化界面展示 通过 MLFlow 记录的所有训练运行、指标和工件为实验历史提供了清晰、交互式的可视化界面。 MLFlow 预测 API 输出结果解析 当使用 MLFlow 的 pyfunc 接口进行模型验证时,响应返回的是每个类别的原始输出 logits 值。 通过 MLFlow 模型接口,我们实现了完全解耦的模型验证机制。 总结 本文通过一个完整的情感分析项目实例,详细展示了如何将 PyTorch 深度学习框架与 MLFlow 实验管理平台进行深度集成。
没错,我们需要的是Mlflow,而且是和Notebook结合使用。 启动Mlflow跟踪界面 ---- 我们先安装Mlflow,先新建一个Notebook文件: # 安装mlflow ! pip install mlflow 成功之后,我们就可以启动一个跟踪界面了: # 只是本机访问 !mlflow ui # 需要给其他人访问 ! (): # 训练模型 mlflow.log_param("algo", 'lr') # 使用的算法 mlflow.log_param("normalize", True 有ID即可加载模型: # API:https://mlflow.org/docs/latest/python_api/mlflow.sklearn.html#mlflow.sklearn.load_model 团队MLflow ---- 在一个团队中实践MLflow,其实也是很简单,先在服务器端启动mlflow ui,如: # 对应的Dockerfile: # https://github.com/IBBD/
import mlflow import mlflow.sklearn from sklearn.datasets import load_iris from sklearn.ensemble import 记录模型和指标 mlflow.log_metric("accuracy", acc) mlflow.sklearn.log_model(clf, "random_forest_model ") 在这个例子中,MLflow被用来管理机器学习实验和模型部署。 MLOps的关键工具 MLflow:MLflow是一个开源平台,用于管理机器学习的全生命周期,包括实验跟踪、模型管理和部署。 示例代码:使用MLflow进行模型管理和部署 以下是如何使用MLflow来管理机器学习模型的一个简单示例。我们将训练一个随机森林模型,并记录模型的性能和版本。
/mlflow[3] Stars: 15.4k License: Apache-2.0 MLflow 是一个机器学习生命周期平台,主要功能包括跟踪实验、将代码打包成可复现的运行环境以及分享和部署模型。 其核心优势和特点如下: MLflow Tracking:记录参数、代码和结果,并提供交互式 UI 进行比较。 MLflow Projects:使用 Conda 和 Docker 对代码进行打包,实现可复现性,并与他人共享。 MLflow Model Registry:集中管理 ML 流程中完整生命周期所需的模型存储、APIs 和用户界面。 /mlflow: https://github.com/mlflow/mlflow [4] amplication/amplication: https://github.com/amplication
/mlflow[6] Stars: 15.4k License: Apache-2.0 MLflow 是一个机器学习生命周期平台,主要功能包括跟踪实验、将代码打包成可复现的运行环境以及分享和部署模型。 其核心优势和特点如下: MLflow Tracking:记录参数、代码和结果,并提供交互式 UI 进行比较。 MLflow Projects:使用 Conda 和 Docker 对代码进行打包,实现可复现性,并与他人共享。 MLflow Model Registry:集中管理 ML 流程中完整生命周期所需的模型存储、APIs 和用户界面。 /mlflow: https://github.com/mlflow/mlflow
import os import argparse import pandas as pd import mlflow import mlflow.sklearn from sklearn.ensemble MLflow mlflow.sklearn.autolog() 训练模型。 () 注意 可以忽略 mlflow 警告。 () 注意 可以忽略 mlflow 警告。 选择“指标”选项卡以查看 MLflow 记录的指标。 (预期结果会有所不同,因为训练集不同。) 选择“图像”选项卡以查看 MLflow 生成的图像。 返回并查看其他模型的指标和图像。
实验跟踪与模型监控 4.1 MLflow部署与配置 MLflow是2025年LLM开发中最流行的实验跟踪和模型管理工具之一。 以下是标准部署流程: 本地开发环境部署: # 安装MLflow pip install mlflow==2.17.0 # 启动MLflow服务器 mlflow server \ --backend-store-uri : mlflow-server: image: ghcr.io/mlflow/mlflow:v2.17.0 ports: - "5000:5000" environment 实验对比: 使用MLflow UI比较不同实验的指标 使用Python API进行批量分析 import mlflow from mlflow.tracking import MlflowClient # 设置MLflow跟踪 mlflow.set_tracking_uri("http://localhost:5000") mlflow.set_experiment("llm-quality-monitoring
以下是MLflow的安全配置和扩展实践: 配置HTTPS:启用MLflow服务器的HTTPS支持,加密客户端与服务器之间的通信。 代码示例3:MLflow的安全配置与模型加密存储 import mlflow import mlflow.sklearn from sklearn.ensemble import RandomForestClassifier ", "wb") as f: f.write(key) # 配置MLflow mlflow.set_tracking_uri("http://localhost:5000") mlflow.set_experiment with mlflow.start_run() as run: # 记录模型参数 mlflow.log_param("n_estimators", 100) mlflow.log_param 模型已加密保存到MLflow,运行ID:{run.info.run_id}") # 从MLflow加载加密模型 run_id = run.info.run_id artifact_uri = mlflow.get_artifact_uri
To start a local MLflow server: mlflow server --backend-store-uri runs/mlflow It will MLFLOW_EXPERIMENT_NAME: The name of the MLflow experiment. """ # 检查是否启用了 MLflow if mlflow: # 将训练学习率和标签损失项的指标进行处理和记录 mlflow.log_metrics( """ # 检查是否启用了 MLflow if mlflow: # 将拟合周期的指标进行处理和记录 mlflow.log_metrics(metrics= """ # 如果没有启用 MLflow,则直接返回 if not mlflow: return # 记录最佳模型和其他文件到 MLflow mlflow.log_artifact
先初始化mlflow: 我们内部部署了一个独立的mlflow服务,只要往这里写数据,就能很方便的在团队之间进行分享。 import time import torch.optim as optim EPOCH = 10 # 遍历数据集次数 LR = 0.001 # 学习率 # 设置mlflow 及记录参数 mlflow.set_experiment('LeNet测试实验') mlflow.start_run() mlflow.log_param('EPOCH', EPOCH) mlflow.log_param ('gpu', torch.cuda.max_memory_allocated()//(1024*1024)) mlflow.log_metric('run_time', time.time()-start ) # 结束记录 mlflow.end_run() # 释放显存占用 torch.cuda.empty_cache() 训练过程跟原来是一样的,只是增加了参数记录。