社区分享|宋月冉:大数据下的联邦学习隐私安全问题

  “隐语”是开源的可信隐私计算框架,内置 MPC、TEE、同态等多种密态计算虚拟设备供灵活选择,提供丰富的联邦学习算法和差分隐私机制

开源项目

github.com/secretflow

gitee.com/secretflow

本文根据隐语开源社区 Contributor 西安电子科技大学网络与信息安全学院硕士研究生宋月冉 在「隐语开源社区 Meetup · 西安站」分享整理。

👉 戳我查看现场视频:直播视频

本次活动更多分享实录可点击这里查看

大家下午好,我是宋月冉,今天分享的是《大数据下的联邦学习隐私安全问题》,我的老师是王子龙教授,我的研究方向是联邦学习隐私安全问题,我也是隐语开源社区的 Contributor 。
今天我的分享将从以下三个方面展开:

  • 联邦学习隐私保护的课题背景与研究意义
  • 我的隐语开源之旅
  • SecretNote——基于隐语的 Notebook

联邦学习隐私保护的课题背景与研究意义

世界范围内越来越严格的大数据法律使得隐私安全成为世界焦点,欧盟通用数据保护条例全面禁止用户数据离开欧盟,而中国的数据监管条例也越来越严格,数据不能出域的现状使得数据宛如陷入一个个孤岛,想要实现数据融合几乎不可能。

然而 AI 的高性能训练依赖于各方的小数据聚合而成的大数据,数据的聚合需求与数据的隐私性要求两者之间产生了冲突,成为了 AI 模型发展的重要瓶颈。基于此现状,联邦学习应运而生,成为了一种可以让 AI 高效准确的使用,不同用户的各自数据的关键范式。

联邦学习主要可以分为横向和纵向两个场景,横向联邦学习主要是由一组互不信任的客户端和一个中央服务器所构成。其目标则为在中央服务器的辅助下,所有的客户端利用自己的本地数据协同完成一个模型的训练。纵向联邦学习主要分为拆分模型及不拆分模型仅拆分数据特征两种。在这里我主要介绍一下拆分模型的纵向联邦学习,其核心思想是切割网络结构,每个设备都只保留部分网的结构,在训练过程之中不同的设备训练自己的子网络结构进行前向传播或反向传播计算,并将计算结果传递至下个设备,多个设备进行联合模型来完成训练,直至全局模型实现收敛。

主要难点与科学问题

  • 难点1:模型参数维度高、数据分布不均,如何平衡模型的隐私保护能力及其训练精度与效率?
  • 难点2:通信量和复杂度要求严格,如何实现轻量、高效的联邦学习隐私保护算法?
  • 难点3:训练场景多样且需求复杂,如何是现在异构数据源下的通用联邦学习隐私保护框架?



虽然联邦学习避免了我们直接暴露可信数据给可疑的第三方,但其仍然带来了大量的隐私泄露的潜在风险。联邦学习中其数据分布复杂,训练场景多样,我们需要经过多次的数据交换,这也为隐私保护带来了一系列的挑战。

  • 第一,联邦学习中模型参数维度高、数据分布不均,且参与联邦学习的参数数量不定,数据集大小也不一,因此如何平衡模型的原始任务训练精度,在同时保护模型的隐私保护能力,是联邦学习隐私保护的重要难点。
  • 第二,联邦学习本身的通信并不稳定,且进行本地模型计算的开销也较大。因而对联邦学习隐私保护机制的通信量和复杂度要求十分严格。而研究时限轻量级和高效率的联邦学习隐私保护算法降低其额外开销,也是联邦学习必须面对的挑战。
  • 第三,联邦学习的训练场景多样,且需求复杂。当前的隐私保护方案都是不能通用的,而我们如何实现满足在不同场景以及不同需求下的通用联邦学习隐私保护框架,同时可以抵御系统外部和系统内部的攻击,这也是一个巨大的难点。

我的隐语开源之旅

目标与挑战

