写点什么

百度开源联邦学习框架 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:593922
用户头像
赵钰莹 极客邦科技 总编辑

发布了 897 篇内容, 共 686.7 次阅读, 收获喜欢 2696 次。

关注

评论

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

JDK 环境配置

流火

Java centos jdk window

架构实战营模块1第3课 - 什么是面向复杂度架构设计

净意

2022 IoTDB Summit:IoTDB PMC 曹高飞《Apache IoTDB 秒级扩容能力与存算分离实践》

Apache IoTDB

数据库 IoTDB

MongoDB写入数据策略

NineData

nosql mongodb Journaling 写入策略 读策略

开源如何推动云计算的发展与创新 | 雨林开源行

开源雨林

开源 kubenetes OpenStack

会声会影2023中文最新版消息

茶色酒

会声会影2023

图像的滤波与图像增强的Matlab实现

timerring

数字图像处理

从理论到实践:MySQL性能优化和高可用架构,一次讲清

Java MySQL 数据库 面试 性能优化

Spring Boot 整合流程引擎 Flowable,so easy

Java Spring Boot 流程引擎 flowable

在深圳龙岗,看见空间智能化的潮水涌动

脑极体

全屋智能

ChatGPT Turbo API 18元/100万个单词

kcodez

openai ChatGPT

得物供应链复杂业务实时数仓建设之路

小小怪下士

Java 程序员 后端

SpringBoot+ThreadPoolTaskExecutor 批量插入百万级数据实测

Java Spring Boot 多线程 ThreadPoolTaskExecutor

再有人问你什么是分库分表,直接把这篇文章发给他

Java 分库分表

堪称神级!GitHub上标星157K的Java教程,全程干货,只讲重点

Java

2.基于Label studio的训练数据标注指南:(智能文档)文档抽取任务、PDF、表格、图片抽取标注等

汀丶人工智能

自然语言处理 数据标注

老铁们看过来!2023首场昇腾AI开发者创享日来到“东北黑土地”沈阳

科技热闻

ClickHouse 与 Amazon S3 结合?一起来探索其中奥秘

亚马逊云科技 (Amazon Web Services)

新必应(New Bing)申请出错终极方案

kcodez

微软 ChatGPT New Bing

FL Studio2023免费中文版数字音频工作站软件

茶色酒

FL Studio2023

一文彻底弄清楚分布式锁

Java 分布式锁

手把手教你使用 Python 调用 ChatGPT-3.5-API

老表

Python GPT-3 ChatGPT

在文心一言出生地,百度悄悄燃烧AI小宇宙

白洞计划

百度 文心一言

字字珠玑!GitHub爆赞的网络协议手册,被华为大佬指定内部必学?

Java 计算机网络 网络协议

赞不绝口!仅靠阿里P9分享的 Redis 工作手册,拿到60W年薪Offer

Java 数据库 redis 缓存 面试

爱不释手!阿里十几位大牛联玦整理—23年最全面试八股文合集

Java java面试 Java八股文 Java面试题 Java面试八股文

零基础如何学习Web 安全,如何让普通人快速入门网络安全?

网络安全学海

黑客 网络安全 信息安全 渗透测试 WEB安全

Portraiture4中文免费ps滤镜磨皮插件

茶色酒

Portraiture3

2022 IoTDB Summit:Apache IoTDB PMC 张金瑞《为物联网场景优化的时序数据库共识协议》

Apache IoTDB

大数据 IoTDB

【我在京东做研发】揭秘支撑京东万人规模技术人员协作的行云DevOps平台

京东科技开发者

人工智能+低代码,打通AI落地的最后“一公里”

明道云

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