写点什么

百度开源联邦学习框架 PaddleFL:简化大规模分布式集群部署

  • 2020-04-07
  • 本文字数:1978 字

    阅读完需:约 6 分钟

百度开源联邦学习框架 PaddleFL:简化大规模分布式集群部署

近两年,联邦学习技术发展迅速。作为分布式的机器学习范式,联邦学习能够有效解决数据孤岛问题,让参与方在不共享数据的基础上联合建模,从技术上打破数据孤岛。但是,目前这一技术在很多企业落地遇到了困难,InfoQ 将通过选题的方式逐一揭开各大公司在联邦学习方面的探索。


为了让机器学习模型取得更好的效果,开发者往往希望获得更多数据训练模型,而有助于解决该问题的联邦学习受到了越来越多的关注。简单来说,联邦学习可以在不共享数据的前提下,利用双方数据实现模型优化,在数据隐私越来越重要的今天,联邦学习很好的平衡了隐私和数据利用之间的关系。正因如此,很多科技公司在联邦学习方向有所探索。


近日,百度宣布开源基于飞桨( PaddlePaddle) 开源框架的联邦学习框架 PaddleFL 。据了解,研究人员可以很轻松地用 PaddleFL 复现和比较不同的联邦学习算法;得益于飞桨在大规模并行训练方面的基础能力的积累,PaddleFL 可以帮助开发者快速实现在大规模分布式集群中部署联邦学习系统。对此,InfoQ 采访了百度深度学习研发工程师,为大家进一步剖析 PaddleFL 的技术原理和提供联邦学习部署的建议。

PaddleFL 为何而生?

众所周知,百度在 2016 年就开源了深度学习平台 PaddlePaddle,而为了帮助飞桨开发者快速调研一些联邦学习算法,作为底层编程框架支撑上层应用,PaddleFL 应运而生。


百度工程师表示,PaddleFL 为联邦学习研究人员提供了基础编程框架,并封装了一些公开的联邦学习数据集。针对横向联邦学习场景,PaddleFL 实现了多种不同的优化算法,举例来说 DP-SGD、Fed-Avg、Secure-Aggregate 都是在飞桨开源框架灵活的编程组件之上搭建的。此外,借助于飞桨丰富的模型库和预训练模型,研究人员也可以快速上手针对一些具体的垂直场景应用进行研究。



图 1


PaddleFL 整体的建设方向可以参考图 1,当前 PaddleFL 已经开源了完整的横向联邦学习能力,底层的编程模型采用飞桨训练框架,结合飞桨的参数服务器功能,PaddleFL 可以实现在 Kubernetes 集群中进行横向联邦学习系统的部署。值得一提的是,尽管横向联邦学习与传统的数据并行分布式训练原理一致,但在如何部署训练任务的方式上有一些区别:


1)横向联邦学习中,参与训练的各方数据格式可能不同,这需要框架能够支持不同类型数据读取器,并在同一套训练系统里运行。


2)横向联邦学习中的各方以及模型参数维护方可能处于不同的集群当中,很难通过一次统一的调度实现多方训练任务同时启动。


为此,PaddleFL 设计了编译期阶段,在编译期通过多方协商生成一个具有共识的网络配置,然后由 PaddleFL 自动拆分成多方集群需要运行的程序,大大简化部署过程,同时也开发了二次开发接口允许各方定义私有化的数据读取器。编译期和执行期的关系可以参考下图:



图 2


当前,PaddleFL 已经开源了横向联邦的场景,适合有相同类型任务的多个组织进行联合训练。针对云端提供计算资源,但用户不愿意上传原始数据的应用场景,PaddleFL 也开源了一套两方安全学习的方案。以图像分类为例,可以参考图 3,用户通过本地计算资源,利用图像的预训练模型的前几层进行图片原始数据的编码,云端接收客户端的编码以及对应的标签进行训练,这种模式在保护用户原始数据的情况下可以提供用户云端进行安全训练的能力。



图 3

PaddleFL 未来之路