2022年10月,我很荣幸的参与了隐语社区支持的网信办学生创新资助计划,并在其中承担了联邦学习安全聚合与拆分学习攻防这两个项目。我的隐语开源之旅也正式开始。

从理论层面上更加精细的隐私策略设计,更加精确的隐私计算分配,更加适应数据交换的隐私协议构建以及高可用的隐私保护实现,是我们设计联邦学习隐私保护方案必须面对的议题。

现有学者已经提出,将可信执行环境,安全攻防计算,同态加密,差分隐私与联邦学习相结合的解决方案,然而同态加密和安全多方计算,会导致计算开销大与通信开销高等缺点。而现有的较为成熟的 TEE 大多数支持在 CPU 上进行部署,在 GPU 上部署的实现尚不成熟,因此差分隐私作为具有隐私保护能力,且计算机通信效率较高的隐私保护方案得到了广泛应用。而现有的差分隐私方案,它基于模型进行添加扰动噪声的做法,会导致全局模型的训练精度下降,收敛速度降低。而给予它较大的隐私计算会导致隐私性能造成下降。基于此研究现状,我们则提出了 LLDP 和 QPLDP 两种基于本地差分隐私的联邦学习聚合方案,以上所提方案均已发表在近期的国际会议中。

而确定好了我们理论实践,接下来在进行我们的算法开发的过程中,也遇到了一系列的挑战。

  • 首先就是联邦学习作为分布式的机器学习框架,我们能否可以实现像传统的集中机器学习那样单机版的轻松开发模式。
  • 其次联邦学习各方需要对本地的进行多次传输,这对实验室的硬件通信开销造成很大制约。
  • 最后当前主流机器学习框架缺乏安全模块,且不能进行模型代码的互通。

在我们项目组进行了前期框架调研之后,我们决定选择隐语水平 NN 框架来进行我们的开发。在我们大家实现论文实验以及想要复现他人论文结果的时候,我们往往会遇到选择什么样的框架,或者我们如何移植别人框架下的代码等问题。

隐语水平的框架已经实现了将主流机器学习框架,可以供我们直接进行调用,他可以保证我们代码的结构非常统一,且方便我们的调试和修改。

除此之外 NN 框架还提供了很多联邦学习隐私计算的功能性实现,例如 TEE 和 MPC,以及同态加密差分隐私等技术。在通信层面上,其也内置了稀疏与通信的算法优化,他可以保证我们代码的运行速度加快和训练流程减慢。

隐语 FLModel 开发实践--Aggregator

以我的工作 LLDP Aggregator 与 QPLDP Aggregator 为例,介绍我的开发过程。

首先介绍联邦聚合过程,联邦 Aggregation 是联邦学习中最核心的步骤,在联邦学习中,各个客户用自己本地隐私数据完成对相同本地模型更新,并上传至服务器,服务器对于接收到的本地模型的参数与梯度,使用相对应的 Aggregation 算法来对其进行聚合,进而达到全局模型参数或者梯度,再将全局模型参数或梯度下发至各客户端,该过程会循环往复进行,直至全局模型达到收敛。

如果我们想用水平 NN 框架来实现我们自己所设计的算法,我们则需要新建一个 Aggregator 类,在 Aggregator 类中实现我们所设计的聚合算法,而在这里我们使用的是隐语已经内置好的联邦平均方法,该方法的输入是各客户端所上传其本地模型参数 W1 到 WN,这个方法输出是经过安全聚合计算之后的全局模型参数 WC,以 LLDP Aggregatc 为例,在我们接收到所有的客户端上传的本地模型参数,W1 到 WN 后,我们先对这些参数进行裁减操作,目的则是为了减少这些参数对噪声的敏感程度。

我们接着基于高斯机制对这些参数计算不同尺寸的扰动噪声,将扰动噪声和裁减后的模型参数相加,最后将扰动过后的模型参数输入隐语内置好的联邦平均算法之中,我们即可完成一个完整的联邦学习聚合过程。

接下来我用一段代码来直观展示我对 FLmodel 开发。

