Note_AGQFL: Communication-efficient Federated Learning via Automatic Gradient Quantization in Edge H

文章提出AGQFL算法,通过MQI衡量模型收敛能力,动态调整量化精度以解决FL中的通信异质性问题。它包含量化指示器、策略和优化器模块,针对带宽差异和模型性能进行智能决策。然而,文章也讨论了获取带宽信息、动态带宽处理以及量化策略的局限性。
摘要由CSDN通过智能技术生成

AGQFL: Communication-efficient Federated Learning via Automatic Gradient Quantization in Edge Heterogeneous Systems
Zirui Lian, Jing Cao, Yanru Zuo, Weihong Liu, Zongwei Zhu*
International Conference on Computer Design (ICCD)
CCF B 会
2021

一、动机和贡献

动机:边缘设备带宽的不同导致 ”通信异质性” 的问题,但是现阶段FL的量化却使用固定量化精度,这就导致了 “straggler” 问题。
注:straggler 问题是指,在FL同步更新策略中,通信速度慢的client会减缓全局轮数。

贡献:提出了一种 AGQFL 算法框架,用以平衡 通讯速度模型收敛精度。主要包括三个模块,即:

  1. quantization indicator module:设计了一种指示器,MQI,用以测量模型的 “收敛能力”,并决定后续量化精度调整方向(增加/减少)。具体来说,如果 “当前模型” 收敛能力强于 “历史模型”,那么降低量化精度以保证速度;反之,增加量化精度以保证收敛。
  2. quantization strategy module:根据每个客户端的 实际设备带宽模型收敛能力(MQI),给出具体调整client的量化精度的幅度。
  3. quantization optimizer module:通过对 学习率 的调整,设计了新的优化器(optimizer)来进一步增加模型收敛性能。

二、算法设计

2.1 Quantization Indicator

核心思想:一般来说,随着量化精度地下降,模型的方差会逐渐增大,这就导致了训练过程中较大的梯度误差,导致模型泛化性能下降。本文设计的 Indicator 通过定义 M Q I MQI MQI 来近似模拟模型方差(即表征模型泛化能力)。通过对某个 client 的 历史模型 M Q I MQI MQI当前模型 M Q I MQI MQI 的对比,得到模型下一步量化精度的方向(增加/减少)。
量化精度 ↓ ⇒ 模型方差 ↑ ⇒ 梯度误差 ↑ ⇒ 泛化能力 ↓ \text{量化精度}\downarrow\Rightarrow\text{模型方差}\uparrow\Rightarrow\text{梯度误差}\uparrow\Rightarrow\text{泛化能力}\downarrow 量化精度↓⇒模型方差↑⇒梯度误差↑⇒泛化能力

M Q I MQI MQI 定义如下:
M Q I = ∥ W ∥ 2 ∥ g ∥ 2 , MQI = \frac{\|W\|_2}{\|g\|_2}, MQI=g2W2,
其中, W W W 表示模型权重, g g g 表示梯度值, ∥ ⋅ ∥ \|\cdot\| 表示2范数。如下图所示,展示了 M Q I MQI MQI 和 模型方差之间的关系。从中可以得出结论: M Q I MQI MQI 和 模型方差呈反比关系,因此可以通过 M Q I MQI MQI 表征模型泛化能力。
M Q I ↑ ⇒ 模型方差 ↓ ⇒ 模型泛化能力 ↑ ⇒ 量化精度需 ↓ MQI \uparrow\Rightarrow \text{模型方差}\downarrow\Rightarrow\text{模型泛化能力}\uparrow\Rightarrow\text{量化精度需}\downarrow MQI↑⇒模型方差↓⇒模型泛化能力↑⇒量化精度需
M Q I ↓ ⇒ 模型方差 ↑ ⇒ 模型泛化能力 ↓ ⇒ 量化精度需 ↑ MQI \downarrow\Rightarrow \text{模型方差}\uparrow\Rightarrow\text{模型泛化能力}\downarrow\Rightarrow\text{量化精度需}\uparrow MQI↓⇒模型方差↑⇒模型泛化能力↓⇒量化精度需
MOI与模型方差的关系

