CN116684420A - 集群资源调度方法、装置、集群系统和可读存储介质 - Google Patents
集群资源调度方法、装置、集群系统和可读存储介质 Download PDFInfo
- Publication number
- CN116684420A CN116684420A CN202310582410.0A CN202310582410A CN116684420A CN 116684420 A CN116684420 A CN 116684420A CN 202310582410 A CN202310582410 A CN 202310582410A CN 116684420 A CN116684420 A CN 116684420A
- Authority
- CN
- China
- Prior art keywords
- model
- local
- training
- trained
- local 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 92
- 238000003860 storage Methods 0.000 title claims abstract description 20
- 238000012549 training Methods 0.000 claims abstract description 134
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 132
- 238000009826 distribution Methods 0.000 claims abstract description 37
- 230000004931 aggregating effect Effects 0.000 claims abstract description 10
- 230000006870 function Effects 0.000 claims description 26
- 238000005070 sampling Methods 0.000 claims description 5
- 238000000638 solvent extraction Methods 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 32
- 238000005457 optimization Methods 0.000 description 21
- 238000004364 calculation method Methods 0.000 description 19
- 230000002776 aggregation Effects 0.000 description 16
- 238000004220 aggregation Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000013135 deep learning Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000009286 beneficial effect Effects 0.000 description 5
- 238000012937 correction Methods 0.000 description 4
- 238000012935 Averaging Methods 0.000 description 3
- 238000006317 isomerization reaction Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 230000004580 weight loss Effects 0.000 description 2
- 241000764238 Isis Species 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012821 model calculation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/09—Supervised learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/101—Server selection for load balancing based on network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种集群资源调度方法、装置、集群系统和可读存储介质,获取子数据集,接收中心节点的全局模型,以作为待训练的局部模型;计算待训练的局部模型的重要度,根据重要度调用分布式算法;计算训练待训练的局部模型所需资源,并从资源池中请求所需资源;之后采用子数据集中文本样本和/或图像样本以及分布式算法来对待训练的局部模型进行训练,以得到局部模型;将局部模型发送至中心节点;中心节点用于对接收到的各局部模型进行聚合,以更新全局模型;重复上述步骤,直至达到预设条件以得到最终全局模型。该方法采用数据划分方案从源头上缓解数据异构问题;并按需分配得到相应的计算资源,提高集群内资源的利用效率,避免集群内部死锁。
Description
技术领域
本申请涉及数据处理技术领域,具体涉及一种集群资源调度方法、装置、集群系统和可读存储介质。
背景技术
现今工业界需要处理的数据量巨大,具有强大运算能力的计算集群的出现得以对大量数据进行处理。在过去几年中,深度学习与GPU的结合取得了巨大的成功,并得以将此模式广泛传播。大型的GPU集群通过中心调度来合理分配给各个节点计算资源。例如谷歌内部的大规模集群管理系统通过调度器组件将提交的作业保存以加入队列,并利用可行性检查筛选最合适的机器参与训练;或使用"Minimize Makespan"策略来完成诸如超参数调优的高级任务,借助Kubernetes系统,改进实现了一个资源调度器和一个与调度器进行交互的客户端,分别完成对用户的训练任务进行资源分配和任务的开始、结束、暂停、重启等操作;或采用"Max-Min Fairness"算法,设计了调度器模块和放置管理模块,以及一个用于学习任务特性的分析器,围绕用户、操作者这两个目标,专门适应分布式深度学习任务,能够有效率地调度并且合适地放置深度学习任务以减少他们的任务完成时间。
现有的资源调度方案和框架虽然能够综合各方面因素尽可能让集群内部各节点负载均衡,但往往存在数据异常的问题。数据异构会导致各个局部模型的优化方向与全局模型的优化方向产生矛盾,如果不在相应的分布式算法上进行改进,就会影响全局模型的性能。然而,复杂的分布式算法所带来的额外资源开销也会导致集群调度的复杂化,若不能准确估计这些额外的计算负担,就会造成集群资源调度的不力,引发资源抢占、进程死锁的现象。
发明内容
有鉴于此,本申请实施例中提供了一种集群资源调度方法、装置、集群系统和可读存储介质,以克服现有技术集群资源调度的不力,引发资源抢占、进程死锁的现象的问题。
第一方面,本申请实施例提供了一种集群资源调度方法,所述集群包括一个中心节点和与所述中心节点相连接的各边缘节点;所述方法应用于各所述边缘节点,所述方法包括:
获取子数据集,其中所述子数据集中包括多个文本样本和/或图像样本;所述子数据集中文本样本和/或图像样本的类别分布与总数据集中文本样本和/或图像样本的类别分布一致;
接收所述中心节点广播的全局模型,以作为待训练的局部模型;
计算所述待训练的局部模型的重要度,根据所述重要度调用相应的分布式算法;
计算训练所述待训练的局部模型所需资源,并从资源池中请求所述所需资源;
在获得所述所需资源时,采用所述子数据集中文本样本和/或图像样本以及所述分布式算法来对所述待训练的局部模型进行模型训练,以得到局部模型;
将所述局部模型发送至所述中心节点;所述中心节点用于对接收到的各局部模型进行聚合,以更新所述全局模型;
重复执行接收所述中心节点广播的全局模型,模型训练以及将所述局部模型发送至所述中心节点,直至达到预设条件,以得到最终全局模型。
第二方面,本申请实施例提供了一种集群资源调度装置,所述集群包括一个中心节点和与所述中心节点相连接的各边缘节点;所述装置应用于各所述边缘节点,所述装置包括:
子数据集获取模块,用于获取子数据集,其中所述子数据集中包括多个文本样本和/或图像样本;所述子数据集中文本样本和/或图像样本的类别分布与总数据集中文本样本和/或图像样本的类别分布一致;
模型接收模块,用于接收所述中心节点广播的全局模型,以作为待训练的局部模型;
算法调用模块,用于计算所述待训练的局部模型的重要度,根据所述重要度调用相应的分布式算法;
资源确定模块,用于计算训练所述待训练的局部模型所需资源,并从资源池中请求所述所需资源;
模型训练模块,用于在获得所述所需资源时,采用所述子数据集中文本样本和/或图像样本以及所述分布式算法来对所述待训练的局部模型进行模型训练,以得到局部模型;
模型更新模块,用于将所述局部模型发送至所述中心节点;所述中心节点用于对接收到的各局部模型进行聚合,以更新所述全局模型;
最终模型获得模块,用于重复执行接收所述中心节点广播的全局模型,模型训练以及将所述局部模型发送至所述中心节点,直至达到预设条件,以得到最终全局模型。
第三方面,本申请实施例提供了一种集群系统,集群系统包括一个中心节点和与所述中心节点相连接的各边缘节点;各所述边缘节点包括:存储器;一个或多个处理器,与所述存储器耦接;一个或多个应用程序,其中,一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个应用程序配置用于执行上述第一方面提供的集群资源调度方法。
第四方面,本申请实施例提供了一种计算机可读取存储介质,计算机可读取存储介质中存储有程序代码,程序代码可被处理器调用执行上述第一方面提供的集群资源调度方法。
本申请实施例提供的集群资源调度方法、装置、集群系统和可读存储介质,其中集群包括一个中心节点和与中心节点相连接的各边缘节点,首先各边缘节点获取子数据集,其中子数据集中包括多个文本样本和/或图像样本;子数据集中文本样本和/或图像样本的类别分布与总数据集中文本样本和/或图像样本的类别分布一致;然后接收中心节点广播的全局模型,以作为待训练的局部模型;再计算待训练的局部模型的重要度,根据重要度调用相应的分布式算法;计算训练待训练的局部模型所需资源,并从资源池中请求所需资源;在获得所需资源时,采用子数据集中文本样本和/或图像样本以及分布式算法来对待训练的局部模型进行模型训练,以得到局部模型;将局部模型发送至中心节点;中心节点对接收到的各局部模型进行聚合,以更新全局模型;最后重复执行接收中心节点广播的全局模型,模型训练以及将局部模型发送至中心节点,直至达到预设条件,以得到最终全局模型。
本申请实施例提供的集群资源调度方法采用一种可行的数据划分方案,让数据集中样本的类别分布与总数据集中的类别分布保持一致,在保证样本随机性的同时维护各计算节点样本类别的平衡,从源头上缓解数据异构问题;并且在各边缘节点进行局部模型训练时综合评估计算节点的性能贡献和资源消耗情况,为各节点动态分配算法和资源,即按需分配得到相应的计算资源,提高集群内资源的利用效率,避免集群内部的死锁。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的集群资源调度方法的应用场景示意图;
图2为本申请一个实施例提供的集群资源调度方法的流程示意图;
图3为本申请又一个实施例提供的资源调度方法的流程示意图;
图4为本申请一个实施例提供的分布式算法的示意图;
图5为本申请一个实施例中提供的集群资源调度装置的结构示意图;
图6为本申请一个实施例中提供的集群系统的结构示意图;
图7为本申请一个实施例中提供的计算机可读存储介质的结构示意图。
具体实施方式
下面将对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了更详细说明本申请,下面结合附图对本申请提供的一种集群资源调度方法、装置、集群系统和计算机可读存储介质,进行具体地描述。
随着深度学习中数据规模和网络规模的逐渐增大,训练网络(例如神经网络)会耗费越来越多的资源与时间,一个机器学习任务往往拥有海量的数据,而单一计算节点无法承担整个数据集的读取与训练。常见的做法是将数据集打乱后进行随机切分,再分发给各个参与训练的计算节点,即数据并行。数据并行是分布式并行实现的一种,当单个模型的大小足以被一个加速元件(例如GPU)存储时,采用数据并行可以加快模型的训练速度。数据并行具体的实现方案为在每个GPU复制一份相同的模型,并将数据样本按需分发到不同的显卡上执行并行计算(注意这种划分方式将单个数据样本视为最小的单元,而不会把数据样本按特征拆分)。一段时间后,将各GPU更新后的模型聚合,得到新的全局模型,再把更新后的全局模型赋值给各个GPU,重复该过程直至训练结束。数据并行可以大大提高模型训练效率,但在这个过程中需要进行数据分配,尽管随机分配数据简单易用,并维护了数据的随机性,一定程度上防止了训练过拟合,但切分后的各部分数据会存在特征差异、类别分布不均衡以及跨域的问题。考虑到并发任务环境下集群内部带宽资源紧张,各节点的模型不会过于频繁地同步,因此数据的失衡会导致各节点模型的发散,影响同步后模型的性能,这种问题被称为数据异构问题。
另外,在许多应用中,进程需要以独占的方式访问资源,当操作系统允许多个进程并发执行,且资源分配不合理时会出现进程永远被阻塞现象,如两个进程分别等待对方所占的资源,于是两者都不能执行而处于永远等待状态,此现象称为死锁。
为了解决上述的问题,本申请实施例提供了一种集群资源调度方法、装置、集群系统和计算机可读存储介质,该方法可以应用在集群。请参考图1,图1示出了本申请实施例提供的集群资源调度方法的应用场景的示意图,该应用场景包括本申请实施例提供的集群,其中集群指一组独立的计算机系统构成的一个松耦合的多处理器系统。应用程序可以通过网络共享内存进行消息传送,实现分布式计算。集群中的每一个计算机节点都是运行各自服务的独立服务器,这些服务器通过局域网彼此进行进程级的通信,协同向用户提供应用程序、系统资源和数据,并以单一系统的模式加以管理。集群中节点的分布有多种不同的拓扑结构,为了简便地表述模型同步的过程,假设存在一个中心节点作为中心服务器,能够聚合并广播各个局部节点(即边缘节点)的网络模型。实际上,本申请实施例的方法也能够轻松地扩展并应用到环形拓扑、分级拓扑等其他的拓扑结构中,为各种拓扑结构不同的集群系统。
基于此,在本实施例中集群,又称为集群系统,可以包括一个中心节点102,又可以称为中心服务器,以及多个边缘节点104;其中中心节点102和边缘节点104可以是具有显示屏的各种电子设备和服务器;其中电子设备包括但不限于智能手机和计算机设备,其中计算机设备可以是台式计算机、便携式计算机、膝上型计算机、平板电脑等设备中的至少一种。边缘节点104可以与中心节点102进行交互,中心节点102可以接收各边缘节点104的信息,并发生相关信息给各边缘节点104。
需要说明的是在选择中心节点时一般考虑以下两点:1.因为中心节点需要接收其他所有节点的信息,因此为了减少通信开销,作为中心节点拓扑位置一般需要在比较中心的位置,以减少各个节点传输信息的时间、网络带宽开销。2.因为中心节点不需要像其他节点一样进行大量的训练、计算,因此其主要依赖网络带宽资源,对显存资源的需求相对不高,所以可以选择显存资源相对较少的节点作为中心节点。
另外,本领域技术人员可以知晓,上述集群系统中边缘节点104的数量可以更多或更少。比如上述集群系统中边缘节点104可以仅为几个,或者上述集群系统中边缘节点104为几十个或几百个,或者更多数量,本申请实施例对集群系统的数量和类型不加以限定。此外,边缘节点104可以用来执行本申请实施例中提供的一种集群资源调度方法。
基于此,本申请实施例中提供了一种集群资源调度方法。请参阅图2,图2示出了本申请实施例提供的一种集群资源调度方法的流程示意图,所述集群包括一个中心节点和与所述中心节点相连接的各边缘节点;所述方法应用于各所述边缘节点,以该方法应用于图1中的边缘节点104为例进行说明,包括以下步骤:
步骤S110,获取子数据集。
其中子数据集中包括多个文本样本和/或图像样本;子数据集中文本样本和/或图像样本的类别分布与总数据集中文本样本和/或图像样本的类别分布一致。
步骤S120,接收中心节点广播的全局模型,以作为待训练的局部模型。
步骤S130,计算待训练的局部模型的重要度,根据重要度调用相应的分布式算法。
步骤S140,计算训练待训练的局部模型所需资源,并从资源池中请求所需资源。
步骤S150,在获得所需资源时,采用子数据集中文本样本和/或图像样本以及分布式算法来对待训练的局部模型进行模型训练,以得到局部模型。
步骤S160,将局部模型发送至中心节点;中心节点用于对接收到的各局部模型进行聚合,以更新全局模型。
步骤S170,重复执行接收中心节点广播的全局模型,模型训练以及将局部模型发送至中心节点,直至达到预设条件,以得到最终全局模型。
请参照图3所示,图3(a)为集群中的模型训练场景。集群有一个中心服务器(即中心节点),并多个边缘节点(例如i,j,k三个计算节点)。各边缘节点先获取子数据集,其中子数据集中包含有多个用来训练节点中模型的文本样本和/或图像样本;然后各节点从中心服务器获得其广播的全局模型,称为待训练的局部模型,可以记为w。在得到中心服务器广播的全局模型后,于本地进行局部训练,然后将各自训练得到的局部模型(如wi,wj,wk)发往中心服务器参与聚合,并不断重复上述训练流程直至得到性能良好的全局模型。与此同时,在本实施例中各边缘节点在进行每一轮的训练前,要先评估待训练的局部模型的重要程度,并以此选择合适的分布式算法,申请对应的计算资源(即所需资源)。其中图3(b)展示了这一流程。各边缘节点在局部训练前,经过对相应的分布式算法与资源判断,向资源池申请自己所需的资源,以有效进行后续训练。其中图3(c)为一个边缘节点训练待训练的局部模型的整个过程,也包括资源调度的详细过程;以边缘节点i为例进行说明。对于边缘节点i先计算局部更新前后模型的差异,从而判断待训练的局部模型对于全局模型更新的重要度。然后根据边缘节点i的局部模型的重要度,为其分配分布式算法进行后续的局部训练。最后进行计算所需资源预估。完成估算后,将估计的所需资源(例如的网络带宽开销v和显存开销ζ)与节点剩余资源量比较,接着将预估的网络带宽资源δ和显存ζ分配给节点i。最后,各个节点便可以根据自身训练的局部模型的重要程度选用最合适的分布式算法,并按需分配得到相应的计算资源,最大程度地利用资源,训练自己的局部网络模型,有效地减缓数据异构带来的影响,帮助全局模型向最优点进行优化。
需要说明的是上述的模型训练过程仅仅是一个边缘节点一次模型训练过程,而每一个边缘节点的模型训练过程都是相似的,仅仅可能是采用的子数据集,分布式算法以及所需资源不同,在此不再赘述。另外,一个边缘节点训练模型的次数往往是很多次,那么一个边缘节点执行图3(c)的次数也是很多次,直至达到预设条件(例如达到预设次数或者是最终全局模型达到最优等)才结束。
此外,采用分布式算法进行模型训练时,假设文本样本和/或图像样本等模型训练数据都聚集在一个中心节点上时,即采用总数据集在中心节点对全局模型进行训练时,经过更新,全局模型会向全局最优点更新;而采用边缘节点进行分布式模型训练,那全部模型会向各个局部最优更新。在数据异构的环境下,由于各个边缘节点所分到的数据的特征分布和类别分布具有差异,导致分布式训练各个节点梯度的发散,这些梯度的平均梯度(即分布式训练的全局更新方向)偏移了集中式训练的梯度,进而引起全局优化的收敛速度减缓和全局模型的性能下降。
为了便于理解给出一个详细的实施例。假设有一种分布式模型(即模型聚合算法),该算法是分布式学习中聚合本地模型的一个基本算法,局部节点将更新后的模型发送至中心服务器(即中心节点)以聚合,后者再将结果发回,重复上述过程,直至全局模型收敛。其中集群中有N个计算节点(即边缘节点)参与一次分布式训练,w表示边缘节点接收到的全局模型,即待训练的局部模型,其中,N是一个大小有限的正整数,w为根据训练数据不同而维度不同的张量。定义全局优化目标为:
其中D代表总数据集,包含所有的数据样本(即文本样本和/或图像样本),Dk是节点k拥有的子数据集,si是Dk中的一个数据样本,通常为文本样本或图像样本,f(w;si)代表数据si在全局模型w下的监督学习损失(通常是交叉熵损失),是一个标量数据。上式表明能够在各局部数据上得到最小加权损失的模型w*即为最优。与此同时,节点k的模型更新通过局部的随机梯度下降过程得以实现:
上式是深度学习的梯度下降计算过程,wk代表节点k的局部模型,η代表深度学习的学习率,代表梯度的计算。各个计算节点在完成局部的模型更新之后,将各自训练得到的模型wk发送给中心服务器以进行聚合平均:/> 对于上述中的全局模型/>假设当数据都聚集在一个中心节点上时,经过更新,全局模型会变为/>其性能相比于前者会更为优秀,因为前者的更新方向/>是指向全局最优点的,而后者的更新方向/>是指向各个局部最优点的。在数据异构的环境下,由于各个节点所分到的数据的特征分布和类别分布具有差异,导致分布式训练各个节点梯度的发散,这些梯度的平均梯度(即分布式训练的全局更新方向)偏移了集中式训练的梯度,进而引起全局优化的收敛速度减缓和全局模型的性能下降。
尽管现有技术为了缓解分布式环境下的数据异构问题,采取了在局部的模型训练阶段添加近端项、惩罚项等措施,但这些方法为了模型性能往往不计资源代价,忽视高昂的额外资源开销。另一方面,这些复杂的方法缺少一个统一的表达,因此调度器难以实时地为不同的训练任务分配算法以及相应的资源。
基于此,在本实施例中,对于每个边缘节点的子数据集形成提供了一种改进。子数据集中包括多个文本样本和/或图像样本;子数据集中的文本样本和/或图像样本是从总数据集中提取而来的。由于总数据集中文本样本和/或图像样本的种类往往是多样的,如何从总数据集中筛选文本样本和/或图像样本就显得尤为重要。在筛选时要尽量保证样本的均匀性,即子数据集中文本样本和/或图像样本的类别分布与总数据集中文本样本和/或图像样本的类别分布一致,从而来保证每个边缘节点训练样本的准确性,以缓解发生数据异构现象。
为了能够将集群拥有的完整数据划分给集群内部的各个边缘节点,通常的数据划分方式是先将所有数据打乱,再按照预定的数量依次划分给各边缘节点。随机的划分虽然简单,但也一定程度上加剧了分布式环境下的数据异构问题,让每个节点分到的部分数据的类别、分布不一。因此,为了在源头上减缓数据异构的程度,本实施例提供了一种新的集群内数据划分方式。
在一个实施例中,获取子数据集,包括:计算总数据集中每种类别样本的数量占样本总数量的比例;根据比例和子数据集的样本总量计算所需每种类别样本的数量;根据所需每种类别样本的数量按照比例抽样方法抽取相应的文本样本和/或图像样本,以形成子数据集。
具体来说,假设总数据集D一共有n个类别,类别i的数据数量占数据总量的比例为qi,其中,n是一个大小有限的正整数,qi∈(0,1)。对于边缘节点k来说,若最终划分到的数据集为Dk,则其数据采样步骤为:依次在每一个类别i中随机挑选|Dk|·qi个样本,其中Dk代表子数据集的样本数量。通过上述的分组按比例抽样方法,边缘节点k最终得到的子数据集Dk的数据类别分布将与完总数据集D近似,会大大降低完全随机划分数据集所带来的数据类别分布的不均匀度,从而在一定程度上减缓数据异构的情况。
此外,待训练的局部模型可以是神经网络模型,例如深度神经网络模型。
本申请实施例提供的集群资源调度方法、其中集群包括一个中心节点和与中心节点相连接的各边缘节点,首先各边缘节点获取子数据集,其中子数据集中包括多个文本样本和/或图像样本;子数据集中文本样本和/或图像样本的类别分布与总数据集中文本样本和/或图像样本的类别分布一致;然后接收中心节点广播的全局模型,以作为待训练的局部模型;再计算待训练的局部模型的重要度,根据重要度调用相应的分布式算法;计算训练待训练的局部模型所需资源,并从资源池中请求所需资源;在获得所需资源时,采用子数据集中文本样本和/或图像样本以及分布式算法来对待训练的局部模型进行模型训练,以得到局部模型;将局部模型发送至中心节点;中心节点对接收到的各局部模型进行聚合,以更新全局模型;最后重复执行接收中心节点广播的全局模型,模型训练以及将局部模型发送至中心节点,直至达到预设条件,以得到最终全局模型。
本申请实施例提供的集群资源调度方法采用一种可行的数据划分方案,让数据集中样本的类别分布与总数据集中的类别分布保持一致,在保证样本随机性的同时维护各计算节点样本类别的平衡,从源头上缓解数据异构问题;并且在各边缘节点进行局部模型训练时综合评估计算节点的性能贡献和资源消耗情况,为各节点动态分配算法和资源,即按需分配得到相应的计算资源,提高集群内资源的利用效率,避免集群内部的死锁。
接下来给出了几种分布式算法的具体实施例,详细描述如下:
第一个实施例
在一个实施例中,分布式算法可以是分布式学习中的模型聚合算法,该算法是分布式学习中聚合本地模型的一个基本算法,局部节点将更新后的模型发送至中心服务器以聚合,后者再将结果发回,重复上述过程,直至全局模型收敛。假设集群内有N个计算节点参与一次分布式训练,w表示训练的全局模型,其中,N是一个大小有限的正整数,w为根据训练数据不同而维度不同的张量。定义全局优化目标为:
其中D代表完整的数据集,包含所有的数据样本,Dk是节点k拥有的子数据集,si是Dk中的一个数据样本,通常为文本数据或图像,f(w;si)代表数据si在全局模型w下的监督学习损失(通常是交叉熵损失),是一个标量数据。上式表明能够在各局部数据上得到最小加权损失的模型w*即为最优。与此同时,节点k的模型更新通过局部的随机梯度下降过程得以实现:
上式是深度学习的梯度下降计算过程,wk代表节点k的局部模型,η代表深度学习的学习率,代表梯度的计算。各个计算节点在完成局部的模型更新之后,将各自训练得到的模型wk发送给中心服务器以进行聚合平均:/>
第二个实施例
在一个实施例中,分布式算法可以是缓解数据异构的分布式算法,相比于普通的分布式学习中的模型聚合算法,在该分布式算法中考虑了不同设备通信和计算能力的差异,在局部模型训练时引入近端项(proximal term),在数据异质的情况下,限制了本地训练时模型相对全局模型的偏离,使得局部模型更新的优化不会太过远离初始全局模型,尽可能减小数据异构带来的影响。
第三个实施例
在一个实施例中,分布式算法可以是基于局部漂移变量解耦和校正的分布式算法;该算法同样致力于缓解分布式环境下的数据异构问题,将局部训练与全局解耦,通过在每个客户端增加一个辅助项计算漂移度(drift)来修正本地和全局之间的权重差异,并在损失函数中增添惩罚项,达到参数水平上的一致性,减缓局部最优点和全局最优点之间的矛盾,提升全局模型的性能。
第四个实施例
由于现有的资源调度方案和框架虽然能够综合各方面因素尽可能让集群各节点负载均衡,但容易存在数据异构的情况。数据异构会导致各个局部模型的优化方向与全局模型的优化方向产生矛盾,如果不在相应的分布式算法上进行改进,就会影响全局模型的性能。基于此,本申请实施例提出了一种新的分布式算法。
在一个实施例中,分布式算法的损失函数包括距离损失函数;其中,距离损失函数的表达式为:
lss表示距离损失函数,μ表示更新目标和全局模型之间距离的超参数,其主要用于控制约束项的约束强弱,约束越弱本地模型更容易拟合本地数;wk表示第k个边缘节点对待训练的局部模型进行模型训练以得到局部模型;wloc表示第k个边缘节点的局部更新目标;wglo表示全局更新目标。
可选地,分布式算法的损失函数还可以包括交叉熵损失函数,那么分布式算法的损失函数可以由距离损失函数和交叉熵损失函数组成。
具体而言,该分布式算法是一种可以新的缓解数据异构的分布式学习算法,该算法能够有效地在数据异构的环境下减小局部模型对全局模型优化方向的影响,从而找到既有利于局部最优又有利于全局最优的局部模型更新方向。该算法的整体示意图如图4所示。算法的核心思想是为每一个边缘节点在模型训练中的局部更新设定两个动态变化的优化目标,这与其他现存的主流技术方案有着本质上的不同,即对于每一个边缘节点,既为其设定一个局部更新目标wloc,又为其设定一个全局更新目标wglo,其中loc和glo分别是local和global的缩写,分别表示局部和全局。显而易见的是,各局部节点无法直接表示wglo的优化方向,因此需要通过计算间接得到该优化目标。需要说明的是由于模型更新过程都是在一个通信轮次中(即一个局部模型训练以及同步周期内)进行的讨论,所以各数学表示均省略轮次下标t。假设在一个通信轮次中,边缘节点k进行局部更新前的模型为(即待训练的局部模型),进行局部更新后的模型为/>(即局部模型),其上标old和pre分别表示局部更新前、后,并用w表示聚合了各节点的局部模型/>后的全局模型(上述三种模型均为根据训练数据样本类型的不同而维度不同的张量,且三个模型拥有相同的维度)。图4左半部分清晰画出了在每个通信轮次中,上述三种不同类型的模型是如何传递、变化的,并且可以看出,/>将作为局部更新完成的模型(即局部模型)在下一轮次中发往中心服务器参与聚合,并为新的全局模型w贡献相关数据,而新的训练轮次也将不断重复上述训练过程。
有了上述的不同模型表示,两个更新目标均可以利用w加上部分累积梯度来进行构造,即:
其中α是控制更新目标和全局模型之间距离的超参数,其主要用于控制更新目标与全局模型之间的距离,与边缘节点与中心节点同步的频率有关。在上述公式中,可以表示局部更新前后的累积梯度差异,因此可以用来约束局部更新目标wloc;/>可以表示全局更新前后的累积梯度差异,因此可以用来约束全局更新目标wglo。由此,每一个局部节点在利用自身数据进行训练时都会受到两个距离限制,第一个是局部模型和局部更新目标之间的距离/>另一个是局部模型和全局更新目标之间的距离/> 这两个更新目标引导每一个局部节点进行模型的训练与更新,使其在全局性能下降最小的情况下更接近局部最优,此性能指的是将要参与聚合的全局模型,而不是已经聚合的全局模型。图4的右半部分描绘了这一引导过程,可以看到,全局模型的每一次更新中,都受到局部最优方向wloc和全局最优方向wglo的双重约束,从而引导全局模型既向着有利于全局最优目标的方向训练,又不过分影响局部的优化。同时,以上两个距离限制将在局部计算节点进行随机梯度下降时起到作用,即,在进行损失函数的计算时,除了计算基础的交叉熵损失lce,还会增添计算一项距离损失函数:
因此,完整的损失函数将改写为l←lce+lss,并参与后续的随机梯度下降与模型更新计算:η是学习率,/>是对损失l求梯度,整个公式是一个梯度下降的过程,即模型训练更新的过程。
本申请实施例提供的缓解数据异构的分布式学习算法是一个解决分布式训练数据异构问题的通用解,因为这类算法实际上所起到的作用就是减小局部模型对全局模型优化方向的影响,然而有些算法过于强调全局最优,对局部更新施加了过强的约束而限制了局部更新的潜力。相反,本申请实施例提供的缓解数据异构的分布式学习算法会使局部模型既有利于局部最优又有利于全局最优。并且,该算法资源消耗不会随着时间的变化而产生较大的波动,有利于资源评估。
虽然采用不同的分布式算法可以改善数据异构的问题,但是复杂的分布式算法所带来的额外资源开销也会导致集群调度的复杂化,若不能准确估计这些额外的计算负担,就会造成集群资源调度的不力,引发资源抢占、进程死锁的现象,基于此给出了一种资源调度方案,能够在分布式场景下,根据各局部节点所训练模型的重要程度合理调用不同的算法,并按需分配得到相应的计算资源,提高集群内资源的利用效率,避免集群内部的死锁。
接下来,给出了一种计算待训练的局部模型的重要度和分布式算法选择的实施例,详细描述如下:
在一个实施例中,计算待训练的局部模型的重要度,包括:确定待训练的局部模型和局部模型的差异,并计算差异的模长;根据模长和所有边缘节点对应的模长总和来计算待训练的局部模型的重要度。
在一个实施例中,根据重要度调用相应的分布式算法,包括:当重要度小于或等于预设阈值时,调用第一分布式算法;当重要度大于预设阈值时,调用第二分布式算法。
具体地,采用局部更新后模型与更新前模型的差的模长来表示待训练的局部模型的重要程度。假定各个边缘节点完成局部更新、将局部模型上传至中心服务器、并接收到中心服务器传回的聚合后的全局模型这一过程为一个通信轮次,用表示第t轮中边缘节点k的模型重要程度。用w来表示节点k在一个通信轮次中局部更新前的模型(实际就是拷贝的全局模型,即待训练的局部模型),用wk来表示局部更新后的模型(即局部模型),并得到Δwt,k=wk-w,代表第t轮中节点k局部更新前后网络模型的差异(Δwt,k是与w和wk维度相同的张量),然后通过计算其模长|Δwt,k|得到一个标量数据。很显然,当局部模型与全局模型之间的差异越大,即|Δwt,k|越大,说明该局部模型在被聚合时会带给全局模型更多的贡献,重要程度更高。因此可以得到第t轮中节点k的网络模型重要程度的计算方法:
其中nk是计算节点k的数据样本数量,Mt是第t轮中参与训练的所有节点。该计算公式表明,与全局模型之间差异越大的局部模型所在节点的的数值更大,且/>
在计算完各边缘节点的贡献值后,可以实时地为边缘节点分配训练所使用的算法。具体而言,每个边缘节点第一次参与训练都可以使用第一分布式算法,接着调度器会将各个边缘节点的重要性求平均得到参数λt,每次节点训练前调度器都会将/>与λt进行比较:当/>说明该局部模型能够给全局模型做出的贡献较小,继续使用第一分布式算法进行训练;反之,说明该局部模型的重要程度较高,可以改用第二分布式算法进行后续训练,得到性能较高的全局模型。
可选地,第一分布式算法可以是分布式学习中的模型聚合算法;第二分布式算法可以是缓解数据异构的分布式算法、基于局部漂移变量解耦和校正的分布式算法或新的缓解数据异构的分布式学习算法(即分布式算法实施例中的第二个到四个实施例中提到的分布式算法)。
进一步,给出了一种计算训练待训练的局部模型所需资源的实施例,详细描述如下:
在一个实施例中,计算训练待训练的局部模型所需资源,包括:查找与训练待训练的局部模型具有相同训练任务的历史训练任务对应的资源消耗值,以作为训练待训练的局部模型所需资源。
在一个实施例中,计算训练待训练的局部模型所需资源,还包括:当未查询到历史训练任务对应的资源消耗值时,以历史训练任务中采用第一分布式算法所资源消耗的平均值作为基础预估值;以第一分布式算法为基础,计算第二分布式算法所需的附加资源消耗值,以作为附加预估值;当训练待训练的局部模型使用第一分布式算法时,采用基础预估值作为所需资源;当训练待训练的局部模型使用第二分布式算法时,采用基础预估值与附加预估值之和作为所需资源。
具体地,对于边缘节点而言,资源通常是指网络带宽和显存容量。前者在各节点间传输信息时起到重要作用,后者负责存储各种模型及进行相关的模型计算。不同的分布式算法由于其复杂度和侧重点不同,在相同的环境下消耗的网络带宽和显存容量也不尽相同。通常来讲,为了缓解数据异构问题,复杂的算法会在局部训练时对模型做更多的处理,并因此造成更多的资源消耗。分布式学习中分布式学习中的模型聚合算法(即第一分布式算法)由于方法简单,消耗的计算资源较少。为了限制本地训练模型对全局模型的偏离,缓解数据异构的分布式算法在引入近端项后,虽然没有额外的网络带宽消耗,但在局部训练阶段为了进行相关修正,需要做更多的计算,相比于分布式学习中的模型聚合算法会增加1ρ的显存开销(ρ的具体数值与硬件参数相关);基于局部漂移变量解耦和校正的分布式算法为了缓解数据异构,利用本地漂移变量修正模型间的差异,因此增加了局部训练的复杂度,会相较于分布式学习中的模型聚合算法增加2ρ的显存开销,同时,边缘节点在与中心节点交换模型信息时,由于需要额外传输漂移变量,相同条件下会消耗2倍于分布式学习中的模型聚合算法的网络带宽。因此,为了让各边缘节点能够根据不同的算法、计算框架、硬件分配到相应的资源,需要对其所需的显存和网络带宽进行评估。对于每一个局部节点,每次使用不同的算法、不同的硬件(例如不同的GPU型号)处理不同的任务所消耗资源通常不尽相同,并且难以对将要进行的训练做出准确的资源开销计算。因此,为了估算完成当前局部训练所需要消耗的资源,可以使各边缘节点存储训练的历史信息,并加以利用。
让每一个边缘节点存储的历史时间段(例如最近10小时)的训练信息,其中每一条信息为一个三元组(T,A,H),分别为具体的任务类型、分布式算法、硬件类型。对于该节点接下来将要处理的任务,找到历史信息中与本次训练的任务(例如任务类型、分布式算法、硬件类型)相同的三元组(Ti,Ai,Hi),并计算该组合下单位时间的平均网络带宽消耗和平均显存消耗/>其中,下标i用来区分不同的三元组。上述平均值将作为该节点本轮训练的预估资源消耗值。
若某边缘节点没有历史时间段的训练信息,例如历史训练时间不足10小时,或没有与本次训练完全对应的三元组(Ti,Ai,Hi),则对该节点本次训练可能的资源消耗做理论估计,并动态调整。理论上,一次训练的资源开销由基础部分和附加部分组成。其中,基础部分是为进行训练所必需的资源开销量,同时,由于分布式学习中的模型聚合算法(即第一分布式算法)是最简单、消耗资源最少的,因此计算该节点历史信息中与分布式学习中的模型聚合算法(即第一分布式算法)相关的资源消耗的平均值,将所得带宽消耗δbase和显存消耗ζbase作为基础部分;而对于缓解数据异构的分布式算法和新的缓解数据异构的分布式算法,相比于分布式学习中的模型聚合算法(即第一分布式算法)分别多出了1ρ和2ρ的显存开销,因此得到的理论估计显存开销分别为δbase+ρ和ζbase+2ρ。除此之外,由于理论的估计无法保证足够的精准度,在本轮的训练开始后,根据当前节点的实时资源消耗量,每隔一段时间(例如20分钟)动态地更新当前节点的资源消耗情况,以尽可能地准确表示节点当前的资源需求。
最后,对各节点所需资源开销分配相应的资源。当上述方法所获得的资源消耗评估小于节点剩余资源量,则把节点相应的资源分配给当前任务。当剩余资源量不够,调度器就会考虑使用更轻便的算法(例如分布式学习中的模型聚合算法,即第一分布式算法)。为了防止资源泄露以及考虑到效率问题,会尽量将一个任务分配给在物理上相近的计算单元,例如一个机架内,一个节点内,一个GPU内,这点和常见的资源调度器相同,由于在实际的训练过程中,即使是在完全相同的环境下,节点每一次训练消耗的资源也不会完全相同,会在一个有限的范围内进行波动。而无论是计算历史均值法还是理论预估资源法,都无法保证得到稳定的资源开销预估值,会有一定的波动起伏。因此本申请实施例中会增加单个任务所分配的资源量,根据实时运行的情况动态减小这部分增加量。对于显存资源的判断与分配,其原理与网络带宽相同,这里便不再赘述。
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
上述本申请公开的实施例中详细描述了一种集群资源调度方法,对于本申请公开的上述方法可采用多种形式的设备实现,因此本申请还公开了对应上述方法的集群资源调度装置,下面给出具体的实施例进行详细说明。
请参阅图5,为本申请实施例公开的一种集群资源调度装置,集群包括一个中心节点和与中心节点相连接的各边缘节点;装置应用于各边缘节点,装置包括:
子数据集获取模块510,用于获取子数据集,其中子数据集中包括多个文本样本和/或图像样本;子数据集中文本样本和/或图像样本的类别分布与总数据集中文本样本和/或图像样本的类别分布一致。
模型接收模块520,用于接收中心节点广播的全局模型,以作为待训练的局部模型。
算法调用模块530,用于计算待训练的局部模型的重要度,根据重要度调用相应的分布式算法。
资源确定模块540,用于计算训练待训练的局部模型所需资源,并从资源池中请求所需资源。
模型训练模块550,用于在获得所需资源时,采用子数据集中文本样本和/或图像样本以及分布式算法来对待训练的局部模型进行模型训练,以得到局部模型。
模型更新模块560,用于将局部模型发送至中心节点;中心节点用于对接收到的各局部模型进行聚合,以更新全局模型。
最终模型获得模块570,用于重复执行接收中心节点广播的全局模型,模型训练以及将局部模型发送至中心节点,直至达到预设条件,以得到最终全局模型。
在一个实施例中,子数据集获取模块510,用于计算总数据集中每种类别样本的数量占样本总数量的比例;根据比例和子数据集的样本总量计算所需每种类别样本的数量;根据所需每种类别样本的数量按照比例抽样方法抽取相应的文本样本和/或图像样本,以形成子数据集。
在一个实施例中,分布式算法的损失函数包括距离损失函数;其中,距离损失函数的表达式为:
lss表示距离损失函数,μ表示更新目标和全局模型之间距离的超参数,wk表示第k个边缘节点对待训练的局部模型进行模型训练以得到局部模型;wloc表示第k个边缘节点的局部更新目标;wglo表示全局更新目标。
在一个实施例中,算法调用模块530,用于确定待训练的局部模型和局部模型的差异,并计算差异的模长;根据模长和所有边缘节点对应的模长总和来计算待训练的局部模型的重要度。
在一个实施例中,算法调用模块530,用于当重要度小于或等于预设阈值时,调用第一分布式算法;当重要度大于预设阈值时,调用第二分布式算法。
在一个实施例中,资源确定模块540,用于查找与训练待训练的局部模型具有相同训练任务的历史训练任务对应的资源消耗值,以作为训练待训练的局部模型所需资源。
在一个实施例中,资源确定模块540,用于当未查询到历史训练任务对应的资源消耗值时,以历史训练任务中采用第一分布式算法所资源消耗的平均值作为基础预估值;以第一分布式算法为基础,计算第二分布式算法所需的附加资源消耗值,以作为附加预估值;当训练待训练的局部模型使用第一分布式算法时,采用基础预估值作为所需资源;当训练待训练的局部模型使用第二分布式算法时,采用基础预估值与附加预估值之和作为所需资源。
关于集群资源调度装置的具体限定可以参见上文中对于方法的限定,在此不再赘述。上述装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于集群系统中的处理器中,也可以以软件形式存储于集群系统中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
请参考图6,图6其示出了本申请实施例提供的一种集群系统的结构框图。该集群系统包括一个中心节点和与中心节点相连接的各边缘节点;各边缘节点可以包括一个或多个如下部件:处理器62、存储器64以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器64中并被配置为由一个或多个处理器62执行,一个或多个应用程序配置用于执行上述应用于集群资源调度方法实施例中所描述的方法。
处理器62可以包括一个或者多个处理核。处理器62利用各种接口和线路连接整个集群系统60内的各个部分,通过运行或执行存储在存储器64内的指令、程序、代码集或指令集,以及调用存储在存储器64内的数据,执行集群系统60的各种功能和处理数据。可选地,处理器62可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器62可集成中央处理器(Central ProcessingUnit,CPU)、图形处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器62中,单独通过一块通信芯片进行实现。
存储器64可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器64可用于存储指令、程序、代码、代码集或指令集。存储器64可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储集群系统60在使用中所创建的数据等。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的集群系统的限定,具体的集群系统可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
综上,本申请实施例提供的集群系统用于实现前述方法实施例中相应的集群资源调度方法,并具有相应的方法实施例的有益效果,在此不再赘述。
请参阅图7,其示出了本申请实施例提供的一种计算机可读取存储介质的结构框图。该计算机可读取存储介质70中存储有程序代码,程序代码可被处理器调用执行上述集群资源调度方法实施例中所描述的方法。
计算机可读取存储介质70可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读取存储介质70包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读取存储介质70具有执行上述方法中的任何方法步骤的程序代码72的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码72可以例如以适当形式进行压缩。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种集群资源调度方法,其特征在于,所述集群包括一个中心节点和与所述中心节点相连接的各边缘节点;所述方法应用于各所述边缘节点,所述方法包括:
获取子数据集,其中所述子数据集中包括多个文本样本和/或图像样本;所述子数据集中文本样本和/或图像样本的类别分布与总数据集中文本样本和/或图像样本的类别分布一致;
接收所述中心节点广播的全局模型,以作为待训练的局部模型;
计算所述待训练的局部模型的重要度,根据所述重要度调用相应的分布式算法;
计算训练所述待训练的局部模型所需资源,并从资源池中请求所述所需资源;
在获得所述所需资源时,采用所述子数据集中文本样本和/或图像样本以及所述分布式算法来对所述待训练的局部模型进行模型训练,以得到局部模型;
将所述局部模型发送至所述中心节点;所述中心节点用于对接收到的各局部模型进行聚合,以更新所述全局模型;
重复执行接收所述中心节点广播的全局模型,模型训练以及将所述局部模型发送至所述中心节点,直至达到预设条件,以得到最终全局模型。
2.根据权利要求1所述的方法,其特征在于,所述获取子数据集,包括:
计算所述总数据集中每种类别样本的数量占样本总数量的比例;
根据所述比例和所述子数据集的样本总量计算所需每种类别样本的数量;
根据所需每种类别样本的数量按照比例抽样方法抽取相应的文本样本和/或图像样本,以形成所述子数据集。
3.根据权利要求1所述的方法,其特征在于,所述分布式算法的损失函数包括距离损失函数;其中,所述距离损失函数的表达式为:
lss表示距离损失函数,μ表示更新目标和全局模型之间距离的超参数,wk表示第k个边缘节点对所述待训练的局部模型进行模型训练以得到局部模型;wloc表示第k个边缘节点的局部更新目标;wglo表示全局更新目标。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述计算所述待训练的局部模型的重要度,包括:
确定所述待训练的局部模型和所述局部模型的差异,并计算所述差异的模长;
根据所述模长和所有边缘节点对应的模长总和来计算所述待训练的局部模型的重要度。
5.根据权利要求4所述的方法,其特征在于,所述根据所述重要度调用相应的分布式算法,包括:
当所述重要度小于或等于预设阈值时,调用第一分布式算法;
当所述重要度大于所述预设阈值时,调用第二分布式算法。
6.根据权利要求1-3任一项所述的方法,其特征在于,所述计算训练所述待训练的局部模型所需资源,包括:
查找与训练所述待训练的局部模型具有相同训练任务的历史训练任务对应的资源消耗值,以作为训练所述待训练的局部模型所需资源。
7.根据权利要求6所述的方法,其特征在于,所述计算训练所述待训练的局部模型所需资源,还包括:
当未查询到历史训练任务对应的资源消耗值时,以历史训练任务中采用第一分布式算法所资源消耗的平均值作为基础预估值;
以所述第一分布式算法为基础,计算第二分布式算法所需的附加资源消耗值,以作为附加预估值;
当训练待训练的局部模型使用第一分布式算法时,采用所述基础预估值作为所需资源;
当训练待训练的局部模型使用第二分布式算法时,采用所述基础预估值与所述附加预估值之和作为所需资源。
8.一种集群资源调度装置,其特征在于,所述集群包括一个中心节点和与所述中心节点相连接的各边缘节点;所述装置应用于各所述边缘节点,所述装置包括:
子数据集获取模块,用于获取子数据集,其中所述子数据集中包括多个文本样本和/或图像样本;所述子数据集中文本样本和/或图像样本的类别分布与总数据集中文本样本和/或图像样本的类别分布一致;
模型接收模块,用于接收所述中心节点广播的全局模型,以作为待训练的局部模型;
算法调用模块,用于计算所述待训练的局部模型的重要度,根据所述重要度调用相应的分布式算法;
资源确定模块,用于计算训练所述待训练的局部模型所需资源,并从资源池中请求所述所需资源;
模型训练模块,用于在获得所述所需资源时,采用所述子数据集中文本样本和/或图像样本以及所述分布式算法来对所述待训练的局部模型进行模型训练,以得到局部模型;
模型更新模块,用于将所述局部模型发送至所述中心节点;所述中心节点用于对接收到的各局部模型进行聚合,以更新所述全局模型;
最终模型获得模块,用于重复执行接收所述中心节点广播的全局模型,模型训练以及将所述局部模型发送至所述中心节点,直至达到预设条件,以得到最终全局模型。
9.一种集群系统,其特征在于,包括一个中心节点和与所述中心节点相连接的各边缘节点;各所述边缘节点包括:
存储器;一个或多个处理器,与所述存储器耦接;一个或多个应用程序,其中,一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个应用程序配置用于执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310582410.0A CN116684420A (zh) | 2023-05-22 | 2023-05-22 | 集群资源调度方法、装置、集群系统和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310582410.0A CN116684420A (zh) | 2023-05-22 | 2023-05-22 | 集群资源调度方法、装置、集群系统和可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116684420A true CN116684420A (zh) | 2023-09-01 |
Family
ID=87777946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310582410.0A Pending CN116684420A (zh) | 2023-05-22 | 2023-05-22 | 集群资源调度方法、装置、集群系统和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116684420A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117215799A (zh) * | 2023-11-03 | 2023-12-12 | 天津市职业大学 | 一种软件模块的管理方法、系统、计算机设备及存储介质 |
CN117687800A (zh) * | 2024-02-02 | 2024-03-12 | 山东海量信息技术研究院 | 一种跨域分布式计算方法、系统、存储介质和电子设备 |
-
2023
- 2023-05-22 CN CN202310582410.0A patent/CN116684420A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117215799A (zh) * | 2023-11-03 | 2023-12-12 | 天津市职业大学 | 一种软件模块的管理方法、系统、计算机设备及存储介质 |
CN117687800A (zh) * | 2024-02-02 | 2024-03-12 | 山东海量信息技术研究院 | 一种跨域分布式计算方法、系统、存储介质和电子设备 |
CN117687800B (zh) * | 2024-02-02 | 2024-05-03 | 山东海量信息技术研究院 | 一种跨域分布式计算方法、系统、存储介质和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yang et al. | A framework for partitioning and execution of data stream applications in mobile cloud computing | |
CN109993299B (zh) | 数据训练方法及装置、存储介质、电子装置 | |
CN110262901B (zh) | 一种数据处理方法及数据处理系统 | |
CN116684420A (zh) | 集群资源调度方法、装置、集群系统和可读存储介质 | |
CN110619595A (zh) | 一种基于多fpga加速器互联的图计算优化方法 | |
US9563474B2 (en) | Methods for managing threads within an application and devices thereof | |
CN111381950A (zh) | 一种面向边缘计算环境基于多副本的任务调度方法和系统 | |
US11055139B2 (en) | Smart accelerator allocation and reclamation for deep learning jobs in a computing cluster | |
CN112181613B (zh) | 异构资源分布式计算平台批量任务调度方法及存储介质 | |
CN114787830A (zh) | 异构集群中的机器学习工作负载编排 | |
Chen et al. | Towards performance-centric fairness in datacenter networks | |
CN114610474A (zh) | 一种异构超算环境下多策略的作业调度方法及系统 | |
CN112162861A (zh) | 线程分配方法、装置、计算机设备及存储介质 | |
Wu et al. | Using hybrid MPI and OpenMP programming to optimize communications in parallel loop self-scheduling schemes for multicore PC clusters | |
CN110167031B (zh) | 一种面向集中式基站的资源分配方法、设备及存储介质 | |
US20210390405A1 (en) | Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof | |
CN109840306B (zh) | 一种基于递归的并行快速傅里叶变换通信优化方法和系统 | |
CN112612613B (zh) | 用于在虚拟分布式异构环境下实现多gpu调度的方法和系统 | |
CN112232401A (zh) | 一种基于差分隐私及随机梯度下降的数据分类方法 | |
Yassir et al. | Graph-based model and algorithm for minimising big data movement in a cloud environment | |
CN116010051A (zh) | 一种联邦学习多任务调度方法及装置 | |
Ghazali et al. | CLQLMRS: improving cache locality in MapReduce job scheduling using Q-learning | |
CN110415162B (zh) | 大数据中面向异构融合处理器的自适应图划分方法 | |
CN110928683B (zh) | 基于两类密集型虚拟机的边缘计算资源分配方法 | |
CN103514042A (zh) | 一种双调归并排序调优方法及装置 |
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 |