第三章 分布式机器学习

联邦学习与分布式机器学习(Distributed Machine Learning, DML)关系:

  1. 有许多学者将联邦学习看作分布式机器学习的一种特殊形式
  2. 或者把联邦学习看作是分布式机器学习的下一步发展
  3. 我的理解:联邦学习是用户使用自己的数据集,自发地一起训练,联合起来实现更佳的效果;DML是将训练过程分配到各个计算节点

目录

第三章 分布式机器学习

分布式机器学习介绍

定义

面向扩展的DML

面向隐私保护的DML

分布式机器学习平台

面向扩展性的DML

大规模机器学习

内存短缺

不合理的训练时间

面向扩展性的DML方法

数据并行

模型并行

图并行

任务并行

混合并行和交叉并行

面向隐私保护的DML

面向隐私保护的梯度下降方法

朴素联邦学习

隐私保护方法

代数方法

稀疏梯度更新方法

模糊处理方法

密码学方法


分布式机器学习介绍

定义

分布式机器学习是指利用多个计算节点(也称为工作者,Worker)进行机器学习或者深度学习的算法和系统,旨在提高性能、保护隐私,并可扩展至更大规模的训练数据和更大的模型。

简单来说,DML可以分为两类:面向扩展性的DML和面向隐私保护的DML

面向扩展的DML

面向扩展的DML是指用来解决不断增长的扩展性和计算需求问题的机器学习系统。

当内存限制和算法复杂度是主要障碍时,面向扩展性的DML方法便为大规模ML提供了可行的解决方案。

面向扩展性的DML被广泛应用于具有横向数据划分数据集的场景中。其中,训练数据的子集存储在不同的计算单元实体中。

面向隐私保护的DML

面向隐私保护DML的主要目的是保护用户隐私和数据安全。

在面向隐私保护的DML系统中,有多个参与方且每一方都拥有一些训练数据。

由不同参与方拥有的数据集可能具有不同的数据特征,所以实际中经常遇到的是训练数据的纵向划分。


分布式机器学习平台

Apache Spark MLlib

Distributed ML Toolkit, DMTK

TensorFlow:通过tf.distributed支持DNN的分布式训练,允许数据在不同进程上甚至不同服务器上进行计算,并且可以使用多处理器或者多服务器,在数据集的不同分片上训练相同的模型

PyTorch:torch.distributed利用消息传递技术,允许每个进程和其他进程通信,与多进程包(如torch.multiprocessing)相反,进程能够使用不同的通信后端,且不必在同一台机器上执行


面向扩展性的DML

大规模机器学习

在大数据时代,ML方法面临的主要问题已经从训练样本过小转移到了如何处理大规模的高维度数据集上。这里总结了传统ML模型所面临的主要挑战

内存短缺

传统ML方法只在一块独立内存中对训练样本进行所有的操作

不合理的训练时间

ML算法中的一些优化过程可能不能匹配训练样本的规模。如果训练过程耗时过长,就会导致没有充足的时间试验较多的超参数,最终很难获得性能优越的模型

面向扩展性的DML方法

最近,有很多研究工作正在致力于提升DML的能力上限,以减少处理大规模的DL和ML模型所需的训练时间

数据并行

DML的第一种方法便是先将训练数据划分为多个子集,然后将各子集置于多个计算实体中,之后并行地训练同一个模型。

数据并行能用于解决数据过大以至于不能存于单一计算节点的问题,或者用于满足使用并行计算节点实现更快速的计算的要求

模型并行

随着DNN模型变得越来越大,可能会面临一个DNN模型不能加载到单一计算内存中的问题。对于这种情况,我们需要分割模型,并将各部分置于不同的计算节点中。

图并行

图并行方法,也称为以图为中心的方法,是一种用于划分和分配训练数据和执行ML算法的新技术,其执行速度比基于数据并行的方法要快几个数量级

任务并行

