MLOPS工具集教程-快速入门MLflow

news2024/11/13 16:31:53

文章目录

  • 一、什么是 MLOps?
  • 二、MLOps 工具有什么作用?
  • 三、免费开源 MLOps 工具和平台——MLflow
    • 3.1 MLflow介绍
    • 3.2 安装MLflow
    • 3.3启动MLflow
    • 3.4 API文档
    • 3.5 训练模型演示实例

MLOps 策略越来越多地应用于机器学习模型以及构建这些模型的团队中,这些团队通过MLOps优化和标准化模型生命周期管理的程序。

这篇文章我们将介绍市场上的一些主流的 MLOps 工具和平台,以及它们可以从工具、开发人员和程序的角度来简化机器学习。

一、什么是 MLOps?

机器学习运维,通常称为MLOps,是一种为机器学习模型建立程序、标准和最佳实践的策略。 MLOps 不会在没有计划的情况下将大量时间和资源投入到机器学习开发中,而是致力于确保 ML 开发的整个生命周期(从构思到部署)得到仔细记录和管理,以优化结果。

MLOps 的存在不仅是为了提高 ML 模型的质量和安全性,而且还以某种方式记录了最佳实践(这种方式对 ML 操作员和开发人员来说,使机器学习开发更具可扩展性)。

由于 MLOps将 DevOps 策略有效地应用于更小众的技术开发领域,因此有人将其称为用于机器学习的 DevOps。这是一种理解 MLOps 的有效的方式,因为与 DevOps 非常相似,它都是关于跨团队和工具的知识共享、协作和最佳实践;MLOps为开发人员、数据科学家和运营团队提供了协同工作的指南,从而创建最有效的 ML 模型。

二、MLOps 工具有什么作用?

MLOps 工具可以为 ML 团队执行各种任务,但通常这些工具可以分为两类:单个组件管理和平台管理。虽然一些 MLOps 工具专注于一个核心领域,比如数据或元数据管理,但其他工具采用更全面的方法并提供 MLOps 平台来管理 ML 生命周期的多个阶段。

无论您是在寻找用于 MLOps 的专用工具还是更通用的工具,都应寻找可帮助您的团队管理 ML 开发的以下领域的工具:

  • 数据管理
  • 模型建模与模型设计
  • ML 模型的部署和持续维护
  • 端到端生命周期管理,这通常在全方位服务的 MLOps 平台中可用
  • 项目和工作空间管理

三、免费开源 MLOps 工具和平台——MLflow

3.1 MLflow介绍

MLflow是由Databricks公司开发并开源的一个用于管理机器学习生命周期的平台。它提供了一系列工具,帮助数据科学家和工程师跟踪实验、重现结果、部署模型等。MLflow的主要组成部分包括:

  • MLflow Tracking:用于跟踪机器学习实验,每个实验都被称为一个run,每个run可以包含多个参数、指标和模型。这个组件通过API的形式管理实验的参数、代码、结果,并以MLflow UI的形式展示,方便用户进行比较。

  • MLflow Projects:代码打包的一套方案,可以将数据科学代码打包成一种格式,在任何平台上重现运行。

  • MLflow Models:一套模型部署的方案,用于在不同服务环境中部署机器学习模型。

  • MLflow Model Registry:一套管理模型和注册模型的方案,在一个中心仓库中存储、注释、发现和管理模型。

MLflow已经集成了多种常用的机器学习算法项目,包括TensorFlow、xgboost、sklearn等,方便用户以极小的工作量快速开展常用机器学习探索工作。同时,为了支持方便集成用户自己开发的算法工程,MLflow定制了一套project标准规范,一般情况下用户只需要做简单的配置即可将自己的算法工程接入到MLflow。

3.2 安装MLflow

MLFlow是一个用Python开发的机器学习项目管理工具,可以通过pip在Python环境中安装,用于跟踪和管理机器学习项目的实验过程和结果。

pip install mlflow

在这里插入图片描述

3.3启动MLflow

mlflow server --host 127.0.0.1 --port 8080

在这里插入图片描述

3.4 API文档

MLflow-文档
在这里插入图片描述

3.5 训练模型演示实例

在使用MLflow进行模型开发时,追踪模型的输入和输出参数以及训练过程中的数据参数转换是非常重要的。这样做可以帮助我们理解模型的表现和行为,同时也便于复现实验结果和进行模型管理。
要追踪模型的输入和输出参数,您可以在训练脚本开始时使用MLflow的mlflow.log_param函数来记录这些参数。例如:
模型追踪方法:

import mlflow注册服务端mlflow.set_tracking_uri(uri="http://<host>:<port>")#模型追踪日志mlflow.log_params(params)mlflow.log_metric("accuracy", accuracy)

模型代码实例:

