# 协作学习概念
在深度学习的训练过程中,训练有效的模型需要大量的样本和高性能的算力 (GPU). 由于某些原因,样本和算力可能分布在不同的机器上,因此,就产生了协作学习的概念。
# 机器学习模型
机器学习的本质是进行参数的最优化。可以概括为下面这和式子:
# 并行策略分类
模型复杂的机器学习需要引入并行性。目前,机器学习的并行一般采用如下四种方法:
- 数据并行
- 模型并行
- 流水线并行
- 混合并行
数据并行 (data parallelism) 指不同设备执行相同模型,采用不同的数据集进行训练。该方法思路简单,目前是分布式深度神经网络的主要训练策略。Pytorch DDP 是一个例子。
模型并行 (model parallelism) 指将模型按照层进行分划,分配到多个计算资源中,并在不同的计算资源中处理模型的不同部分。该方法是为了解决大模型的参数存储和激活带来的内存消耗问题。其中的两个代表性工作是 Megatron-LM 与 Mesh-TensorFlow.
流水线并行 (pipeline parallelism) 又叫层间模型并行 (inter-layer parallelism),指将模型分成多个阶段,按照流水线顺序依次训练,其思路类似于计算机指令流水线。两个典型的工作如下:
- PipeDream
- GPipe
混合并行 (Hybrid parallelism) 即上述几种并行策略的混合使用。
# 参数分布
在协作学习中,参数分布是与模型架构和隐私性密切相关的重要问题。参数分布一般包括中心化和非中心化两种方式。
# 模型一致性
模型一致性 (model consistency) 是协作学习过程中所必须保持的。一般采用以下三种方式进行保持:
- 同步 (synchronous)
- 异步 (asynchronous)
- 陈旧同步 (stale-synchronous): 是在异步基础上进行补救的策略。当出现更新速度过慢的陈旧节点时,就强制采取全局同步。
# 联邦学习
# 协作学习中的威胁
协作学习中的威胁主要包括两大类,即完整性威胁 (integrity threat) 和隐私威胁 (privacy threat).
协作学习 (collaborative Learning)