这张代码的展现通过 FLmodel 参数化配置来实现现在十个客户端联合训练的场景下使用 LLDP 安全聚合算法进行参数加权平均的联邦学习。图中可以很清楚的看到 device list 我们定义了客户端的数量,server = charlie 是指定插入用户最为我们的服务器,其中 Aggregator=LLDPAggregator 在这里指定使用的聚合算法是我们所新建的 Aggregator 类,backend=tensorflow 我们底层是 TensorFlow 机器学习框架,我们直接将已经实现好的单机模型代码调用进来,由此可见,这个代码的实现也是比较简单的。

下面介绍一下另一实现类 QPLDPAggregatcr,与前面 LLDP 不同的地方,我们这里新引入了一种压缩量化和一个可信的 PSI 服务器,目的是为了实现以一种通信高效的方式,来筛选相同的元素,我们只对不同的元素添加 LDP 噪声。值得注意的是,这里的方案是使用的梯度加权平均联邦学习,在这里只需要很简单将 FL 模型类来参数化配置,而不用像传统的机器学习框架,我们需要花大量时间来完全改写我们的联邦学习框架。

SecretNote--基于隐语的 Notebook

在进行算法开发和测试过程当中,我们在使用主流的一些开发集成环境,往往很多具有很多局限性,我在这里给大家介绍一下 Notebook 集成开发环境。

我在开发使用主流的开发环境过程中遇到了很多问题。

而其中可以主要概括如下三类:

  • 首先:我们要在开发中配置好隐语环境,必须要灵活的切换不同的环境来完成开发。
  • 其次:现有的 AI 模型参数和通用数据集大小在不断增加,当前一个服务器设备已经很难满足我们论文实现需求,我们往往需要多个服务器设备来协同调度完成一个联合模型的训练任务。而在多方设备执行多方模型过程当中,这里面执行的流程非常纷繁复杂。
  • 最后:我们在进行算法开发的过程中,我们是需要自己去实现类似于数据交换,服务器部署,还有通信优化,这一系列开发门槛较高的代码组件,并且进行功能验证也是较为困难的。

功能特点共有三点如下:我们在启动 SecretNote 开发环境时,它的环境部署是非常简单的,我们只需要在所有服务器设备使用一行代码就可一键式启用 SecretNote。

  • 集成 Secretflow 环境可一键启动

我们假如以联邦学习的场景为例,我们将不同的客户端分配给不同的计算资源,并对这些计算资源实现文件和代码的调度,如果使用的是传统的开发集成环境,我们是需要打开多个页面,对不同的设备进行文件和代码调度。如果我们使用 SecretNote 执行环境,我们只用打开一个页面,就可以实现多方文件的输入和输出和多方代码的运行和调控。

  • 支持多方代码执行和文件管理

SecretNote 可以可视化我们代码的运行流程,正如上图所示,我们可以非常清晰看到数据的归属方以及数据的处理流程。它可以将我们的功能验证变得非常直观,也大大降低了我们开发流程的门槛。

  • 一键式展示多方代码执行中的数据归属性与联系

总结与收获

我在隐语开源社区的总结和收获,迄今为止,我在隐语框架上提交三个方案,其中包括两个联邦学习安全聚合算法,LLDPAggregatcr 和 QPLDPAggregatcr,以及将 LLDP 和拆分学习相结合的防御算法。在进行联邦学习安全聚合与拆分学习攻防项目中我得到了来自隐语开源社区的大力支持,非常感谢各位老师对我技术上的指导,也非常感谢隐语开源社区给予我此次技术分享的机会。

正出隐语开源社区的口号所说,科技护航数据安全,开源加速数据流通,在未来我也想与隐语开源社区携手共同研究隐私计算问题、共同丰富隐私计算场景、共同推进隐私计算技术发展。谢谢大家!

🌟 关注「隐语Secretflow」B 站, 获取更多演讲回顾及相关资讯。

 🏠 隐语社区:

github.com/secretflow

gitee.com/secretflow

www.secretflow.org.cn (官网)

👇 欢迎关注:

公众号:隐语小剧场

