联邦学习的架构分为两种,一种是中心化联邦(客户端/服务器)架构,一种是去中心化联邦(对等计算)架构。针对联合多方用户的联邦学习场景,一般采用的是客户端/服务器架构,企业作为服务器,起着协调全局模型的作用;而针对联合多家面临数据孤岛困境的企业进行模型训练的场景,一般可以采用对等架构,因为难以从多家企业中选出进行协调的服务器方。
在客户端/服务器架构中,各参与方须与中央服务器合作完成联合训练,如图2-1所示。当参与方不少于两个时,启动联邦学习过程。在正式开始训练之前,中央服务器先将初始模型分发给各参与方,然后各参与方根据本地数据集分别对所得模型进行训练。接着,各参与方将本地训练得到的模型参数加密上传至中央服务器。中央服务器对所有模型梯度进行聚合,再将聚合后的全局模型参数加密传回至各参与方。
图2-1 联邦学习系统客户端/服务器架构
在对等计算架构中,不存在中央服务器,所有交互都是参与方之间直接进行的,如图2-2所示。当参与方对原始模型训练后,需要将本地模型参数加密传输给其余参与联合训练的数据持有方。因此,假设本次联合训练有 n 个参与方,则每个参与方至少需要传输2( n -1)次加密模型参数。在对等架构中,由于没有第三方服务器的参与,参与方之间直接交互,需要更多的加解密操作。在整个过程中,所有模型参数的交互都是加密的。目前,可以采用安全多方计算、同态加密等技术实现。全局模型参数的更新可运用联邦平均等聚合算法。当需要对参与方数据进行对齐时,可以采用样本对齐等方案。
图2-2 联邦学习对等系统架构