Swarm Learning ---一种去中心化的分布式机器学习范式


群智学习blog

一、前言

精准医疗的目标是能快速准确地检测出患有严重疾病和异质性疾病的患者,而机器学习有助于实现这一目标,例如根据病人的血液转录组数据来识别是否患有白血病。然而,应用到实际还存在很多问题。基于人工智能(AI)的疾病诊断方法,本质上不仅依赖于适当的算法,更依赖于大型训练数据集。

由于医学数据本身是分散的,医疗机构本地的数据量通常不足以训练出可靠的分类器。因此,根据医疗数据构建出的模型,仅能解决本地问题。从人工智能角度,将各地医疗数据进行集中处理是更好的选择,但这存在难以避免的缺陷。包括数据流量问题,以及对数据所有权、保密性、隐私性、安全性和数据垄断等情况的担忧。因此,需要更有效、准确、高效的解决方案,并且能够在隐私和道德方面实现保密要求,还要进行安全和容错设计。

联邦学习方法(Federated Learning)解决了其中的一些问题。数据保存在数据所有者本地,保密性问题得到解决,但参数设置仍要中央协调员协调。此外,这种星型架构降低了容错能力。相比于已比较流行的联邦学习方法,更好的选择是采取完全去中心化的人工智能解决方案,即SL来克服已有方案的不足,适应医学领域固有的分散式数据结构以及数据隐私和安全法规的要求。

SL具有以下优势:(1)将大量医疗数据保存至数据所有者本地;(2)不需要交换原始数据,从而减少数据流量;(3)提供高级别的数据安全保障;(4)能够保证网络中成员的安全、透明和公平加入,不再需要中央托管员;(5)允许参数合并,实现所有成员权力均等;(6)可以保护机器学习模型免受攻击。从概念上讲,如果本地有足够的数据和计算机基础设施,机器学习就可以在本地进行。

对比几种机器学习方法,研究人员发现,基于云的机器学习(Central Learning)会产生数据集中移动,可用于训练的数据量大大增加,相比于数据和计算在不相关地点的Local Learnling方法,机器学习的结果得到改善,但存在数据重复、数据流量增加以及数据隐私、数据安全等方面的问题。联邦学习方法使用专用参数服务器负责聚合和分发,其他中央结构仍被保留。SL,省去专用服务器,通过Swarm网络共享参数,并且在各个节点的私有数据上独立构建模型。

不同的机器学习训练方案

1.本地学习

定义:数据和计算均是在不同的、不相关的地点,训练出来的本地模型也是各个客户端自行使用。

2.中心学习

定义:所有的节点将数据汇聚到一个中心服务器上,由中心服务器执行模型训练任务。其中数据和参数均为中心化结构,是基于云的机器学习方案。

3.联邦学习

定义:联邦学习(Federated Learning)是一种分布式机器学习技术,其核心思想是通过在多个拥有本地数据的数据源之间进行分布式模型训练,在不需要交换本地个体或样本数据的前提下,仅通过交换模型参数或中间结果的方式,构建基于虚拟融合数据下的全局模型,从而实现数据隐私保护和数据共享计算的平衡,即“数据可用不可见”、“数据不动模型动”的应用新范式 。

联邦学习按架构划分为:中心化联邦学习(中央服务器/中央协调方)的CS架构,去中心化的联邦学习(P2P对等网络)架构和委员会架构。

经典联邦学习框架(CS架构)的训练过程可以简单概括为以下步骤: 1).协调方建立基本模型,并将模型的基本结构与参数告知各参与方; 2).各参与方利用本地数据进行模型训练,并将结果返回给协调方; 3).协调方汇总各参与方的模型,构建更精准的全局模型,以整体提升模型性能和效果。

在对等架构(P2P)中,由于没有第三方服务器的参与,参与方之间直接交互,需要更多的加解密操作。在整个过程中,所有模型参数的交互都是加密的。 委员会架构分为固定委员会和动态委员会两种,动态委员会主要是指区块链类型的架构(有点类似群智学习),固定委员会主要是指MPC(多方安全计算)类型的架构。

4.群智学习

SL框架主要组成部分:

Swarm Learning node:运行用户定义的深度学习算法,并迭代更新本地模型

Swarm Network node:相互交流以维护模型的全局状态信息,通过以太坊区块链平台跟踪训练进度

SWCI节点(Swarm Learning Command Interface 节点):安全地连接到SN节点以查看SL框架的状态,并进行控制和管理

SPIFFE SPIRE server node:SN节点和SL节点都包含一个SPIRE Agent Workload Attestor 插件,该插件与SPIRE服务器节点通信以证明其身份并获取和管理SPIRE可验证身份文档(SVID)

LS节点(License server node 许可证服务器节点):下载和管理许可证以运行SL框架群体学习结合了分布式机器学习和区块链,拥有这两种技术的优势,各节点之间权利对等,有较高的安全性和容错性,在分布式的节点上进行训练,动态选取领导者,新节点通过区块链智能合约注册,获取模型,并进行本地模型训练,直到满足定义的同步条件(SI:同步时间)。

接下来,通过 Swarm 应用程序编程接口 (API) 交换模型参数,并在开始新一轮训练之前,合并创建一个更新参数的最新模型。其中区块链仅记录模型状态以及训练进度等元数据,不记录模型参数;在每一个SI结束时,其中一个SL节点被区块链选为领导者,领导者从每个节点收集局部模型,并通过平均它们的训练参数更新全局模型。

二、SL实施细则

群智学习架构

SL通过Swarm网络共享参数,并在各个节点(Node)的私人数据上独立构建模型。Swarm Learning提供安全措施以支持数据主权、安全和保密性(这由私人许可的区块链技术实现)。每个参与者都有明确的定义,只有预先授权的参与者可以执行交易。新节点的加入是动态的,有适当的授权措施来识别网络参与者。新节点通过区块链智能合约进行注册,获得模型,并进行本地的模型训练,直到满足定义的同步条件。接下来,模型参数通过Swarm应用编程接口(API)进行交换,并在开始新一轮训练之前,合并创建一个参数更新的更新模型。

三、SL接入细节

新加入SL的节点按照如下流程接入。

代码与论文

代码地址:https://github.com/schultzelab/swarm_learning/

论文: Warnat-Herresthal, S., Schultze, H., Shastry, K.L. et al. Swarm Learning for decentralized and confidential clinical machine learning. Nature 594, 265–270 (2021). https://doi.org/10.1038/s41586-021-03583-3