B站:隐语secretflow 

邮箱:secretflow-contact@service.alipay.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/239201.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Gemini与GPT-4的巅峰对决:AI界的双壁之战

随着人工智能技术的飞速发展,AI领域的竞争越来越激烈。在这个充满挑战与机遇的时代,两个备受瞩目的AI巨头——Gemini Pro和GPT-4,成为了人们关注的焦点。这两者都以其强大的功能和卓越的性能,引领着AI领域的发展潮流。本文将详细介…

【Android】完美解决Cannot resolve method ‘subscribe(Observer<T>)‘

问题截图&#xff1a; 解决方法&#xff1a; 如上图&#xff0c;看我标123的三个地方&#xff0c;2标注的地方提示我们我方法实际返回的值是Observer<Res_GetCellCode>,而我想要返回的结果是&#xff1a;3标记的结果&#xff1a;Observer<Res_QueryCTInfo>&#xf…

做为一个产品经理带你了解Axure元件

1. Axure元件简介 2.基本元件 2.1 矩形 2.2 图片 2.3 占位符 2.4 按钮 2.5 标题 ​编辑 2.6 水平线&#xff0c;垂直线 2.7 热区 3.表单元件及表格元件简介 3.1 表单元件简介 3.2 表格元件简介 4.表单案例 4.1 登录界面的制作 4.2 个人简介的制作 1. Axure元件简…

简单自动弃流装置工作原理

电动弃流装置 规格分为&#xff1a;直通式&#xff08;不锈钢外壳&#xff09;、三通式&#xff08;不锈钢外壳&#xff09;、井座式&#xff08;PE外壳&#xff09; 1、直通式规格型号&#xff1a;LLQLKZ-200、LLQLKZ-300、LLQLKZ-400 2、三通式规格型号&#xff1a;LLQLK-…

搭建个人博客攻略

文章目录 碎碎念一、下载 g i t git git 和 N o d e . j s Node.js Node.js二、安装 h e x o hexo hexo 1. 1. 1.在非 C C C 盘新建一个文件夹 b l o g blog blog&#xff0c;右键打开 g i t b a s h git bash gitbash 2. 2. 2.在 g i t git git 创建文件 hexo 3. 3. 3.he…

【SpringBoot】分层解耦

1. 三层架构 Controller&#xff1a;控制层。接收前端发送的请求&#xff0c;调用Service层来进行逻辑处理&#xff08;Service层处理完后&#xff0c;把处理结果返回给Controller层&#xff09;Service&#xff1a;业务逻辑层。处理具体的业务逻辑。调用Dao层&#xff08;逻辑…

现代物流系统的分析与设计

目 录 引言 3一、系统分析 4 &#xff08;一&#xff09;需求分析 4 &#xff08;二&#xff09;可行性分析 4 二、 总体设计 4 &#xff08;一&#xff09;项目规划 4 &#xff08;二&#xff09;系统功能结构图 5 三、详细设计 6 &#xff08;一&#xff09;系统登录设计 6 …

Python Thefuck库详解:让错误命令变得“友好”

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com Python中有许多强大的库&#xff0c;其中Thefuck库独具特色&#xff0c;它的作用是纠正用户在终端输入的错误命令&#xff0c;让操作变得更加友好和高效。在本篇博客文章中&#xff0c;我们将深入探讨Thefuck库的…

JavaWeb(十二)

一、Filter概述 Filter 表示过滤器&#xff0c;是 JavaWeb 三大组件(Servlet、Filter、Listener)之一。 过滤器可以把对资源的请求拦截下来&#xff0c;从而实现一些特殊的功能。 如下图所示&#xff0c;浏览器可以访问服务器上的所有的资源&#xff08;servlet、jsp、html等…

SpringBoot集成系列--Kakfa

文章目录 一、代码1、添加依赖2、配置kafka3、创建生产者4、创建消费者5、测试 二、遇到问题1、could not be established. Broker may not be available2、Error while fetching metadata with correlation id xxx 一、代码 1、添加依赖 在pom.xml文件中添加Kafka的依赖 &l…

