# 协作学习概念

在深度学习的训练过程中,训练有效的模型需要大量的样本和高性能的算力 (GPU). 由于某些原因,样本和算力可能分布在不同的机器上,因此,就产生了协作学习的概念。

# 机器学习模型

机器学习的本质是进行参数的最优化。可以概括为下面这和式子:

w=arg minwRdLD(fw)=arg minwRdEξD[l(w,ξ)]w^* = \argmin_{w \in \mathbb{R}^d} L_\mathcal{D}(f_w) = \argmin_{w \in \mathbb{R}^d} \mathbb{E}_{\xi \sim \mathcal{D}}[l(w,\xi)]

# 并行策略分类

模型复杂的机器学习需要引入并行性。目前,机器学习的并行一般采用如下四种方法:

  • 数据并行
  • 模型并行
  • 流水线并行
  • 混合并行

数据并行 (data parallelism) 指不同设备执行相同模型,采用不同的数据集进行训练。该方法思路简单,目前是分布式深度神经网络的主要训练策略。Pytorch DDP 是一个例子。

模型并行 (model parallelism) 指将模型按照层进行分划,分配到多个计算资源中,并在不同的计算资源中处理模型的不同部分。该方法是为了解决大模型的参数存储和激活带来的内存消耗问题。其中的两个代表性工作是 Megatron-LM Mesh-TensorFlow.

流水线并行 (pipeline parallelism) 又叫层间模型并行 (inter-layer parallelism),指将模型分成多个阶段,按照流水线顺序依次训练,其思路类似于计算机指令流水线。两个典型的工作如下:

  1. PipeDream
  2. GPipe

混合并行 (Hybrid parallelism) 即上述几种并行策略的混合使用。

# 参数分布

在协作学习中,参数分布是与模型架构和隐私性密切相关的重要问题。参数分布一般包括中心化非中心化两种方式。

# 模型一致性

模型一致性 (model consistency) 是协作学习过程中所必须保持的。一般采用以下三种方式进行保持:

  1. 同步 (synchronous)
  2. 异步 (asynchronous)
  3. 陈旧同步 (stale-synchronous): 是在异步基础上进行补救的策略。当出现更新速度过慢的陈旧节点时,就强制采取全局同步。

# 联邦学习

# 协作学习中的威胁

协作学习中的威胁主要包括两大类,即完整性威胁 (integrity threat) 和隐私威胁 (privacy threat).

协作学习 (collaborative Learning)