阿里巴巴开源联邦学习框架 FederatedScope,降低隐私保护计算技术开发应用难度

简介: 5 月 5 日,阿里巴巴达摩院发布新型联邦学习框架FederatedScope,该框架支持大规模、高效率的联邦学习异步训练,能兼容不同设备运行环境,且提供丰富功能模块,大幅降低了隐私保护计算技术开发与部署难度,该框架现已面向全球开发者开源。

5 月 5 日,阿里巴巴达摩院发布新型联邦学习框架FederatedScope,该框架支持大规模、高效率的联邦学习异步训练,能兼容不同设备运行环境,且提供丰富功能模块,大幅降低了隐私保护计算技术开发与部署难度,该框架现已面向全球开发者开源。

隐私保护是数字经济的安全底座,如何在保障用户数据隐私的同时提供高质量连通服务,成为数字经济时代的重要技术课题。为破解隐私保护与数据应用的两难,以“数据不动模型动”为理念的联邦学习框架应运而生,其通过用户数据不出本地的方式完成云端模型训练,实现了“数据可用不可见”。近年来,联邦学习成为隐私保护计算主流技术之一。

然而,随着需应用隐私保护计算的场景和行业日趋多元,涉及到的数据类型日趋丰富,已有联邦学习框架难以灵活高效地满足现实中越来越复杂的计算需要,需从注重“可用”到注重“好用”。

为解决上述挑战,达摩院智能计算实验室研发了新型联邦学习框架 FederatedScope,该框架使用事件驱动的编程范式来构建联邦学习,即将联邦学习看成是参与方之间收发消息的过程,通过定义消息类型以及处理消息的行为来描述联邦学习过程。通过这一方式,FederatedScope 实现了支持在丰富应用场景中进行大规模、高效率的联邦学习异步训练。

image.png

同时,达摩院团队对 FederatedScope 训练模块进行抽象,使其不依赖特定的深度学习后端,能兼容 PyTorch、Tensorflow 等不同设备运行环境,大幅降低了联邦学习在科研与实际应用中的开发难度和成本。

为进一步适应不同应用场景,FederatedScope 还集成了多种功能模块,包括自动调参、隐私保护、性能监控、端模型个性化等。FederatedScope 支持开发者通过配置文件便捷地调用集成模块,方便快速入门;也允许通过注册的方式添加新的算法实现并调用,支持定制化及深度开发。

达摩院智能计算实验室隐私保护计算团队负责人丁博麟表示,“数据已成为重要的生产要素,而隐私保护计算是保障这一要素发挥作用的关键技术。通过开源最新联邦学习框架,我们希望促进隐私保护计算在研究和生产中的广泛应用,让医药研发、政务互通、人机交互等数据密集领域更安全、更顺畅地发展。”

快速运行

如果对该框架感兴趣,可以通过以下方法快速运行,更多详细介绍请访问项目官网。

安装

首先,用户需要克隆源代码并安装所需的包(建议 python 版本> = 3.9)。

image.png

可以从需求文件安装依赖项:

image.png

image.png

或构建 docker 映像并使用 docker env 运行:

image.png

image.png

注意:如果需要运行 graph FL 等下游任务,在执行上述命令时,需要修改 requirements/docker 文件名:

image.png

最后,在安装完所有依赖项后,运行:

image.png

准备数据集和模型

要运行 FL 课程,首先应该为 FL 准备数据集。FederatedScope 中提供的 DataZoo 可以帮助从各种 FL 应用程序中自动下载和预处理广泛使用的公共数据集,包括计算机视觉、自然语言处理、图学习、推荐等。用户可以通过cfg.data.type = DATASET_NAME配置在指定数据集上运行。同时,用户也可以采用自定义数据集,提供的数据集请参考DataZoo ,FederatedScope 中引入自定义数据集请参考Customized Datasets。

其次,应该指定将接受联邦训练的模型架构,例如 ConvNet 或 LSTM。FederatedScope 提供了 ModelZoo,其中包含用于各种 FL 应用程序的广泛使用的模型架构的实现。用户可以设置cfg.model.type = MODEL_NAME在 FL 任务中应用特定的模型架构。我们允许用户通过注册来使用定制模型,而无需关心联合过程,可以参考ModelZoo了解有关如何自定义模型的更多详细信息。

对于普通 FL 课程,所有参与者共享相同的模型架构和训练配置。并且 FederatedScope 还支持采用客户特定的模型和训练配置(称为个性化 FL)来处理实际 FL 应用中的非 IID 问题,请参阅个性化 FL了解更多详情。

使用配置运行 FL 项目

请注意,FederatedScope 为独立模拟和分布式部署提供了统一的视图,因此用户可以通过配置轻松地以独立模式或分布式模式运行 FL 课程。

独立模式

FederatedScope 中的独立模式意味着在单个设备中模拟多个参与者(服务器和客户端),而参与者的数据彼此隔离,并且他们的模型可以通过消息传递共享。

这里演示了如何使用 FederatedScope 运行 vanilla FL ,并设置cfg.data.type = 'FEMNIST'和cfg.model.type = 'ConvNet2'运行 vanilla FedAvg [1] 以完成图像分类任务。用户可以在配置(一个 .yaml 文件)中包含更多的训练配置,例如cfg.federated.total_round_num,cfg.data.batch_size和cfg.optimizer.lr, 并运行 vanilla FL 项目:

