使用 Databricks+Mlflow 进行机器学习模型的训练和部署

这篇具有很好参考价值的文章主要介绍了使用 Databricks+Mlflow 进行机器学习模型的训练和部署。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ML工作流的痛点

使用 Databricks+Mlflow 进行机器学习模型的训练和部署

机器学习工作流中存在诸多痛点:

  • 首先,很难对机器学习的实验进行追踪。机器学习算法中有大量可配置参数,在做机器学习实验时,很难追踪到哪些参数、哪个版本的代码以及哪个版本的数据会产生特定的结果。
  • 其次,机器学习实验的结果难以复现。没有标准的方式来打包环境,即使是相同的代码、相同的参数以及相同的数据,也很难复现实验结果。因为实验结果还取决于采用的代码库。
  • 最后,没有标准的方式管理模型的生命周期。算法团队通常会创建大量模型,而这些模型需要中央平台进行管理,特别是模型的版本所处阶段和注释等元数据信息,以及版本的模型是由哪些代码、哪些数据、哪些参数产生,模型的性能指标如何。也没有统一的方式来部署这些模型。

MIflow 就是为了解决机器学习工作流中的上述痛点问题而生。它可以通过简单的 API 实现实验参数追踪、环境打包、模型管理以及模型部署整个流程。

MIflow的第一个核心功能: MIflow Tracking。

使用 Databricks+Mlflow 进行机器学习模型的训练和部署

它可以追踪基于学习的实验参数、模型的性能指标以及模型的各种文件。在做机器学习时实验时,通常需要记录一些参数配置以及模型的性能指标,而 MIflow 可以帮助用户免去手动记录的操作。它不仅能记录参数,还能记录任意文件,包括模型、图片、源码等。

从上图左侧代码可以看到,使用 MIflow的 start_run可以开启一次实验;使用 log_param 可以记录模型的参数配置;使用log_metric 可以记录下模型的性能指标,包括标量的性能指标和向量的性能指标;使用 log_model 可以记录下训练好的模型;使用 log_artifact 可以记录下任何想要记录的文件,比如上图中记录下的就是源码。

MIflow的第二个核心功能:MIflow Project 。

使用 Databricks+Mlflow 进行机器学习模型的训练和部署

它会基于代码规约来打包训练代码,并指定执行环境、执行入口以及参数等信息,以便复现实验结果。而且这种规范的打包方式能够更方便代码的共享以及平台的迁移。

如上图, miflow-training 项目里包含两个很重要的文件,分别是 content.yaml 和 MLproject。content.yaml 文件中指定了 project 的运行环境,包含它所有依赖的代码库以及这些代码库的版本;MLproject 里指定了运行的环境,此处为conda.yaml,指定了运行的入口,即如何将 project 运行起来,入口信息里面包含了相应的运行参数,此处为 alpha 和 l1_ratio 两个参数。

除此之外,MIflow 还提供了命令行工具,使得用户能够方便地运行 MIflow project 。比如打包好project 并将其上传到 git 仓库里了,用户只需要通过 mIflow run 指令即可执行project ,通过 -P 传入 alpha 参数。

MIflow 的第三个核心功能: MIflow Models。

使用 Databricks+Mlflow 进行机器学习模型的训练和部署

它支持以统一的方式打包记录和部署多种算法框架模型。训练完模型后,可以使用 MIflow 的 log_model将模型记录下来,MIflow 会自动将模型进行存储(可存储到本地或 OSS 上),而后即可在 MIflow WebUI 上查看模型与代码版本、参数和metric 之间的关系,以及模型的存储路径。

此外,MIflow 还提供了 API 用于部署模型。使用 mIflow models serve 部署模型后,即可使用 rest API 调用模型,得到预测的结果。

MIflow 的第四个核心功能: MIflow Registry。

使用 Databricks+Mlflow 进行机器学习模型的训练和部署

MIflow 不但能够存储模型,还提供了 WebUI 以管理模型。WebUI 界面上展示了模型的版本和所处的阶段,模型的详情页显示了模型的描述、标签以及schema。其中模型的标签可以用于检索和标记模型,模型的schema 用于表示模型输入和输出的格式。此外,MIflow 还建立了模型以及运行环境、代码和参数之间的关系,即模型的血缘。

MIflow 的四个核心功能很好地解决了机器学习工作流中的痛点,总结起来可以分为三个方面:

  1. MIflow Tracking 解决了机器学习实验难以追踪的问题。
  2. MIflow Project解决了机器学习工作流中没有标准的方式来打包环境导致实验结果难以复现的问题。
  3. MIflow Models 和Model Registry 解决了没有标准的方式来管理模型生命周期的问题。

Demo演示

接下来介绍如何使用 MIflow 和 DDI 搭建机器学习平台以管理机器学习的生命周期。

使用 Databricks+Mlflow 进行机器学习模型的训练和部署

