diff --git a/chapter_federated_learning/challenge.md b/chapter_federated_learning/challenge.md deleted file mode 100644 index b30e809..0000000 --- a/chapter_federated_learning/challenge.md +++ /dev/null @@ -1,30 +0,0 @@ -## 实际部署时的挑战 - -### 部署流程 - -随着端上算力的提升和算法的快速发展,跨设备联邦学习在智能手机或智能设备中的应用越来越广泛。其主要流程如 :numfef:`ch10-federated-learning-flow`所示,可分为如下几步: - -1. FL-Client选择:FL-Client主动向FL-Server发起参与联邦学习的请求。FL-Server根据配置筛选出满足条件的FL-Client。选择成功后FL-Server下发模型以及相关联邦学习配置。 -2. FL-Client训练:在终端设备上进行本地模型训练。 -3. 联邦聚合:FL-Client上传模型权重到FL-Server,并由FL-Server选择聚合算法进行计算,并对某些数据进行持久化存储。 -4. FL-Client模型更新:终端向FL-Server查询联邦聚合后的模型等数据。 -5. 重复1-4步,完成联邦学习任务。 - -![跨设备联邦学习流程图](../img/ch10/ch10-federated-learning-flow.png) - -:label:`ch10-federated-learning-flow` - -### 部署挑战 - -然而,由于跨设备联邦学习的特殊性,其挑战主要包括: - -1. 跨设备联邦学习的FL-Client的网络连接常常是不稳定的,在任何时候都只有部分FL-Client可用。 - -2. 跨设备联邦学习往往是大规模并行的场景,通信时间会成为瓶颈。当千万级FL-Client同时进行联邦学习请求时,需要大量网络带宽的支持,并且单台FL-Server必然承接不住庞大的数据和参数。 - -### 解决方案 - -为了解决跨设备联邦学习带来的挑战,MindSpore Federated Learning给出两个解决方案: - -1. 限时通信:在FL-Server和FL-Client建立连接后,启动全局的计时器和计数器。当预先设定的时间窗口内的FL-Server接收到FL-Client训练后的模型参数满足初始接入的所有FL-Client的一定比例后,就可以进行聚合。若时间窗内没有达到比例阈值,则进入下一轮迭代。保证即使有海量FL-Client接入的情况下,也不会由于个别FL-Client训练时间过长或掉线导致的整个联邦学习过程卡死。 -2. 松耦合组网:使用FL-Server集群。每个FL-Server接收和下发权重给部分FL-Client,减少单个FL-Server的带宽压力。此外,支持FL-Client以松散的方式接入。任意FL-Client的中途退出都不会影响全局任务,并且FL-Client在任意时刻访问任意FL-Server都能获得训练所需的全量数据。 \ No newline at end of file diff --git a/chapter_federated_learning/fedavg.md b/chapter_federated_learning/fedavg.md deleted file mode 100644 index c25700a..0000000 --- a/chapter_federated_learning/fedavg.md +++ /dev/null @@ -1,8 +0,0 @@ -## 联邦平均算法 - -和传统分布式学习相比,联邦学习存在训练结点不稳定和通信代价大的难点。这些难点导致了联邦学习无法和传统分布式学习一样:在每次单步训练之后,同步不同训练结点上的权重。为了提高计算通信比并降低频繁通信带来的高能耗,谷歌公司提出了联邦平均算法(Federated Averaging,FedAvg)。 :numfef:`ch10-federated-learning-fedavg`展示了FedAvg的整体流程。在每轮联邦训练过程中,端侧进行多次单步训练。然后云侧聚合多个端侧权重,并取加权平均。 - -![联邦平均算法](../img/ch10/ch10-federated-learning-fedavg.png) - -:label:`ch10-federated-learning-fedavg` - diff --git a/chapter_federated_learning/index.md b/chapter_federated_learning/index.md index 9c5ea01..08d05a9 100644 --- a/chapter_federated_learning/index.md +++ b/chapter_federated_learning/index.md @@ -2,20 +2,19 @@ 在本章中,我们介绍深度学习的一个重要分支——联邦学习及其在系统方面的知识。本章的学习目标包括: -- 掌握联邦学习基本知识。 -- 掌握联邦系统架构组成部分。 -- 掌握联邦平均和隐私加密算法。 -- 了解联邦学习实际部署时的挑战。 +- 掌握联邦学习基本定义,并了解现有主流联邦开源框架。 +- 了解横向联邦学习算法。 - 了解纵向联邦学习算法。 +- 了解联邦学习加密算法。 +- 了解联邦学习前沿算法和未来研究方向。 ```toc :maxdepth: 2 overview -system_architecture -fedavg -privacy_encryption_algorithm -challenge +horizontal_fl vertical_fl +privacy_encryption_algorithm +outlook summary ``` \ No newline at end of file diff --git a/chapter_federated_learning/outlook.md b/chapter_federated_learning/outlook.md new file mode 100644 index 0000000..10e8bcd --- /dev/null +++ b/chapter_federated_learning/outlook.md @@ -0,0 +1,3 @@ +## 展望 + +待补充 diff --git a/chapter_federated_learning/overview.md b/chapter_federated_learning/overview.md index 5dd1f2a..33bbf22 100644 --- a/chapter_federated_learning/overview.md +++ b/chapter_federated_learning/overview.md @@ -20,7 +20,7 @@ 联邦学习和参数服务器(数据中心分布式学习)架构非常相似,都是采用中心化的服务器和分散的客户端去构建同一个机器学习模型。此外,根据客户端来源和规模的不同,联邦学习还可以细分为跨设备(cross-device)与跨组织(cross-silo)联邦学习。一般而言,跨组织联邦学习的用户一般是企业、机构单位级别的,而跨设备联邦学习针对的则是便携式电子设备、移动端设备等。 :numref:`ch10-federated-learning-different-connection`展示了三者的区别和联系: -![1647486083496](..\img\ch10\ch10-federated-learning-different-connection.png) +![数据中心分布式训练、跨组织和跨设备联邦学习的区别和联系](../img/ch10/ch10-federated-learning-different-connection.png) :label:`ch10-federated-learning-different-connection` diff --git a/chapter_federated_learning/system_architecture.md b/chapter_federated_learning/system_architecture.md deleted file mode 100644 index 5f561e8..0000000 --- a/chapter_federated_learning/system_architecture.md +++ /dev/null @@ -1,20 +0,0 @@ -## 系统架构 - -联邦学习系统由调度器模块、服务器模块和客户端模块三个部分组成,其系统架构如 :numref:`ch10-federated-learning-architecture`所示。其中: - -- 联邦学习调度器: - - 联邦学习调度器(FL-Scheduler)协助集群组网,并负责管理面任务的下发。 - -- 联邦学习服务器: - - 联邦学习服务器(FL-Server)提供客户端选择、限时通信、分布式联邦聚合功能。FL-Server需要具备支持端云千万台设备的能力以及边缘服务器的接入和安全处理的逻辑。 - -- 联邦学习客户端: - - 联邦学习客户端(FL-Client)负责本地数据训练,并在和FL-Server进行通信时,对上传权重进行安全加密。 - -![联邦学习系统架构图](../img/ch10/ch10-federated-learning-architecture.png) - -:label:`ch10-federated-learning-architecture` -