conda环境下ImportError: libmkl_intel_lp64.so.1: cannot open shared object file问题解决

1 问题描述 conda环境下运行模型推理&#xff0c;出现如下错误&#xff1a; (retalking) [rootlocalhost video-retalking]# python inference.py --face examples/face/01.mp4 --audio examples/audio/01.wav --outfile results/01.mp4 Traceback (most recent call last):F…

论文笔记:A review on multi-label learning

一、介绍 传统的监督学习是单标签学习&#xff0c;但是现实中一个实例可能对应多个标签。这篇文章介绍了多标签分类的定义和评价指标、多标签学习的算法还有其他相关的任务。 二、问题相关定义 2.1 多标签学习任务 假设 X R d X R^d XRd&#xff0c;表示d维的输入空间&am…

阿里云cdn设置相同的域名路径访问不同的oss目录

1.设置回源配置&#xff0c;添加回源URL改写 2.设置跨域&#xff0c;cdn的跨域优先oss 3.回源设置

【智能家居】九、停车场车牌识别功能点(回调、解耦)

一、翔云 人工智能开放平台&#xff08;车牌识别&#xff09; 二、cJSON 库 三、实现代码 四、回调函数 五、人脸识别和车牌识别获取数据的区别 六、异步网络请求和同步网络请求的区别 七、解耦 一、翔云 人工智能开放平台&#xff08;车牌识别&#xff09; 翔云 人工智能开放…

写 SVG 动画必看!SVG系列文章4-微信公众号编写

1、基础设置 1.1 上传背景图素材 使用到的图片需要上传至微信后台&#xff0c;获取线上地址&#xff1a; 1.2 导入微信文章正文 新建图文消息&#xff0c;先输入好标题、作者&#xff0c;上传好封面图。然后在正文区域输入点文字&#xff0c;打开 chrome 调试工具&#xff0…

CorelDRAW软件2024版本好用吗?有哪些功能优势

CorelDRAW是一款综合性强大的专业平面设计软件&#xff0c;其功能覆盖了矢量图形设计、高级文字编辑、精细绘图以及多页文档和页面设计。该软件不仅适用于广告设计、包装设计&#xff0c;还广泛应用于出版、网页设计和多媒体制作等多个领域。下面就给大家介绍一下CorelDRAW这款…

台式扫描电镜中的扫描速度和扫描模式如何选择?

台式扫描电镜&#xff08;SEM&#xff09;是一种利用电子束扫描样品表面&#xff0c;通过检测样品反射或发射的次级电子、背散射电子、X 射线等信号&#xff0c;来获取样品的形貌、结构、组成和分布等信息的仪器。台式扫描电镜具有体积小、操作简单、样品制备方便、分辨率高、成…

论文怎么改才能降低重复率

一、引言&#xff1a;智能工具助力&#xff0c;轻松降低论文重复率 论文的重复率是学术写作中的重要问题&#xff0c;如何有效降低重复率成为了许多研究者的关注焦点。如今&#xff0c;智能工具的发展为我们提供了更多选择。本文将介绍几种实用的智能工具&#xff0c;包括快码…

PyInstaller 打包 Python 脚本为 .exe 可执行文件闪退、No Model named XXX问题

文章目录 前言.exe 可执行文件闪退No Model named XXXPython 环境问题查看当前python路径查看当前python环境使用的site-package路径 个人简介 前言 在上一篇文章中&#xff0c;我们介绍了如何将 Python 脚本打包为 .exe 可执行文件&#xff0c;但有时候打包生成的 .exe 文件会…

EasyV易知微数字孪生助力解决实际行业问题与痛点

数字孪生技术在当前多个领域得到了广泛的应用&#xff0c;特别是在航空航天、工业、城市和医学等领域&#xff0c;它被视为许多科技企业所关注的焦点。这种技术已经成为实现智能化的重要手段&#xff0c;它可以应用于项目设计、建造和运营等各个阶段&#xff0c;能够解决实际问…