在架构图中可以看到,主要的组件有 DDI 集群、OSS和 ECS 。DDI 集群负责做一些机器学习的训练,需要启动一台 ECS 来搭建 MIflow 的tracking server 以提供 UI 界面。此外还需要在 ECS 上安装 MySQL 以存储训练参数、性能和标签等元数据。OSS 用于存储训练的数据以及模型源码等。

部署要点请观看演示视频:
https://developer.aliyun.com/live/248988

作者:李锦桂 阿里云开源大数据平台开发工程师

原文链接

本文为阿里云原创内容,未经允许不得转载。文章来源地址https://www.toymoban.com/news/detail-431277.html

到了这里,关于使用 Databricks+Mlflow 进行机器学习模型的训练和部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器学习任务中使用计算图构建和训练模型的流程

    The goal is to encourage the project team to think more long-term and not judge success solely based on tactical results. This requires a shift in mindset to prioritize strategic thinking and understanding the bigger picture. It involves reevaluating the current perspective and approach to ensure that decisions and actions align with long-term goals and obje

    2024年02月10日
    浏览(33)
  • TensorFlow学习:使用官方模型和自己的训练数据进行图片分类

    教程来源:清华大佬重讲机器视觉!TensorFlow+Opencv:深度学习机器视觉图像处理实战教程,物体检测/缺陷检测/图像识别 注: 这个教程与官网教程有些区别,教程里的api比较旧,核心思想是没有变化的。 上一篇文章 TensorFlow学习:使用官方模型进行图像分类、使用自己的数据

    2024年02月08日
    浏览(37)
  • Azure 机器学习 - 使用 AutoML 和 Python 训练物体检测模型

    本教程介绍如何通过 Azure 机器学习 Python SDK v2 使用 Azure 机器学习自动化 ML 训练物体检测模型。 此物体检测模型可识别图像是否包含对象(如罐、纸箱、奶瓶或水瓶)。 关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本

    2024年02月06日
    浏览(34)
  • 模型训练:优化人工智能和机器学习,完善DevOps工具的使用

    作者:JFrog大中华区总经理董任远 据说法餐的秘诀在于黄油、黄油、更多的黄油。同样,对于DevOps而言,成功的三大秘诀是自动化、自动化、更高程度的自动化,而这一切归根结底都在于构建能够更快速地不断发布新版软件的流程。 尽管人们认为在人工智能(AI)和机器学习

    2024年02月10日
    浏览(28)
  • Pytorch迁移学习使用Resnet50进行模型训练预测猫狗二分类

    目录   1.ResNet残差网络 1.1 ResNet定义  1.2 ResNet 几种网络配置  1.3 ResNet50网络结构 1.3.1 前几层卷积和池化 1.3.2 残差块:构建深度残差网络 1.3.3 ResNet主体:堆叠多个残差块 1.4 迁移学习猫狗二分类实战 1.4.1 迁移学习 1.4.2 模型训练 1.4.3 模型预测   深度学习在图像分类、目标检

    2024年02月16日
    浏览(28)
  • Azure 机器学习 - 使用 Visual Studio Code训练图像分类 TensorFlow 模型

    了解如何使用 TensorFlow 和 Azure 机器学习 Visual Studio Code 扩展训练图像分类模型来识别手写数字。 关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理

    2024年02月06日
    浏览(42)
  • 使用交通、火灾和事故图像数据集进行深度学习模型训练的全面指南 - Python实现

    1. 引言 随着深度学习的迅速发展,模型的训练变得越来越依赖于高质量的数据。特别是在安全、监控和应急响应领域,识别交通、火灾和事故的图像是至关重要的。本文将介绍如何使用Python来处理这三种类别的图像数据集,为深度学习模型的训练做好准备。 2. 数据集概览 交

    2024年02月12日
    浏览(48)
  • R语言---使用runway进行机器学习模型性能的比较

    R语言—使用runway进行机器学习模型性能的比较

    2024年02月10日
    浏览(33)
  • 机器学习——训练模型

    y ^ = h Θ ( x ) = Θ ∗ x 其中 Θ 是模型的参数向量,其中包括偏置项 Θ 0 和特征权重 Θ 1 至 Θ n x 是实例的特征向量,包括从 x 0 至 x n , x 0 始终为 0 Θ ∗ x 是向量 Θ 与 x 点积 h Θ 是假设函数,使用模型参数 Θ widehat{y} = h_{Theta}(x) = Theta*x \\\\其中Theta是模型的参数向量,其中包括

    2024年02月07日
    浏览(25)
  • Azure 机器学习 - 使用 ONNX 对来自 AutoML 的计算机视觉模型进行预测

    本文介绍如何使用 Open Neural Network Exchange (ONNX) 对从 Azure 机器学习中的自动机器学习 (AutoML) 生成的计算机视觉模型进行预测。 关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云

    2024年02月05日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包