在联邦学习中,计算的卸载是通过将训练任务分配到多个设备或服务器上来实现的,同时保持数据的本地化。 每个参与设备(或“客户端”)使用自己的数据在本地训练模型,而不是将数据集中在单个服务器上。 然后将这些本地模型发送到中央服务器,中央服务器将它们聚合到全局模型中。 这种方法将大部分计算工作(例如梯度计算和参数更新)转移到客户端,从而减少了服务器的聚合和协调工作。 按照设计,这可以保护数据隐私并减少带宽使用,因为原始数据永远不会离开设备。
一个常见的例子是在智能手机上训练键盘预测模型。 每个手机都使用用户的打字历史记录来训练一个轻量级模型。 本地模型更新(例如,梯度或权重)被发送到中央服务器,中央服务器对它们进行平均以创建一个改进的全局模型。 然后,服务器将更新后的模型分发回设备以进行进一步训练。 TensorFlow Federated 或 PyTorch 的 FL 工具等框架通过提供 API 来简化此过程,这些 API 用于定义客户端训练逻辑和服务器端聚合。 例如,开发人员可以实现一个在设备上运行随机梯度下降 (SGD) 的 client_update
函数和一个应用联邦平均 (FedAvg) 来合并结果的 server_update
函数。
卸载计算的挑战包括处理设备异构性和优化通信。 设备的计算能力各不相同,因此训练时间可能会有很大差异。 为了解决这个问题,自适应客户端选择或异步聚合等技术可以优先考虑更快或更可靠的设备。 通过压缩模型更新(例如,使用量化)或限制更新频率来减少通信开销。 例如,医疗影像应用程序可能会在医院服务器(而不是单个设备)上进行训练,以利用更高的计算资源,同时仍然保持患者数据的分散。 安全聚合协议还可以屏蔽更新,以防止服务器对敏感信息进行逆向工程。 这些策略可确保高效、保护隐私的卸载,而不会影响模型性能。