快速上手联邦学习——腾讯自研联邦学习平台PowerFL实战

导语:近10年,机器学习在人工智能领域迅猛发展,其中一个关键的推动燃料就是人类社会积累的大量数据。然而,尽管数据规模在总体上快速增长,绝大部分数据却分散在各个公司或部门内,导致数据被严重隔离和碎片化;也正因为此,各个组织间有很强的数据合作意愿,可是基于数据隐私和安全的考量,要在合规的情况下实现数据合作面临着诸多挑战。

基于上述原因形成的数据孤岛正严重阻碍着各方协同数据共同构建人工智能模型,也因此迫切需要一种新的机制来解决上述问题。联邦学习应运而生,通过这一新兴技术,可以在确保用户隐私和数据安全的前提下,各组织间交换模型信息的过程被精心地设计和全程加密,使得没有组织能够猜测到其他任何组织的隐私数据内容,但却实现联合建模的目的。

PowerFL是腾讯TEG自研的联邦学习平台,已经在金融云、广告联合建模等业务场景中开始落地,并取得了初步效果。PowerFL以技术赋能的方式,为分布在不同部门和团队的数据搭建互通的桥梁,在保护数据隐私的前提下,使数据合力成为可能。本文将首先从平台框架、部署视图和网络拓扑结构等三个方面来介绍PowerFL的整体技术架构,并在此基础上介绍如何一键部署PowerFL以及如何定义联邦任务流来提交联邦任务。

  • PowerFL的平台框架介绍

  • PowerFL的部署视图及关键组件

  • PowerFL的网络拓扑

  • 快速部署PowerFL

    准备k8s集群
    准备Yarn集群(可选)
    准备安装客户端
    
  • 一键部署PowerFL

  • 通过flow-server提交联邦任务

    联邦任务编排和调度的流程
    
  • 总结

PowerFL的平台框架介绍

在这里插入图片描述

从平台框架的角度,PowerFL从以下五个层次来构建整个联邦学习的技术和生态,从最底层依次往上:

  1. 计算和数据资源:PowerFL支持主流的两种计算资源调度引擎YARN和K8S:所有的服务组件均以容器的形式部署在K8S集群上,大大简化部署和运维成本,可以方便地实现服务的容错与扩缩容;同时,所有的计算组件均通过YARN集群进行调度,从而在保障大规模机器学习任务并行加速的同时,保证计算的稳定性与容错性。此外,PowerFL还支持从多种数据源拉取数据,包括TDW,Ceph,COS,HDFS等。
  2. 计算框架:在计算和数据资源之上,PowerFL实现了一套针对联邦学习算法的计算框架,与传统的机器学习框架相比,这套框架重点解决了联邦学习算法和应用在实践过程中最常见的几个难点:1)安全加密:PowerFL实现了各种常见的同态加密、对称和非对称加密算法(包括Paillier、RSA非对称加密等算法);2)分布式计算:基于Spark on Angel的高性能分布式机器学习框架,通过PowerFL可以轻松实现各种高效的分布式联邦学习算法;3)跨网络通信:PowerFL提供了一套多方跨网络传输接口,底层采用消息队列组件,在保证数据安全的前提下,实现了稳定可靠的高性能跨网传输;4)TEE/SGX支持:除了通过软件的方式来保障数据安全,PowerFL还支持通过TEE/SGX在Enclave中对数据进行加密和计算,从而以硬件的方式实现算法性能的大幅提升。
  3. 算法协议:基于上述计算框架,PowerFL针对不同场景实现了常见的联邦算法协议:1)在分析场景下,PowerFL支持联合查询和两方/多方的样本对齐;2)针对建模场景,PowerFL支持联邦特征工程(包括特征选择、特征过滤和特征转换等)、联邦训练(包括逻辑回归、GBDT,DNN等)以及联合预测。
  4. 产品交互:从终端用户的角度,PowerFL作为联邦学习的应用产品,既支持以REST
    API的形式调起联邦任务,也支持各模型参与方在联合工作区上协同工作,以拖拽算法组件的方式来构建和配置联邦任务流,并进行用户、资源、配置以及任务的管理。
  5. 应用场景:在完善了上述联邦学习的基础设施之后,PowerFL可以在安全合规的前提下解决金融风控、广告推荐、人群画像、联合查询等多个应用场景下由于数据隔离和碎片化造成的“数据孤岛”问题,真正赋能遵守隐私规范的人工智能和大数据应用。

PowerFL的部署视图及关键组件

在这里插入图片描述

从部署视图的角度来看,PowerFL包括了服务层和计算层:

  • 服务层构建在K8S集群之上,利用了其优异的资源调度能力、完善的扩缩容机制以及稳定的容错性能,将PowerFL的常驻服务以容器的形式部署在服务节点之上。这些常驻服务组件包括了:

    1、消息中间件:负责所有服务和计算组件之间的事件驱动、各方计算组件之间的算法同步及加密数据异步通信。
    2、任务流引擎:负责控制单侧联邦任务流的调度,执行节点按事先定义的任务流顺序以容器的方式被调起,计算任务在执行节点中执行,或在执行节点中向YARN集群提交计算任务。
    3、 任务面板:负责收集任务流中各个算法组件每轮迭代或最终模型输出结果的关键性能指标展示、如AUC,Accuracy、K-S,特征重要性等。
    4、多方联邦调度引擎:负责多方之间联邦任务的调度和同步,并提供了一套API提供了联邦任务流的创建、任务的发起、终止、暂停、删除、状态查询等接口。

  • 计算层构建在YARN集群之上,充分利用了Spark大数据生态套件,负责PowerFL运行时各个算法组件的分布式计算。计算任务实际上由服务层的任务节点发起并向YARN集群申请资源运行PowerFL的联邦算子,基于Spark
    on Angel的计算框架,保证了算法的高度并行和优异性能。

PowerFL的网络拓扑

站在内网用户的角度,PowerFL通过k8s的ingress对内网用户暴露服务路径:

  • 通过访问http://domain/可访问任务面板的界面,了解当前任务的运行状态、任务运行过程中的关键日志、关键性能指标展示等;
  • 通过访问http://domain/pipelines可访问任务流引擎的界面,查看本侧任务的运行阶段:
  • 通过访问http://domain/flow-server可访问flow-server的REST API。

计算任务(如spark任务的driver和executor)和服务层组件之间,则通过消息中间件来提供通信;

计算任务执行过程中得到的中间加密结果和需要同步的任务状态信息,则通过各自消息中间件实现跨外网同步。

快速部署PowerFL

在整体了解完PowerFL的平台框架、部署视图以及网络拓扑结构后,以下将介绍如何快速部署PowerFL,正如上述提

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

腾讯大数据

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值