任务并行也叫以任务为中心的方法,指的是计算机程序在同一台或多台机器上的多个处理器上执行。它着力并行执行不同的操作以最大化利用处理器或内存等计算资源

混合并行和交叉并行

在DML系统的实践中,我们经常需要结合不同类型的并行方法,从而形成混合并行的方案。

混合并行的覆盖范围可以进一步扩展,形成更加灵活的交叉并行,例如按层选择并行方式


面向隐私保护的DML

数据共享和分布式计算是当今大数据时代的趋势,因为它既能提升计算效率又能改善模型性能。对于隐私保护的ML系统,它通常能保护下列信息:训练数据输入、预测标签的输出、模型信息和身份识别信息。

在面向隐私的DML中,常用的用于保护数据隐私的方法大概分为以下两个类别:

  1. 模糊处理。随机化、添加噪声或修改数据使其拥有某一级别的隐私,如差分隐私方法。
  2. 密码学方法。通过不将输入值传给其他参与方的方式或者不以明文方式传输,使分布式计算过程安全化,如安全多方计算,包括不经意传输、秘密共享、混淆电路和同态加密

优缺点对比:由于计算效率和实现的便捷性,基于模糊的隐私保护方法在基于隐私的DML系统中被普遍使用。但是,随机扰动影响了数据精度和模型性能。在实践中,研究者们不得不在隐私保护和性能之间取舍。与基于扰动的方法相比,密码学方法并不需要牺牲数据精度和模型性能,但是需要更多的额外计算。


面向隐私保护的梯度下降方法

旨在得到最高的数据精度和安全性的方法逐渐开始选用同态加密和安全多方计算,但这将会导致更高的计算复杂度和开销。

典型的面向隐私保护的梯度下降方法包括朴素联邦学习、代数方法、稀疏梯度更新方法、模糊处理方法和密码学方法(如同态加密和安全多方计算)

朴素联邦学习

在联邦平均方法中,每一方给一个协调方(或是受信任的处理方,或是一个参数服务器)独立地上传明文形式的梯度或模型参数。最后,协调方将明文形式的更新模型发送给每一方

虽然训练数据的原始形式不一定能够从每一方的梯度信息中推测出来,但研究人员们已经证明,可能只根据每一方的梯度更新信息来推测出大量信息。

隐私保护方法

代数方法

它通过保证每个诚实方对敌对方的输入和输出存在内部有效的输入-输出对,即受保护的原始输入数据形式,提供了对隐私的保护

如果记录的一个子集被泄露给其他方(如数据投毒),则整个模型将会被方程解攻击,导致轻易地被破坏并发生消息泄露。

稀疏梯度更新方法

稀疏梯度更新方法通过只更新梯度的子集的方式来保护隐私。这类方法用精度来换取效率,并且保护隐私程度较低。梯度是以明文方式传输的,所以这类方法是用隐私换取效率

模糊处理方法

模糊处理方法通过随机化、泛化和压缩来使得数据模糊,虽然可以改善隐私性,但会降低准确度。在联邦学习中,本地差分隐私也可以用于给每一方的梯度加上噪声。

密码学方法

上述方法将每一方的明文梯度信息都暴露给了协调方或其他方。与此相反,密码学方法利用了同态加密和安全多方计算,在梯度下降过程中,保护每一方的梯度信息隐私。

在安全集中方法中,一个参与方只被允许学习被给予的一组明文梯度平均值。安全集中方法通过Shamir阈值秘密共享方法保护每一方的梯度信息,因此协调方只能公开一组梯度的平均值。

另一种密码学方法介绍了存在一个或多个协作方,但所有协作方都不被允许学习任何关于梯度和模型信息的情况。对于基于同态加密的方法,以上约束能通过加入一个随机掩码来给数值解密。对于基于MPC的方法,被信任的处理方能按要求生成独立材料(如Beaver三元组)。

当不能设定任何协调方,可以使用一些不需要协调方的密码学方法,即进行安全多方梯度下降,其中每一方都只能学习自己的输入和输出。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