据了解,在接下来的迭代中,飞桨将会开源纵向联邦学习编程框架,并在横向与纵向之间进行编程接口方面的统一。借助于飞桨训练框架的快速迭代,PaddleFL 在分布式训练的速度,跨地域的稀疏通信以及通信的稳定性方面都会得到稳步的提升。在应用层,PaddleFL 还将提供传统机器学习训练策略的应用,例如多任务学习、联邦学习环境下的迁移学习。基于飞桨丰富的模型库,PaddleFL 还将开放更多适合联邦学习的模型示例和部署教程,方便用户学习。


由于是基于飞桨开源框架的联邦学习框架,所以目前安装 PaddleFL 的时候会自动安装飞桨开源框架依赖,两者有绑定关系。建议开发者能够把 PaddleFL 当成底层编程框架,在上层封装出一些支撑垂直领域的平台,探索联邦学习的更多产品形态。

企业该如何部署联邦学习?

虽然我们已经可以看到联邦学习在一些实际业务场景中有了应用,但只能算是刚刚开始,这项技术目前还远远没有进入大规模落地的阶段,这样意味着存在大量的机会和挑战。


百度工程师表示,搭建一个方便易用的平台还是十分重要的,参与联邦训练的开发者不一定非要知道自己在采用联邦学习技术,平台能够让用户知道自己的数据很安全且不会泄露,以及业务的实际效果有提升,这才是最关键的。


目前来看,百度工程师补充道,面向 C 端用户的端上产品,落地联邦学习的可能性比较大,例如在手机的 app 端利用联邦学习为用户提供快速且安全的个性化能力就是一个典型的横向联邦学习场景。企业级的联邦学习,跨群组、跨分公司的联邦学习更容易成功,前提是有一个置信的、易用的联邦学习平台以及相关的政策法规做保障。


2020-04-07 10:593650
用户头像
赵钰莹 极客邦科技 总编辑

发布了 882 篇内容, 共 645.1 次阅读, 收获喜欢 2679 次。

关注

评论

发布
暂无评论
发现更多内容

依赖倒置原则

清风明月

极客大学架构师训练营

架构作业-第2周

铁血杰克

架构师训练营-第二课作业-20200617-设计原则???

👑👑merlan

架构设计 软件设计

架构师培训第二周作业

talen

编程的本质

GalaxyCreater

架构

架构师 0 期 | 架构师怎样实现架构目标?

刁架构

设计模式 极客大学架构师训练营

一周信创舆情观察(6.8~6.14)

统小信uos

新基建 信创

极客时间 - 架构师训练营 - week2 - 课堂笔记

毛聪

极客大学架构师训练营第二周学习总结

竹森先生

设计模式 架构设计 极客大学架构师训练营 面向对象设计原则

Week2学习总结

铁血杰克

外包程序员的幸福生活

四猿外

设计原则

GalaxyCreater

架构

作业2

annie

极客大学架构师训练营

架构培训 -02 学习总结 架构师实现自己架构的主要手段

刘敏

设计原则——依赖倒置原则

GalaxyCreater

架构

架构师训练营第二周作业

时来运转

第二周作业

王鑫龙

极客大学架构师训练营

架构师训练营第二周总结

时来运转

依赖倒置原则理解

Thrine

RPC实战与核心原理-学习笔记(4)

程序员老王

架构师训练营第二周总结

烟雨濛濛

深入理解JVM垃圾回收机制 - 运行时栈帧的内存变化

Skye

深入理解JVM 运行时栈帧

拼多多市值快 1000 亿美元了

池建强

创业 拼多多

极客时间 - 架构师训练营 - week2 - 作业

毛聪

学习总结 -- Week2

吴炳华

极客大学架构师训练营

【总结】框架设计之架构师实现自己架构目标的主要手段

魔曦

极客大学架构师训练营

豆瓣9.0,35万读者“搜不到信息”的神秘作者,我们帮你找到了

华章IT

JVM 虚拟机 深入理解JVM Java 25 周年 周志明

02架构的方法论

ashuai1106

架构设计 极客大学架构师训练营 架构设计原则

第二周课程学习总结

腾志文(清样)

作业

架构师训练营第二周命题作业

whiter

极客大学架构师训练营

架构师0期week2-作业

小高

百度开源联邦学习框架 PaddleFL:简化大规模分布式集群部署_开源_赵钰莹_InfoQ精选文章