机器学习(ML)的持续培训和部署

机器学习Valohai和JFrog Connect

在靠近数据生成位置的Edge设备上运行机器学习(ML)推理,与在云中远程运行推理相比,具有几个重要优势。这些优势包括实时处理、更低的成本、在没有连接的情况下工作的能力以及增强的隐私性。然而,今天,在分布式边缘设备中实现端到端ML系统用于边缘推断和模型的持续部署可能非常麻烦,而且比集中式环境要困难得多。

与任何现实生活中的生产ML系统一样,最终目标是重复迭代和部署模型的连续循环。

这篇博文描述并展示了一个现实生活中的例子,我们如何创建一个完整的ML系统,不断地改进自己瓦洛海MLOps平台JFrog Artifactory存储库管理器和JFrog连接IoT边缘设备管理平台。

实际用例:建筑工地安全应用

对于我们的用例示例,我们选择了一个突出边缘推断优势的实际应用程序:工地安全监控。

大多数法规要求施工现场的每个人都使用所需的安全设备,比如安全帽。这对工作场所管理者来说很重要,因为不遵守安全法规可能会导致伤害增加,保险费率提高,甚至罚款和罚款。

保安GTM推出

为了监控站点,我们在树莓派4设备上设置了智能摄像头,运行物体检测ML模型,可以识别被捕获的人是否戴着安全帽。

在这样的用例中,边推理的好处是显而易见的。建筑工地经常有不可靠的连接,检测必须在接近实时的情况下进行。在现场智能摄像头上运行模型,而不是在上游云中运行,确保正常运行时间,最大限度地减少连接问题或需求,同时解决可能的隐私和合规性问题。

下面描述了我们如何实现这个解决方案的细节。

解决方案概述:连续的ML培训管道

我们对边缘设备的持续培训管道设置包括两个主要元素:

  1. 瓦洛海MLOps平台负责对模型进行训练和再训练
  2. JFrog Artifactory和JFrog Connect负责将该模型部署到建筑工地的智能摄像机上。

培训和部署管道培训和部署管道

解决方案组件

hth华体会最新官方网站 函数
数据存储 AWS S3 存储培训数据(图片和标签)

存储模型权重

MLOps平台 Valohai 与S3和Git集成

在GPU实例上编排训练

用于推理的包模型

从舰队收集新的训练数据

构件库 JFrog Artifactory 存储和管理模型包的生命周期

服务Edge设备的下载请求

设备管理器 JFrog连接 管理、监控和排除边缘设备故障

部署和安装模型到舰队的设备

边缘设备(年代) 树莓派4 运行模型推断

训练和部署模型

在Valohai MLOps平台中,我们定义了一个典型的深度训练管道,分为三个步骤:

  1. 预处理
  2. 火车
  3. 部署

预处理和训练步骤是你从深度学习机器视觉管道中所期望的。我们主要在预处理中调整图像的大小,训练步骤使用强大的GPU云实例重新训练YOLOv5s模型。

更有趣的步骤是部署步骤,我们将Valohai平台与JFrog DevOps平台.的valohai.yaml是一个配置文件,它定义各个步骤和连接这些步骤的管道。下面是我们的示例deployment-jfrog在YAML中定义的步骤。

代码片段:valohai.yaml

-步骤:名称:deployment-jfrog形象:python: 3.9命令:- cp / valohai /输入/模型/ weights.pt / valohai /仓库/模型/ yolov5s.pt - zip - r / tmp / model.zip / valohai /仓库/模型——旋度> - h " X-JFrog-Art-Api: $ JFROG_API_KEY " > - t / tmp / model.zip“$ JFROG_REPOSITORY / model.zip”——python jfrog-connect.py >——flow_id = f - c4e4 - 0733 > app_name = default_app >——项目= valohaitest >——组=生产输入:-名称:模型默认值:基准:/ / 017 f799a-dc58-ea83-bd7f-c977798f3b26可选:—name: JFROG_REPOSITORY optional: true—name: JFROG_API_KEY optional: true

让我们看看部署步骤是如何工作的。

首先,部署步骤构建一个包含模型+权重的zip存档,然后将其上传到JFrog Artifactory。Valohai为该步骤提供了来自前一个训练步骤的权重作为输入文件和所需的JFROG_API_KEY而且JFROG_REPOSITORY秘密作为环境变量。

下一步启动更新流程,通过调用将新模型交付给所有智能相机JFrog连接API

我们已经建立了一个Valohai管道,该管道将模型上传到JFrog Artifactory,并在JFrog连接服务,该服务提供了整个智能相机车队的新模型。

培训管道瓦洛海瓦洛海的培训管道

模型部署过程表示为JFrog连接更新流。更新流是需要在边缘设备中发生的一系列动作。使用JFrog连接的拖放界面,我们创建了一个更新流程,其中包括更新智能相机中模型所需的步骤。这些步骤是:

  1. 从JFrog Artifactory下载模型,
  2. 运行脚本来安装模型,以及
  3. 重新启动设备。

如果其中一步失败了,JFrog连接将设备回滚到其先前的状态,因此设备总是以已知状态结束。了解更多JFrog连接更新流

使用JFrog Connect创建更新流使用JFrog Connect创建更新流

开始使用JFrog Connect免费

持续的培训

一旦模型部署到整个边缘设备群,我们的工作还没有完成。摄像头全天候收集潜在的训练数据,并遇到有趣的边缘情况。

在这个阶段,我们需要创建一个管道,每周从智能相机中收集标记的图像,并将它们上传到S3桶中,以便手动重新标记,并最终用于重新训练模型。

数据采集管道数据采集管道

计划管道如何工作:

  1. 使用AWS STS创建临时凭证,并对S3桶进行只写访问
  2. 用临时密钥在JFrog Artifactory中升级上传脚本
  3. 触发JFrog连接更新流,在设备群中运行上传脚本
  4. 每个设备上传一批新的镜像到S3桶中

由设备群上传的新训练数据是由人类使用Sama或Labelbox等平台手动标记的,这些平台使用我们的上传S3桶作为源,一旦数据被标记,另一个S3桶作为目标。

注意:庞大的机群会产生太多的数据,无法手动标记,而且设备本身可能很快就会耗尽空间。幸运的是,像YOLOv5这样的机器视觉模型通常有一个置信度指标和预测标签。我们过滤设备上存储的训练数据,使用一个置信度阈值,优先考虑边缘情况。

结论

总之,我们展示了如何在生产中跨一系列边缘设备反复迭代和部署ML模型的连续循环。瓦洛海MLOps平台,结合JFrog DevOps平台的Artifactory和Connect,使我们能够实现这一目标,并创建一个不断自我改进的ML系统。

准备好自己试试了吗?开始免费或书的演示瓦洛海MLOps平台而且JFrog连接在边缘设备中持续训练和部署您的ML模型!