但是,直接粗略地通过 M Q I MQI MQI 的变化来决定量化方向是不太合理的。文章采用 “自适应动量估计” 的思想,即定义:
历史  M Q I t h = β ∗ M Q I t − 1 h + ( 1 − β ) ∗ M Q I t , 差值  Δ M Q I t = M Q I t − M Q I t h . \begin{equation*} \begin{split} &\text{历史}~MQI^h_t=\beta*MQI^h_{t-1}+(1-\beta)*MQI_t,\\ &\text{差值}~\Delta MQI_t=MQI_t-MQI^h_t. \end{split} \end{equation*} 历史 MQIth=βMQIt1h+(1β)MQIt,差值 ΔMQIt=MQItMQIth.

2.2 Quantization Strategy

核心思想:根据client的通信带宽,定义一个概率函数 b ∼ β N ( b i n i t k , 1 ) b\sim\beta N(b^k_{init},1) bβN(binitk,1),其中 b i n i t k b^k_{init} binitk 表示当前客户端最有可能选择的量化精度(谨慎远离 b i n i t b_{init} binit量化精度)。若 当前量化精度 b l > b i n i t b_l>b_{init} bl>binit,则采用 “慢增快降” 策略;反之,采用 “慢降快增” 策略。和 M Q I MQI MQI 结合可以描述为:
b l > b i n i t   &   { Δ M Q I t > threhold 1 ⇒ 增 ↑ Δ M Q I t < threhold 2 ⇒ 降 ↓ ↓ ↓ b l < b i n i t   &   { Δ M Q I t > threhold 1 ⇒ 增 ↑ ↑ ↑ Δ M Q I t < threhold 2 ⇒ 降 ↓ b_l>b_{init} ~\&~\begin{cases} \Delta MQI_t>\text{threhold}_1 & \Rightarrow \text{增}\uparrow\\ \Delta MQI_t<\text{threhold}_2 & \Rightarrow \text{降}\downarrow\downarrow\downarrow \end{cases}\\ b_l<b_{init} ~\&~\begin{cases} \Delta MQI_t>\text{threhold}_1 & \Rightarrow \text{增}\uparrow\uparrow\uparrow\\ \Delta MQI_t<\text{threhold}_2 & \Rightarrow \text{降}\downarrow \end{cases} bl>binit & {ΔMQIt>threhold1ΔMQIt<threhold2↓↓↓bl<binit & {ΔMQIt>threhold1ΔMQIt<threhold2↑↑↑用一句话概括为: M Q I MQI MQI决定了量化方向(增/降); b i n i t b_{init} binit决定了量化速度(快/慢)。

注:每个client的通信带宽是静态的,同时必须提前测量好,这样才能为每个client估计相应的 b i n i t b_{init} binit

具体的更新策略可以描述为:
criterion: ∣ ∣ Δ M Q I t ∣ ∣ > α ∗ M Q I t update: b k = b l k + s g n [ b i n i t k − b l k ] ∗ m i n [ 1 , − s g n ( Δ M Q I t ) ∗ γ ∗ ( N ( b i n i t k ) − N ( b l k ) ) ] \begin{equation*} \begin{split} &\text{criterion:}\quad||\Delta MQI_{t}||>\alpha*MQI_{t}\\ &\text{update:}\quad b^{k} =b_l^k+\boldsymbol{sgn}[b_{init}^k-b_l^k]\\ &\qquad\qquad\qquad\qquad*\boldsymbol{min}[1,-sgn(\Delta MQI_t)*\boldsymbol{\gamma}*(\boldsymbol{N}(b_{init}^{k})-\boldsymbol{N}(b_{l}^{k}))] \end{split} \end{equation*} criterion:∣∣ΔMQIt∣∣>αMQItupdate:bk=blk+sgn[binitkblk]min[1,sgn(ΔMQIt)γ(N(binitk)N(blk))]其中, α \alpha α 表示超参; N ( ⋅ ) N(\cdot) N()表示基于概率的选择函数,可以保证量化精度尽可能保持到初始精度,即在 b i n i t b_{init} binit附近。
注:目前感觉这个公式有问题,尤其是 N ( ⋅ ) N(\cdot) N()原文没有定义,但是公式想表达的思想是明确的

2.3 Quantization Optimizer

核心思想:根据一个得出的结论,认为可以通过调整学习率 η \eta η 的方式增加模型的收敛性能,降低模型误差,提高模型泛化能力。

神经网络中,通常使用如下准则定义模型的收敛性能,即:
R ( T ) = ∑ t = 1 T ( f t ( w t ) − f t ( w ∗ ) ) R(T)=\sum_{t=1}^T(f_t(w_t)-f_t(w^*)) R(T)=t=1T(ft(wt)ft(w))其中, T T T表示训练总轮数; w ∗ w^* w表示 t t t轮时理论最佳模型权重。模型收敛意味着: 当 t → ∞ 时, R ( T ) → 0 \text{当}t\rightarrow\infty\text{时},R(T)\rightarrow 0 tR(T)0

Theorem 1:可以有如下结论:
R ( T ) T ≤ D ∞ 2 T η t + D ∞ T ∑ t = 1 T ∣ ∣ ε t ∣ ∣ + 1 T ∑ t = 1 T η t ∗ S ∗ ∣ ∣ ε t ∣ ∣ 2 2 m \frac{R(T)}{T}\leq\frac{D_{\infty}}{2T\eta_{t}}+\frac{D_{\infty}}{T}\sum_{t=1}^{T}||\varepsilon_{t}||+\frac{1}{T}\sum_{t=1}^{T}\frac{\eta_{t}*S*||\varepsilon_{t}||^{2}}{2\sqrt{m}} TR(T)2TηtD+TDt=1T∣∣εt∣∣+T1t=1T2m ηtS∣∣εt2其中, S S S表示量化精度; ∥ ε t ∥ \|\varepsilon_t\| εt表示量化误差。因此可以得出:
R ( T ) ∝ η t , S , ∥ ε t ∥ R(T)\propto\eta_t,S,\|\varepsilon_t\| R(T)ηt,S,εt而根据2.2中描述,通过控制量化精度 S S S来控制量化误差 ∥ ε t ∥ \|\varepsilon_t\| εt,因此可以通过将学习率调整为 ∥ ε t ∥ \|\varepsilon_t\| εt的反方向(即 S S S正方向)来进一步促进模型收敛。

由2.1可知,量化精度的方向是由 M Q I MQI MQI 决定的,因此优化算法如下:
W t + 1 = W t − η t ∗ ρ t ∗ ▽ f ( W t ) ρ t = μ ∗ c o s < g t , g ^ t > ∗ ∣ ∣ W t ∣ ∣ 2 ∣ ∣ g t ∣ ∣ 2 + w d ∗ ∣ ∣ W t ∣ ∣ 2 W_{t+1}=W_t-\eta_t*\rho_t*\bigtriangledown f(W_t)\\\rho_t=\mu*cos<g_t,\hat{g}_t>*\frac{||W_t||_2}{||g_t||_2+wd*||W_t||_2} Wt+1=Wtηtρtf(Wt)ρt=μcos<gt,g^t>∣∣gt2+wd∣∣Wt2∣∣Wt2其中, w d wd wd表示正则化参数; c o s < g t , g ^ t > cos<g_t,\hat{g}_t> cos<gt,g^t>表示量化前后梯度向量的余弦相似度; μ \mu μ表示一个超参。

2.4 总算法流程

算法流程图

三、讨论

本文根据 “泛化性能( M Q I MQI MQI)”来获得量化的具体方向;通过与 “期望量化精度( b i n i t b_{init} binit)”比较获得量化速度。这就导致几个问题:

  1. 如何事先获取模型带宽,并得到相应的 “期望量化精度( b i n i t b_{init} binit)”?
  2. 如果client带宽不是静态的,而是动态的,应该怎么处理?
  3. 调整量化精度策略中,本质上只有 “模型泛化性能” 的因素,对于 “client带宽” 只是简单的通过概率来引入,这样做是否合理?有没有更好的方式?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值