CN115408151A - 一种联邦学习训练加速方法 - Google Patents
一种联邦学习训练加速方法 Download PDFInfo
- Publication number
- CN115408151A CN115408151A CN202211014211.1A CN202211014211A CN115408151A CN 115408151 A CN115408151 A CN 115408151A CN 202211014211 A CN202211014211 A CN 202211014211A CN 115408151 A CN115408151 A CN 115408151A
- Authority
- CN
- China
- Prior art keywords
- model
- training
- edge
- edge server
- model parameters
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/502—Proximity
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种联邦学习训练加速方法。该方法包括:边缘设备根据初始模型参数构建局部模型,根据动态分层决策算法计算获得边缘设备与边缘服务器的训练任务;边缘设备和边缘服务器根据训练任务分别构建前端模型和后端模型,协同训练前端模型和后端模型,获得局部模型参数发送至边缘服务器;边缘服务器根据各个边缘设备发送的局部模型参数进行中间聚合,获得中间模型参数并发送至中心云;中心云根据各个边缘服务端发送的中间模型参数更新全局模型,并将更新后的全局模型的模型参数发送至各个边缘服务器,迭代更新全局模型直至全局模型收敛。本发明的有益效果:保证联邦学习训练准确度的同时,提高联邦学习训练效率。
Description
技术领域
本发明涉及物联网技术领域,具体而言,涉及一种联邦学习训练加速方法。
背景技术
随着大数据时代的到来,数据隐私受到越来越多的重视,用户不愿意将敏感数据上传到云服务器中。在此背景下,联邦学习被提出用于解决数据安全问题。联邦学习是一种能够进行隐私保护的分布式人工智能技术,将运算下沉到边缘设备上,由边缘设备负责数据存储和边缘模型的计算,客户端只需要上传边缘模型的梯度等相关信息,中心服务器则基于客户端上产生的边缘梯度,更新全局模型。联邦学习使边缘设备能够在本地存储敏感数据的同时,相互协同构建全局模型。
但随着数据的增多,人们对联邦学习的训练效率逐渐增加。目前,主要采取3种方法以提升联邦学习训练效率:1、针对联邦学习中的通信开销进行优化,客户端仅需要将本地得到的部分更新上传到中心服务器,而不需要上传全部的模型;2、通过对设备的选择,减轻同步聚合算法中的掉队者问题,比如采用基于贪心的协议机制,通过奖励值来选择得分最高的客户端进行聚合;3、通过异步聚合算法减少等待时间,提高训练效率,所谓异步聚合算法就是每个设备在上传本地模型后,中心节点会立即根据设备的参数进行聚合,而不会等待其他设备执行完毕,其优点是可以减少设备的同步等待时间。但由于联邦学习存在的边缘设备的异构问题、边缘网络环境不稳定问题,利用上述方法进行联邦学习训练会导致准确率降低和训练效率的不确定性,并不能有效提高联邦学习的训练效率。
发明内容
本发明解决的问题是如何在保证联邦学习训练准确度的同时,提高训练效率。
为解决上述问题,本发明提供一种联邦学习训练加速方法,包括如下步骤:
步骤S100、中心云构建全局模型及所述全局模型对应的初始模型参数,将所述初始模型参数发送至边缘服务器。
步骤S200、所述边缘服务器接收所述初始模型参数,并将所述始模型参数发送至边缘设备。
步骤S300、所述边缘设备根据所述初始模型参数构建局部模型,根据动态分层决策算法计算获得所述边缘设备与所述边缘服务器的训练任务,其中,所述训练任务为所述局部模型的分层比例。
步骤S400、所述边缘设备和所述边缘服务器根据所述训练任务分别构建前端模型和后端模型,所述边缘设备和所述边缘服务器根据数据集协同训练所述前端模型和所述后端模型,获得局部模型参数,将所述局部模型参数发送至所述边缘服务器。
步骤S500、所述边缘服务器根据各个所述边缘设备发送的所述局部模型参数进行中间聚合,获得中间模型参数,并将所述中间模型参数发送至中心云。
步骤S600、所述中心云根据各个所述边缘服务端发送的所述中间模型参数更新所述全局模型,并将更新后的所述全局模型的模型参数发送至各个所述边缘服务器,返回执行所述边缘服务器向所述边缘设备发送所述模型参数的步骤,迭代更新所述全局模型直至所述全局模型收敛。
由此,中心云首先初始化,并构建全局模型及全局模型对应的初始模型参数,设定联邦学习训练的目的与任务。将初始模型参数发送至边缘服务器,边缘服务器接收初始模型参数,并将始模型参数发送至边缘设备,保证异常检测模型构建过程的正常运行。边缘设备根据初始模型参数构建局部模型,根据动态分层决策算法计算获得边缘设备与边缘服务器的训练任务,其中,训练任务为局部模型的分层比例,采用分层训练的方法,可以有效解决边缘设备资源异构问题,为经典联邦学习中存在的边缘设备计算能力不足的问题提供解决方案,同时采用动态分层决策算法,可以实时监测并计算边缘设备和边缘服务器的分层训练任务,若发现异常情况或训练效率较低时可以进行及时的自适应调整,针对具体云边环境给出分层的决策,以适应多变的云边环境。边缘设备和边缘服务器根据训练任务分别构建前端模型和后端模型,边缘设备和边缘服务器根据数据集协同训练前端模型和后端模型,获得局部模型参数,通过合理的分层训练任务构建前端模型与后端模型,并进行协同训练,由于后端模型的部分模型参数部署在边缘服务端,可在一定程度上可以减少网络传输,保证较少网络开销,同时,提高边缘设备的计算速度与计算准确度。边缘服务器根据各个边缘设备发送的局部模型参数进行中间聚合,获得中间模型参数,采用两阶段聚合法,利用边缘服务器进行首次模型参数的聚合,以减少中心云模型聚合的计算压力,增加计算准确度,同时减少向中心云节点传输的数据量,降低网络拥塞的概率。中心云根据各个边缘服务端发送的中间模型参数更新全局模型,并将更新后的全局模型的模型参数发送至各个边缘服务器,返回执行边缘服务器向边缘设备发送模型参数的步骤,迭代更新全局模型直至全局模型收敛,获得训练完成的全局模型,利用边缘服务器聚合后的中心模型参数再次进行全局模型的聚合更新,有效减少了全局模型迭代更新的次数。采用两阶段聚合法,分别在边缘服务器和中心云进行模型参数的聚合计算,避免了边缘设备直接利用广域网频繁与中心云进行通信导致的数据传输不稳定、网络通道传输拥挤的问题,并有效提升了模型参数的计算准确率,减少了中心云的计算压力,进而提升联邦学习中模型训练的效率及准确度。
可选地,所述根据动态分层决策算法计算获得所述边缘设备与所述边缘服务器的训练任务包括:
获取所述边缘设备中所述局部模型的单条样本的平均训练时间,比较所述单条样本的平均训练时间与历史平均训练时间,若所述单条样本的平均训练时间大于所述历史平均训练时间的预设倍数,且持续预设次数,则根据动态分层决策算法,重新计算获得所述边缘设备与所述边缘服务器的训练任务。
可选地,所述根据动态分层决策算法,重新计算获得所述边缘设备与所述边缘服务器的训练任务包括:
获取所述边缘设备的状态信息,根据所述状态信息,利用基于强化学习的动态分层策略计算获得所述边缘设备与所述边缘服务器下一时刻的所述训练任务,其中,所述状态信息包括单轮所述边缘设备训练中训练总时间、所述边缘设备的训练时间、网络传输时间、所述边缘服务器训练时间占总训练时间的比例和该时刻训练分层策略。
可选地,所述所述边缘设备和所述边缘服务器根据所述训练任务分别构建前端模型和后端模型,所述边缘设备和所述边缘服务器根据数据集协同训练所述前端模型和所述后端模型,获得局部模型参数包括:
所述边缘设备根据所述训练任务对所述局部模型进行分层处理,构建所述前端模型,并将分层处理后的所述局部模型发送至所述边缘服务器,其中,所述边缘服务器根据分层处理后的所述局部模型构建所述后端模型;
所述边缘设备根据所述数据集训练所述前端模型,获得中间结果,并将所述中间结果发送至所述边缘服务器,其中,所述边缘服务器根据所述中间结果训练所述后端模型,获得梯度,并将所述梯度发送至所述所述边缘设备;
所述边缘设备根据所述梯度训练所述前端模型,获得局部模型参数。
可选地,在所述边缘服务器根据所述中间结果训练所述后端模型之前,还包括:
根据预设的打分机制对各个所述训练任务进行打分,根据打分结果由大至小的顺序对各个所述训练任务进行排序,设置优先队列;
根据所述优先队列,利用GPU对所述后端模型进行逐个训练。
可选地,所述根据所述优先队列,利用GPU对所述后端模型进行逐个训练包括:
当所述GPU显存不足时,将所述优先队列中剩余的所述后端模型调度到CPU进行训练;
当所述GPU中所述后端模型训练完成后,利用Watch机制通知所述CPU,将所述CPU中的所述后端模型调度到所述GPU中进行训练。
可选地,所述所述边缘设备和所述边缘服务器根据数据集协同训练所述前端模型和所述后端模型,获得局部模型参数包括:
所述边缘设备根据设备损失率计算设备训练次数,所述边缘设备和所述边缘服务器根据所述设备训练次数协同训练所述前端模型与所述后端模型,获得所述局部模型参数,并计算获得设备训练时间,将所述设备训练时间和所述局部模型参数发送至所述边缘服务器,其中,所述设备损失率由所述中心云初始化预设获得,并将所述设备损失率发送至所述边缘服务器,所述边缘服务器将所述设备损失率发送至所述边缘设备。
可选地,所述边缘服务器根据各个所述边缘设备发送的所述局部模型参数进行中间聚合,获得中间模型参数还包括:
所述边缘服务器根据服务器损失率计算中间聚合次数,根据各个所述局部模型参数和所述中间聚合次数进行中间聚合,获得所述中间模型参数,并计算获得中间聚合时间,并将所述中间模型参数和所述中间聚合时间发送至所述中心云,其中,所述服务器损失率由所述中心云初始化预设获得。
可选地,所述所述中心云根据各个所述边缘服务端发送的所述中间模型参数更新所述全局模型,并将更新后的所述全局模型的模型参数发送至各个所述边缘服务器,返回执行所述边缘服务器向所述边缘设备发送所述模型参数的步骤,迭代更新所述全局模型直至所述全局模型收敛包括:
所述中心云根据各个所述边缘服务器发送的所述中间模型参数更新所述全局模型,并根据所述中间聚合时间计算聚合总时间,根据所述聚合总时间,计算最优所述设备损失率和最优所述服务器损失率,并将更新后的所述全局模型的模型参数、最优所述设备损失率和最优所述服务器损失率发送至各个所述边缘服务器,返回执行所述边缘服务器将所述设备损失率发送至所述边缘设备的步骤,迭代更新所述全局模型直至所述全局模型收敛。
可选地,所述根据所述聚合总时间,计算最优所述设备损失率和最优所述服务器损失率包括:
根据所述聚合总时间、所述设备损失率和所述服务器损失率构建组合优化问题;
利用模拟退火算法迭代求解所述组合优化问题,获得最优所述设备损失率和最优所述服务器损失率。
附图说明
图1为本发明实施例的联邦学习训练加速方法的流程示意图一;
图2为本发明实施例的计算资源分配策略示意图;
图3为本发明实施例的联邦学习训练加速方法的流程示意图而二;
图4为本发明实施例的k1=2且k2=2时两阶段聚合原理图;
图5为本发明实施例的模拟退火算法流程示意图;
图6为本发明实施例的云边新联平台层级架构示意图;
图7为本发明实施例的联邦学习组件结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
参照图1所示,本发明实施例的一种联邦学习训练加速方法,包括:
步骤S100、中心云构建全局模型及所述全局模型对应的初始模型参数,将所述初始模型参数发送至边缘服务器。
具体地,中心云进行初始化,确认模型训练的任务和目标,中心云可采用神经网络模型构建初始的全局模型,例如Frontend模型、TCN模型等,并获取对应的全局模型参数,将对应的初始化模型参数广播给所有的参与联邦学习模型训练的边缘服务器。中心云与边缘服务器通过例如蓝牙、无线局域网等方式连接,以实现数据的高效传输。
步骤S200、所述边缘服务器接收所述初始模型参数,并将所述始模型参数发送至边缘设备。
具体地,在云边场景中,边缘设备作为参与方,分散在各地,所以聚合节点往往需要部署在具有公网环境的远程数据中心中。边缘设备到聚合服务器之间的通信需要经过广域网(WAN),带来了传输时延与网络稳定性等问题,不利于进行有效的聚合。而边缘服务器部署在距离边缘设备较近的地方,为边缘设备提供部分服务。边缘服务器与边缘设备之间通过高速局域网进行连接,以实现高效的任务卸载和低时延服务。高速局域网具有较高的传输速率、高可靠性和安全性,可以有效提高数据传输的安全性及稳定性,增加联邦学习训练效率。
步骤S300、所述边缘设备根据所述初始模型参数构建局部模型,根据动态分层决策算法计算获得所述边缘设备与所述边缘服务器的训练任务,其中,所述训练任务为所述局部模型的分层比例。
具体地,边缘设备接收边缘服务器转发的全局模型的初始模型参数,并根据初始模型参数构建与全局模型对应的局部模型。在经典的联邦学习中,由于数据数量的逐渐增加,导致出现边缘设备计算能力不足的问题,影响联邦学习的计算效率,因此,本发明实施例采用基于强化学习的动态分层决策算法(DDPG-SL算法),首先利用强化学习算法定义一个比值表示t时刻设备ck上部署模型的计算量占比(即Frontend模型的工作量占整个模型工作量的比例),这个值在0到1之间,这个值不能取到0,因为数据不可以移动,所以边缘设备上至少要保留一层神经网络,不能全部转移到边缘服务器e上;如果这个值为1,则表明所有的训练都是在设备ck上执行的,即这个比值表示当前神经网络的分层训练任务,并根据该训练任务进行训练,其次实时监测并计算边缘设备和边缘服务器的训练任务,即采用分层训练的方式,将完整的模型训练任务按照神经网络层为单位拆分为前端和后端两部分,分别部署在设备侧和边缘服务器侧,充分利用联邦学习的数据并行特点以及分层训练中模型并行的特点,从而实现高效的混合并行训练方案。根据DDPG-SL算法可实时监测边缘设备和边缘服务器的训练任务是否满足此时联邦学习训练要求,若出现异常或效率较低时可以进行及时的自适应调整。
步骤S400、所述边缘设备和所述边缘服务器根据所述训练任务分别构建前端模型和后端模型,所述边缘设备和所述边缘服务器根据数据集协同训练所述前端模型和所述后端模型,获得局部模型参数,将所述局部模型参数发送至所述边缘服务器。
具体地,根据DDPG-SL算法计算获取的训练任务,在边缘设备上构建前端模型、在边缘设备上构建后端模型。边缘设备通过无线通信获取物联网设备发送的数据,构建数据集,用于进行联邦学习训练。由于边缘设备中的数据无法进行移动,因此,位于边缘设备的前端模型与位于边缘服务器的后端模型进行协同训练,前端模型根据数据集进行训练,将训练获取的结果发送至边缘服务器进行后端模型的训练,获得训练结果后返回前端模型,前端模型根据后端模型的训练结果进行训练,最终获得完整的局部模型参数,边缘设备将局部模型参数发送至边缘服务器,进行模型聚合步骤。
步骤S500、所述边缘服务器根据各个所述边缘设备发送的所述局部模型参数进行中间聚合,获得中间模型参数,并将所述中间模型参数发送至中心云。
具体地,边缘服务器接收各个边缘设备训练完毕后发送的局部模型参数,边缘服务器可利用FedAVG聚合等聚合算法进行模型聚合,获得中间模型参数,避免产生数据孤岛问题。将中间模型参数发送至中心云进行全局模型的聚合。
步骤S600、所述中心云根据各个所述边缘服务端发送的所述中间模型参数更新所述全局模型,并将更新后的所述全局模型的模型参数发送至各个所述边缘服务器,返回执行所述边缘服务器向所述边缘设备发送所述模型参数的步骤,迭代更新所述全局模型直至所述全局模型收敛。
具体地,中心云接收多个边缘服务器发送的中间模型参数,将中间模型参数进行计算处理,例如平均值计算等方法,获得最优模型参数,根据最优模型参数更新全局模型,而后将最优模型参数发送至各个所述边缘服务器,返回步骤S200至步骤S500,迭代获取局部模型参数、中间模型参数对全局模型进行迭代更新,直至全局模型收敛,获得训练完成后的全局模型。
本实施例中,中心云首先初始化,并构建全局模型及全局模型对应的初始模型参数,设定联邦学习训练的目的与任务。将初始模型参数发送至边缘服务器,边缘服务器接收初始模型参数,并将始模型参数发送至边缘设备,保证异常检测模型构建过程的正常运行。边缘设备根据初始模型参数构建局部模型,根据动态分层决策算法计算获得边缘设备与边缘服务器的训练任务,其中,训练任务为局部模型的分层比例,采用分层训练的方法,可以有效解决边缘设备资源异构问题,为经典联邦学习中存在的边缘设备计算能力不足的问题提供解决方案,同时采用动态分层决策算法,可以实时监测并计算边缘设备和边缘服务器的分层训练任务,若发现异常情况或训练效率较低时可以进行及时的自适应调整,针对具体云边环境给出分层的决策,以适应多变的云边环境。边缘设备和边缘服务器根据训练任务分别构建前端模型和后端模型,边缘设备和边缘服务器根据数据集协同训练前端模型和后端模型,获得局部模型参数,通过合理的分层训练任务构建前端模型与后端模型,并进行协同训练,由于后端模型的部分模型参数部署在边缘服务端,可在一定程度上可以减少网络传输,保证较少网络开销,同时,提高边缘设备的计算速度与计算准确度。边缘服务器根据各个边缘设备发送的局部模型参数进行中间聚合,获得中间模型参数,采用两阶段聚合法,利用边缘服务器进行首次模型参数的聚合,以减少中心云模型聚合的计算压力,增加计算准确度,同时减少向中心云节点传输的数据量,降低网络拥塞的概率。中心云根据各个边缘服务端发送的中间模型参数更新全局模型,并将更新后的全局模型的模型参数发送至各个边缘服务器,返回执行边缘服务器向边缘设备发送模型参数的步骤,迭代更新全局模型直至全局模型收敛,获得训练完成的全局模型,利用边缘服务器聚合后的中心模型参数再次进行全局模型的聚合更新,有效减少了全局模型迭代更新的次数。采用两阶段聚合法,分别在边缘服务器和中心云进行模型参数的聚合计算,避免了边缘设备直接利用广域网频繁与中心云进行通信导致的数据传输不稳定、网络通道传输拥挤的问题,并有效提升了模型参数的计算准确率,减少了中心云的计算压力,进而提升联邦学习中模型训练的效率及准确度。
可选地,所述根据动态分层决策算法计算获得所述边缘设备与所述边缘服务器的训练任务包括:
获取所述边缘设备中所述局部模型的单条样本的平均训练时间,比较所述单条样本的平均训练时间与历史平均训练时间,若所述单条样本的平均训练时间大于所述历史平均训练时间的预设倍数,且持续预设次数,则根据动态分层决策算法,重新计算获得所述边缘设备与所述边缘服务器的训练任务。
具体地,在进行多轮的迭代训练后,动态分层决策算法对训练过程进行超时次判断,以判断此时进行训练的分层训练任务是否满足联邦学习训练要求、是否需要重新计算分层训练任务。实时获取边缘设备中局部模型的单条样本的训练时间(即在某个边缘设备上训练一个样本数据的时间)和历史平均训练时间,将单条样本的训练时间与历史的平均训练时间进行比较,若单条样本的平均训练时间大于历史平均训练时间的预设倍数,且持续预设次数,则判断此时进行训练的分层训练任务存在异常,不满足联邦学习训练要求,则此时重新根据动态分层决策算法计算新的分层训练任务进行联邦学习的模型训练。例如,设定预设倍数为2倍,预设次数为5次,则单条样本的平均训练时间大于历史平均训练时间的2倍,且持续5次,此时需重新根据动态分层决策算法计算新的分层训练任务进行联邦学习的模型训练,进一步地,可以想到,单条样本的平均训练时间小于历史平均训练时间的2倍,或单条样本的平均训练时间大于历史平均训练时间的2倍,未达到5次,则继续对训练过程进行实时监测,以便进行及时的调整。
本实施例中,设定预设倍数与预设次数,采用局部模型的单条样本的平均训练时间最为条件,比较此时单条样本的训练时间与历史训练时间,对是否进行动态分层决策进行判断,同时满足预设倍数与预设次数时进行动态分层策略,粗粒度的控制了动态分层的频率,避免频繁进行动态分层导致分层本身成为一个瓶颈。
可选地,所述根据动态分层决策算法,重新计算获得所述边缘设备与所述边缘服务器的训练任务包括:
获取所述边缘设备的状态信息,根据所述状态信息,利用基于强化学习的动态分层策略计算获得所述边缘设备与所述边缘服务器下一时刻的所述训练任务,其中,所述状态信息包括单轮所述边缘设备训练中训练总时间、所述边缘设备的训练时间、网络传输时间、所述边缘服务器训练时间占总训练时间的比例和该时刻训练分层策略。
具体地,判断分层训练任务不能满足联邦学习训练要求后,获取对应边缘设备的状态信息,其中状态信息利用公式(1)表示:
其中,k表示设备,t表示迭代轮数,表示设备k在t轮的训练状态,表示t轮本地训练中设备k的训练总时间,表示边缘设备k的t轮的训练时间(即前端模型t轮的训练时间),表示网络传输时间,表示边缘服务器t轮的训练时间(即后端模型t轮的训练时间)占总训练时间的比例,表示t轮训练中分层训练任务。
在联邦学习训练中,每个边缘设备都需要获得最适合自身的分层策略,例如DRL算法需要得到与边缘设备数量相同维度的动作,即训练任务,但是边缘设备数量在每次进行联邦学习时可能是不同的,用户也会根据实际的场景为设备选择最合适的边缘服务器进行分层训练,这会导致例如DRL算法的输出维度是大小不定的,进而无法实现准确的模型分层。而本发明实施例中,根据每一个边缘设备的状态信息各利用动态分层算法进行一次分层计算,来获取其最佳的分层训练任务,如公式(2)所示:
其中,和表示动作为t+1时刻的分层策略。每次算法运行只这对一个边缘设备输出一个动作,即训练任务,对边缘设备进行针对性训练,使得本发明实施例的联邦学习训练加速方法可以应用于不同的神经网络,提高应用广泛性。
本实施例中,根据边缘设备的状态信息,利用动态分层策略针对性的计算出每一个边缘设备最适合的分层训练任务,有效避免了由于每次进行联邦学习时边缘设备数量不同,无法精准计算分层训练任务导致联邦学习训练准确度和效率降低,有效提升联邦学习训练的准确性和训练效率,并提高了联邦学习模型训练的适用性。
可选地,所述所述边缘设备和所述边缘服务器根据所述训练任务分别构建前端模型和后端模型,所述边缘设备和所述边缘服务器根据数据集协同训练所述前端模型和所述后端模型,获得局部模型参数包括:
所述边缘设备根据所述训练任务对所述局部模型进行分层处理,构建所述前端模型,并将分层处理后的所述局部模型发送至所述边缘服务器,其中,所述边缘服务器根据分层处理后的所述局部模型构建所述后端模型。
具体地,边缘设备接收训练任务,根据训练任务对边缘设备中的局部模型进行分层,保留前端部分,在边缘设备上构建前端模型,并将局部模型分层处理后的后端部分发送至边缘服务器构建后端模型。
所述边缘设备根据所述数据集训练所述前端模型,获得中间结果,并将所述中间结果发送至所述边缘服务器,其中,所述边缘服务器根据所述中间结果训练所述后端模型,获得梯度,并将所述梯度发送至所述所述边缘设备。
具体地,根据获取的数据集对前端模型进行训练,即对前端模型进行前向传播,获得中间结果,并将中间结果发送给边缘服务器,利用中间结果训练后端模型,对后端模型进行前向传播和反向传播,获取后端模型的后端模型参数和梯度,并将梯度发送至边缘设备。
所述边缘设备根据所述梯度训练所述前端模型,获得局部模型参数。
具体地,根据边缘服务器发送的梯度对前端模型进行反向传播,获得前端模型参数,用以发送至边缘设备进行聚合。
本实施例中,充分利用边缘服务器,分别在边缘设备和边缘服务器上构建前端模型和后端模型,并进行协同训练,利用联邦学习的数据并行特点以及分层训练中模型并行的特点,从而实现高效的训练方案,同时,后端模型训练后可将对应的模型参数保存在边缘服务器中,可以减少边缘设备与边缘服务器之间的数据传输,减少由于边缘设备与边缘服务器之间广域网不稳定导致的数据漏传或传输错误等问题,减少网络拥挤问题,有效提升了局部模型的训练效率及准确性。
可选地,在所述边缘服务器根据所述中间结果训练所述后端模型之前,还包括:
根据预设的打分机制对各个所述训练任务进行打分,根据打分结果由大至小的顺序对各个所述训练任务进行排序,设置优先队列。
根据所述优先队列,利用GPU对所述后端模型进行逐个训练。
可选地,所述根据所述优先队列,利用GPU对所述后端模型进行逐个训练包括:
当所述GPU显存不足时,将所述优先队列中剩余的所述后端模型调度到CPU进行训练。
当所述GPU中所述后端模型训练完成后,利用Watch机制通知所述CPU,将所述CPU中的所述后端模型调度到所述GPU中进行训练。
具体地,在边缘服务器接收后端模型的训练任务后,需要将后端模型调度到GPU上进行计算。为了最大化的利用边缘服务器上的现有资源,一个边缘服务器需要为多个边缘设备提供给分层卸载服务,但边缘服务器的资源是有限的,特别是GPU资源,当显存不足时,无法将后端模型放置到GPU上训练。虽然可以在联邦学习任务部署阶段,为边缘服务器选择合理的服务设备数,但是边缘服务器上可能会存在一些临时任务,这些临时任务抢占了GPU等计算资源,所以为了保证分层训练能够顺利的运行,本发明实施例提出了利用打分机制进行资源分配,通过对分层训练任务进行打分,按照分值对训练任务进行排序,并依次调度到GPU上执行,当出现GPU资源紧缺时,则将其调度到CPU上执行。利用公式(3)表示分层训练任务打分机制:
如图2所示,获取各边缘设备的分层训练任务,根据公式(3)对各分层训练任务进行打分,根据打分结果,从大至小对分层训练任务进行排列,构建优先队列,在需要进行分层训练时,从优先队列的首部取出对应的后端模型,建立相应的工作线程来以提供训练能力。另外地,该分值表示如果将后端模型放置到边缘服务器上训练预计需要多长时间。这个时间越大说明该边缘设备越有可能成为掉队者,应该优先使用GPU来进行加速,除此之外需要将上一轮的掉队者k′的得分scorek′置为无穷大,用于保证上一轮的掉队者一定排在队列的队首,确保其可以优先获得GPU资源,从而进一步降低掉队者问题的影响。
进一步地,当捕获GPU显存不足或显示异常等情况,将优先队列中剩余的任务(即后端模型)调度到CPU上执行。但是由于GPU的执行速度远超CPU的执行速度,为了充分利用GPU资源,本发明实施例利用Watch机制,当GPU中的任务训练完成,通过watch机制告诉在CPU上运行的任务GPU现在有空闲,这样在CPU上运行的任务就可以放到GPU中训练,提高GPU的利用率。当然大多数情况下,通过合理布局,边缘服务器可以将所有的后端模型加载到GPU上。
本实施例中,利用打分机制对训练任务进行打分,并根据打分结果将训练任务进行排序后构建优先队列,根据优先队列对后端模型进行顺序训练,可以有效降低掉队者问题的影响,同时将GPU资源紧缺时的训练任务按顺序调度到CPU上执行,有效减缓GPU运行压力,在GPU资源紧缺时也可同步进行模型训练。利用watch机制,当GPU资源空闲时,及时将CPU上的资源调度到GPU上执行,提高GPU的整体利用能力和训练任务的执行效率。
对于两阶段聚合方案,需要说明的是,如图3所示,两阶段聚合架构打破了联邦学习聚合过程中的单一中心架构,按照区域将边缘设备划分给不同的边缘服务器,当边缘设备经过若干轮本地模型训练后,会将边缘设备的局部模型参数传递给其所对应的边缘服务器,由边缘服务器对下属所有的边缘设备的局部参数进行中间聚合得到边缘服务器级别的中间参数,随后将中间聚合参数重新下发给边缘设备。经过若干轮中间聚合后,再将边缘服务器的中间模型传递给中心云,由中心云完成全局聚合。
为了更好的理解两阶段聚合过程,首先对经典联邦学习的聚合过程进行一些定义。假设整个联邦学习的训练数据集为D={(xj,yj)|j=1,...,|D|},其中,|D|表示全体数据集的样本数量,xj为第j条样本,yj为样本j对应的标签。假设共有N个边缘设备参与聚合,边缘设备k上的本地数据量为Dk(Dk∈D),边缘设备本地模型的经验损失利用公式(4)表示:
其中,F(wk)表示边缘设备k本地模型的经验损失,Dk表示边缘设备k上的本地数据量,fj(wk)表示模型的损失函数。
对于模型参数更新,采用梯度下降算法,参数更新利用公式(5)表示:
在中心云处,需要将来自N个设备的参数进行聚合,但其所进行的并不是梯度下降,而是加权平均。全局经验损失是不能够直接进行计算的,同理将各个边缘设备经验损失的加权平均值作为全局经验损失的表示。分别利用公式(6)和公式(7)表示全局模型参数和全局经验损失:
其中,w为全局模型参数,在本地模型每次训练开始时,会使得wk=w,N表示边缘设备数量,Dk表示边缘设备k上的本地数据量,|D|表示全体数据集的样本数量,F(w)为全局经验损失,F(wk)表示边缘设备k本地模型的经验损失。
而为了更好的利用边缘计算的架构优势,同时降低边缘设备与中心节点的通信的频率,本文引入了两阶段聚合架构。两阶段聚合架构与经典的联邦学习算法最大的不同之处在于多了一层中间聚合过程。跟经典的联邦学习类似,对于两阶段聚合算法,继续沿用两层联邦学习的设定,假设共有N个边缘设备,E个边缘服务器与之对应,边缘服务器i与Ni 个边缘设备相连,所覆盖的数据集为Di大小为|Di|,E个边缘服务器之上为一个中心云节点。两阶段聚合算法本地模型训练阶段与经典联邦学习一致,即公式(4)和公式(5)所描述的计算方法,对于中间聚合阶段,在边缘服务器i上采用加权平均的方式计算中间模型参数wi与经验损失F(wi),分别利用公式(8)和公式(9)表示中间模型参数和中间经验损失:
其中,wi表示中间模型参数,F(wi)表示中间经验损失,Ni表示边缘设备数量,Dk表示边缘设备k上的本地数据量,wk表示局部模型参数,|Di|为数据集大小,F(wk)表示边缘设备k本地模型的经验损失。
而对于中心云上的聚合,则是将来自E个边缘服务器的中间模型参数,根据每个边缘服务器i所负责的数据集大小|Di|进行加权平均,全局模型参数与全局经验损失分别用公式(10)和公式(11)表示:
其中,w表示全局模型参数,F(w)表示全局经验损失,E表示边缘服务器数量,|Di|为数据集大小,wi表示中间模型参数,|D|表示全体数据集的样本数量,F(wi)表示中间经验损失。
对于两阶段联邦学习的学习目标,则是找到最优的全局参数w*,使得全局经验损失最小,用公式(12)表示:
minwF(w) (12),
其中,w表示全局模型参数,F(w)表示全局经验损失。
而在实际的训练中,为了降低通信开销,本地模型训练阶段往往会在本地数据集上进行多次迭代,才会将模型参数传递给中心节点进行聚合。如图4所示,对应到两阶段聚合算法中,定义边缘设备经过k1=2次本地迭代后,才会将本地模型传递给边缘服务器,而在边缘服务器在经历k2=2次中间聚合后,才会将中间模型传递给中心云节点进行全局聚合,也就是说进行一次全局聚合需要进行k=k1·k2次本地模型迭代,以及k2次边缘服务器的中间模型聚合。这里定义k1为本地迭代频率,k2为中间聚合频率。本发明实施例提出了一种基于启发式算法的自调解两阶段聚合算法AdaAGG,自动确定聚合周期k1、k2,从而实现整体训练时间的最小。需要说明的是本算法并不会直接决策具体的k1、k2的值,而是通过引入损失率这一概念来自动控制各个设备的训练频率。
可选地,所述所述边缘设备和所述边缘服务器根据数据集协同训练所述前端模型和所述后端模型,获得局部模型参数包括:
所述边缘设备根据设备损失率计算设备训练次数,所述边缘设备和所述边缘服务器根据所述设备训练次数协同训练所述前端模型与所述后端模型,获得所述局部模型参数,并计算获得设备训练时间,将所述设备训练时间和所述局部模型参数发送至所述边缘服务器,其中,所述设备损失率由所述中心云初始化预设获得,并将所述设备损失率发送至所述边缘服务器,所述边缘服务器将所述设备损失率发送至所述边缘设备。
具体地,中心云初始化预设设备损失率,通过边缘服务器转发送至边缘设备,边缘设备根据设备损失率计算设备训练次数,边缘设备和边缘服务器根据设备训练次数协同训练前端模型与后端模型,具体包括:为了满足设备损失率θ∈(0,1),每个设备需要执行L(θ)=μlog(1/θ)次的本地迭代,其中,μ为一个与数据集和待训练模型有关的常量系数。为了满足本地损失率条件,需要边缘设备k不断在本地的数据集上根据公式(5)更新本地参数,直到满足公式(13)此时可以认为本地模型训练阶段结束。
其中,wk(t)表示t轮边缘设备k的局部模型参数,θ表示设备损失率,表示梯度。从公式(13)中可以看到,所谓的设备损失率θ,本质上表示经验损失函数梯度的变化程度,损失率越小说明梯度下降程度越大,此时本地迭代次数L(θ)也会增大。当设备损失率为无穷大时,此时说明训练前后梯度任何一点微小的变动都会满足损失率条件。而当设备损失率为0时,则说明需要保证后续训练梯度不再发生变化,此时说明模型已经达到了全局最优,而对应的迭代次数L(θ)理论上也会变为无穷大。
当不进行分层训练时(即边缘设备训练结束时),边缘设备中模型训练迭代一轮的训练时间(即设备训练时间)用公式(14)表示:
其中,为边缘设备中模型训练迭代一轮的训练时间,ck为边缘设备,假设sk为设备k计算一条数据样本(xj,yj)所需要的CPU周期数,设备k的本地数据集大小为|Dk|,所以进行一次本地迭代所需要的总CPU周期为sk|Dk|,假设设备k的CPU频率为其受到设备k具体CPU型号的限制。
本实施例中,边缘设备可以利用高效网络将局部参数发送至边缘服务端,袈减少数据传输时间。引入设备损失率计算边缘设备中模型训练的频率和设备训练时间,使得增加局部模型参数计算的准确度,减少后续全局模型聚合的次数,提升联邦学习训练效率。
可选地,所述边缘服务器根据各个所述边缘设备发送的所述局部模型参数进行中间聚合,获得中间模型参数还包括:
所述边缘服务器根据服务器损失率计算中间聚合次数,根据各个所述局部模型参数和所述中间聚合次数进行中间聚合,获得所述中间模型参数,并计算获得中间聚合时间,并将所述中间模型参数和所述中间聚合时间发送至所述中心云,其中,所述服务器损失率由所述中心云初始化预设获得。
具体地,中心云初始化预设服务器损失率,边缘服务器根据服务器损失率计算中间聚合次数,根据各个局部模型参数和中间聚合次数进行中间聚合,并计算中间聚合时间,具体包括:在结束本地模型训练阶段后,即完成L(θ)次本地迭代后,会将所有设备k的本地模型参数wk传递给其所对应的边缘服务器i。定义边缘设备与边缘服务器之间的通信满足OFDMA(正交频分多址)协议,利用公式(15)表示通信速率:
其中,rk表示通信速率,边缘服务器i的总带宽为Bi,αk:i表示边缘设备k带宽占总带宽的比例,即边缘设备k可用带宽为αk:iBi,hk为边缘设备k的信道增益,ek为边缘设备k传输数据所消耗的能量,ξk为背景噪声。
利用公式(16)计算边缘设备k的参数传输时间:
边缘服务器接收到局部模型训练后需要进行中间参数聚合,完成聚合后边缘服务器i会将新的wi通过广播传输给下属的所有设备,这里将两部分网络传输时间统一简化为所以即边缘服务器i中间聚合的间隔时间(即中间聚合时间)利用公式(17)表示:
随后重复进行本地模型训练阶段,直到边缘服务器上的中间模型达到边缘损失率∈(所有边缘服务器保持相同的边缘损失率),而边缘损失率的含义,与本地损失率相似,即通过不断的中间聚合直到满足公式(18),此时则可以认为中间聚合过程结束。
为了满足所设定的服务器损失率,对于机器学习任务,边缘服务器需要进行的中间聚合次数I(∈,θ)用公式(19)表示:
其中,θ表示设备损失率,∈表示服务器损失率,γ是一个与具体的训练任务相关的系数。公式(19)同时受到服务器损失率∈和设备损失率θ的影响。∈的取值主要影响到I(∈,θ)中的分子部分,即当θ固定时,I(∈)函数的变化趋势与L(θ)相同。将这个参数并入边缘服务器i中间聚合的间隔时间即用训练任务的真实执行时间衡量该系数。
这里的I(∈,θ)等价于k2,即在边缘服务器上中间聚合I(∈,θ)次后,边缘服务器才会将各个服务器上的中间参数wi上传到中心云进行全局聚合。
本实施例中,采用两阶段聚合算法,引入服务器损失率计算边缘服务器中局部模型参数聚合的频率和中间聚合时间,使得增加中间聚合参数计算的准确度,减少后续全局模型聚合的次数,提升联邦学习训练效率。
可选地,所述所述中心云根据各个所述边缘服务端发送的所述中间模型参数更新所述全局模型,并将更新后的所述全局模型的模型参数发送至各个所述边缘服务器,返回执行所述边缘服务器向所述边缘设备发送所述模型参数的步骤,迭代更新所述全局模型直至所述全局模型收敛包括:
所述中心云根据各个所述边缘服务器发送的所述中间模型参数更新所述全局模型,并根据所述中间聚合时间计算聚合总时间,根据所述聚合总时间,计算最优所述设备损失率和最优所述服务器损失率,并将更新后的所述全局模型的模型参数、最优所述设备损失率和最优所述服务器损失率发送至各个所述边缘服务器,返回执行所述边缘服务器将所述设备损失率发送至所述边缘设备的步骤,迭代更新所述全局模型直至所述全局模型收敛。
具体地,根据中间聚合时间计算聚合总时间包括:边缘服务器i将中间参数传递给中心云需要经过广域网,全局模型聚合周期tcloid利用公式(20)表示为:
当中心云节点受到来自边缘服务器的参数后,则会进行根据公式(10)进行参数的加权平均,与边缘服务器上的损失率类似,中心云上存在中心损失率λ。边缘服务器进行参数上传时可以保证服务器损失率已经达到了∈,所以对公式(19)进行扩展,即为了达成中心损失率λ,需要进行I(λ,∈)次全局聚合。所以最终当中心云的全局模型达到中心损失率λ时,所花费的总时间定义为公式(21):
ttotal=I(λ,∈)·tcloud (21),
其中,ttotal为聚合总时间,I(λ,∈)为中心聚合次数,tcloud为全局模型聚合周期。
将公式(17)与公式(20)带入公式(21),聚合总时间定义为公式(22):
ttotal=log(1/λ)·W(∈,θ)
当损失率降低时经验损失对应的梯度也会越来越小,而到损失率趋于0时,表示整个模型的经验损失为0,表明其已经到达全局最优点。而在AdaAGG算法中,最终中心云上的损失率应当尽可能的低,这里对λ取一个尽可能小的正数1e-5,将log(1/λ)转化为一个常数,从而将聚合总时间ttotal转化为一个与设备损失率θ,以及边缘损失率∈相关的函数W(∈,θ),根据该函数计算最优设备损失率与服务端损失率,并返回执行边缘服务器将设备损失率发送至边缘设备的步骤,迭代更新全局模型直至全局模型收敛,完成联邦学习训练,获得训练后的全局模型。
本实施例中,采用两阶段聚合算法,只接收边缘服务器传输的经中间聚合后的中间模型参数,可以减少向中心云节点传输的数据量,降低网络拥塞的概率,同时引入损失率作为模型训练的迭代条件,有效增加了模型参数训练的准确度,减少模型迭代训练的次数,增加联邦模型训练效率。
可选地,所述根据所述聚合总时间,计算最优所述设备损失率和最优所述服务器损失率包括:
根据所述聚合总时间、所述设备损失率和所述服务器损失率构建组合优化问题。
利用模拟退火算法迭代求解所述组合优化问题,获得最优所述设备损失率和最优所述服务器损失率。
具体地,为了使聚合总时间ttotal最小,所以优化目标定义为公式(23):
min∈,θW(∈,θ)
s.t.0<∈<1
0<θ<1
(23),
就此将一个决策问题,转化为了一个组合优化问题,通过选择最优设备损失率和服务器,来使得达到指定中心损失率的时间最短,即聚合总时间最短。
为了求解上述的组合优化问题,引入了模拟退火算法。该算法为启发式算法,其模拟现实中金属退火的原理,基于Monte-Carlo迭代求解最优化策略。模拟退火算法从某一高温开始执行,通过添加扰动获取新的组合,如果为好的组合则接受,对于不好的组合则根据Metropolis准则判断是否接受,从而使该算法能够跳出局部最优解,寻找全局最优解。利用模拟退火算法求解最优损失率的具体流程如图5所示,其核心在于当找到更恰当的损失率使得目标函数更小时,此时更新最优损失率组合;而当ΔW小于0时,此时会有一定概率接受这个损失率组合,以便于找到全局最优解。
本实施例中,将求解损失率转化为组合优化问题,并利用模拟退火算法求解最优损失率组合,有效提升了损失率的求解效率与准确率,进而提升了全局模型的迭代速率,在保证联邦学习训练准确度的同时,加快训练速率。
本发明实施例还提供了一种云边训练平台,云边训练平台支撑起本发明实施例联邦学习训练方法的实验场景构建。
当前云边场景中的研究大多进行的是模拟实验,或是将实验环境直接部署在物理机之上,实验环境部署难度大,研究结果难以收集。在此基础上,本发明实施例提供了一种云边训练平台,该平台可以快速部署到物理环境之上,为云边实验提供必要的场景构建能力,降低实验者在搭建云边平台与构建软件依赖方面的工作量,同时提供丰富的接口与UI界面,方面实验者对平台进行有效监控,便于收集所需的实验数据。
如图6所示,云边训练平台选择使用KubeEdge作为底层虚拟化支撑,对其进行功能丰富和配置定义,提供包括快速部署脚本、节点状态获取、节点图形化监控、服务注册等功能,其中包括云边容器化组件、云边管理组件和联邦学习训练组件。
其中云边容器化组件主要是依赖于KubeEdge本身提供的容器编排方案,和Kubernets一样,KubeEdge自身也依赖于Kubectl、Apiserver、Etcd等组件。其中Kubectl为用户指令入口,用户通过Kubectl指令来对集群进行操作;Apiserver主要用于接收用户的指令,并将指令或者YAML文件进行解析,解析为K8S的资源对象(如POD、Demployment等);Etcd则是用于中心云节点和边缘节点之间的状态同步。其本身是一个基于RAFT算法的强一致性KV存储组件。KubeEdge在此基础上增加了两个组件,一个是Cloudcore,一个是Edgecore。这两个组件本质上是对K8S中的Kubelet、Controller Schedule组件进行了深度的修改。这两个组件,分别部署在中心云节点和边缘节点上,根据调度策略将任务调度到边缘节点上执行。KubeEdge完全支持了Kubernetes的API资源,所以我们可以像使用Kubernetes一样,在KubeEdge平台上创建Pod,Deployment,StatefulSet这样的资源,并且KubeEdge通过CloudHub和EdgeHub之间基于WebSocket和QUIC协议进行通信,相比Kubernetes原生方案,更加能够适应云边之间复杂不稳定的网络状况。并且KubeEdge还通过在边缘端存储相应的资源信息,这样就算云边之间通信断开,也可以根据本地缓存的Pod等资源信息,让容器继续正常运行,不会出现在边缘节点离线时节点容器终止运行的状况。云边容器化组件搭建在4个节点之上,其中包含一个中心云节点与三个计算节点。
为了实现对云边平台的有效管理,提高平台的可用性,降低平台的运维难度,搭建了一套可视化云边管理套件,包括云边平台可视化管理组件、节点资源监控组件以及应用日志收集组件。通过上述的可视化平台,用户可以根据个人需求,通过前端进行平台管理、资源监控、应用日志采集等功能,便于用户对云边平台运行状态进行有效把控。在KubeEdge中虽然存在获取节点状态的方法,但该方法利用Kubectl指令,与K8S深度绑定,可扩展性较低。在实际场景中,系统管理者需要能够对节点资源进行实时的监控,用户应该具备灵活采集和检索节点状态信息的能力,本平台提供了两种获取节点状态的方式,如果用户只是希望进行简单的单次状态获取,则需要通过调用状态查询CLI向对应节点发起请求,在云边平台的每个节点上都部署了一个轻量级的状态采集的Agent,该Agent在收到用户所需的状态信息后(通过读取proc子文件系统),会将其返回给该用户,并将其保存为KV对存储在ETCD中,Key为“用户+时间字符串+UUID”,并且为该KV对设置过期时间(默认为12Hour),当然也支持在传参时指定--store来持久化本次的结果。当用户需要获取时序的状态时,通过频繁调用状态获取接口并不是一个明智的做法,所以本平台中集成了Promethus API,用户可以直接通过Python脚本从Promethus的TSDB中获取时序的状态信息。除了获取到对应的状态信息,本系统还需要有一套可视化设备,来方便管理人员来查看节点的资源状态,以便于即使发现问题并分析问题。在调研后决定使用开源组件Promethus加Grafana来实现。Promethus本质上可以理解为是一个时序数据库,每个节点上会有一个node-export的组件,来根据Prothemus定义的Metric来定时获取对应的状态,Prothemus将状态信息进行汇总与存储,而Grafana则是可视化平台,用来将各个维度的资源信息转化为仪表盘。平台管理组件在本平台中任务是以容器的形式运行在Docker引擎之上,并由KubeEdge来进行容器的编排与调度。为了提高平台的使用体验,用户会更希望通过可视化的方式进行任务管理。当前KubeEdge社区并没对应的平台管理UI组件,在经过调研后,本平台基于KuBoard构建了一套适用于KubeEdge的平台管理组件,该组件通过将用户在前端的操作转化为对KubeEdge的ApiServer的指令,从而对整个云边平台进行控制。提供了包括集群导入,任务与资源创建、任务与资源删除、任务与资源重置、命名空间管理、容器状态可视化、在线Bash等功能,方便用户进行的集群与任务管理。随着云边平台运行的任务数量的不断增长,每个应用(POD)都会生成大量日志,这些日志默认是直接输出到该POD的stdout或stderr中的,随着任务日志的快速增长,很快就变得难以管理。更复杂的是当出现问题时,由于服务之间复杂的调用作用,以及大量的无效日志,很难快速找到出错原因。虽然对于Docke来说日志是可以选择输出到容器对应的目录中的,但是当容器停止时该日志文件就会被清除,很多时候用户可能会将实验现象以日志的形式打印出来,这样也不利于用户后期对实验现象的分析,所以需要对平台应用的日志进行收集并为用户提供根据关键字聚合日志的功能。本平台中基于ELK(ElasticSearch、Logstash、Kibana)搭建了一套日志采集平台。在每一个应用的POD中额外启动一个封装了日志收集组件的容器,会采集这个POD中容器输出的日志,然后上传到ElasticSearch服务器中,并在ES中构建以“logstash-[pod_name]-[pod_create_time]”为key的索引。这样用户便可以通过Kibana来对ES中的日志信息进行检索,通过索引名称查看应用全部的日志信息,也可以通过日志关键字对日志信息进行过滤检索,来定位问题,分析实验现象。KubeEdge的架构中存在一个问题,那便是在KubeEdge中并没有边缘云这个概念,所有的边缘节点等价的与中心云控制节点进行交互。但是在很多的边缘环境中,特别是在移动性场景中,边缘往往是一个具备自治能力的小集群,也就是边缘云,在边缘云内部又包含一个边缘云的控制节点以及若干的边缘服务器作为工作节点,在很多云边场景中,用户会将任务按照调度到指定的边缘云之上运行,此时KubeEdge便无法提供相应的能力,所以为了适配更多的云边场景,本平台需要支持边缘云这种组织架构。划分边缘云有两种方式,一种是直接做物理上的隔离,从架构上进行改变,但是这种做法比较复杂,需要对KubeEdge进行大规模的改动;第二种方法则是在逻辑上进行分割,通过独立的服务注册组件,来为每个节点赋予相应的角色,当需要使用边缘云概念时,用户可以通过查询服务注册组件,来获取当前的节点到角色的映射关系,此方法对于KubeEdge来说是无感的,由独立的服务器注册组件进行映射信息的管理、添加、删除,可以大大降低复杂程度。本组件选择zookeeper作为元数据的存储组件,使用JSON文件进行云边角色注册。服务注册本质上就是解析JSON文件,并在Zookeeper中根据层级关系进行注册Znode。中心云是最上层目录,下面的边缘云根据配置文件中的层级关系依次作为子目录进行挂载,最后形成一个树形结构。元数据中存储了该节点的相关信息,包括IP地址、注册时间、节点角色等信息。使用服务注册可以从逻辑上对节点进行划分,在编写KubeEdge任务的YAML文件时,可以提供逻辑上的角色名,然后使用提供的脚本进行文本处理。这样方便用户使用,不需要记忆各个节点对应的IP地址。
为了提供一套联邦学习训练环境,本平台基于Docker对环境打包成完整镜像,为了支持GPU本组件基于Nvidia官方镜像进行封装,CUDA版本为11.0。深度学习组件主要是用于验证本文的联邦学习加速算法,当然其本身也可以用于常规的模型训练,架构如图7所示。为了实现更为通用的联邦学习功能,本平台将联邦学习组件分为三个层次,最上层为模型层,该层主要为用户编写联邦学习模型代码提供框架支持,本组件预集成了Tensorflow、Pytorch两个主流的深度学习框架,同时为了满足分布式训练的需求,本组件还集成了ChainerMN框架,该框架可以实现灵活的分布式计算图构建。在模型层之下为Lib层,该层主要提供两个功能:(1)首先是参数服务器,本文所涉及的联邦学习模型训练需要跨越多个节点协同训练,当前Tensorflow和Pytorch中虽然实现了分布式训练的部分功能,但仍存在较多的使用限制(如不支持基于CPU的分布式训练),所以本组件基于FastAPI(高性能Web服务器框架)实现了一套参数服务器,用于在节点之间进行参数、状态信息的交互,同时为了将发送数据与数据类型进行解耦合,在参数服务器中利用Pickle库对待发送的对象进行序列化,接收方对数据进行反序列化从而实现对不同数据类型的统一处理流程。参数信息由三个部分组成,分别为信息长度、信息标识、信息体,其中信息标识为String类型,接收方需要验证信息类型是否正确,其中信息类型和信息体使用列表进行封装,序列化后发送给接收方。(2)其次为一些工具类接口,包括FedAVG、模拟退火等算法函数接口、数据集处理切分接口以及基于logging的日志控制接口,方便快速编写实验代码。最低层为网络通信层,本平台支持多种CNI组件,包括Calico、Flanne、Weave,通过这些容器网络组件,可以提供跨界点的网络路由和网络虚拟化功能。
虽然本公开披露如上,但本公开的保护范围并非仅限于此。本领域技术人员在不脱离本公开的精神和范围的前提下,可进行各种变更与修改,这些变更与修改均将落入本发明的保护范围。
Claims (10)
1.一种联邦学习训练加速方法,其特征在于,包括:
中心云构建全局模型及所述全局模型对应的初始模型参数,将所述初始模型参数发送至边缘服务器;
所述边缘服务器接收所述初始模型参数,并将所述始模型参数发送至边缘设备;
所述边缘设备根据所述初始模型参数构建局部模型,根据动态分层决策算法计算获得所述边缘设备与所述边缘服务器的训练任务,其中,所述训练任务为所述局部模型的分层比例;
所述边缘设备和所述边缘服务器根据所述训练任务分别构建前端模型和后端模型,所述边缘设备和所述边缘服务器根据数据集协同训练所述前端模型和所述后端模型,获得局部模型参数,将所述局部模型参数发送至所述边缘服务器;
所述边缘服务器根据各个所述边缘设备发送的所述局部模型参数进行中间聚合,获得中间模型参数,并将所述中间模型参数发送至所述中心云;
所述中心云根据各个所述边缘服务端发送的所述中间模型参数更新所述全局模型,并将更新后的所述全局模型的模型参数发送至各个所述边缘服务器,返回执行所述边缘服务器向所述边缘设备发送所述模型参数的步骤,迭代更新所述全局模型直至所述全局模型收敛。
2.根据权利要求1所述的联邦学习训练加速方法,其特征在于,所述根据动态分层决策算法计算获得所述边缘设备与所述边缘服务器的训练任务包括:
获取所述边缘设备中所述局部模型的单条样本的平均训练时间,比较所述单条样本的平均训练时间与历史平均训练时间,若所述单条样本的平均训练时间大于所述历史平均训练时间的预设倍数,且持续预设次数,则根据动态分层决策算法,重新计算获得所述边缘设备与所述边缘服务器的训练任务。
3.根据权利要求2所述的联邦学习训练加速方法,其特征在于,所述根据动态分层决策算法,重新计算获得所述边缘设备与所述边缘服务器的训练任务包括:
获取所述边缘设备的状态信息,根据所述状态信息,利用基于强化学习的动态分层策略计算获得所述边缘设备与所述边缘服务器下一时刻的所述训练任务,其中,所述状态信息包括单轮所述边缘设备训练中训练总时间、所述边缘设备的训练时间、网络传输时间、所述边缘服务器训练时间占总训练时间的比例和该时刻训练分层策略。
4.根据权利要求1所述的联邦学习训练加速方法,其特征在于,所述所述边缘设备和所述边缘服务器根据所述训练任务分别构建前端模型和后端模型,所述边缘设备和所述边缘服务器根据数据集协同训练所述前端模型和所述后端模型,获得局部模型参数包括:
所述边缘设备根据所述训练任务对所述局部模型进行分层处理,构建所述前端模型,并将分层处理后的所述局部模型发送至所述边缘服务器,其中,所述边缘服务器根据分层处理后的所述局部模型构建所述后端模型;
所述边缘设备根据所述数据集训练所述前端模型,获得中间结果,并将所述中间结果发送至所述边缘服务器,其中,所述边缘服务器根据所述中间结果训练所述后端模型,获得梯度,并将所述梯度发送至所述所述边缘设备;
所述边缘设备根据所述梯度训练所述前端模型,获得局部模型参数。
5.根据权利要求4所述的联邦学习训练加速方法,其特征在于,在所述边缘服务器根据所述中间结果训练所述后端模型之前,还包括:
根据预设的打分机制对各个所述训练任务进行打分,根据打分结果由大至小的顺序对各个所述训练任务进行排序,设置优先队列;
根据所述优先队列,利用GPU对所述后端模型进行逐个训练。
6.根据权利要求5所述的联邦学习训练加速方法,其特征在于,所述根据所述优先队列,利用GPU对所述后端模型进行逐个训练包括:
当所述GPU显存不足时,将所述优先队列中剩余的所述后端模型调度到CPU进行训练;
当所述GPU中所述后端模型训练完成后,利用Watch机制通知所述CPU,将所述CPU中的所述后端模型调度到所述GPU中进行训练。
7.根据权利要求1所述的联邦学习训练加速方法,其特征在于,所述所述边缘设备和所述边缘服务器根据数据集协同训练所述前端模型和所述后端模型,获得局部模型参数包括:
所述边缘设备根据设备损失率计算设备训练次数,所述边缘设备和所述边缘服务器根据所述设备训练次数协同训练所述前端模型与所述后端模型,获得所述局部模型参数,并计算获得设备训练时间,将所述设备训练时间和所述局部模型参数发送至所述边缘服务器,其中,所述设备损失率由所述中心云初始化预设获得,并将所述设备损失率发送至所述边缘服务器,所述边缘服务器将所述设备损失率发送至所述边缘设备。
8.根据权利要求7所述的联邦学习训练加速方法,其特征在于,所述边缘服务器根据各个所述边缘设备发送的所述局部模型参数进行中间聚合,获得中间模型参数还包括:
所述边缘服务器根据服务器损失率计算中间聚合次数,根据各个所述局部模型参数和所述中间聚合次数进行中间聚合,获得所述中间模型参数,并计算获得中间聚合时间,并将所述中间模型参数和所述中间聚合时间发送至所述中心云,其中,所述服务器损失率由所述中心云初始化预设获得。
9.根据权利要求8所述的联邦学习训练加速方法,其特征在于,所述所述中心云根据各个所述边缘服务端发送的所述中间模型参数更新所述全局模型,并将更新后的所述全局模型的模型参数发送至各个所述边缘服务器,返回执行所述边缘服务器向所述边缘设备发送所述模型参数的步骤,迭代更新所述全局模型直至所述全局模型收敛包括:
所述中心云根据各个所述边缘服务器发送的所述中间模型参数更新所述全局模型,并根据所述中间聚合时间计算聚合总时间,根据所述聚合总时间,计算最优所述设备损失率和最优所述服务器损失率,并将更新后的所述全局模型的模型参数、最优所述设备损失率和最优所述服务器损失率发送至各个所述边缘服务器,返回执行所述边缘服务器将所述设备损失率发送至所述边缘设备的步骤,迭代更新所述全局模型直至所述全局模型收敛。
10.根据权利要求9所述的联邦学习训练加速方法,其特征在于,所述根据所述聚合总时间,计算最优所述设备损失率和最优所述服务器损失率包括:
根据所述聚合总时间、所述设备损失率和所述服务器损失率构建组合优化问题;
利用模拟退火算法迭代求解所述组合优化问题,获得最优所述设备损失率和最优所述服务器损失率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211014211.1A CN115408151A (zh) | 2022-08-23 | 2022-08-23 | 一种联邦学习训练加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211014211.1A CN115408151A (zh) | 2022-08-23 | 2022-08-23 | 一种联邦学习训练加速方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115408151A true CN115408151A (zh) | 2022-11-29 |
Family
ID=84161336
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211014211.1A Pending CN115408151A (zh) | 2022-08-23 | 2022-08-23 | 一种联邦学习训练加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115408151A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115840965A (zh) * | 2022-12-27 | 2023-03-24 | 光谷技术有限公司 | 一种信息安全保障模型训练方法和系统 |
CN115987985A (zh) * | 2022-12-22 | 2023-04-18 | 中国联合网络通信集团有限公司 | 模型协同构建方法、中心云、边缘节点及介质 |
CN116032663A (zh) * | 2023-03-27 | 2023-04-28 | 湖南红普创新科技发展有限公司 | 基于边缘设备的隐私数据处理系统、方法、设备及介质 |
CN116384513A (zh) * | 2023-05-30 | 2023-07-04 | 南京邮电大学 | 云边端协同学习系统及方法 |
CN116562399A (zh) * | 2023-07-10 | 2023-08-08 | 支付宝(杭州)信息技术有限公司 | 端边云协同的模型训练方法及装置 |
CN116580448A (zh) * | 2023-04-11 | 2023-08-11 | 深圳市大数据研究院 | 一种行为预测方法、系统、电子设备及存储介质 |
CN117014313A (zh) * | 2023-09-26 | 2023-11-07 | 工业云制造(四川)创新中心有限公司 | 一种面向边缘云平台的设备数据实时分析方法及系统 |
CN117010485A (zh) * | 2023-10-08 | 2023-11-07 | 之江实验室 | 边缘场景下的分布式模型训练系统及梯度规约方法 |
CN117076132A (zh) * | 2023-10-12 | 2023-11-17 | 北京邮电大学 | 分层联邦学习系统的资源分配及聚合优化方法及装置 |
CN117251276A (zh) * | 2023-11-20 | 2023-12-19 | 清华大学 | 一种面向协作学习平台的灵活调度方法及装置 |
CN117709486A (zh) * | 2024-02-05 | 2024-03-15 | 清华大学 | 一种面向协作学习的动态聚合方法及装置 |
-
2022
- 2022-08-23 CN CN202211014211.1A patent/CN115408151A/zh active Pending
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115987985A (zh) * | 2022-12-22 | 2023-04-18 | 中国联合网络通信集团有限公司 | 模型协同构建方法、中心云、边缘节点及介质 |
CN115987985B (zh) * | 2022-12-22 | 2024-02-27 | 中国联合网络通信集团有限公司 | 模型协同构建方法、中心云、边缘节点及介质 |
CN115840965B (zh) * | 2022-12-27 | 2023-08-08 | 光谷技术有限公司 | 一种信息安全保障模型训练方法和系统 |
CN115840965A (zh) * | 2022-12-27 | 2023-03-24 | 光谷技术有限公司 | 一种信息安全保障模型训练方法和系统 |
CN116032663B (zh) * | 2023-03-27 | 2023-06-02 | 湖南红普创新科技发展有限公司 | 基于边缘设备的隐私数据处理系统、方法、设备及介质 |
CN116032663A (zh) * | 2023-03-27 | 2023-04-28 | 湖南红普创新科技发展有限公司 | 基于边缘设备的隐私数据处理系统、方法、设备及介质 |
CN116580448A (zh) * | 2023-04-11 | 2023-08-11 | 深圳市大数据研究院 | 一种行为预测方法、系统、电子设备及存储介质 |
CN116580448B (zh) * | 2023-04-11 | 2024-04-16 | 深圳市大数据研究院 | 一种行为预测方法、系统、电子设备及存储介质 |
CN116384513A (zh) * | 2023-05-30 | 2023-07-04 | 南京邮电大学 | 云边端协同学习系统及方法 |
CN116562399A (zh) * | 2023-07-10 | 2023-08-08 | 支付宝(杭州)信息技术有限公司 | 端边云协同的模型训练方法及装置 |
CN117014313A (zh) * | 2023-09-26 | 2023-11-07 | 工业云制造(四川)创新中心有限公司 | 一种面向边缘云平台的设备数据实时分析方法及系统 |
CN117014313B (zh) * | 2023-09-26 | 2023-12-19 | 工业云制造(四川)创新中心有限公司 | 一种面向边缘云平台的设备数据实时分析方法及系统 |
CN117010485A (zh) * | 2023-10-08 | 2023-11-07 | 之江实验室 | 边缘场景下的分布式模型训练系统及梯度规约方法 |
CN117010485B (zh) * | 2023-10-08 | 2024-01-26 | 之江实验室 | 边缘场景下的分布式模型训练系统及梯度规约方法 |
CN117076132A (zh) * | 2023-10-12 | 2023-11-17 | 北京邮电大学 | 分层联邦学习系统的资源分配及聚合优化方法及装置 |
CN117076132B (zh) * | 2023-10-12 | 2024-01-05 | 北京邮电大学 | 分层联邦学习系统的资源分配及聚合优化方法及装置 |
CN117251276B (zh) * | 2023-11-20 | 2024-02-09 | 清华大学 | 一种面向协作学习平台的灵活调度方法及装置 |
CN117251276A (zh) * | 2023-11-20 | 2023-12-19 | 清华大学 | 一种面向协作学习平台的灵活调度方法及装置 |
CN117709486A (zh) * | 2024-02-05 | 2024-03-15 | 清华大学 | 一种面向协作学习的动态聚合方法及装置 |
CN117709486B (zh) * | 2024-02-05 | 2024-04-19 | 清华大学 | 一种面向协作学习的动态聚合方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115408151A (zh) | 一种联邦学习训练加速方法 | |
CN105550323B (zh) | 一种分布式数据库负载均衡预测方法和预测分析器 | |
CN108566659B (zh) | 一种基于可靠性的5g网络切片在线映射方法 | |
CN112866059B (zh) | 一种基于人工智能应用的无损网络性能测试方法和装置 | |
CN110688219B (zh) | 基于反向混沌布谷鸟搜索的自适应权重负载均衡算法 | |
CN113037877B (zh) | 云边端架构下时空数据及资源调度的优化方法 | |
CN113342510B (zh) | 一种水电流域应急指挥云边计算资源协同处理方法 | |
CN116685985A (zh) | 具有多样化反馈的联合学习系统与方法 | |
CN113141317A (zh) | 流媒体服务器负载均衡方法、系统、计算机设备、终端 | |
CN114358286A (zh) | 一种移动设备联邦学习方法及系统 | |
CN111429142A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
US20230281513A1 (en) | Data model training method and apparatus | |
CN110119399A (zh) | 基于机器学习的业务流程优化方法 | |
CN116614385A (zh) | 基于数字孪生的业务调度路径规划方法、装置和设备 | |
Hu et al. | Dynamic task offloading in MEC-enabled IoT networks: A hybrid DDPG-D3QN approach | |
Elzohairy et al. | FedLesScan: Mitigating Stragglers in Serverless Federated Learning | |
CN116755867B (zh) | 一种面向卫星云的计算资源调度系统、方法及存储介质 | |
Celaya et al. | A highly scalable decentralized scheduler of tasks with deadlines | |
CN112199154A (zh) | 一种基于分布式协同采样中心式优化的强化学习训练系统及方法 | |
CN116582407A (zh) | 一种基于深度强化学习的容器化微服务编排系统及方法 | |
Cui et al. | The learning stimulated sensing-transmission coordination via age of updates in distributed uav swarm | |
CN115016911A (zh) | 面向大规模联邦学习的任务编排方法、装置、设备和介质 | |
CN114327876A (zh) | 一种无人机辅助移动边缘计算的任务卸载方法和装置 | |
CN110135747B (zh) | 基于神经网络的流程定制方法 | |
CN114124973A (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 |