飞桨联邦学习框架 PaddleFL 新升级,实现纯两方安全计算协议
伴随着智能化时代的迈进,AI 无处不在,万事皆可智能化,很多企业走到了时代的风口,也不断有着更多的企业想跻身队伍,跨上 AI 大时代的战车。大家都深知人工智能的三大基石是:算法、算力与数据。传统企业有着丰富的数据基础,却缺乏技术能力;新型企业的技术能力紧跟时代步伐却苦于数据贫瘠。算力可以花钱买到,算法可以通过培养招聘技术人才来补齐,但是数据匮乏却使人在人工智能赛道上举步维艰。
在国内外监管环境日渐完善的今天,大家都在加强数据保护意识,很多有巨大价值的数据即使在公司内部都无法流通,从而形成数据孤岛。随着《数据安全法》和《个人信息保护法》的相继施行,数据在安全合规的前提下自由流动,成了大势所趋,这也让联邦学习再次掀起一波浪潮。
百度飞桨开发了基于飞桨核心框架的开源联邦学习框架 PaddleFL,让企业之间的合作能够在数据层面安全开展。开发人员很容易在大规模分布式集群中部署 PaddleFL 联邦学习系统。PaddleFL 提供多种联邦学习策略(横向联邦学习、纵向联邦学习)及其在计算机视觉、自然语言处理、推荐算法等领域的应用。
最近,PaddleFL 新版本 PaddleFL v1.1.2 版本正式发布,在前期三方安全计算协议之上,新增了面向两方场景的安全计算协议以及安全联邦学习实现。新增特性描述如下:
两方安全计算协议 PrivC 实现
PrivC 协议实现总体参考了 ABY 协议,支持两方 peer-to-peer 计算模型以及外包计算模型,提供了半诚实模型下的计算安全性。在 ABY 协议混合电路计算的思想上,PrivC 进行了一系列实现优化,如以 tensor 为单位聚合通信提升吞吐量,使用 FreeXOR、HalfGate 等方法降低加密电路运算开销,使用全同态加密计算乘法三元组等,并对非线性机器学习算子进行了近似实现,有效地提升了两方安全学习的性能。
基于 PrivC 的两方安全联邦学习
PaddleFL 在 PrivC 协议的基础上,为只有两个参与方情况下的联邦学习场景提供了针对性的解决方案。PaddleFL 目前提供了纯两方的矩阵乘法、fc、relu、sigmoid、softmax 等机器学习常用算子及其梯度计算实现,支持两方场景下的线性回归、对率回归、多层感知机等模型的训练与预测,具有优良的性能。
▲ 图 1 PaddleFL with PrivC 运行示意图
PaddleFL 在两方条件下的训练性能如下:
场景一 线性回归:
数据集与训练参数:
UCI 波士顿房价,epoch = 20,batch_size = 10,lr = 0.1;
数据量:
506 行,80%用于训练,20%用于测试
场景二 逻辑回归:
数据集与训练参数:
MNIST 数据集(label 修改为二分类,“1”为 1,其余为 0),epoch = 1,batch_size = 128,lr = 0.01;
数据量:
50 000 条训练样本,10 000 条测试样本
在线数据切片与分发
在 1.1.2 版本中,新增了对数据在线切片(secret-share)与分发的支持。在以前版本中,各实体间只能通过离线方式对数据进行切片,然后单独传输到计算方上。而在 PaddleFLv1.1.2 中,各实体间可以通过在线方式对明文数据进行切片与分发,免去了中间数据存储的步骤。
增加对 gRPC 通信模式的支持
在 1.1.2 版本中,新增了对 gRPC 协议的支持,用户可以根据需要指定采用 Gloo 通信模式或是 gRPC 通信模式。利用 gRPC 通信协议,可以有效应对网络不稳定造成的闪断等情况,并对未来实现网络隔离条件下的端口收敛与单向通信提供了条件。
版权声明: 本文为 InfoQ 作者【百度开发者中心】的原创文章。
原文链接:【http://xie.infoq.cn/article/b53c563f0879d88ac9e4f6424】。文章转载请联系作者。
评论