import mlflowfrom mlflow.models import infer_signatureimport pandas as pdfrom sklearn import datasetsfrom sklearn.model_selection import train_test_splitfrom sklearn.linear_model import LogisticRegressionfrom sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score# Load the Iris dataset    X, y = datasets.load_iris(return_X_y=True)# Split the data into training and test sets    X_train, X_test, y_train, y_test = train_test_split(    X, y, test_size=0.2, random_state=42)    # Define the model     hyperparametersparams = {            "solver": "lbfgs",            "max_iter": 1000,            "multi_class": "auto",            "random_state": 8888,    }# Train the model    lr = LogisticRegression(**params)    lr.fit(X_train, y_train)# Predict on the test set    y_pred = lr.predict(X_test)# Calculate metrics    accuracy = accuracy_score(y_test, y_pred)# Set our tracking server uri for logging    mlflow.set_tracking_uri(uri=" # Create a new MLflow Experiment    mlflow.set_experiment("MLflow Quickstart")# Start an MLflow runwith mlflow.start_run():    # Log the hyperparameters    mlflow.log_params(params)        # Log the loss metric    mlflow.log_metric("accuracy", accuracy)        # Set a tag that we can use to remind ourselves what this run was for    mlflow.set_tag("Training Info", "Basic LR model for iris data")        # Infer the model signature    signature = infer_signature(X_train, lr.predict(X_train))        # Log the model    model_info = mlflow.sklearn.log_model(        sk_model=lr,        artifact_path="iris_model",        signature=signature,        input_example=X_train,        registered_model_name="tracking-quickstart",    )    # Load the model back for predictions as a generic Python Function model    loaded_model = mlflow.pyfunc.load_model(model_info.model_uri)    predictions = loaded_model.predict(X_test)    iris_feature_names = datasets.load_iris().feature_names    result = pd.DataFrame(X_test, columns=iris_feature_names)    result["actual_class"] = y_test    result["predicted_class"] = predictions    result[:4]

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1974300.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

webpack打包发布~

1、安装webpack&#xff08;局部安装webpack&#xff09;。 npm i webpack webpack-cli -D 2、安装成功之后&#xff0c;你会在package.json文件中看到这个。 3、新建webpack.config.js文件&#xff0c;里面写配置编译模式&#xff0c;入口出口等&#xff08;这里演示的是单入…

任务管理器中的CompatTelRunner进程是做什么的?我该怎样把它关闭

一、问题描述 当我们打开电脑使用时候会发现系统反应较慢&#xff0c;使用起来没有那么流畅&#xff1b;此时我们打开任务管理器后发现是一个名为【CompatTelRunner】的进程占用大量的CPU资源导致&#xff08;点击任务管理器的CPU字样即可对使用资源进行排序&#xff09;&#…

【靶场实操】sql-labs通关详解----第二节:前端页面相关(Less-11-Less-17)

SQL注入攻击是一种针对Web应用程序的安全漏洞&#xff0c;那么自然&#xff0c;SQL注入攻击也和前端页面息息相关&#xff0c;用户输入未被正确处理、动态查询的构建、前端JavaScript代码错误&#xff0c;等等我问题都可能造成安全威胁。 在上一节&#xff0c;我们了解了基础的…

23届24届均可投!Engineering Star Program火热进行中

Hi 大家好&#xff0c;我是Chowley&#xff0c;我们组现在还有个青年工程师的HC&#xff08;23-24届均可&#xff09;&#xff0c;正在寻找QA队友&#xff0c;有兴趣用我内推码官网投递&#xff0c;简历直接发我ld 我是今年校招进入的虾皮&#xff0c;现在full-time两个月了&a…

互联网十万个为什么之什么是负载均衡?

负载均衡是一种对流量进行按需分发的服务&#xff0c;通过将流量分发到不同的后端服务器来扩展应用系统的吞吐能力&#xff0c;并且可以消除系统中的单点故障&#xff0c;提升应用系统的可用性。 为什么需要负载均衡&#xff1f; 负载均衡的出现主要是为了解决用户在网络服务…

【Godot4自学手册】第四十三用着色器(shader)给纹理描边

这一节我们学一下用着色器&#xff08;shader&#xff09;描边效果。来看看最终效果&#xff1a; 一、进行shader初始设置 首先我们进入NPC场景&#xff0c;选择Sprite2D节点&#xff0c;在检查器中中岛CanvasItem属性&#xff0c;并在Material->Material后方选择下拉按钮…

如何从智联招聘网站快速抓取职位详情?两大技巧揭秘

摘要&#xff1a; 本文将揭秘如何利用Python爬虫技术&#xff0c;高效且合法地从智联招聘网站抓取职位详情信息。通过实战示例&#xff0c;展现两大核心技巧&#xff0c;助你在大数据时代抢占先机&#xff0c;为你的市场分析、人才研究提供强大支持。 一、引言&#xff1a;数据…

