📌MSCFL论文速读
1. 标题
MSCFL: Model Structure-Aware Clustered Federated Learning for System Heterogeneity and Data Drift
MSCFL:面向系统异构与数据漂移的模型结构感知聚类联邦学习
①联邦学习方向上的,还是聚类联邦学习……
②分组依据:Model Structure-Aware 表示分组过程会考虑模型结构信息,而不只是看客户端数据或设备状态。
2. 摘要
①普通聚类联邦学习会把数据相似的客户端分成一组,但不同客户端的算力和通信能力也可能不同。为了适应能力差异,客户端可以使用不同大小的剪枝模型;问题是模型结构不同后,原来的聚类方法就不容易再判断客户端之间是否相似。另外,客户端的数据会随时间变化。若一直留在原来的组里,分组可能逐渐不合适;但每轮都重新分组又会增加开销。论文因此要解决两个问题:不同结构的模型怎么分组,以及什么时候值得重新分组。
②论文明确提出 两个核心模块:
3. 场景流程
① 服务器初始化模型和客户端分组
训练开始时,服务器初始化模型,并设置客户端的剪枝比例等参数。客户端的数据分布可能不同,设备的计算能力也可能不同。服务器会把客户端划分成若干组,每组维护一个自己的模型,称为“簇模型”。
② 服务器向客户端下发所属组的模型
每轮开始时,服务器把每个客户端当前所属组的模型发给它。也就是说,客户端收到的是自己所在簇的模型,不一定所有客户端都收到同一个模型。
③ 客户端先进行一段预训练
客户端用自己的本地数据训练刚收到的模型一段时间。论文把这一步称为预训练。这样做是为了让模型先适应客户端本地数据,再进行后续剪枝。
④ 客户端根据设备能力剪枝
客户端按照设定的剪枝方法,删掉一部分神经网络结构,形成较小的模型。设备能力不同的客户端可以采用不同剪枝比例。
客户端同时生成一个掩码,记录模型中哪些结构被保留、哪些结构被剪掉。
⑤ 客户端继续训练并上传结果
客户端在剪枝后的模型上继续训练,然后上传两样东西:训练后的剪枝模型;对应的剪枝掩码。
客户端不上传本地图片,只上传模型相关信息。
⑥ 服务器检查客户端模型结构是否明显变化
服务器会比较客户端最近几轮的掩码变化,用汉明距离衡量变化了多少位。可以把它想成逐位比较两张“保留/剪除记录表”,统计其中不同的位置。
如果变化不明显,服务器认为暂时没有足够信号表明客户端的数据特征发生了明显变化,于是沿用之前的分组;
如果变化超过阈值,服务器就判断原分组可能不再合适,启动重新聚类。
⑦ 需要时,服务器重新聚类客户端
服务器根据客户端掩码和剪枝比例计算结构相似度,再把相似客户端重新分到一组。某个客户端可能因此从原来的簇转到另一个簇,这就是论文所说的“簇迁移”。
⑧ 服务器在每个簇内聚合模型
分组确定后,服务器分别聚合每个簇中客户端上传的模型,生成各簇的新模型。由于不同客户端的模型可能剪掉了不同部分,论文聚合时会考虑它们共同保留的模型参数。
⑨ 服务器下发各簇的新模型,进入下一轮
每个簇的新模型被发回对应客户端,客户端继续本地训练。之后重复“本地训练、剪枝、上传、检查分组、聚合”的流程,直到训练结束。
4. 总结
这篇论文主要是做聚类联邦学习的,创新点呢,大概就是:①利用客户端剪枝后模型的结构来进行聚类。②每轮会根据结构变化判断何时重新分组。【目标是适应设备能力差异和数据变化】