image.png

image.png

用户可以在训练过程中观察一些监控指标:

image.png

分布式模式

FederatedScope 中的分布式模式表示运行多个程序来构建 FL 项目,其中每个程序都充当参与者(服务器或客户端),实例化其模型并加载其数据。参与者之间的通信已经由 FederatedScope 的通信模块提供。

要以分布式模式运行,只需:

  • 准备隔离数据文件并cfg.distribute.data_file = PATH/TO/DATA为每个参与者设置;
  • 更改cfg.federate.model = 'distributed',并指定每个参与者的角色cfg.distributed.role = 'server'/'client'。
  • cfg.distribute.host = x.x.x.x通过和设置有效地址cfg.distribute.port = xxxx。(注意,服务器需要设置 server_host/server_port 监听消息,客户端需要设置 client_host/client_port 监听和 server_host/server_port 在搭建 FL 项目时发送加入申请)

我们准备了一个在分布式模式下运行的综合示例:

image.png

image.png

可以观察到结果(IP 地址用“xxxx”匿名):

image.png

image.png

项目官网: https://federatedscope.io/

源代码地址: https://github.com/alibaba/FederatedScope

目录
相关文章
|
29天前
|
算法 数据挖掘 调度
隐语实训营-第3讲:详解隐私计算框架的架构和技术要点
主要介绍隐语的隐私计算架构,并对每个模块进行拆解、分析,以期望不同使用者找到适合自己的模块,快速入手。
46 4
|
2月前
|
存储 弹性计算 安全
带你读《从基础到应用云上安全航行指南》——一文教你如何从零构建机密计算平台解决方案(1)
带你读《从基础到应用云上安全航行指南》——一文教你如何从零构建机密计算平台解决方案(1)
133 0
|
2月前
|
SQL 安全 API
带你读《从基础到应用云上安全航行指南》——一文教你如何从零构建机密计算平台解决方案(3)
带你读《从基础到应用云上安全航行指南》——一文教你如何从零构建机密计算平台解决方案(3)
72 0
|
15天前
第8讲:隐语SCQL的开发实践丨隐私计算实训营 第1期
SCQL 提供中心化和P2P两种部署架构。中心化依赖第三方的SCDB,各数据方仅需SCQLEngine;P2P模式无第三方,各数据方需SCQLEngine和SCQLBroker。使用流程包括配置、注册、启动和执行查询。P2P部署实践展示详细步骤。[查看部署教程](https://www.secretflow.org.cn/zh-CN/docs/scql/0.5.0b2/intro/p2p-tutorial)。
21 0
|
15天前
|
SQL 安全 数据挖掘
隐私计算实训营第7讲:隐语SCQL的架构详细拆解丨隐私计算实训营 第1期
SCQL是安全协作查询语言,让不信任的多方能在保护隐私的前提下进行联合数据分析。它假设参与者半诚实,支持多方(N>=2)合作,且具备SQL语法支持和性能优化。SCQL提供类似SQL的用户界面,通过CCL机制允许数据所有者控制数据使用权限。系统基于SPU的MPC框架运行,适用于多个应用场景。
14 0
|
29天前
|
算法
隐私计算实训营 第1期-详解隐私计算框架的架构和技术要点
本文简要介绍了隐语技术架构的五层结构:产品层、算法层、计算层、资源层和硬件层。每层分别涉及模块功能、定位和人群画像,旨在使不同角色的用户能轻松理解和使用,降低隐私计算的入门难度。此外,隐语产品设计具有开放性和前瞻性,易于集成。
|
28天前
|
SQL 算法 安全
隐私计算实训营 第三讲 详解隐私计算框架及技术要点
隐语架构包括产品、算法、计算、资源和硬件层。产品层关注可视化和模块化API,服务于集成商和研究人员。算法层涉及PSI/PIR、安全数据分析及联邦学习。计算层有混合编译调度、SPU、HEU、TEEU和YACL。资源层采用kuscia,基于K8s的隐私计算框架。硬件层未详述。互通互联提供黑盒和白盒模式,跨域管控实施三权分置、秘态存储和全栈审计。该架构设计便于集成和使用。
17 0
隐私计算实训营 第三讲 详解隐私计算框架及技术要点
|
2月前
|
分布式计算 安全 算法
带你读《从基础到应用云上安全航行指南》——一文教你如何从零构建机密计算平台解决方案(2)
带你读《从基础到应用云上安全航行指南》——一文教你如何从零构建机密计算平台解决方案(2)
47 0
|
5月前
|
机器学习/深度学习 分布式计算 安全
一文详解隐私计算「四大技术路线」
隐私计算是一个快速发展的领域,涉及密码学、安全硬件、信息论、分布式计算等多个学科。目前公开的隐私计算技术资料和白皮书已经非常丰富,但是缺乏对各技术优缺点的深入分析和对比。本文将从性能、安全、隐私、功能、研发难度等多个角度分析对比各技术路线。
一文详解隐私计算「四大技术路线」
|
5月前
|
机器学习/深度学习 安全 算法
一文详解「隐私计算系统的安全攻防和实践」
摩斯科技技术负责人殷山,从安全攻防的角度解读隐私计算系统的安全性,通过分析攻击手段使我们对隐私计算安全有个系统全面的认识。点击查看全文~
一文详解「隐私计算系统的安全攻防和实践」