LLM4Decompile反编译大模型的试用实践过程梳理

LLM4Decompile 是一款开源大型语言模型,专注于反编译工作,我们将其试用过程进行介绍: 论文地址:https://arxiv.org/abs/2403.05286 代码地址:https://github.com/albertan017/LLM4Decompile 首先,找到代码位置: 1.搭建基础环境1.python3,我用的是3.12.4 …

LinuxC++(7):认识主函数参数

主函数有哪些参数&#xff1f; main函数有三个参数&#xff0c;argc、argv和envp&#xff0c;它的标准写法如下&#xff1a; int main(int argc,char *argv[],char *envp[]){return 0; } 认识argc argc表示有几个参数&#xff0c;主函数自身也算一个&#xff0c;所以如果没…

解锁概念测量类比完成任务如何改变词语表征

欢迎来到雲闪世界。本文旨在讨论 word2vec 和 GloVe 算法的发展&#xff0c;因为这与这些算法的第二个应用目的有关&#xff1a;分析文本语料库中包含的概念。首先&#xff0c;根据 word2vec 算法的历史背景对其进行讨论。然后&#xff0c;描述类比完成任务&#xff0c;该任务突…

【C语言篇】操作符详解(上篇)

文章目录 操作符详解&#xff08;上篇&#xff09;前言sizeof强制类型转换算术操作符赋值操作符逻辑操作符逻辑取反运算符逻辑与运算符逻辑或运算符 关系操作符自增自减操作符和-逗号表达式 操作符详解&#xff08;上篇&#xff09; 前言 操作符又被叫做运算符&#xff0c;是不…

深度学习中降维的几种方法

笔者在搞网络的时候碰到个问题&#xff0c;就是将特征维度从1024降维到268&#xff0c;那么可以通过哪些深度学习方法来实现呢&#xff1f; 文章目录 1. 卷积层降维2. 全连接层降维3. 使用注意力机制4. 使用自编码器 1. 卷积层降维 可以使用1x1卷积层&#xff08;也叫pointwis…

AI新闻:近期AI领域最繁忙的一周!

本周AI领域发生了许多令人瞩目的大事&#xff0c;可以说是繁忙的一周了。下面我将为大家一一盘点这些精彩瞬间。 OpenAI的新功能和发展 高级语音功能&#xff1a;OpenAI开始推出全新的高级语音功能&#xff0c;之前展示时声音如同斯嘉丽约翰逊。这项功能已经开放给部分用户使用…

鸿蒙双向绑定组件:TextArea、TextInput、Search、Checkbox,文本输入组件,图案解锁组件PatternLock

对象暂不支持双向绑定&#xff0c; 效果&#xff1a; 代码&#xff1a; Entry Component struct MvvmCase {StateisSelect: boolean falseStatesearchText: String ""StateinputText: string ""StateareaText: string ""build() {Grid() {G…

「漏洞复现」百易云资产管理运营系统 comfileup.php 文件上传漏洞(XVE-2024-18154)

0x01 免责声明 请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;作者不为此承担任何责任。工具来自网络&#xff0c;安全性自测&#xff0c;如有侵权请联系删…

武汉流星汇聚:亚马逊北美站引领中国跨境潮,全球商机触手可及

在当今全球跨境电商的浪潮中&#xff0c;亚马逊北美站以其独特的区域优势和强大的市场影响力&#xff0c;为中国跨境卖家提供了前所未有的发展机遇。根据最新统计数据显示&#xff0c;60%的中国跨境卖家将亚马逊视为他们海外拓展的首选平台&#xff0c;这一选择背后&#xff0c…

ASPCMS 漏洞

一、后台修改配置文件拿shell 登录后台后如下点击 点击保存并抓包 将slideTextStatus的值修改为1%25><%25Eval(Request(chr(65)))25><%25 放包&#xff08;连接密码是a&#xff09; 影响文件为 /config/AspCms_Config.asp 访问文件,使用工具连接

window10上配置typora图床

window10上配置typora图床 window10picgotypora 教程 picgo设定存储区域 picgo下载地址 安利一款截图贴图软件

Simulink代码生成:数学运算

文章目录 1 引言2 模块使用实例2.1 Math Function模块2.2 Trigonometric Function模块2.3 Abs模块 3 代码生成4 总结 1 引言 Simulink中提供了大量的数学运算模块&#xff0c;对应C语言中<math.h>中用于数学计算的函数&#xff0c;例如幂函数、开平方、三角反三角函数、…

FFmpeg源码:av_gcd函数分析

一、引言 公约数&#xff0c;是一个能同时整除几个整数的数。如果一个整数同时是几个整数的约数&#xff0c;称这个整数为它们的“公约数”&#xff1b;公约数中最大的称为最大公约数。对任意的若干个正整数&#xff0c;1总是它们的公约数。 公约数与公倍数相反&#xff0c;就…