CN115858131B - 一种任务执行方法、系统、设备及可读存储介质 - Google Patents
一种任务执行方法、系统、设备及可读存储介质 Download PDFInfo
- Publication number
- CN115858131B CN115858131B CN202310147108.2A CN202310147108A CN115858131B CN 115858131 B CN115858131 B CN 115858131B CN 202310147108 A CN202310147108 A CN 202310147108A CN 115858131 B CN115858131 B CN 115858131B
- Authority
- CN
- China
- Prior art keywords
- task
- target
- determining
- strategy
- model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请属于计算机应用领域,并公开了一种任务执行方法、系统、设备及可读存储介质,该方法包括:接收目标终端发送的任务请求,并确定执行任务请求对应的目标模型;确定在去中心化自治区内执行目标模型的分割策略和调度策略;按照分割策略分割目标模型,得到若干个任务镜像;按照调度策略,依次执行任务镜像,得到应答结果;将应答结果发送给目标终端。在本申请中,针对边缘计算资源受限问题,提出基于边端协同的深度学习推理优化技术,对原有深度学习推理任务进行分割,从而可将计算任务推送至边缘端和用户终端设备进行协同处理,提高边缘网络资源利用效率。
Description
技术领域
本申请涉及计算机应用技术领域,特别是涉及一种任务执行方法、系统、设备及可读存储介质。
背景技术
以深度学习算法为代表的人工智能技术,已经在移动互联时代得到了广泛的应用,并为终端用户提供各类智能化的通用服务。通常,深度学习等技术的实现需要占用大量的计算、内存、通信资源,例如在基于图像识别、自然语言处理等的应用中,要提前建立规模庞大的神经网络模型,并在云端或大型数据中心中对网络模型进行训练,以达到较高的推理精度。在应用过程中,终端用户需要将待处理的数据通过网络上传至云端或数据中心,利用已经训练并部署完成的神经网络模型进行推理并输出结果。然而,这种基于云的服务模式,在移动互联时代面临的主要问题包括:面对终端用户具有高并发性的请求,现有云端计算架构无法有效提升资源的并发效率,导致云端在处理高并发服务请求时,面临较大的处理压力,任务等待时间增加;终端设备直接与云端或远端的网络连接具有较高的不稳定性,且通信延迟较大,会影响用户的体验质量。此外,由于移动终端设备具有的灵活性,由于用户设备位置和设备资源等变化产生的不确定性,也导致云端提供服务时面临较大的编排和管理的挑战。
边缘计算(EC,Edge Computing)技术,通过将原属云端的各类资源进行下沉,放置在靠近终端用户的网络边缘,且与用户之间能够通过本地网络进行通信,有效降低传输延迟和不稳定性;边缘计算基于云原生等技术实现资源的分布式部署和伸缩,可以将终端用户的任务负载进行分散,实现去中心化区域自治及区域间的协同,有效缓解云计算面临的高并发问题,且能够覆盖更多的地理空间区域和终端用户。
虽然边缘计算能够弥补云计算技术面临的一些挑战,但是,在人工智能推理等应用领域,仍有一些亟需解决的问题:基于深度学习等技术的人工智能服务,对计算资源需求较大,但边缘计算网络中节点拥有的计算资源相对有限,无法有效满足用户服务对资源的需求;基于云原生技术实现去中心化的边缘资源管理和调度,目前并未专门针对特定应用领域进行优化。
综上所述,如何有效地解决如何在面向人工智能服务的网络环境中,提升边缘服务效率等问题,是目前本领域技术人员急需解决的技术问题。
发明内容
本申请的目的是提供一种任务执行方法、系统、设备及可读存储介质,能够在面向人工智能服务的网络环境中,提升边缘服务效率。
为解决上述技术问题,本申请提供如下技术方案:
一种任务执行方法,包括:
接收目标终端发送的任务请求,并确定执行所述任务请求对应的目标模型;
确定在去中心化自治区内执行所述目标模型的分割策略和调度策略;
按照所述分割策略分割所述目标模型,得到若干个任务镜像;
按照所述调度策略,依次执行所述任务镜像,得到应答结果;
将所述应答结果发送给所述目标终端。
可选地,确定在去中心化自治区内执行所述目标模型的分割策略,包括:
获取所述目标终端的计算能力值;
利用所述计算能力值,确定所述目标模型中的深层任务部分与浅层任务部分的目标分割点;
确定所述深层任务部分的协同分割点;
将所述目标分割点和所述协同分割点加入所述分割策略。
可选地,利用所述计算能力值,确定所述目标模型中的深层任务部分与浅层任务部分的目标分割点,包括:
从所述目标模型的输入层开始,逐层累加当前层所需的计算量,直到累加至目标层,使得所述计算量大于所述计算能力值;
在所述输入层与所述目标层之间确定所述目标分割点。
可选地,所述在所述输入层与所述目标层之间确定所述目标分割点,包括:
在所述输入层与所述目标层之间随机确定所述目标分割点。
可选地,确定所述深层任务部分的协同分割点,包括:
获取去中心化自治区当前有效的边缘计算节点数量,及子任务量阈值;
获取所述深层任务部分的层间数据交换量;
利用所述边缘计算节点数量、所述子任务量阈值和所述层间数据交换量确定所述协同分割点。
可选地,利用所述边缘计算节点数量、所述子任务量阈值和所述层间数据交换量确定所述协同分割点,包括:
利用边缘计算节点数量和所述子任务量阈值,确定所有分割组合;
结合所述层间数据交换量,并利用分割策略函数,对所有所述分割组合进行遍历,得到最优分割策略所对应的所述协同分割点。
可选地,按照所述分割策略分割所述目标模型,得到若干个任务镜像,包括:
获取所述目标模型的模型参数文件;
按照所述分割策略将所述模型参数文件分割为若干个模型代码段;
根据所述模型代码段的属性,生成镜像描述文件;
根据镜像描述文件修改对应内容;
生成所述镜像描述符文件对应的所述任务镜像。
可选地,所述根据镜像描述文件修改对应内容,包括:
所述根据镜像描述文件,修改基础镜像名称、Python层、PyTorch层及运行相应的代码文件命令。
可选地,确定在去中心化自治区内执行所述目标模型的调度策略,包括:
预估各个计算节点对各个所述任务镜像的执行时间;
利用所述执行时间,得到最小任务总时延所对应的各个所述计算节点的排列;
将所述排列确定为所述调度策略。
可选地,利用所述执行时间,得到最小任务总时延所对应的各个所述计算节点的排列,包括:
利用各个所述计算节点所对应的所述执行时间,构造NP问题;
求解所述NP问题,得到近似最优解;
利用所述近似最优解,确定所述排列。
可选地,所述求解所述NP问题,得到所述近似最优解,包括:
将所述计算节点的一个批量组合确定为一条遗传信息个体,得到多个个体;
将得到的分割后的任务镜像从前到后依次分配给所述个体代表的边缘节点顺序,得到当前所述个体的执行任务总延迟;所述执行任务总延迟为评价所述个体优劣的指标;
利用所述指标对所述个体进行选择、交叉和变异,在达到终止条件时,得到所述近似最优解。
可选地,利用所述指标对个体进行选择、交叉和变异,包括:
从当前种群中选择评价最优的多个所述个体,组成新的子代种群;
从目标位置随机交叉任意两个所述个体被所述目标位置分割的部分;
检查是否存在重复;
若有重复则替代其中重复的元素,使得所述个体有效;
在达到终止条件时,得到所述近似最优解。
可选地,按照所述调度策略,依次执行所述任务镜像,得到应答结果,包括:
按照所述调度策略,将若干个所述任务镜像分散发送给所述去中心化自治区中的计算节点;
依次实例化运行所述计算节点中的所述任务镜像,得到所述应答结果。
可选地,依次实例化运行所述计算节点中的所述任务镜像,得到所述应答结果,包括:
按照所述调度策略,为每个所述计算节点生成部署容器所需的yaml文件;
执行所述yaml文件,将所述任务镜像调度至对应的计算节点上执行,得到所述应答结果。
一种容器调度框架系统,包括:
模型分割器,用于接收目标终端发送的任务请求,并确定执行所述任务请求对应的目标模型,确定在去中心化自治区内执行所述目标模型的分割策略和调度策略;
任务封装器,用于按照所述分割策略分割所述目标模型,得到若干个任务镜像;按照所述调度策略,依次执行所述任务镜像,得到应答结果;将所述应答结果发送给所述目标终端。
一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述任务执行方法的步骤。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任务执行方法的步骤。
应用本申请实施例所提供的方法,接收目标终端发送的任务请求,并确定执行任务请求对应的目标模型;确定在去中心化自治区内执行目标模型的分割策略和调度策略;按照分割策略分割目标模型,得到若干个任务镜像;按照调度策略,依次执行任务镜像,得到应答结果;将应答结果发送给目标终端。
在本申请中,当接收到目标终端发送的任务请求之后,首先确定执行该任务请求对应的目标模型。然后,确定在去中心化自治区内执行该目标模型的分割策略和调度策略。然后,按照分割策略将目标模型进行分割,从而得到若干个任务镜像。再按照调度策略,依次执行任务镜像,可以得到应答结果。最终将应答结果发送给目标终端即可完成任务请求。可见,在本申请,将执行任务所对应的目标模型进行分割,并按照调度策略对分割所得的任务镜像进行依次执行,则可快速响应任务请求。也就是说,在本申请中,针对边缘计算资源受限问题,提出基于边端协同的深度学习推理优化技术,对原有深度学习推理任务进行分割,从而可将计算任务推送至边缘端和用户终端设备进行协同处理,提高边缘网络资源利用效率。
相应地,本申请实施例还提供了与上述任务执行方法相对应的任务执行系统、设备和可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一种任务执行方法的实施流程图;
图2为本申请实施例中一种任务执行系统的结构示意图;
图3为本申请实施例中一种任务执行系统的具体结构示意图;
图4为本申请实施例中一种电子设备的结构示意图;
图5为本申请实施例中一种电子设备的具体结构示意图。
具体实施方式
本申请针对边缘人工智能推理应用领域面临的主要挑战,从系统架构、资源协同优化角度出发,提出基于云原生平台的边端协同深度学习推理优化技术,具体内容包括:针对云、边缘网络分布式资源管理问题,基于Kubernetes、容器等技术,构建轻量化云原生计算系统,作为实现高效资源调度的基础;在此基础上,针对边缘计算资源受限问题,提出基于边端协同的深度学习(DL,Deep Learning)推理优化技术,对原有深度学习推理任务进行分割,将计算任务推送至边缘端和用户终端设备进行协同处理,提高边缘网络资源利用效率。
为了达成上述目的,本申请提出一种任务执行方法、系统、设备及可读存储介质,在实施本申请所提供的技术方案前可先构建基于k8s(Kubernetes,一种容器编排管理工具)、容器技术的轻量级云原生计算平台,作为边缘网络资源调度和深度学习推理服务运行的系统载体;在k8s框架下,实现本申请所提供的技术方案,从而对深度学习模型在边缘环境下实现边端协同推理进行优化。
在本申请中,可基于k8s、容器技术的计算系统平台搭建。具体的,以容器作为深度学习推理功能的载体,响应终端用户的服务请求;在基于k8s的容器调度管理框架下,实现灵活的容器部署和伸缩策略,并进一步地针对性实现深度学习推理模型分割、边端协同调度策略生成等功能,以满足边缘推理应用场景需求。
具体的,可在k8s容器调度框架基础上,通过构建模型分割器、任务封装器及DeepLearning模型库功能模块,实现深度学习推理任务边端协同处理的完整流程。其中,模型分割功能模块负责根据系统资源状态及终端用户服务请求信息,生成深度学习推理任务的模型分割策略和调度策略,Deep Learning模型库保存预设的各类深度学习推理模型定义文件及训练好的网络参数文件,任务封装器负责根据模型分割器输出的决策向DeepLearning模型库请求相应的文件并将分割后不同部分的模型自动化封装为单独的容器镜像文件,并根据调度策略部署在不同的边缘节点上。
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例中一种任务执行方法的流程图,该方法可以应用于如图3所示的基于k8s的边端协同推理计算系统架构,该方法包括以下步骤:
S101、接收目标终端发送的任务请求,并确定执行任务请求对应的目标模型。
在本申请中,可接收目标终端发送的任务请求,在该任务请求中可指定对应的深度学习模型。因而,基于该任务请求可以明确执行该任务请求对应的目标模型。
例如,对于图片识别请求,可具体在其请求内指定处理图片识别请求的模型为深度学习图片识别模型。
S102、确定在去中心化自治区内执行目标模型的分割策略和调度策略。
考虑到模型的运行需要大量的计算以及存储等资源,为了使得去中心化网络的边缘节点能够运行该目标模型,可以运行目标模型完成任务请求的任务进行分割并分配给多个计算节点进行协调完成。
因而,首先需要确定在去中心化自治区内执行目标模型的分割策略以及调度策略。
其中,分割策略即指定要在目标模型的哪些位置进行分割,调度策略即明确被分割出的各个部分分别由哪个计算节点来实施,以及实施/调度的顺序。
具体的,在明确分割策略和调度策略时,可以通过分析计算节点的算力,通信资源等情况,来明确模型分割位置以及由哪些计算节点参与任务执行,以及任务执行的顺序等。
在本申请实施例中,分割策略可以采用遍历法求解,还可以使用线性规划,动态规划等方法进行求解;而调度策略可以采用遗传算法,也可以利用蚁群,粒子群、灰狼等启发式算法,或者动态规划,强化学习等技术来实现。
其中,线性规划(Linear programming,简称LP),为辅助进行科学管理的一种数学方法,是研究线性约束条件下线性目标函数的极值问题的数学理论和方法。其解法思路包括:列出约束条件及目标函数;画出约束条件所表示的可行域;在可行域内求目标函数的最优解及最优值。
举例说明:以线性规划来求解分割策略:目标函数为最小化分割后所有计算任务间总数据交换量最小,而决策变量为任意两层神经网络之间是否分割,若可以分割则决策变量值为1,否则为0,约束为分割后任意部分计算量小于阈值,之后则通过隐枚举法(其基本思想是:从所有变量等于零出发,依次指定一些变量为1,直至得到一个可行解,并将它作为最好的可行解。并引入一个过渡性条件作为新的约束条件加入到原问题中去,以排除一批相对较劣的可行解,然后再依次检查变量取0或1的各种组合,看是否能对前面所得到的最好可行解有所改进,直到获得最优解为止,这种方法称为过渡性隐枚举法。)等方法,对目标函数的极值求解,得到所有决策变量的值。
其中,蚁群算法,来源于蚂蚁觅食行为。由于蚂蚁没有视力,所以在寻找食物源时,会在其经过的路径上释放一种信息素,并能够感知其它蚂蚁释放的信息素。信息素浓度的大小表征路径的远近,信息素浓度越高,表示对应的路径距离越短。通常,蚂蚁会以较大的概率优先选择信息素浓度高的路径,并且释放一定的信息素,使该条路径上的信息素浓度增高,进而使蚂蚁能够找到一条由巢穴到食物源最近的路径。但是,随着时间的推移,路径上的信息素浓度会逐渐衰减。
举例说明:利用蚁群策略求解调度策略:设有m个初始化蚂蚁群体,二维矩阵k*k表示k个任务分配至k个节点的所有可能性,每个横纵坐标交叉点表示一个位置,如(i,j)表示任务i分配至节点j。每个蚂蚁从初始化开始选择一个位置,然后不断选择新的位置,直到选择k个位置后,完成其路径,计算这条路径每个节点上的收益,作为该路径不同位置的信息素浓度,信息素浓度越大的位置,越有可能被其它蚂蚁选择,不断循环并更新每个位置的信息素,直到达到最大迭代次数,输出最终路径,即可得到所有任务分配策略。
其中,强化学习方法,又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。强化学习的常见模型是标准的马尔可夫决策过程(Markov Decision Process,MDP)。
举例说明:利用强化学习方法求解分割策略:将k个任务的分配问题转化为k次任务分配问题,即执行k次决策,每次决策为其中一个任务分配计算节点,则该问题可以用MDP进行建模。状态S为当前所有计算节点的资源状态和当前任务信息,动作A为将当前任务调度至某个计算节点,奖励R为执行该调度的收益。强化学习基于该建模,以s作为决策网络的输入,输出一个有效的动作a,并获得奖励r,决策网络基于奖励进行更新,优化决策网络能获得的奖励预期,直至决策网络收敛,得到最优的决策网络,依次为每个任务输出调度决策。
在本申请中的一种具体实施方式中,确定在去中心化自治区内执行目标模型的分割策略,包括:
步骤一、获取目标终端的计算能力值;
步骤二、利用计算能力值,确定目标模型中的深层任务部分与浅层任务部分的目标分割点;
步骤三、确定深层任务部分的协同分割点;
步骤四、将目标分割点和协同分割点加入分割策略。
为便于描述,下面将上述四个步骤结合起来进行说明。
考虑到目标终端,也即用户端,也有一定的计算里,可以将部分计算分配给目标终端进行计算。具体的,在给目标终端分配计算任务时,需要给目标终端分配其算力承受范围内。
因而,在明确目标终端的计算部分对应的目标分割点,可先获取目标终端的计算能力值,然后再基于该计算能力值,从目标模型中确定出划分浅层任务部分和深层任务部分对应的目标分割点。该浅层任务部分即可在后续划分给目标终端实施。
对于深层任务部分,则可由至少两个计算节点来协调完成。因而,还需在深层任务部分,明确进行划分的协同分割点。最终,将所确定的目标分割点和协调分割点共同组建出分割策略。
其中,利用计算能力值,确定目标模型中的深层任务部分与浅层任务部分的目标分割点,包括:
步骤1、从目标模型的输入层开始,逐层累加当前层所需的计算量,直到累加至目标层,使得计算量大于计算能力值;
步骤2、在输入层与目标层之间确定目标分割点。
确定目标分割点,可以在输入层与目标层之间随机确定目标分割点。
举例说明:若当前任务请求的发起用户的目标终端的计算能力为Ct,从当前任务所请求的目标模型输入层开始,逐层根据层的节点数等参数对当前层所需计算量Li进行估算,直至Ln层需要的累计计算资源Cn超过Ct;则可从n层之前的某层(可随机确定)作为分割位置w(即目标分割点),即w层之前部分(对应浅层任务部分)后续可分配给目标终端在本地执行。
当然,还可设w前的某层传输量为Tw,该层之前的所有层计算量为Cw,则通过遍历得到Tw+Cw最小值所在的位置为所求分割位置编号w(即目标分割点)。
其中,确定深层任务部分的协同分割点,包括:
步骤1、获取去中心化自治区当前有效的边缘计算节点数量,及子任务量阈值;
步骤2、获取深层任务部分的层间数据交换量;
步骤3、利用边缘计算节点数量、子任务量阈值和层间数据交换量确定协同分割点。
具体的,利用边缘计算节点数量、子任务量阈值和层间数据交换量确定协同分割点,包括:
步骤①、利用边缘计算节点数量和子任务量阈值,确定所有分割组合;
步骤②、结合层间数据交换量,并利用分割策略函数,对所有分割组合进行遍历,得到最优分割策略所对应的协同分割点。
当确定了在目标终端本地进行处理的计算量后,剩余的深度神经网络模型部分(即深层任务部分)的计算则由该区域(对应去中心化自治区)内有效的边缘节点协同处理完成。协调分割点,即用于确定如何将剩余部分的网络进行分割。
确定协调分割点的方式如下:
设当前有效的边缘计算节点数量为k,则这k个边缘节点协同对剩余的网络任务进行处理,由于每层的计算量和层间的数据交换量已知,则需要得到k-1个层的位置(即协调分割点),使得分割后得到k部分计算任务,使得k部分计算任务之间总的数据交换量最小,且每部分任务量大小不超过阈值thdt(即子任务量阈值)。其中,该阈值的确定方式可以是当前所有节点有效计算资源的一定比例。设层间数据交换量为d={datal},其中,l为边缘端需要处理的所有层数,则问题为从D中选择k-1个元素组成集合Ds,使得Ds中所有元素和最小,且每部分所表示的计算量Ck小于thdt:
,;
为了找到上述目标函数最优解,需要对所有分割组合进行遍历,从所有结果中选择最优分割策略,使得Ds最小,且满足。
调度策略即确定分割后所得每一部分如何分配边缘节点,并依次放置在相应的节点位置进行协同处理的策略。
当然,由于目标模型的本身的各个层之间具有严格的先后顺序,因而分割后的各个部分所执行的先后顺序直接由模型结构本身而确定。在本申请中,调度策略主要用于明确,分割后的各个部分由哪些计算节点进行处理,以及各个计算节点对应处理哪一部分。
在本申请中的一种具体实施方式中,确定在去中心化自治区内执行目标模型的调度策略,包括:
步骤一、预估各个计算节点对各个任务镜像的执行时间;
步骤二、利用执行时间,得到最小任务总时延所对应的各个计算节点的排列;
步骤三、将排列确定为调度策略。
可预估出计算节点对各个任务镜像的执行时间,然后再找出最小任务总时延所对应的计算节点的排列。该排列即对应调度策略。
具体的,利用执行时间,得到最小任务总时延所对应的各个计算节点的排列,包括:
步骤1、利用各个计算节点所对应的执行时间,构造NP问题;
步骤2、求解NP问题,得到近似最优解;
步骤3、利用近似最优解,确定排列。
NP问题(Nondeterministic Polynomially problem,非确定性多项式难题)指一个复杂问题不能确定是否在多项式时间内找到答案,但是可以在多项式时间内验证答案是否正确。即NP问题由于只对验证答案的时间作了限定,从而有可能包含某些无法在多项式时间内找到答案的问题。
在本申请中的一种可选实施方式中,可基于遗传算法来求解该近似最优解。即,求解NP问题,得到近似最优解,包括:利用遗传算法,通过启发式搜索策略,求解NP问题的近似最优解。具体的,利用遗传算法,通过启发式搜索策略,得到NP问题的近似最优解,包括:
步骤①、将计算节点的一个批量组合确定为一条遗传信息个体,得到多个个体;
步骤②、将得到的分割后的任务镜像从前到后依次分配给个体代表的边缘节点顺序,得到当前个体的执行任务总延迟;执行任务总延迟为评价个体优劣的指标;
步骤③、利用指标对个体进行选择、交叉和变异,在达到终止条件时,得到近似最优解。
其中,步骤③利用指标对个体进行选择、交叉和变异,具体包括:
从当前种群中选择评价最优的多个个体,组成新的子代种群;
从目标位置随机交叉任意两个个体被目标位置分割的部分;
检查是否存在重复;
若有重复则替代其中重复的元素,使得个体有效。
在达到终止条件时,得到近似最优解。
其中,在达到终止条件时,得到近似最优解,包括:当种群中出现最优解的个体,或达到设置的最大迭代次数T,则停止,并得到近似最优解。
也就是说,确定边缘节点协同处理策略(调度策略),即确定了分割点位(即当所有任务部分确定后)之后,需要将其分配至各个边缘节点(计算节点),为了使得任务总处理时间最小所对应构建的调度策略。
由于深度学习推理任务流程是确定的,则该问题可以转化为从k个边缘节点中进行排列组合,并选择出能够得到最小任务总时延的一组排列。该问题为NP问题,尤其是当D中元素较多时,可采用遗传算法,通过启发式搜索策略,求得问题的近似最优解。具体求解过程如下:
遗传信息编码:将所有边缘节点的一个排列组合设置为一条遗传信息个体,随机生成M个个体。
个体评价:将得到的分割后的任务模型从前到后依次分配给某个个体代表的边缘节点顺序,得到当前个体执行任务总延迟作为评价个体优劣的指标。
选择、交叉、变异过程:从种群中选择评价最优的P个个体,组成新的子代种群,并从某个位置(目标位置,也即随机的一个位置,也称随时位置)随机交叉任意两个体被该随机位置分割的部分,并检查是否存在重复,若有重复则替代其中重复的元素,使得个体有效;
终止条件:当种群中出现最优解的个体,或达到设置的最大迭代次数T,则停止。
S103、按照分割策略分割目标模型,得到若干个任务镜像。
明确了分割策略之后,便可直接按照该分割策略对目标模型进行分割,并在分割好模型之后,对分割出的各个部分进行封装,从而得到若干个任务镜像。
在本申请中的一种具体实施方式中,按照分割策略分割目标模型,得到若干个任务镜像,包括:
步骤一、获取目标模型的模型参数文件;
步骤二、按照分割策略将模型参数文件分割为若干个模型代码段;
步骤三、根据模型代码段的属性,生成镜像描述文件;
步骤四、根据镜像描述文件修改对应内容;
具体的,根据镜像描述文件修改对应内容,包括:
根据镜像描述文件,修改基础镜像名称、Python层、PyTorch层及运行相应的代码文件命令。
步骤五、生成镜像描述符文件对应的任务镜像。
为便于描述,下面将上述五个步骤结合起来进行说明。
首先,可从Deep Learning模型库中,取出当前计算任务所需的模型参数文件(即目标模型对应的模型参物文件);其中,深度学习模型以预设好的推理模型描述模板和推理模型参数文件的形式存储在该模型库中,描述模板主要以代码的形式,定义了深度学习模型的完整网络结构,模型参数文件则存储着该模型经过训练后得到的网络参数。例如,当基于Python + PyTorch环境下,则模板文件以Python语言种类(class)的形式定义在特定的python代码文件中,而参数则以.pth后缀文件进行存储,当然也可以以其它语言和架构形式进行定义,这里仅举例。
根据Deep Learning模型库中预设好的深度学习推理模型描述模板,基于程序自动生成k个不同的模型代码段,每个代码段分别定义根据分割策略得到的部分神经网络层的网络模型对象;
然后,生成Docker File文件。即,根据k个文件的属性,自动生成镜像描述文件(Docker File),根据Docker File模板,修改相应的部分,如基础镜像名称、Python层、PyTorch层等,以及运行相应的代码文件命令,其余未修改部分按照缺省值。
通过执行Docker build命令,可直接获取k个代码文件的名称路径,按照DockerFile模板文件生成相应的任务镜像。
S104、按照调度策略,依次执行任务镜像,得到应答结果。
在调度策略中,指明了各个任务镜像分别由哪个计算节点执行,依次执行任务镜像,即可得到任务执行后所对应的应答结果。
具体的,按照调度策略,依次执行任务镜像,得到应答结果,包括:
步骤一、按照调度策略,将若干个任务镜像分散发送给去中心化自治区中的计算节点;
步骤二、依次实例化运行计算节点中的任务镜像,得到应答结果。
其中步骤二,依次实例化运行计算节点中的任务镜像,得到应答结果,包括:
步骤1、按照调度策略,为每个计算节点生成部署容器所需的yaml文件;
步骤2、执行yaml文件,将任务镜像调度至对应的计算节点上执行,得到应答结果。
即,按照调度策略,可为每个参与任务的边缘节点生成部署容器所需的deployment.yaml文件,该文件根据系统模板,通过运行代码自动替换需要修改的部分,并由调度模块执行该yaml文件,将任务镜像调度至所选边缘节点上执行。
S105、将应答结果发送给目标终端。
得到应答结果之后,便可将应答结果发送给目标终端。
应用本申请实施例所提供的方法,接收目标终端发送的任务请求,并确定执行任务请求对应的目标模型;确定在去中心化自治区内执行目标模型的分割策略和调度策略;按照分割策略分割目标模型,得到若干个任务镜像;按照调度策略,依次执行任务镜像,得到应答结果;将应答结果发送给目标终端。
在本申请中,当接收到目标终端发送的任务请求之后,首先确定执行该任务请求对应的目标模型。然后,确定在去中心化自治区内执行该目标模型的分割策略和调度策略。然后,按照分割策略将目标模型进行分割,从而得到若干个任务镜像。再按照调度策略,依次执行任务镜像,可以得到应答结果。最终将应答结果发送给目标终端即可完成任务请求。可见,在本申请,将执行任务所对应的目标模型进行分割,并按照调度策略对分割所得的任务镜像进行依次执行,则可快速响应任务请求。也就是说,在本申请中,针对边缘计算资源受限问题,提出基于边端协同的深度学习推理优化技术,对原有深度学习推理任务进行分割,从而可将计算任务推送至边缘端和用户终端设备进行协同处理,提高边缘网络资源利用效率。
相应于上面的方法实施例,本申请实施例还提供了一种容器调度框架系统,下文描述的容器调度框架系统上文描述的任务执行方法可相互对应参照。
参见图2所示,该系统包括以下模块:
模型分割器100,用于接收目标终端发送的任务请求,并确定执行任务请求对应的目标模型,确定在去中心化自治区内执行目标模型的分割策略和调度策略;
任务封装器200,用于按照分割策略分割目标模型,得到若干个任务镜像;按照调度策略,依次执行任务镜像,得到应答结果;将应答结果发送给目标终端。
应用本申请实施例所提供的装置,接收目标终端发送的任务请求,并确定执行任务请求对应的目标模型;确定在去中心化自治区内执行目标模型的分割策略和调度策略;按照分割策略分割目标模型,得到若干个任务镜像;按照调度策略,依次执行任务镜像,得到应答结果;将应答结果发送给目标终端。
在本申请中,当接收到目标终端发送的任务请求之后,首先确定执行该任务请求对应的目标模型。然后,确定在去中心化自治区内执行该目标模型的分割策略和调度策略。然后,按照分割策略将目标模型进行分割,从而得到若干个任务镜像。再按照调度策略,依次执行任务镜像,可以得到应答结果。最终将应答结果发送给目标终端即可完成任务请求。可见,在本申请,将执行任务所对应的目标模型进行分割,并按照调度策略对分割所得的任务镜像进行依次执行,则可快速响应任务请求。也就是说,在本申请中,针对边缘计算资源受限问题,提出基于边端协同的深度学习推理优化技术,对原有深度学习推理任务进行分割,从而可将计算任务推送至边缘端和用户终端设备进行协同处理,提高边缘网络资源利用效率。
在本申请的一种具体实施方式中,该容器调度框架系统,还包括:
深度学习模型库300,用于存储各类深度学习推理模型定义文件及训练好的网络参数文件。
在本申请的一种具体实施方式中,模型分割器100,具体用于获取目标终端的计算能力值;
利用计算能力值,确定目标模型中的深层任务部分与浅层任务部分的目标分割点;
确定深层任务部分的协同分割点;
将目标分割点和协同分割点加入分割策略。
在本申请的一种具体实施方式中,模型分割器100,具体用于从目标模型的输入层开始,逐层累加当前层所需的计算量,直到累加至目标层,使得计算量大于计算能力值;
在输入层与目标层之间确定目标分割点。
在本申请的一种具体实施方式中,模型分割器100,具体用于在输入层与目标层之间随机确定目标分割点。
在本申请的一种具体实施方式中,模型分割器100,具体用于获取去中心化自治区当前有效的边缘计算节点数量,及子任务量阈值;
获取深层任务部分的层间数据交换量;
利用边缘计算节点数量、子任务量阈值和层间数据交换量确定协同分割点。
在本申请的一种具体实施方式中,模型分割器100,具体用于利用边缘计算节点数量和子任务量阈值,确定所有分割组合;
结合层间数据交换量,并利用分割策略函数,对所有分割组合进行遍历,得到最优分割策略所对应的协同分割点。
在本申请的一种具体实施方式中,任务封装器200,具体用于获取目标模型的模型参数文件;
按照分割策略将模型参数文件分割为若干个模型代码段;
根据模型代码段的属性,生成镜像描述文件;
根据镜像描述文件修改对应内容;
生成镜像描述符文件对应的任务镜像。
在本申请的一种具体实施方式中,任务封装器200,具体用于根据镜像描述文件,修改基础镜像名称、Python层、PyTorch层及运行相应的代码文件命令。
在本申请的一种具体实施方式中,模型分割器100,具体用于预估各个计算节点对各个任务镜像的执行时间;
利用执行时间,得到最小任务总时延所对应的各个计算节点的排列;
将排列确定为调度策略。模型分割器100,具体用于利用各个计算节点所对应的执行时间,构造NP问题;
求解NP问题,得到近似最优解;
利用近似最优解,确定排列。
在本申请的一种具体实施方式中,模型分割器100,具体用于利用遗传算法,通过启发式搜索策略,求解NP问题的近似最优解。
在本申请的一种具体实施方式中,模型分割器100,具体用于将计算节点的一个批量组合确定为一条遗传信息个体,得到多个个体;
将得到的分割后的任务镜像从前到后依次分配给个体代表的边缘节点顺序,得到当前个体的执行任务总延迟;执行任务总延迟为评价个体优劣的指标;
利用指标对个体进行选择、交叉和变异,在达到终止条件时,得到近似最优解。
在本申请的一种具体实施方式中,模型分割器100,具体用于从当前种群中选择评价最优的多个个体,组成新的子代种群;
从目标位置随机交叉任意两个个体被目标位置分割的部分;
检查是否存在重复;
若有重复则替代其中重复的元素,使得个体有效。
在达到终止条件时,得到近似最优解。
在本申请的一种具体实施方式中,模型分割器100,具体用于当种群中出现最优解的个体,或达到设置的最大迭代次数T,则停止,并得到近似最优解。
在本申请的一种具体实施方式中,模型分割器100,具体用于按照调度策略,将若干个任务镜像分散发送给去中心化自治区中的计算节点;
依次实例化运行计算节点中的任务镜像,得到应答结果。
在本申请的一种具体实施方式中,模型分割器100,具体用于按照调度策略,为每个计算节点生成部署容器所需的yaml文件;
执行yaml文件,将任务镜像调度至对应的计算节点上执行,得到应答结果。
为便于本领域技术人员更好地理解本申请所提供的技术方案,下面结合具体应用场景为例,对本申请所提供的系统进行详细说明。
请参考图3,在k8s容器调度框架基础上,通过构建模型分割器、任务封装器及DeepLearning模型库功能模块,实现深度学习推理任务边端协同处理的完整流程。
其中,模型分割器负责根据系统资源状态及终端用户服务请求信息,生成深度学习推理任务的模型分割策略和调度策略;
Deep Learning模型库保存预设的各类深度学习推理模型定义文件及训练好的网络参数文件,任务封装器负责根据模型分割器输出的决策向Deep Learning模型库请求相应的文件并将分割后不同部分的模型自动化封装为单独的容器镜像文件,并根据调度策略部署在不同的边缘节点上。
其中,模型分割器:实现模型分割和调度策略的生成。
该模型分割器与k8s原始调度模块相连,在其调度算法逻辑,并将结果输出至系统API,即将容器调度至边缘节点或终端设备执行。
深度学习网络一般由多个不同规模的网络层组成,每个层之间存在数据传递,以实现逐层计算并输出结果。模型分割技术基于已经训练完成的深度学习模型,其主要问题是将原有模型分割为几个部分(可以是两部分,或多于两部分的任意分割方式),每个部分包括的网络层有哪些,以及将分割后的模型部署在哪些计算节点位置。考虑到推理数据来源于终端设备,因此,可以将模型的部分浅层推送至终端用户处,直接对本地数据进行处理,并将得到的中间数据上传至边缘网络,由边缘节点进行处理。根据边缘协同推理过程中产生的计算量,数据传输量,以及终端设备和其连接的边缘节点各自的计算资源情况,得到最优的模型分割位置以及边端协同策略。具体调度算法可参照上述方法实施例所描述的具体实现,即具体调度算法包括以下步骤:
步骤一、当前计算任务发起用户终端设备的计算能力为Ct,模型分割器从当前任务所请求的深度学习模型输入层开始,逐层根据层的节点数等参数对当前层所需计算量Li进行估算,直至Ln层需要的计算资源Cn超过Ct;
步骤二、从n层之前的某层作为分割位置w,w层之前部分在终端设备本地执行,之后的部分则由其周边边缘服务器协同处理,设w前的某层传输量为Tw,该层之前的所有层计算量为Cw,则通过遍历得到Tw+Cw最小值所在的位置为所求分割位置编号w。
步骤三、边端协同。当确定了在终端设备本地进行处理的计算量后,剩余的深度神经网络模型部分的计算则由该区域内有效的边缘节点协同处理完成。这一步的主要目的是确定如何将剩余部分的网络进行分割,以及分割后每一部分如何分配边缘节点,并依次放置在相应的节点位置进行协同处理。
首先确定网络分割位置:
步骤1、设当前有效的边缘计算节点数量为k,则这k个边缘节点协同对剩余的网络任务进行处理,由于每层的计算量和层间的数据交换量已知,则需要得到k-1个层的位置,使得分割后得到k部分计算任务,使得k部分计算任务之间总的数据交换量最小,且每部分任务量大小不超过阈值thdt,其中该阈值的确定方式可以是当前所有节点有效计算资源的一定比例。设层间数据交换量为D={datal},l为边缘端需要处理的所有层数,则问题为从D中选择k-1个元素组成集合Ds,使得Ds中所有元素和最小,且每部分所表示的计算量Ck小于thdt:
步骤2、为了找到目标函数最优解,需要对所有分割组合进行遍历,从所有结果中选择最优分割策略,使得Ds最小,且满足。
其次,确定边缘节点协同处理策略:
步骤1、当所有任务部分确定后,模块需要将其分配至各个边缘节点,为了使得任务总处理时间最小:
步骤2、由于深度学习推理任务流程是确定的,则该问题可以转化为从k个边缘节点中进行排列组合,并选择出能够得到最小任务总时延的一组排列。
步骤3、该问题为NP问题,尤其是当D中元素较多时,本发明采用遗传算法,通过启发式搜索策略,求得问题的近似最优解。
步骤4、遗传信息编码:将所有边缘节点的一个排列组合设置为一条遗传信息个体,随机生成M个个体。
步骤5、个体评价:将得到的分割后的任务模型从前到后依次分配给某个个体代表的边缘节点顺序,得到当前个体执行任务总延迟作为评价个体优劣的指标。
步骤6、选择、交叉、变异过程:从种群中选择评价最优的P个个体,组成新的子代种群,并从某个位置随机交叉任意两个体被该随机位置分割的部分,并检查是否存在重复,若有重复则替代其中重复的元素,使得个体有效;
步骤7、终止条件:当种群中出现最优解的个体,或达到设置的最大迭代次数T,则停止。
任务封装器:负责对任务进行封装并形成容器镜像。
具体的,该任务封装器接收模型分割器的输出,并为当前计算任务的深度学习推理模型进行自动化分割和镜像打包。将分割策略和调度策略传入任务封装器,并自动生成不同任务部分的镜像文件,其主要过程可参照上述方法实施例所描述的具体实现,即任务封装包括以下步骤:
步骤一、从Deep Learning模型库中,取出当前计算任务所需的模型参数文件;其中,深度学习模型以预设好的推理模型描述模板和推理模型参数文件的形式存储在该模型库中,描述模板主要以代码的形式,定义了深度学习模型的完整网络结构,模型参数文件则存储着该模型经过训练后得到的网络参数。例如,当基于Python + PyTorch环境下,则模板文件以Python语言种类(class)的形式定义在特定的python代码文件中,而参数则以.pth后缀文件进行存储,当然也可以以其它语言和架构形式进行定义,这里仅举例。
步骤二、根据Deep Learning模型库中预设好的深度学习推理模型描述模板,基于程序自动生成k个不同的模型代码段,每个代码段分别定义根据分割策略得到的部分神经网络层的网络模型对象。
步骤三、Docker File文件自动生成。根据k个文件的属性,自动生成镜像描述文件(Docker File),根据Docker File模板,修改相应的部分,如基础镜像名称、Python层、PyTorch层等,以及运行相应的代码文件命令,其余未修改部分按照缺省值。
步骤四、执行Docker build命令,获取上一步生成的k个代码文件的名称路径,按照上步Docker File模板文件生成相应的镜像。
步骤五、根据模型分割器产生的边缘侧协同策略,自动为每个参与任务的边缘节点生成部署容器所需的deployment.yaml文件,该文件根据系统模板,通过运行代码自动替换需要修改的部分,并由调度模块执行该yaml文件,将镜像调度至所选边缘节点上执行。
在该系统中,即可可以实现智能化的边缘人工智能推理服务,根据用户需求制定任务模块分配策略,实现任务模块在用户设备本地和边缘节点之间的协同处理,有效提高用户服务请求的响应速度,同时提高边缘网络资源利用率,降低系统平均延迟,提高任务吞吐率。
相应于上面的方法实施例,本申请实施例还提供了一种电子设备,下文描述的一种电子设备与上文描述的一种任务执行方法可相互对应参照。
参见图4所示,该电子设备包括:
存储器332,用于存储计算机程序;
处理器322,用于执行计算机程序时实现上述方法实施例的任务执行方法的步骤。
具体的,请参考图5,图5为本实施例提供的一种电子设备的具体结构示意图,该电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,处理器322可以设置为与存储器332通信,在电子设备301上执行存储器332中的一系列指令操作。
电子设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。
上文所描述的任务执行方法中的步骤可以由电子设备的结构实现。
相应于上面的方法实施例,本申请实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种任务执行方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的任务执行方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系属于仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语包括、包含或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。
Claims (15)
1.一种任务执行方法,其特征在于,包括:
接收目标终端发送的任务请求,并确定执行所述任务请求对应的目标模型;
确定在去中心化自治区内执行所述目标模型的分割策略和调度策略;
按照所述分割策略分割所述目标模型,得到若干个任务镜像;
按照所述调度策略,依次执行所述任务镜像,得到应答结果;
将所述应答结果发送给所述目标终端;
其中,确定在去中心化自治区内执行所述目标模型的分割策略,包括:
获取所述目标终端的计算能力值;
利用所述计算能力值,确定所述目标模型中的深层任务部分与浅层任务部分的目标分割点;
确定所述深层任务部分的协同分割点;
将所述目标分割点和所述协同分割点加入所述分割策略;
其中,确定所述深层任务部分的协同分割点,包括:
获取去中心化自治区当前有效的边缘计算节点数量,及子任务量阈值;
获取所述深层任务部分的层间数据交换量;
利用所述边缘计算节点数量、所述子任务量阈值和所述层间数据交换量确定所述协同分割点。
2.根据权利要求1所述的任务执行方法,其特征在于,利用所述计算能力值,确定所述目标模型中的深层任务部分与浅层任务部分的目标分割点,包括:
从所述目标模型的输入层开始,逐层累加当前层所需的计算量,直到累加至目标层,使得所述计算量大于所述计算能力值;
在所述输入层与所述目标层之间确定所述目标分割点。
3.根据权利要求2所述的任务执行方法,其特征在于,所述在所述输入层与所述目标层之间确定所述目标分割点,包括:
在所述输入层与所述目标层之间随机确定所述目标分割点。
4.根据权利要求1所述的任务执行方法,其特征在于,利用所述边缘计算节点数量、所述子任务量阈值和所述层间数据交换量确定所述协同分割点,包括:
利用边缘计算节点数量和所述子任务量阈值,确定所有分割组合;
结合所述层间数据交换量,并利用分割策略函数,对所有所述分割组合进行遍历,得到最优分割策略所对应的所述协同分割点。
5.根据权利要求1所述的任务执行方法,其特征在于,按照所述分割策略分割所述目标模型,得到若干个任务镜像,包括:
获取所述目标模型的模型参数文件;
按照所述分割策略将所述模型参数文件分割为若干个模型代码段;
根据所述模型代码段的属性,生成镜像描述文件;
根据镜像描述文件修改对应内容;
生成所述镜像描述符文件对应的所述任务镜像。
6.根据权利要求5所述的任务执行方法,其特征在于,所述根据镜像描述文件修改对应内容,包括:
所述根据镜像描述文件,修改基础镜像名称、Python层、PyTorch层及运行相应的代码文件命令。
7.根据权利要求1所述的任务执行方法,其特征在于,确定在去中心化自治区内执行所述目标模型的调度策略,包括:
预估各个计算节点对各个所述任务镜像的执行时间;
利用所述执行时间,得到最小任务总时延所对应的各个所述计算节点的排列;
将所述排列确定为所述调度策略。
8.根据权利要求7所述的任务执行方法,其特征在于,利用所述执行时间,得到最小任务总时延所对应的各个所述计算节点的排列,包括:
利用各个所述计算节点所对应的所述执行时间,构造NP问题;
求解所述NP问题,得到近似最优解;
利用所述近似最优解,确定所述排列。
9.根据权利要求8所述的任务执行方法,其特征在于,所述求解所述NP问题,得到所述近似最优解,包括:
将所述计算节点的一个批量组合确定为一条遗传信息个体,得到多个个体;
将得到的分割后的任务镜像从前到后依次分配给所述个体代表的边缘节点顺序,得到当前所述个体的执行任务总延迟;所述执行任务总延迟为评价所述个体优劣的指标;
利用所述指标对所述个体进行选择、交叉和变异,在达到终止条件时,得到所述近似最优解。
10.根据权利要求9所述的任务执行方法,其特征在于,利用所述指标对个体进行选择、交叉和变异,包括:
从当前种群中选择评价最优的多个所述个体,组成新的子代种群;
从目标位置随机交叉任意两个所述个体被所述目标位置分割的部分;
检查是否存在重复;
若有重复则替代其中重复的元素,使得所述个体有效;
在达到终止条件时,得到所述近似最优解。
11.根据权利要求1至10任一项所述的任务执行方法,其特征在于,按照所述调度策略,依次执行所述任务镜像,得到应答结果,包括:
按照所述调度策略,将若干个所述任务镜像分散发送给所述去中心化自治区中的计算节点;
依次实例化运行所述计算节点中的所述任务镜像,得到所述应答结果。
12.根据权利要求11所述的任务执行方法,其特征在于,依次实例化运行所述计算节点中的所述任务镜像,得到所述应答结果,包括:
按照所述调度策略,为每个所述计算节点生成部署容器所需的yaml文件;
执行所述yaml文件,将所述任务镜像调度至对应的计算节点上执行,得到所述应答结果。
13.一种容器调度框架系统,其特征在于,包括:
模型分割器,用于接收目标终端发送的任务请求,并确定执行所述任务请求对应的目标模型,确定在去中心化自治区内执行所述目标模型的分割策略和调度策略;
任务封装器,用于按照所述分割策略分割所述目标模型,得到若干个任务镜像;按照所述调度策略,依次执行所述任务镜像,得到应答结果;将所述应答结果发送给所述目标终端;
其中,所述模型分割器,具体用于获取所述目标终端的计算能力值;利用所述计算能力值,确定所述目标模型中的深层任务部分与浅层任务部分的目标分割点;确定所述深层任务部分的协同分割点;将所述目标分割点和所述协同分割点加入所述分割策略;其中,确定所述深层任务部分的协同分割点,包括:获取去中心化自治区当前有效的边缘计算节点数量,及子任务量阈值;获取所述深层任务部分的层间数据交换量;利用所述边缘计算节点数量、所述子任务量阈值和所述层间数据交换量确定所述协同分割点。
14.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至12任一项所述任务执行方法的步骤。
15.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至12任一项所述任务执行方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310147108.2A CN115858131B (zh) | 2023-02-22 | 2023-02-22 | 一种任务执行方法、系统、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310147108.2A CN115858131B (zh) | 2023-02-22 | 2023-02-22 | 一种任务执行方法、系统、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115858131A CN115858131A (zh) | 2023-03-28 |
CN115858131B true CN115858131B (zh) | 2023-05-16 |
Family
ID=85658616
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310147108.2A Active CN115858131B (zh) | 2023-02-22 | 2023-02-22 | 一种任务执行方法、系统、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115858131B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115421930A (zh) * | 2022-11-07 | 2022-12-02 | 山东海量信息技术研究院 | 任务处理方法、系统、装置、设备及计算机可读存储介质 |
CN115529604A (zh) * | 2021-06-24 | 2022-12-27 | 中国石油大学(华东) | 一种基于服务器协作的联合资源分配与多元任务卸载方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111176820B (zh) * | 2019-12-31 | 2021-06-25 | 中科院计算技术研究所大数据研究院 | 一种基于深度神经网络的边缘计算任务的分配方法及装置 |
CN111242282B (zh) * | 2020-01-09 | 2023-03-28 | 中山大学 | 基于端边云协同的深度学习模型训练加速方法 |
CN113961351B (zh) * | 2021-10-28 | 2022-12-30 | 北京百度网讯科技有限公司 | 深度学习模型的分布式训练方法、装置、设备及存储介质 |
CN114401063B (zh) * | 2022-01-10 | 2023-10-31 | 中国人民解放军国防科技大学 | 基于轻量化模型的边缘设备协同频谱智能监测方法和系统 |
CN114925852A (zh) * | 2022-05-20 | 2022-08-19 | 南京大学 | 一种基于模型分割和资源分配的联邦学习训练方法及系统 |
CN114997400A (zh) * | 2022-05-30 | 2022-09-02 | 南京商集企业服务有限公司 | 一种神经网络加速推理方法 |
CN115345306A (zh) * | 2022-09-15 | 2022-11-15 | 南京邮电大学 | 深度神经网络调度方法及调度器 |
-
2023
- 2023-02-22 CN CN202310147108.2A patent/CN115858131B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115529604A (zh) * | 2021-06-24 | 2022-12-27 | 中国石油大学(华东) | 一种基于服务器协作的联合资源分配与多元任务卸载方法 |
CN115421930A (zh) * | 2022-11-07 | 2022-12-02 | 山东海量信息技术研究院 | 任务处理方法、系统、装置、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115858131A (zh) | 2023-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109491790B (zh) | 基于容器的工业物联网边缘计算资源分配方法及系统 | |
Pendharkar | An ant colony optimization heuristic for constrained task allocation problem | |
CN110688219B (zh) | 基于反向混沌布谷鸟搜索的自适应权重负载均衡算法 | |
Liu et al. | DeepSlicing: Deep reinforcement learning assisted resource allocation for network slicing | |
CN112702401B (zh) | 一种电力物联网多任务协同分配方法及装置 | |
CN113037877A (zh) | 云边端架构下时空数据及资源调度的优化方法 | |
Huang et al. | Toward decentralized and collaborative deep learning inference for intelligent iot devices | |
Baresi et al. | PAPS: A serverless platform for edge computing infrastructures | |
CN115297008A (zh) | 基于智算网络的协同训练方法、装置、终端及存储介质 | |
Ghobaei‐Arani et al. | Deploying IoT services on the fog infrastructure: a graph partitioning‐based approach | |
CN115858131B (zh) | 一种任务执行方法、系统、设备及可读存储介质 | |
Fu et al. | Distributed reinforcement learning-based memory allocation for edge-PLCs in industrial IoT | |
CN116996941A (zh) | 基于配网云边端协同的算力卸载方法、装置及系统 | |
Ferrucci et al. | Decentralized Replica Management in Latency-bound Edge Environments for Resource Usage Minimization | |
CN116367190A (zh) | 一种面向6g移动网络的数字孪生功能虚拟化方法 | |
Hussain et al. | Resource allocation of industry 4.0 micro-service applications across serverless fog federation | |
CN117009042A (zh) | 物联网模式下的信息计算负载调度方法、装置、设备及介质 | |
CN114035919A (zh) | 基于配电网分层分布特征的任务调度系统及方法 | |
Emu et al. | Iot ecosystem on exploiting dynamic vnf orchestration and service chaining: Ai to the rescue? | |
Masdari et al. | Energy-aware computation offloading in mobile edge computing using quantum-based arithmetic optimization algorithm | |
Xu et al. | Uncertainty-aware workflow migration among edge nodes based on blockchain | |
CN114327925A (zh) | 一种电力数据实时计算调度优化方法及系统 | |
Yadav | E-MOGWO Algorithm for Computation Offloading in Fog Computing. | |
Kumaran et al. | An efficient task offloading and resource allocation using dynamic arithmetic optimized double deep Q-network in cloud edge platform | |
Zhang et al. | Resource and delay aware fine-grained service offloading in collaborative edge computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |