预准备知识:
什么是联邦学习?
联邦学习非常适合边缘计算应用程序,可以利用边缘服务器计算能力以及在广泛分散的边缘设备上收集数据。
为了建立联邦边缘学习系统,需要应对多种技术挑战。
联邦学习(Federated Learning):技术角度的理解
综述原文链接:
- A survey of federated learning for edge computing: Research problems and solutions - ScienceDirect
边缘计算的动机:云计算不再适合低时延计算密集型应用。新的计算模型称为边缘计算。
边缘计算特点:边缘计算主要涉及在边缘设备之间传输数据,更靠近用户数据位置,而不是中心服务器。
关于边缘计算的几个名词概念:
联想:
考虑存储器的多层架构(寄存器-cache-内存-磁盘):最终实现了一个容量大,存取速度高的存储系统;
而这样的云-边-端架构:最终实现了一个计算能力强,速度快的计算框架。
结合联邦学习从不同设备中获取资源的特性,边缘计算是一个自然合适的环境,应用于联邦学习框架。
从云到边缘的主要原因:
高带宽
低时延
安全性
另外,由于到边缘的时长较短,边缘计算较云计算来说更加安全(给发起攻击留下的时间较短)。DDoS攻击的影响很小(删除结点对网络影响不大)
可靠性:没有单一失败点
易扩展:设备的占地面积小很多
为利好于终端用户,工程师在构建边缘计算系统时依靠一组关键的操作原则:
FL是一种培训许多设备神经网络的方法。在这种计算模型中,单个全局神经网络存储在中央服务器中。用于训练神经网络的数据跨多个节点局部存储,通常是异质的。假设有结点: n o d e 1 , n o d e 2 , . . . , n o d e n node_1,node_2,...,node_n node1,node2,...,noden,其中 n o d e i node_i nodei有私密数据集 ξ i \xi_i ξi。设神经网络的损失函数为 f f f,在一次同步中, n o d e i node_i nodei会基于当前的时刻 t t t的权重 w t i w_t^i wti,去计算下一个时刻的权重: w t + 1 i w_{t+1}^i wt+1i:
w t + 1 i = w t i − γ t ∂ f ( w t , ξ i ) ∂ w ( i = 1 , 2 , . . . , n ) (1) w_{t+1}^i=w_t^i-\gamma_t\frac{\partial{f(w_t,\xi_i)}}{\partial w}(i=1,2,...,n)\tag{1} wt+1i=wti−γt∂w∂f(wt,ξi)(i=1,2,...,n)(1)
本地更新可以运行一个或者多个迭代,在服务器端,它接受了所有节点上传的权重。中心服务器使用聚合函数 A ( ⋅ ) A(·) A(⋅)来汇总所有上传的权重,并更新下一轮的权重:
w t + 1 = A ( w t 1 , w t 2 , . . . , w t n ) (2) w_{t+1}=A(w_t^1,w_t^2,...,w_t^n)\tag{2} wt+1=A(wt1,wt2,...,wtn)(2)
实践中, A ( ⋅ ) A(·) A(⋅)通常是取平均。由于联邦学习的异质性,文章不需要所有n个节点参与一个同步。只有某些节点才能随机选择进行计算。
注意联邦学习与传统的分布式机器学习有何不同:联邦学习(Federated Learning):技术角度的理解
进行联邦学习需要注意:
FL+边缘计算系统的挑战,总结了state of art如何解决它们,并提供了对该领域未来的见解。
FL可以在许多情况下广泛使用,因为隐私保护和资源利用至关重要。在本节中,讨论一些用于边缘联邦学习的方案,以及在这些方案中采用的一些最新工作。
医疗系统中的深度学习模型背景:对于每个医疗机构,其数据分别存储和处理在边缘节点中,但是使用单个医疗机构收集的小型数据集训练的模型当将其应用于与培训数据无关的数据时,它没有令人满意的精度。因此,需要大量的实际电子健康记录(EHR)来培训强大的医疗模型。但是,由于医疗数据的敏感性和隐私性,对真实数据集的需求很难满足。
边缘FL可以解决这个问题。
应用:
医学影像
个人健康测量设备
例如血压计和活动识别设备,用于观察健康状况并及时推动健康警报,这在智能卫生系统中起着重要作用。
车载计算机收集本地生成的传感数据,然后将其上传到车辆边缘计算(VEC)系统以训练本地学习模型。
决策问题:Saputra等人实施了基于聚类的联合能源需求学习方法。在[10]中,用于电动汽车网络以在考虑区域进行能源需求预测。
图像分类问题:Ye等。提出了一种选择性模型聚合方法[11],其中选择模型的训练图像高质量并且边缘节点具有足够的计算能力。
与标准的机器学习方法相比,Edge Federated学习能够有效地训练灵活的模型以进行推荐任务。
Gboard团队的研究人员使用Edge FL在全球范围内进行虚拟键盘搜索建议[14]和表情符号预测[15],评估结果表明,每个边缘节点上的模型都有表现良好,因为这些模型被调整为特定领域的不同语言和文化风格。
此外,Hartmann等人。证明接受联邦学习的浏览器选项建议模型可以帮助用户快速找到他们所需的网站,从而输入更少的字符。可以在边缘联邦学习系统中改进这项工作,以通过探索用户相似性而无需违反用户隐私来为不同的用户提供相对个性化的模型。
设计边缘FL系统时,程序员需要考虑很多东西:鉴于Edge Federated学习涉及的复杂性,研究社区必须花费时间开发工具,以帮助程序员更轻松地建立边缘联邦学习系统。在本节中,文章将讨论可以从开发工具中受益的以下领域:
首先,让文章讨论对边缘联邦学习系统的可用应用程序级别的支持。理想情况下,任何应用程序级别的支持都将以易于使用的集成开发环境或API的形式出现,这些环境或API可以帮助普通开发人员轻松执行联合联盟的学习任务。
举例:python中的numpy
一项值得注意的工作是Hong等人[17]提出的编程模型。作者提供了一组事件处理程序,程序员必须实现这些操作以及各个应用程序可以调用的功能。这样,只要发生重大事件,例如当消息从另一个设备到达时,程序员就可以放心:事件处理人员将完成大部分工作。
特别是对于联邦学习,可能需要进行一些调整。例如:
聚集函数API:
联邦学习系统通常需要聚集函数(aggregation function)才能组装所有本地梯度。这必须在API中提供。
活动处理程序:
实施活动处理程序以促进学习过程的不同阶段,例如一轮学习完成的时间。
但是,鉴于其框架的易于扩展的性质,文章认为为联邦学习系统实施这些更改是相当简单的。
做了吗?有没有最新的进展?
Giang等人的另一篇重要论文。[18]专注于开发一个良好的抽象,使开发人员更容易地对边缘学习的复杂性进行推论。例如,为避免垂直和水平异质性,该程序包含由域专家开发的专业节点,这些节点只能与特定节点一起连接。可以通过代码重复来满足移动性要求。
帮助开发人员完成系统级设计的工具,如:
其中一些功能可以集成到较大的IDE中,设计用于边缘联邦学习。例如,类似于MapReduce的工具将在边缘联邦学习设置中非常有帮助。
这里的主要工作是Bonawitz等人基于TensorFlow [19]的工作。他们工作的主要贡献是提供一个成熟的系统级框架,开发人员可以用来部署其联邦学习应用程序。他们处理各种关键问题:1)设备可用性,2)资源管理和3)可靠性。
容器化:对边缘联邦学习设置中使用的各种执行环境的管理
参与边缘FL的很多设备是IoT设备,操作系统要尽可能保持轻巧。
目前大多依赖于k8s,但是k8s性能开销比较大
安全框架:当前关于该主题的理论涵盖了诸如差异隐私,同形加密,多方计算和安全飞地等思想。然而,在实施这些安全措施方面存在重大挑战。
将当前边缘计算模型扩展到边缘联邦学习的设置:目前的很多研究还是专注于边缘,而非联邦学习。
另外为了使模型表现良好,必须仔细协调梯度,因为一些设备的突然失败或恶意参与者的存在可能会导致模型行为异常。
与传统的联邦学习类似,边缘的联邦学习可以按照联邦的规模分为两种形式:
二者的主要区别是参与培训节点的数量和每个节点上存储的培训数据量。在本节将讨论联邦规模及其如何影响通信和计算成本对边缘联邦学习的影响。
在跨设备边缘联邦学习中,活跃的培训节点的数量按数百万计,每个节点具有相对较少的数据和计算能力。节点通常是便携式设备或传感器。
鉴于总的结点数量 N N N和选择率 η \eta η,一轮训练的总的通信代价可以定义为:
2 ⋅ τ ⋅ N ⋅ η ⋅ M 2\cdot\tau\cdot N\cdot\eta\cdot M 2⋅τ⋅N⋅η⋅M
其中: τ \tau τ表示模型可以收敛时的全局同步数量;M表示模型的大小,包括所有的权重和训练数据。为了简单起见,将M表示为训练参数的数量 P n P_n Pn乘以其精度,例如: M = P n ⋅ b i t ( 4 , 8 , 16 , 32 ) M=P_n\cdot bit(4,8,16,32) M=Pn⋅bit(4,8,16,32)。
减少通信次数的减少 τ \tau τ和 M M M是关键。
减少M:向量正交化(vector quantization)和规范(specification)。
减少 τ \tau τ:较为棘手
训练节点数量的增加会对模型的性能产生明显的负面影响,因此需要更多的全局同步轮来满足一定的条件。
比如达到一定的精度。
对高度分散和异构数据的训练使得每个本地模型对全局模式的贡献相当有限,从而延长了训练周期。
虽然增加局部训练周期可以缓解这个问题,但是它会在每个节点上引入额外的计算工作量和功耗。寻找最优通信迭代仍然是一个悬而未决的问题。
而在跨孤岛边缘联邦学习中,节点数量相对较少,但需要节点有足够的计算资源来处理每个边缘服务器上的大量数据。
例如,大型在线零售商会通过训练在地理上分布的数据中心存储的存储的数千万个购物数据为用户推荐商品。在上述设置中,挑战是在计算预算和隐私模型的约束下,边缘联邦学习如何有效地将计算分配到边缘服务器。
在一定的计算预算下,网络量化和修剪可以进一步扩大边缘联邦学习的范围。
网络量化:
用少量比特量化网络权重,可以显著加快网络训练和推理速度,减小模型规模。
关于什么是量化(quantization)和相关作用。
Neural Network Quantization: What Is It and How Does It Relate to TinyML? - Technical Articles (allaboutcircuits.com)
量化:量化是降低权重、偏差和激活的精度,以减少它们消耗的内存的过程。
量化的两种方式:
- Post-training quantization
- Quantization-aware training
许多网络量化主要集中在单一模型的优化上。量化权重只在向前和向后传播期间使用,而不在参数更新期间使用。
Open Question:是否可以在边缘联邦学习中训练量化模型,同时使用量化模型更新,从而实现高效的通信和计算边缘联邦学习训练。
网络剪枝:
可以有效降低网络的复杂性。
网络剪枝的一种常用方法是在足够小的参数值下降。类似于网络量化,现有的网络剪枝算法也局限于单一的非分布式设置,神经网络通常是一步一步地进行剪枝,也就是说,文章训练模型直到收敛,然后再进行下一步的剪枝。这样一来,本地网络修剪增加了本地设备的计算消耗,延迟了训练时间。
近年来,联合修剪引起了人们的广泛关注。使用标准的FedAvg学习过程不断对模型进行修剪。联邦修剪允许以一种计算效率和通信效率的方式训练网络,因为只需要上传非零参数进行同步。
一个潜在的缺点是很难找到最佳修剪比例。
值得一提的是,在跨孤岛和跨设备边缘联邦学习中,由于系统级的异质性和统计级的异质性,所有有效的方法都可能被破坏。
系统级异质性:
系统异构是指边缘联邦学习中节点的硬件(CPU、GPU、内存)、网络配置和电源的不同。不同的计算能力可能会导致局部模型之间的不公平结果,降低融合模型的等级。不同的网络配置可能导致重要的本地模型碎片丢失并增加训练时间。
统计级异质性:
数据不满足独立同分布。进一步的网络量化和修剪使发散问题更加严重。
联邦学习的优化方法在很大程度上继承了传统的分布式机器学习优化方法。但是由于联邦学习的各个本地训练的数据不满足独立同分布,所以不能直接使用分布式版本技术来解决边缘联邦学习中的通信瓶颈,但向量量化和稀疏化仍然是边缘联邦学习的主流优化策略。
但是,可以从传统的分布式通信中寻求相关联系:
在采用SGD或其他一阶梯度法作为模型优化器时,将梯度量化到其低精度值已被广泛采用。QSGD: Communication-Efficient SGD via Gradient Quantization and Encoding (neurips.cc)一文将一般梯度量化方案 Q ( g , s , l ) Q(g,s,l) Q(g,s,l)表示为:
g t ^ = s ⋅ s g n ( g t ) ⋅ k ( g t , l ) \hat{g_t}=s\cdot sgn(g_t)\cdot k(g_t,l) gt^=s⋅sgn(gt)⋅k(gt,l)
其中 s s s是共享标度因子(可能的选择包括 ∣ ∣ g t ∣ ∣ 2 ||gt||^2 ∣∣gt∣∣2或 ∣ ∣ g t ∣ ∣ ∞ ||g_t||^∞ ∣∣gt∣∣∞), s g n ( ⋅ ) sgn (·) sgn(⋅)返回梯度坐标 g t g_t gt的符号。 k ( ⋅ , ⋅ ) k (\cdot,·) k(⋅,⋅)是一个独立的随机变量,定义如下。设 0 ≤ k ≤ l 0≤ k ≤ l 0≤k≤l 为整数
κ ( g t , l ) ≜ { p / l , w.p p − ∣ g t ∣ s ⋅ l + 1 ( p + 1 ) / l , otherwise \kappa\left(g_t, l\right) \triangleq \begin{cases}p / l, & \text { w.p } p-\frac{\left|g_t\right|}{\mathrm{s}} \cdot l+1 \\ (p+1) / l, & \text { otherwise }\end{cases} κ(gt,l)≜{p/l,(p+1)/l, w.p p−s∣gt∣⋅l+1 otherwise
FedPAQ可能是第一个弥合分布式梯度量化和联邦学习之间差距的研究。FedPAQ的思想非常简单:在FedAvg过程中使用量化模型更新。将梯度量化方法应用于联邦模型更新应该非常谨慎。在高度非独立同分布的数据条件下训练,扩大了模型的发散性。特别是当训练规模增大时,量化模型的更新会引入大量的量化方差。一个可能的解决方案是使用误差补偿量化。
Error Compensated Quantized SGD and its Applications to Large-scale Distributed Optimization (mlr.press)
梯度稀疏化也是一种常用且有效的方法。稀疏方法是直接的,即去掉梯度向量的不太有利的坐标,然后在PS上同步,以确保无偏性。因此,采用降低通信成本的方法。梯度稀疏的角度可以归结于:
一个与梯度稀疏紧密相关的工作是[1812.07210] Expanding the Reach of Federated Learning by Reducing Client Resource Requirements (arxiv.org)。这种被称为Federated Drop的方法旨在训练随机选择的子模型。这些子模型是全局模型的子集,因此,计算出的本地更新可以自然地解释为对更大的全局模型的更新。
引入了两种新的策略来降低通信成本:
(1)在服务器到客户端发送的全局模型上使用有损压缩
(2)联邦Dropout,它允许用户在全局模型的更小子集上高效地进行本地训练,还减少了客户端到服务器的通信和本地计算。
在跨设备边缘联邦学习方案中,训练和推理阶段都位于移动设备上。这些模型通常需要相当大的存储和计算能力,并且很容易使模型设备有限的存储、电池功率和计算机能力过载。
为了解决计算和存储的问题,使用量化权重或者激活模型的方法已经被提出。通过将全精度量化到少位,网络得到了加速。
在边缘联邦学习中,如果能够在每个设备上使用量化模型进行训练,可以大大减少计算量,加快训练和推理速度。目前还没有这样的工作能够完全适应边缘联邦学习环境。一个近似的方法[2006.10672] Federated Learning With Quantized Global Model Updates (arxiv.org)试图通过使用量化的本地模式来更新全局模型。它降低了通信成本,但由于使用了全精度的局部训练模型和计算准备更新量化模型的额外工作,局部计算成本增加。上述的网络量化方法大多不能直接用于边缘联邦学习。
问题在于不能忽视边缘联邦学习中的模型发散,不适当的量化会给全局模型带来大量的模式噪声,使得收敛速度变慢。
现有的修剪技术考虑集中设置与完全访问训练数据,这与边缘联邦学习设置有本质的不同。需要讨论分散数据训练的剪枝方法,目前还是under discussion。
PrunEdge FL提出了一种用于联邦学习的两阶段分布式剪枝算法。首先,将一个共享的修剪模型发送到每个节点进行训练。然后,PrunEdge FL与标准的FedAvg过程一起执行动态修剪。基于大小和自适应修剪方法的一个缺点是很难控制模型的大小进行更新。子模型的结构在训练过程中不断变化。
最优抽样:每个样本对全局模型的贡献是有限的,如何抽样出重要节点,节省通信成本。
掉队者问题:异构网络上进行同步和异步处理具有挑战性;
基于层的联邦学习框架
[2010.05958] FedAT: A High-Performance and Communication-Efficient Federated Learning System with Asynchronous Tiers (arxiv.org)
通信和计算的效率是边缘联邦学习的关键瓶颈,使用传统的梯度量化和稀疏化益处不大。目前的高效方法研究是基于标准FedAvg工艺及其变体。有必要发现比FedAvg更有效的更适合联邦学习方案的算法。
发展目标:
因为FL+边缘计算是一个天然的异构环境,系统中的其他的结点的活动往往难以预测,所以安全和隐私问题也是实现联邦学习的两个问题。
一些恶意结点可能希望从每次上传的更新信息中检索私人数据。
这个部分主要包括联邦学习的攻击和防御两个方面。
边缘联邦学习中攻击的形式主要是:拜占庭攻击和中毒(Byzantine attack,Poisoning attack)
拜占庭攻击
拜占庭攻击是从分布式系统开始时就已经有的。拜占庭攻击说明的是如果某些节点受到攻击、破坏或失效,整个分布式计算系统将出现故障。
具体到边缘联邦学习中,当一些结点受到攻击或者被攻击,并且不能正确计算或者上传权重时,就会出现拜占庭攻击问题。
中毒攻击
迁移和调度是边缘计算中两个主要的底层支持。
背景:在边缘FL中,当边缘节点在边缘服务器之间移动时会出现迁移问题。边缘节点可以从一个边缘服务器移动到另一个边缘服务器,在这个场景中,新的连接的边缘服务器没有联邦学习模型的副本,因此必须实现边缘服务器之间的迁移。一个中等大小的模型可以达到几百兆字节的水平,所以在边缘服务器之间迁移模型需要时间。因此,在边缘联邦学习中需要一个协作的、高效的迁移策略。
现状:在边缘计算中,对迁移做了不少讨论。但是在边缘+FL中,还处于初步阶段。由于联邦学习训练具有模型规模大、节点选择灵活等额外的特点,我们应该针对边缘联邦学习本身专门优化迁移过程。
基于迁移的FL+边缘问题的一些求解思路:
在联邦学习中,同步迭代要求所有参与节点完成计算并将计算结果上传到中心服务器,然后服务器继续执行聚合和模型更新。因此,训练速度受到计算资源最少的节点和网络带宽的限制。为了获得更好的训练速度,最好对计算资源进行有效的调度。
关于调度部分,前人做了很多的方面,主要包括下面四个方向: