Federated Learning
联邦学习在多个设备或组织上训练同一个模型,这些设备或组织将原始数据保留在本地,只与服务器共享模型更新。
联邦学习是一种跨多个设备或组织训练同一个机器学习模型的方法,同时让各处的训练数据留在采集地点。协调服务器将当前模型发送给参与方,各参与方用自己的数据训练模型,然后只将生成的模型更新传回并合并,从而得到更好的共享模型。Google 研究人员在 2016 年的论文《从去中心化数据中进行深度网络的通信高效学习》中为这种方法命名,并介绍了联邦平均(FedAvg)算法,用于在留存于用户移动设备上的数据上进行训练。将模型带到数据所在之处,让手机、医院和银行能够利用那些因隐私规则、欧盟《通用数据保护条例》(GDPR)等法规或数据规模过大而无法汇集到同一个数据湖中的信息进行学习。
联邦学习的工作原理#
训练分轮次进行。服务器选择一组可用客户端,并向它们发送全局模型权重。每个客户端在本地数据上运行若干个轮次的梯度下降,然后返回更新后的权重。FedAvg 随后对返回的权重求平均,并按每个客户端的训练样本数量分配权重占比,所得结果成为下一轮的全局模型。在 FedAvg 实验中,与同步的随机梯度下降相比,通信之间执行多个本地步骤使通信轮次数减少了 10 到 100 倍。下面的代码模拟了三个数据量不同的客户端对线性模型执行 FedAvg:
import torch
torch.manual_seed(0)
true_w = torch.tensor([2.0, -3.0])
# Three clients with private datasets of different sizes; raw data never leaves a client
clients = []
for n in (50, 200, 500):
X = torch.randn(n, 2)
clients.append((X, X @ true_w + 0.1 * torch.randn(n)))
global_w = torch.zeros(2)
for r in range(1, 6):
weighted = []
for X, y in clients:
w = global_w.clone()
for _ in range(5): # local gradient descent steps on the client's own data
w -= 0.1 * 2 * X.T @ (X @ w - y) / len(y)
weighted.append(len(y) * w)
# FedAvg: average the client weights, weighted by each client's number of samples
global_w = sum(weighted) / sum(len(y) for _, y in clients)
print(f"round {r}: global weights {[round(v, 3) for v in global_w.tolist()]}")它会输出第 1 轮后的全局权重 [1.354, -2.023]、第 3 轮后的 [1.935, -2.898],以及第 5 轮后的 [1.995, -2.99],并逐渐收敛到真实值 [2, -3],尽管服务器始终只接收每个客户端的权重。
跨设备与跨孤岛联邦学习#
联邦学习有两种约束不同的设置。跨设备训练涉及数百万部手机或传感器,每个设备只持有少量数据,而且经常离线或处于电池供电状态,因此每轮只使用其中很小一部分,并且必须能容忍设备掉线。Google 的 Gboard 键盘便以这种方式训练下一词预测模型。跨孤岛训练则连接少数几个组织(例如医院或银行),每个组织都在可靠的服务器上持有大型数据集。在联邦肿瘤分割研究中,六大洲的 71 家医疗机构在不共享数据的情况下,使用来自 6,314 名患者的 25,256 份 MRI 扫描训练胶质母细胞瘤分割模型;与使用公开数据训练的模型相比,联邦模型对可手术切除肿瘤的勾画效果提高了 33%。适合哪种设置取决于数据的位置:
同样的循环也适用于视觉模型:每家医院、工厂或门店都可以加载当前全局YOLO26权重,使用标准 Ultralytics YOLO train 模式在自己的图像上对权重进行微调,然后只将更新后的权重传回服务器进行平均。Flower和NVIDIA FLARE等开源框架可为这两种设置处理客户端选择、通信和聚合。
隐私与安全#
数据留在本地本身并不能保证训练过程具有隐私性,因为模型更新会携带生成它们的数据相关信息。梯度泄漏等梯度反演攻击可从共享梯度中还原训练图像和标签,而成员推断攻击则会测试某条特定记录是否曾被使用。生产系统会增加两种防御机制。安全聚合会加密更新,使服务器只能得知它们的总和;差分隐私会裁剪每次更新并添加经过校准的噪声,从而无法还原任何单个用户的贡献;Google 报告称,所有采用联邦学习训练的 Gboard 下一词预测神经网络语言模型现在都具有差分隐私保证。服务器还必须防范发送投毒更新的客户端,并使用坐标中位数等稳健聚合规则来限制任何单个客户端的影响。不同参与方的客户端数据差异很大(例如一家医院的扫描仪与另一家医院的扫描仪不同)时,本地模型会彼此偏离,收敛速度也会变慢。










