一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种面向物联网的机器学习容器镜像下载系统及其方法

2022-12-31 15:43:09 来源:中国专利 TAG:


1.本发明涉及一种面向物联网的机器学习容器镜像下载系统及其方法,属于计算机技术领域。


背景技术:

2.随着万物互联的时代到来,物联网设备的数量呈现指数级增长。在面对海量物联网设备的数据处理请求时,传统云计算的中心式架构将承受巨大的计算压力,易导致待执行的数据处理任务无法满足实时响应的需求。因此,将云端的计算能力下沉至边缘端,充分利用容器虚拟化技术实现任务的轻量化部署已成为当下的发展趋势。
3.在如今的智能化时代,机器学习算法被越来越广泛地应用于物联网设备从而实现无需人为干预的高效数据处理。容器凭借轻量化的优势更适合作为资源受限的物联网设备的任务部署方式。然而,现有的面向物联网场景下的机器学习容器镜像分发方案由于分发效率较低,仍无法满足用户对于实时响应的需求。造成该问题的主要原因主要分为以下两点:一方面,容器镜像分发过程中的传输数据量较大。现有方案中,机器学习容器内需包含机器学习模型与其依赖的机器学习计算框架。然而,目前主流的机器学习计算框架占用的存储空间远大于机器学习模型本身。因此,下载大体积的机器学习容器镜像将会推迟容器启动时间,影响任务的执行效率;另一方面,容器镜像分发过程中网络带宽资源竞争激烈。现有方案需要物联网设备从中心式的容器镜像仓库下载机器学习容器镜像。当短时间段内大量物联网设备向容器镜像仓库发起镜像下载请求时,这些物联网设备将竞相争夺中心式容器镜像仓库的出口带宽资源,从而导致网络拥堵,推迟容器的启动时间。


技术实现要素:

