联邦学习作为新一代人工智能基础技术,通过解决数据隐私与数据孤岛问题,重塑金融、医疗、城市安防等领域。
腾讯 Angel PowerFL 联邦学习平台构建在 Angel 机器学习平台上,利用 Angel-PS 支持万亿级模型训练的能力,将很多在 Worker 上的计算提升到 PS(参数服务器) 端;Angel PowerFL 为联邦学习算法提供了计算、加密、存储、状态同步等基本操作接口,通过流程调度模块协调参与方任务执行状态,而通信模块完成了任务训练过程中所有数据的传输。Angel PowerFL 联邦学习已经在腾讯金融云、腾讯广告联合建模等业务中开始落地,并取得初步的效果。
Angel 机器学习平台:github.com/Angel-ML
Angel PowerFL 对联邦通信服务的要求
Angel PowerFL 联邦学习平台在训练任务过程当中,对参与方之间的消息通信要求极高,要求消息系统必须稳定可靠、保持高性能且能保证数据安全。Angel PowerFL 的学习任务在训练过程当中,参与方之间会有大量的加密数据通过通信模块传输,Angel PowerFL 对通信服务有以下需求:
➡️ 稳定可靠
Angel PowerFL 的学习任务时长从几分钟到几小时,算法执行对数据的准确性要求很高,不同算法的数据传输峰值也不一样,这需要通信模块的服务足够稳定,并且不能丢数据。
➡️ 高性能传输
Angel PowerFL 底层通过 Spark 进行计算,Executor 并发执行会产生很多待传输的中间数据,通信模块需要将这些加密后的数据及时传输给对方,这就要求通信服务做到低延时、高吞吐量。
➡️ 数据安全
虽然 Angel PowerFL 所有数据都通过加密模块进行了加密,但参与联邦学习的业务可能分布在不同公司;跨公网进行传输,需要通信模块足够安全,不易被攻击。
为什么选择 Pulsar
联邦通信服务在做技术预研的时候,考虑过 RPC 直连、HDFS 同步、MQ 同步三种技术方案。考虑到对安全和性能的要求比较高,排除了 RPC 直连和 HDFS 同步方案,确定采用 MQ 同步方案。
MQ 可选的服务很多,比如 Pulsar、Kafka、RabbitMQ、TubeMQ 等。考虑到 Angel PowerFL 对稳定性、可靠性、高性能传输和数据安全有很高的需求,我们咨询了腾讯数据平台部 MQ 团队,他们向我们推荐了 Pulsar。
随后,我们对 Pulsar 开展了深入调研,发现 Pulsar 内置的诸多特性,正好满足了我们对消息系统的要求。Pulsar broker 和 bookie 采用了计算存储分层架构,保证了数据稳定可靠,性能良好;Pulsar 支持跨地域复制(geo-replication),解决了 PowerFL 跨联邦同步 MQ 问题;而 Pulsar 的验证和授权模式也能保证传输安全。
云原生的计算与存储分层架构
Apache Pulsar 是下一代云原生分布式消息和事件流平台,采用了计算和存储分层的架构:在 Broker 上进行 Pub/Sub 相关的计算,在 Apache BookKeeper 上存储数据。
和传统的消息平台(如 Kafka)相比,这种架构有明显的优势:
- Broker 和 bookie 相互独立,可以独立扩展和容错,提升系统的可用性。
- 分区存储不受单个节点存储容量的限制,数据分布更均匀。
- BookKeeper 存储安全可靠,保证消息不丢失,同时支持批量刷盘以获得更高吞吐量。
Pulsar Geo-replication
Pulsar 原生支持跨地域复制(Geo-replication),可以在多个数据中心的多个 Pulsar 集群中同时同步/异步复制数据。还可以在消息级别,通过 setReplicationClusters 控制消息复制到哪些集群。<