下一代分布式AI协同合作范式 冯霁 (分布式前景)
8月7日-8月9日,2020年全球人工智能和机器人峰会(简称“CCF-GAIR 2020”)在深圳如期举办!CCF-GAIR由中国计算机学会(CCF)主办,香港中文大学(深圳)、雷锋网联合承办,鹏城实验室、深圳市人工智能与机器人研究院协办,以“AI新基建 产业新机遇”为大会主题,致力打造国内人工智能和机器人领域规模最大、规格最高、跨界最广的学术、工业和投资领域盛会。
8月9日下午,在「联邦学习与大数据隐私专场」上,创新工场南京人工智能研究院执行院长冯霁进行了题为「联邦学习:下一代分布式AI协同合作范式」的演讲。
以下是冯霁老师在大会的演讲实录,AI科技评论作了不修改原意的整理和编辑:
近几年,联邦学习技术带来了非常好的潜在商业落地场景与创业机会,创新工场AI研究院也花了许多精力去探究与联邦学习有关的商业落地以及现有的科研发展情况。
一、分布式计算
首先,我跟大家介绍一项与联邦学习有关的技术:分布式计算。
大家不妨先想想,分布式计算是怎么来的?
以上图所示自然语言处理模型的大小为例。最早的NLP模型大约有1200万个参数,截止目前为止最新的GPT-3则有1750亿个参数。不管是模型的大小还是训练集的大小,都在以接近指数级别的方式在增长。这时候,如果一台电脑没有足够大的容量处理海量数据,就需要使用分布式算法对数据进行并行处理。
假如你有超过30T的训练数据,那么我们就把这30T的数据均等地划分到100台服务器上,这样每台服务器就只占30T的1%。应用分布式计算时,每一个子节点只拥有一部分的数据,每一个子的Worker(进程)在本地进行一次梯度计算(相当于把本地所有数据扫一遍),计算出梯度之后,将计算结果传到中央服务器中,再由服务器把所有的梯度进行一遍更新。
分布式计算的特点是:这些数据只有单一拥有者,也就是说,我们看似把数据进行了某种程度上的划分,但数据的归属者只有一个。分布式并行计算的主要目的是为了提升效率。
有人会问,在分布式计算中,数据是不是没有出本地呢?确实是没有出本地,但是在以下的任务中,它和联邦学习的区别还是比较大的。
二、从分布式计算角度理解联邦学习
联邦学习刚被推出时就是分布式计算的一个变体。
在之前的范式中,worker一般分布在比较大的集群里,所有worker由一个非常高效的网络连接,worker与worker之间的通信效率非常高。但是在联邦学习中,有很多任务基本无法承担这种通信的代价。比如谷歌的手机输入法(最早的联邦学习应用)。每个人的手机可以看成是一个本地设备,如果每一次运算都要传一个梯度的信息,那么手机与云端通信的效率是非常低下的。如果在这种AI计算中用传统的分布式计算方式进行更新,效率会非常低下。
所以最早的联邦学习的第一篇算法并没有谈到同态加密,也没有谈到其他加密算法,就只是用计算来换取通信的效率。传统的分布式计算在每次进行计算时候,本地的计算节点会把所有的数据扫一遍,传一遍梯度。最早的联邦学习版本相当于是在本地让模型尽可能收敛之后,再传到中央服务器上,这样就相当于是用计算来换通信,解决了To C端联邦学习的目的。
刚才所提到的框架是分布式计算的升级版本,但仍然有许多不足。如果仅仅用计算换通信是没有办法解决一些现实问题的,比如:
1、多数据拥有者场景
当我们面临一个拥有多数据owner(拥有者)的场景,很多家医院想进行协同合作,这时候场景需要存在一个联盟激励。为什么用户要加入这个联邦学习系统中呢?这是传统的分布式计算所未曾面临的问题,因为数据的拥有者是单一的。此外,节点可能处于高度不稳定的状态。比如To C端的手机,有时候会掉线,有时候会没电,有时候压根没有计算反应。其次,计算成本非常高,尤其是To C端。也许5G的到来会缓解成本高的问题,但与传统的分布式机器学习相比,该场景的通信成本相对还是更高的。
2、数据隐私保护的要求更高
3、模型的鲁棒性/攻防安全问题
4、数据非独立同分布现象
以To C端为例,甲的手机上的图像跟乙的手机上拍的图像处于高度不平衡的状态。比如说一个男生的手机上只拍了几百张照片,一个女生的手机上可能有上万张照片。除了照片的数量,照片内容也不一样,女生可能更多是自拍或者人像,男生的照片内容则是其他。
三、研究展望
接下来分享的是我们认为在联邦学习领域值得研究的学术问题。
1、攻击防御
一个典型现象是:攻击者监听了联邦学习worker节点上中央服务器之间的信报,通过监听梯度/参数信息就可以猜出你的原始数据。这一块已经有了较为成熟的解决方案,比如同态加密、MPC、TEE等技术。但我们认为当下这些解决方案并不是最完美的,还存在计算效率不足与部署不方便等等缺陷。
上图是我们去年所做的发表在NIPS上的毒化训练,给数据下毒。数据下毒是一种非常独特的攻击方式。我们在训练集上修改肉眼不可见的扰动。如果做了相应的修改,任何的分类器经受过下毒的训练,当它看到干净的测试样板之后,基本上做出的决定都是错误的。
联邦学习的特点是:如果我们只下毒了一个或者多个参与方,有可能把整个模型进行毒化,也就是说在libConfuse算法下,我们可以通过下毒的方式攻击相关联邦学习的参与方。
如何设计一些更为鲁棒性的联邦学习算法来抵御这些攻击,是我们正在做的事情。
2、Non-I.I.D非独立同分布
目前联邦学习主要有三种应用:To C、To B和To G。尤其是在To C场景中,绝大多数情况下,联邦学习的数据会随着时间的变化而变化。也就是说,你在每一个时间点获得的数据样本并不是从独立同分布中采样出来的。在传统机器学习中有一个核心的算法假设,即数据都是独立同分布的。因此,在非独立同分布的场景下,有很多经典的机器学习算法没有办法被成功应用。所以我们认为,非独立同分布如何配合联邦学习的框架是一个很重要的学术问题。
假如随着时间的迁移,每一个联邦学习的参与者所拥有的数据是不平稳的。在这种情况下,集成学习能发挥很好的作用。给大家举几个论文的例子(如上图所示)。第一篇研究是使用了对冲的方式来对冲掉非平稳序列的风险。第二篇使用了模型重用的方式,因为分布随着时间的变化而变化,这是可以利用模型重用的集成算法来调用之前的知识,进一步应对非平稳概念的迁移。
四、研究方法
目前在联邦学习或其他机器学习框架中,常见的一种算法是Gradient Boosting Machine(GBM)。
它是一类串行的计算方法,每一次训练一个分类器,第二个分类器的训练是基于第一次分类器的结果。这种模型(尤其是在表格的数据中)有非常优秀的建模结果,但还是存在许多问题:
首先,因为它是一个串行训练的过程,所以训练成本大。基于这个算法本身的性质,我们没办法将N个分类器同时并行训练。其次,XGBoost很难适应随着分布迁移而产生的跟时序数据有关的问题。最后,像XGBoost之类的算法因自身存在的弊端,难以处理高维的回归任务。比如在GitHub的页面上,不管是XGBoost还是LightGBM对高维的回归问题都没有很好的解决方案。
为此,我们最近提出Soft Gradient Boosting MaCHIne(软梯度提升机):
如果每一个基分类器都是可微的话,那么我们就把GBM的整个架构连接成一个可相关图,然后分别注入本地和全局的损失(两者恰好等于基分类器GBM中所对应的本地损失)。由于两个系统是可微分的,我们就可以同时训练所有分类器。第二个好处是,由于这样的更新方式可以用SGD训练,所以在适应streaming>
上图所示是相应的实验结果。大家可以看到不管是在联邦学习还是非分布式的场景下,SGB都比传统的GBM/XGBoost与联邦算法有更好的性能提升。“Federated Soft Gradient Boosting Machine for Streaming>
在分布式计算的场景下,我们也可以设计一个完全去中心化的网络拓扑结构(如下图所示)。
这就像杨强老师所说的:羊只能去邻居家吃草。在上图所示的全新架构里,只有相邻的节点之间才能交换梯度信息。如果两个节点之间没有一条边连着,那么就不可以进行通信。
从机器学习的角度来看,如果通过去中心化的网络拓扑结构来做相应的随机梯度下降,它能不能收敛?这取决于网络连接的强度。如果连接得非常稠密,它就会收敛得跟中心化的一样好。
基于这个理论保证,我们是否可以去设计一个去中心化的联邦学习架构,并将这个架构与其他一些目前比较火的技术进一步结合?
4、联盟动机的经济学分析
这是联邦学习框架区别于其他机器学习模型的地方,其中涉及到激励机制的分析。
五、总结
综上,我们认为联邦学习是一类重要的新型分布式人工智能协同合作平台,其未来潜在的研究方向包括:
1、模型安全方面的对抗攻防,比如数据下毒等等。
2、数据隐私的保护机制,比如设计除了同态加密和多方安全计算之外的隐私保护机制,以更好保护本地数据。
3、在联邦学习框架下设计能够适应非独立同分布的更好的算法。我们认为联邦集成学习也许是解决的方向之一。
4、设计新型的网络拓扑架构,比如是否存在一个更加高效的去中心化的联邦学习架构。
5、联邦学习的经济学机制。
提问:针对非独立同分布的情况,可不可以用语言信息来解决这个场景?
冯霁:这是两个范畴的知识。我认为是可以的,相当于用Mind Learning的方式去寻找一个能够适应复杂环境的更好的算法。我不用一个现有的算法去适应非独立同分布的问题,而是设计出一个算法去学习适应这个环境。我觉得这应该是能够起作用的方向。
原创文章,未经授权禁止转载。详情见 转载须知 。