4.本发明的目的在于克服现有技术中的不足,提供一种面向物联网的机器学习容器镜像下载系统及其方法,解决当前物联网场景下由于容器镜像体积过大以及网络带宽资源竞争激烈引起的机器学习容器镜像分发效率低下的问题。
5.为达到上述目的,本发明是采用下述技术方案实现的:第一方面,本发明提供了一种面向物联网的机器学习容器镜像下载系统,包括一个主控节点和多个计算节点;所述主控节点:用于存储、转换机器学习模型,将转换格式的机器学习模型构建为机器学习容器镜像;当构建机器学习容器镜像的镜像信息完成后,向计算节点下发镜像下载指令;所述计算节点:用于接收所述镜像下载指令,下载机器学习容器镜像,并启动机器学习容器;并接收来自物联网设备收集的数据,向物联网设备返回数据处理结果。
6.进一步的,所述机器学习模型包括计算机视觉和自然语言处理领域的预训练机器学习模型。
7.进一步的,所述主控节点包括控制平面、机器学习模型仓库、机器学习模型转换
器、机器学习容器镜像构建器、机器学习容器镜像仓库和调度器;所述控制平面,用于读取、解析用户设置的机器学习容器部署参数,所述机器学习容器部署参数包括机器学习模型的类型及所述机器学习模型依赖的对应的机器学习计算框架和需要部署机器学习容器的计算节点参数;所述机器学习模型仓库,用于储存机器学习模型;所述机器学习模型转换器,用于将所述机器学习模型转换为onnx格式的机器学习模型;机器学习容器镜像构建器,用于依据转换为onnx格式的机器学习模型构建所述机器学习容器镜像;所述机器学习容器镜像仓库,用于存储带有镜像信息的所述机器学习容器镜像;所述调度器,用于接收控制平面设置的需要部署所述机器学习容器的计算节点参数和所述机器学习容器镜像的镜像信息,向所述计算节点发送镜像下载指令。
8.进一步的,所述计算节点包括镜像分发代理、容器引擎和分布式存储组件;所述镜像分发代理,用于接收所述镜像下载指令、通知容器引擎下载所述机器学习容器镜像、拦截容器引擎对所述机器学习容器镜像的下载请求、访问所在计算节点的分布式存储组件;所述容器引擎,用于接收镜像分发代理的通知,发起下载所述机器学习容器镜像的请求;所述分布式存储组件,用于存储下载的所述机器学习容器镜像,各分布式存储组件之间相互连接,为所述镜像分发代理获取包含所述机器学习容器镜像的下载源,并从获取的所述下载源处下载所述机器学习容器镜像。
9.进一步的,所述分布式存储组件采用bitswap协议从机器学习容器镜像的下载源下载机器学习容器镜像。
10.进一步的,构建完成的所述机器学习容器镜像包括:执行所述机器学习模型的运行脚本及其依赖库。
11.第二方面,本发明提供了一种面向物联网的机器学习容器镜像下载系统的方法,所述方法包括以下步骤:所述控制平面读取所述用户设置的机器学习容器部署参数,解析出机器学习模型的名称通过机器学习模型仓库查找所需的机器学习模型;所述机器学习容器镜像构建器接收经转换后的所述onnx格式的机器学习模型,构建为机器学习容器镜像;所述机器学习容器镜像仓库将存储的所述机器学习容器镜像的信息发送至所述调度器;所述镜像分发代理接收镜像下载指令后,对应所述分布式存储组件从所述机器学习容器镜像的下载源获取所述机器学习容器镜像的文件全部;启动对应的所述机器学习容器;计算节点接收物联网设备收集到的数据,并交由启动的所述机器学习容器进行数据处理;镜像分发代理将所述机器学习容器的数据处理结果反馈至物联网设备。
12.进一步的,所述机器学习模型转换器对调取的所述机器学习模型进行格式转换的步骤:所述机器学习模型转换器接收所述控制平面发送的依赖于给定机器学习计算框架的所述机器学习模型;并读取机器学习计算框架转换为onnx格式的模板文件;
若文件读取失败,所述机器学习模型转换器将读取失败原因和时间戳写入本地的日志文件中以便运维人员排查错误;若文件读取成功,所述机器学习模型转换器根据机器学习计算框架转换为onnx格式的模板文件,将依赖于给定机器学习计算框架的机器学习模型转换为onnx格式。
13.进一步的,所述容器引擎获取所述机器学习容器镜像的文件的步骤:所述镜像分发代理通知所述容器向所述机器学习容器镜像仓库发起对所述机器学习容器镜像下载请求;同时,所述镜像分发代理拦截所述容器引擎发起的下载请求,并访问所述分布式存储组件,查看本地是否存在所述机器学习容器镜像的文件;若存在,所述镜像分发代理从所述分布式存储组件中获取所述机器学习容器镜像的文件,发送至所述容器引擎;若不存在;所述分布式存储组件查询其他所述计算节点的分布式存储组件内是否包含所需的所述机器学习容器镜像的文件;若未在其他所述计算节点的列表内查出,则所述镜像分发代理向主控节点的所述机器学习容器镜像仓库发起下载所述机器学习容器镜像的请求,并将下载得到的所述机器学习容器镜像的文件发送至容器引擎;若在其他某几个所述计算节点的分布式存储组件内查出;选择所述分布式存储组件传输速率最高的计算节点作为所述机器学习容器镜像的下载源;并将所述机器容器镜像发送至所述容器引擎。
14.与现有技术相比,本发明所达到的有益效果:本发明提供的一种面向物联网的机器学习容器镜像下载系统,主控节点将用于存储、转换机器学习模型,将转换格式的机器学习模型构建为机器学习容器镜像;当构建机器学习容器镜像的镜像信息完成后,向计算节点下发镜像下载指令;计算节点用于接收镜像下载指令,下载机器学习容器镜像,并启动机器学习容器;并接收来自物联网设备收集的数据,向物联网设备返回数据处理结果;从主控节点到多个计算节点的运行过程,可以有效避免在现有技术中,物联网设备将竞相争夺中心式容器镜像仓库的出口带宽资源,从而导致网络拥堵,推迟机器学习容器的启动时间。
15.机器学习模型通过机器学习模型转换器转换为轻量化的onnx格式的机器学习模型,能够减少机器学习容器镜像分发过程中网络传输过程中的数据量。
16.分布式存储组件采用bitswap协议从机器学习容器镜像的下载源处下载机器学习容器镜像,能够有效缓解中心式容器镜像仓库的出口带宽资源竞争。
17.本发明中的一种面向物联网的机器学习容器镜像下载系统的方法,容器引擎获取机器学习容器镜像的文件的过程中,通过bitswap协议获取包含机器学习模型镜像的下载源的文件的计算节点列表,并从中选取传输速率最高的计算节点,获取机器学习镜像的文件以充分利用节点之间的网络带宽,提高整体的任务执行效率。
附图说明
18.图1为本发明提供的一种面向物联网的机器学习容器镜像下载系统架构图;图2为图1中主控节点的组成图;图3为图1中计算节点的组成图;
图4为图1中主控节点工作流程图;图5为图1中计算节点的工作流程图;图6为图1主控节点的初始化流程图;图7为图1计算节点初始化流程图;图8为本发明提供的面向物联网的机器学习容器镜像下载系统的方法的容器部署参数设置与解析流程图;图9为本发明提供的面向物联网的机器学习容器镜像下载系统的方法中模型格式转换流程图;图10为本发明提供的面向物联网的机器学习容器镜像下载系统的方法中镜像构建与指令下发流程图;图11为本发明提供的面向物联网的机器学习容器镜像下载系统的方法中镜像下载流程图。
具体实施方式
19.近年来,工业界与学界提出了许多加速容器镜像下载的技术方案。阿里云原生团队的openkruise通过kubernetes crd的形式为用户提供了一种高效部署镜像分发任务的方式。然而,该方案未从根本上解决镜像下载缓慢的问题。阿里云原生团队的dragonfly和腾讯云原生团队的superedge,采用p2p技术充分利用节点之间的网络带宽资源,有效缓解中心式容器镜像仓库在镜像下载过程中的网络带宽资源竞争。由于机器学习任务镜像的体积较大,因此该方案仍然会导致节点间下载镜像文件的时间过长,无法满足物联网场景下的实时性响应的需求。为了提升容器镜像的分发效率,许多研究者提出被动下载的方式加速容器启动。该方式仅下载容器启动过程需要的镜像文件,在启动所需镜像文件下载完毕后立即启动容器。然而,若容器运行过程中所需的镜像文件未下载至本地,该容器仍需等待镜像文件下载完毕方可继续执行。不少研究者发现容器镜像中往往包含大量的重复数据,因此提出镜像去冗余技术以删除容器镜像中包含的重复数据,从而减小容器镜像的体积。该方案从减少镜像下载过程中传输数据量的角度提高镜像分发效率。然而,该方案需要在中心式的容器镜像仓库对容器镜像进行去冗余操作。因此,物联网设备仍然需要从中心式的容器镜像仓库下载镜像,仍然存在镜像下载过程中网络带宽资源竞争的问题。另一些研究者通过在节点之间构建分布式容器镜像仓库实现节点间的镜像共享。该方案充分利用节点之间的网络带宽,有效缓解了镜像下载过程中网络带宽的资源竞争。由于机器学习任务镜像的体积较大,因此该方案仍然会导致从分布式容器镜像仓库下载镜像文件的时间过长,无法满足物联网场景下的实时性响应的需求。
20.业界海量的物联网设备对利用机器学习技术进行数据处理的需求正逐步扩大。然而,现有的容器镜像分发技术方案仅聚焦于减少容器镜像分发过程中的传输数据量或缓解网络带宽的资源竞争,未能全面考虑影响镜像分发效率的因素,无法满足物联网场景下的实时性响应的需求。
21.下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
22.实施例一:
参考图1、图2和图3所示,本实施例提供了一种面向物联网的机器学习容器镜像下载系统,包括一个主控节点和多个计算节点,主控节点:将获取的机器学习模型进行存储,并能够对存储的机器学习模型进行转换;将转换格式的机器学习模型构建成机器学习容器镜像。将构建的机器学习容器镜像的镜像信息完成后,发送镜像下载指令至计算节点。机器学习模型包括计算机视觉和自然语言处理领域的预训练机器学习模型。
23.计算节点:接收主控节点下发的镜像下载指令,进行机器学习容器镜像的下载;并启动机器学习容器。计算节点接收物联网设备发送的收集到的数据,将该数据进行处理,并将处理结果后的数据传输至物联网设备。
24.主控节点包含控制平面、机器学习模型仓库、机器学习模型转换器、机器学习容器镜像构建器、机器学习容器镜像仓库和调度器。主控节点通过控制平面,读取和解析用户设置的机器学习容器部署参数。其中,机器学习容器部署参数为机器学习模型的类型、机器学习模型依赖的机器学习计算框架和需要部署机器学习容器的对应计算节点的参数。
25.机器学习模型仓库,负责存储依赖于不同的机器学习计算框架的机器学习模型,这些机器学习模型均为主流机器学习模型,主流机器学习模型包括机器学习模型输入的维度要求、机器学习模型输出的维度要求,机器学习模型结构以及通过训练过程得到的机器学习模型权重信息。
26.机器学习模型转换器,根据机器学习模型提供的对应的机器学习计算框架转换为onnx格式的模板文件,并将依赖该机器学习计算框架的机器学习模型转换为onnx格式的机器学习模型。
27.机器学习容器镜像构建器,负责将基于转换完成的onnx格式的机器学习模型构建为机器学习容器镜像,能够将机器学习容器镜像构建完成的镜像信息发送给机器学习容器镜像仓库。机器学习容器镜像除了包括onnx格式的机器学习模型,还包括执行所述机器学习模型的运行脚本及其依赖库。
28.机器学习容器镜像仓库,负责接收存储带有镜像信息的机器学习容器镜像,并向调度器发送机器学习容器镜像的镜像信息。
29.调度器,负责接收控制平面设置的需要部署机器学习容器的计算节点参数和接收机器学习容器镜像仓库发送出的机器学习容器镜像的镜像信息。
30.本实施例中的多个计算节点均包含有各自的镜像分发代理、容器引擎和分布式存储组件(下载源)。
31.镜像分发代理,接收主控节点中的调度器下发的镜像下载指令、通知容器引擎下载所需的机器学习容器镜像、拦截容器引擎对所需机器学习容器镜像的下载请求、访问本地计算节点中的分布式存储组件。分布式存储组件采用bitswap协议从机器学习容器镜像的下载源下载机器学习容器镜像,能够有效缓解中心式容器镜像仓库的出口带宽资源竞争。
32.容器引擎,接收镜像分发代理发出的下载机器学习容器镜像的通知,并发起下载机器学习容器镜像的请求。
33.各个计算节点中的分布式存储组件相互连接,能够为镜像分发代理获取包含所述机器学习容器镜像的下载源,从该下载源(分布式存储组件)处下载机器学习容器镜像的全部文件;各分布式存储组件具有存储下载的机器学习容器镜像的功能。
34.实施例二:参见图4至图11结合实施例一,本实施例提供了一种面向物联网的机器学习容器镜像下载系统的方法。该方法包括以下步骤:启动主控节点的控制平面、机器学习模型仓库、机器学习模型转换器、机器学习容器镜像构建器、机器学习容器镜像仓库和调度器;如果主控节点的所有组件全部启动成功的情况下,若对接失败,主控节点将对接失败原因和时间戳写入本地的日志文件中以便运维人员排查错误;若对接成功,主控节点构建边缘集群并生成加入集群的token令牌,等待计算节点加入集群(边缘集群为主控节点和计算节点组成的集群)。
35.上述组件全部启动成功,等待用户设置容器部署参数完成后;控制平面对用户设置的机器学习容器部署参数进行读取、解析;解析出机器学习模型的名称通过机器学习模型仓库查找所需的机器学习模型;调取存储于机器学习模型仓库内的机器学习模型传输至所述机器学习模型转换器。
36.机器学习模型转换器对调取的机器学习模型进行格式转换;依赖于给定机器学习计算框架的机器学习模型转换为onnx格式的机器学习模型后,发送到机器学习容器镜像构建器;机器学习容器镜像构建器接收onnx格式的机器学习模型,并将所述onnx格式的机器学习模型构建为机器学习容器镜像;完成的机器学习容器镜像存储至所述机器学习容器镜像仓库;机器学习容器镜像仓库将所述机器学习容器镜像构建完成的镜像信息发送至调度器;调度器向用户设置的机器学习容器所需的计算节点下发镜像下载指令;启动计算节点的镜像分发代理、容器引擎和分布式存储组件;若计算节点的组件启动失败,计算节点将启动失败组件名称、启动失败原因和时间戳写入本地的日志文件中以便运维人员排查错误。若上述组件全部启动成功,计算节点将尝试对接分布式存储组件。若对接失败,计算节点将对接失败原因和时间戳写入本地的日志文件中以便运维人员排查错误。若对接成功,计算节点携带加入集群的token令牌信息向主控节点加入边缘集群的请求。若请求未通过,计算节点向主控节点发送获取最新的token令牌信息的请求。若请求通过,计算节点检查本地的web服务配置文件中的内容。所述的web服务配置文件包括该计算节点的ip地址和端口号。计算节点根据配置文件中的ip地址和端口号开启web服务器并阻塞监听,等待物联网设备上报获取的数据。
37.计算节点中的镜像分发代理等待并接收镜像下载指令,通知容器引擎向所述机器学习容器镜像仓库发起对所述机器学习容器镜像下载请求;从所述分布式存储组件获取所述机器学习容器镜像的文件;发送至容器引擎;容器引擎将所需的机器容器镜像的文件全部下载完毕;并启动对应的机器学习容器;计算节点接收物联网设备收集到的数据,并交由启动的该机器学习容器进行数据处理;机器学习容器的数据处理结果由镜像分发代理返回至物联网设备。
38.可选的,机器学习模型转换器对调取的所述机器学习模型进行格式转换的步骤:机器学习模型转换器接收由控制平面发送的依赖于给定机器学习计算框架的机器学习模型,并读取机器学习计算框架转换为onnx格式的模板文件。若文件读取失败,机器学习模型转换器将读取失败原因和时间戳写入本地的日志文件中以便运维人员排查错误。
若文件读取成功,机器学习模型转换器根据机器学习计算框架转换为onnx格式的模板文件,将依赖于给定机器学习计算框架的机器学习模型转换为onnx格式;机器学习模型转换器将转换完成的onnx格式的机器学习模型发送至机器学习容器镜像构建器。
39.可选的,容器引擎获取所述机器学习容器镜像的文件的步骤:镜像分发代理通知容器引擎向机器学习容器镜像仓库发起对所述机器学习容器镜像下载请求;镜像分发代理拦截容器引擎的机器学习容器镜像下载请求,并访问分布式存储组件,查看本地是否存在所述机器学习容器镜像的文件。
40.若本地的分布式存储组件已存在机器学习容器镜像文件,则镜像分发代理从本地的分布式存储组件中获取机器学习容器镜像文件并发送给容器引擎;若本地的分布式存储组件不存在机器学习容器镜像文件;本地分布式存储组件查询其他计算节点的分布式存储组件内是否包含所需的机器学习容器镜像的文件。
41.若可查询得到的其他计算节点中的分布式存储组件为空,则镜像分发代理向主控节点的机器学习容器镜像仓库发起下载机器学习容器镜像的请求并将下载得到的机器学习容器镜像文件并发送给容器引擎。
42.若查询得到的其他计算节点中的分布式存储组件不为空,本地分布式存储组件选择其中传输速率最高的计算节点作为该机器学习容器镜像的下载源,并将机器容器镜像发送至容器引擎。
43.由用户在主控节点的控制平面设置机器学习容器部署参数。机器学习容器部署参数解析步骤由主控节点的控制平面对用户设置的机器学习容器部署参数进行解析。该步骤可分为以下步骤:用户在主控节点的控制平面设置机器学习容器部署参数,机器学习容器部署参数包括机器学习模型的类型、机器学习模型依赖的机器学习计算框架和需要部署该机器学习容器的计算节点。
44.控制平面携带用户设置的机器学习模型的类型和机器学习模型依赖的机器学习计算框架参数向机器学习模型仓库发送查询请求。若未在机器学习模型仓库中查询到记录,则控制平面将查询机器学习模型失败的记录和时间戳写入本地的日志文件中以便运维人员排查错误。否则,控制平面向机器学习模型仓库获取查询得到的依赖于给定机器学习计算框架的机器学习模型并将该模型发送至机器学习模型转换器。控制平面将用户设置的需要部署该机器学习容器的计算节点发送至调度器。
45.机器学习模型的格式转换步骤由主控节点的机器学习模型转换器将控制平面发送的依赖于给定机器学习计算框架的机器学习模型转换为onnx格式。该步骤可分为以下步骤:机器学习模型转换器接收由控制平面发送的依赖于给定机器学习计算框架的机器学习模型并读取机器学习计算框架转换为onnx格式的模板文件。若文件读取失败,机器学习模型转换器将读取失败原因和时间戳写入本地的日志文件中以便运维人员排查错误。
46.若文件读取成功,机器学习模型转换器根据机器学习计算框架转换为onnx格式的模板文件,将依赖于给定机器学习计算框架的机器学习模型转换为onnx格式。机器学习模型转换器将转换完成的onnx格式的机器学习模型发送至机器学习容器镜像构建器。
47.由机器学习模型转换器基于onnx格式的机器学习模型构建机器学习容器镜像。指
令下发步骤由调度器向计算节点下发镜像分发指令。该步骤可分为以下步骤:机器学习容器镜像构建器接收由机器学习模型转换器发送的onnx格式的机器学习模型。
48.机器学习容器镜像构建器基于转换完成的onnx格式的机器学习模型构建机器学习容器镜像并将该镜像信息存储在机器学习容器镜像仓库。其中,机器学习容器镜像包括onnx格式的机器学习模型、执行机器学习模型的运行脚本以及其依赖库。
49.机器学习容器镜像构建器将构建完毕的镜像信息发送至调度器,调度器接收由用户在控制平面设置的需要部署该机器学习容器的计算节点参数和机器学习容器镜像构建器发送的镜像信息。调度器向用户在控制平面设置的需要部署该机器学习容器的计算节点下发镜像分发指令。镜像分发指令包含机器学习容器镜像构建器发送的镜像信息。
50.由容器引擎根据下载得到的机器学习容器镜像文件运行容器。该步骤可分为以下步骤:容器引擎校验所需的机器学习容器镜像文件是否全部下载完毕。若未下载完毕,容器引擎继续等待机器学习容器镜像文件的下载。
51.若所需的机器学习容器镜像文件全部下载完毕,容器引擎将下载的机器学习容器镜像文件进行解压并启动机器学习容器。计算节点接收来自物联网设备收集得到的数据并交由启动的机器学习容器进行数据处理。计算节点中的镜像分发代理将机器学习容器的数据处理结果返回给物联网设备。
52.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
53.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
54.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
55.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
56.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献