REFL: 联邦学习中智能的设备选择方法
原创 齐天宇 隐私计算研习社
收录于合集#联邦学习54个

现有的FL方案使用随机的参与者选择来提高选择过程的公平性,但是这会导致资源的低效利用和较低的训练质量。
本文系统地解决了FL中资源效率低效的问题,展示了智能参与者选择和合并来自落后参与者的更新的好处。我们演示了这些因素如何在提高训练后的模型质量的同时提高资源效率。
论文标题:REFL: Resource-Efficient Federated Learning
论文链接:https://mcanini.github.io/papers/refl.eurosys23.pdf
1
Introduction
主要挑战是大量学习者在计算能力和数据分布方面的异质性,这可能会影响训练的效果。
精确度时间是一个重要的指标,它取决于培训的统计效率和系统效率。失败的回合和过度参与的参与者会导致计算的浪费,这在以往的FL方法中大多被忽视了。本文目标是优化FL系统的设计,使其在不同的环境下具有资源与精度之比。这意味着减少了达到目标精度所消耗的计算资源,而不会对精度时间产生重大影响。
本文提出REFL,这是一种在不牺牲统计和系统效率的情况下最大化FL系统资源效率的实用方案。REFL通过将参与者更新的集合从聚合分离到更新的模型中来实现这一点。REFL还智能地在可用的参与者中选择将来最不可能可用的参与者。
贡献:
强调学习者有限能力和可用性的资源利用在FL中的重要性,并提出REFL来智能地选择参与者并有效地利用他们的资源。
提出了陈旧感知聚合和智能参与者选择算法,以提高资源利用率,同时对准确性的时间影响最小。
使用真实世界的FL基准来实现和评估REFL,并将其与最先进的解决方案进行比较。
2
Background
在FL聚合中引入了截止时间。

FL的异质性:
数据异质性:Noniid数据;
系统异质性:算力不同;
行为异质性:学员的可获得性因轮次而异;
当前常见的异步算法:
SAFA:落后者参与者的半异步更新;然而,SAFA只允许学习者在有限的陈旧阈值内进行更新;
FiLL支持陈旧度更新,但其协议与FedAvg不兼容;
Oort优先选择学习速度快的学习者来缩短轮次持续时间。
3
The case for REFL
System Efficiency vs. Resource Diversity
当前FL对的设计,要么旨在减少达到准确的时间(系统效率),要么增加学习者池的覆盖率以增强数据分布并公平地分散训练工作量(资源多样性)。但没有考虑学习者的训练成本。
第一个目标导致对某些类别的学习者采取歧视性的做法,要么优先选择计算速度快的学习者,要么优先选择模型更新质量高的学习者(即具有高统计效用的学习者)
第二个目标需要将计算理想地分散到所有可用的学习者上,但代价是可能需要更长的轮次持续时间。
本文的目标是在二者之间取得一种平衡。
Stale Updates & Resource Wastage
SAFA从异步方法中汲取灵感,允许掉队的参与者通过陈旧的更新为全球模型做出贡献。其对所有学员进行培训,并在预设比例的学员返回更新时结束一轮培训。SAFA允许参与者在该轮截止日期后报告,在这种情况下,更新将被缓存并在下一轮中应用。
SAFA+O代表着其预先知道哪些设备会被选择并聚合,可以一定程度减小开销。

原则上,允许陈旧更新可以减少循环持续时间,获得更好的时间准确性,同时保留掉队者的贡献。然而,主要的挑战是平衡参与者的数量,以避免大量的资源浪费。
Participant Selection & Resource Diversity
Oort是通过改变设备选择策略,尽可能选择易于聚合的快速学习者提升准确率的设备,但减少了数据多样性。

同时还要考虑参与者可用性。每个设备参与者可用的时间长短不一。低可用性学习者可能需要特殊考虑,以增加独特参与者的数量,而不会对总体培训时间产生不利影响。

实验结果展示,动态且Noniid的情况下,准确率会下降10%左右。
综上,为了实现更好的模型泛化性能,应该在来自大部分学习者群体的数据样本上联合训练模型。(确保更广泛的学习者覆盖面)
4
REFL design
REFL通过减少延迟参与者的资源浪费和优先考虑可用性降低的参与者来实现这一点。它利用理论支持的方法,根据质量合并陈旧更新。
智能参与者选择(IPS):对提高资源多样性的参与者进行优先排序。
陈旧感知聚合(SAA):在不影响准确性的情况下提高资源效率。

Oort在培训的早期阶段将参与者的选择倾向于更快的学习者,从而错过了有限可用性的学习者,其回合时间是由掉队者决定的。通过允许过时更新。
REFL降低了对落后者的依赖。通过基于估计的可用性对学习者进行优先排序,REFL对更多样化的学习者集合进行采样。
Intelligent Participant Selection (IPS)
IPS增加了资源的多样性,使全球模型能够捕捉广泛分布的学习者数据。此外,它提供了一个可选组件,通过智能地调整每一轮的参与者数量来进一步减少资源浪费。

可用性预测模型:使用现成的时间序列模型来预测学习者的未来可用性。其中是轮次持续时间的平均估计。更新方法为,其中 是上一轮的持续时间。并且其会探测每个当前掉队者,计算其剩余时间 ,将 作为上一轮掉队者中能够完成能够完成训练的集合。所以参与者的数量被调整为
Staleness-Aware Aggregation(SAA)
收敛性分析
从理论上证明了带有陈旧更新的FedAvg算法能够收敛并获得收敛速度。考虑个设备的联合优化问题:

陈旧同步更新算法:

收敛性:

减轻陈旧度的影响(加权平均):

5
Evaluation
用FedSacle实现了FL的集成。
benchmark:

数据异构:1、均衡分布;2、均匀分布;3、Zipf分布

系统性能:从真实数据中测量进行随机分配。

可用性模型:90%的准确率。
6
Result



与SAFA相比,REFL耗时基本类似,但资源消耗较少。

加入动态评估时间可用参与者效果会更好。

在全部可用的情况下,Oort在iid情况下效果很好,但在Noniid情况下不能选择足够丰富的数据。由于SAA组件的加入,REFL以较低的资源使用获得了良好的模型质量。

大训练参与者情况下的效果:

未来硬件进步的影响:

作者简介:齐天宇,北京理工大学自动化学院智能信息与控制研究所研究生。主要研究兴趣包括机器学习、联邦学习、隐私保护。知乎:一朵小脑花。
END

隐私计算研习社
开放隐私计算社区
97篇原创内容
公众号
往期推荐
密码学中常见加密算法的python模块整理
上岸!选择你的隐私计算导师!
联邦学习 (FL) 中常见的3种模型聚合方法的 Tensorflow 代码示例
对于多方安全计算,你是否也有这样的疑惑?

欢迎投稿
邮箱:pet@openmpc.com
参与更多讨论,请添加小编微信加入交流群

分享此内容的人还喜欢
上岸!选择你的隐私计算导师!
隐私计算研习社阅读 996不喜欢
不看的原因确定
内容质量低
不看此公众号

可信区块链隐私计算平台研究与实现
隐私计算研习社阅读 457不喜欢
不看的原因确定
内容质量低
不看此公众号

对于多方安全计算,你是否也有这样的疑惑?
隐私计算研习社阅读 502不喜欢
不看的原因确定
内容质量低
不看此公众号

写下你的留言
相关文章:

REFL: 联邦学习中智能的设备选择方法
原创 齐天宇 隐私计算研习社 收录于合集#联邦学习54个现有的FL方案使用随机的参与者选择来提高选择过程的公平性,但是这会导致资源的低效利用和较低的训练质量。本文系统地解决了FL中资源效率低效的问题,展示了智能参与者选择和合并来自落后参与者的更新…...
Linux:NFS服务器
目录NFS服务器的介绍例NFS服务器的介绍 1,NFS(网络文件系统),主要用于服务器分享提供文件或文件系统等服务,与其他服务器有所不同,主打的是分享,所以没有配置文件,只需要在 /etc/ex…...

电子技术——数字逻辑反相器
电子技术——数字逻辑反相器 在学习完如何通过CMOS数字电路实现组合逻辑,接下来我们评估这种数字CMOS电路的性能。首先,我们考虑最基本的部件——反相器。 电压传导特性 下图是一个反相器的原理图: 在之前,我们已经介绍了MOSFE…...
python的多线程编程之锁
1、 背景概述 在上篇文章中,主要讲述了python中的socket编程的一些基本方面,但是缺少关于锁的相关概念,从而在这篇文章中进行补充。 由于在python中,存在了GIL,也就是全局解释器锁,从而在每次进行获得cpu的…...

Android Framework-进程间通信——Binder
我们知道,同一个程序中的两个函数之间能直接调用的根本原因是处于相同的内存空间中。 比如有以下两个函数A和B: /*Simple.c*/ void A() { B(); } void B() { }因为是在一个内存空间中,虚拟地址的映射规则完全一致,所以函数A和B之…...

有趣的小知识(二)浏览器内的秘密:了解Cookie基础知识
一、简介 Cookie是一种小型的文本文件,由Web服务器发送给Web浏览器,并存储在用户的计算机硬盘上。它通常用于记录用户的偏好、登录状态、购物车信息等,以便在用户下次访问该网站时能够提供更好的用户体验。Cookie通常包含网站的名称、Cookie的…...
Spring框架
DI:依赖注入IOC:控制反转AOP:面向切面IOC容器:存放管理各种对象Spring优势:低耦合。(降低组件之间的关联性,实现软件各层之间的解耦)声明式事务管理(基于AOP来管理)和其他框架的整合(…...
mysql8的表锁排查
information_schema.innodb_trx ##正在运行的事务信息。 sys.innodb_lock_waits ##处于锁等待的关联事务信息。 performance_schema.threads ##SQL线程及线程号、进程号、OS线程号等信息 # 查询锁的情况 select * from performance_schema.data_locks where object_name =t_xxx…...

【C语言】深度理解指针(上)
前言🌊谈到指针,想必大家都不陌生。它不仅是C语言的重难点,还是不少C初学者的噩梦。本期我们将深度探讨一些较为复杂的指针以及指针的妙用,带领大家感受指针的魅力😝。首先,我们先来复习复习指针的概念&…...

最近我的视频播放浅学总结
因为想做一个类似苹果的同播共享功能,这一段时间对音视频做了一些浅浅的学习,现简单总结记录。 我的需求是找到一个尽可能简单的方案来两人播放一段视频,并且能够进度和操作同步,所以基本不能有延迟,同时能够显示WebV…...

【C/C++基础知识点】输出n位斐波那契数列
目录 前言什么是斐波那契数列兔子的故事小知识点收尾前言 在软件行业已经有快十年,技术虽然一般般,但是足够应付额解决编程入门的相关问题! 都说十年磨一剑,积累到一定经验,是时候发挥自己的价值,给予入门的同行些许的帮助! 为什么要写收费专栏,其实原因很简单,时间就…...

C语言拔高知识——指针的进阶(万字大文超详细)
在之前的文章中,我已经讲解过了初阶指针的内容,今天就来讲一讲指针的进阶! 上篇指针地址:保姆式指针讲解,超详细,适合初学者_指针详解_陈大大陈的博客-CSDN博客 目录 1. 字符指针 2. 指针数组 3. 数组指…...

程序员推荐的良心网站合集!(第二期)
今天来给大家推荐几个程序员必看的国外良心网站合集第二期合集。 Semantic Schoolar 由微软联合创始人Paul Allen开发的免费学术搜索引擎,不仅可以通过时间线快速定位想要的文献,还有强大的筛选功能可以精准的找到自己想要的文献,想要什么搜…...
【Java核心知识】spring boot整合Mybatis plus + Phoenix 访问Hbase与使用注意
为了Phoenix能让开发者通过SQL访问Hbase而不必使用原生的方式?引用Phoenix官网上的一句话:SQL is just a way of expressing what you want to get not how you want to get it. 即SQL不是一种数据操作技术,而是一种特殊的表达方式。只是表示…...

lua实现游戏全局鼠标点击效果
前言 最近在优化项目,策划提了一个需求,需要实现一个通用点击特效。 尝试1 首先想到的是改变鼠标指针样式,这个以前学过,还有点印象,以前刚开始学unity的时候,记得看到过一个方法可以改变游戏中鼠标指针样式。 方法如下:选择“Edit”——>“Project Setting”,打…...

MyBatis源码分析(二、续)SqlSource创建流程,SQL如何解析?如何将#{id}变成?的
文章目录实例一、SqlSource处理入口二、SqlSource处理逻辑1、XMLScriptBuilder 构造方法2、解析动态sql3、DynamicSqlSource4、RawSqlSource解析sql(1)parse方法解析sql写在后面实例 此处我们分析的sql: <select id"selectBlog&quo…...
用 C 语言开发一门编程语言 — 函数库的设计与实现
目录 文章目录目录前言前文列表基础功能演示数字运算变量与代数运算列表处理Lambda 函数条件分支字符串源文件加载函数库列表处理函数库条件分支函数库数学库前言 通过开发一门类 Lisp 的编程语言来理解编程语言的设计思想,本实践来自著名的《Build Your Own Lisp》…...

网络层IP协议与数据链路层以太网协议
文章目录一、IP协议IP地址地址管理路由选择DNS二、以太网协议以太网帧MTU一、IP协议 IP协议是我们网络层的代表协议,今天我们就来一起学习一下吧,我们这里介绍的主要是IPv4协议。 版本:指定IP协议的版本,版本的取值只有4&#x…...

JDK动态代理详解
1.什么是动态代理 可能很多小伙伴首次接触动态代理这个名词的时候,或者是在面试过程中被问到动态代理的时候,不能很好的描述出来,动态代理到底是个什么高大上的技术。不方,其实动态代理的使用非常广泛,例如我们平常使用…...

实时的软件生成 —— Prompt 编程打通低代码的最后一公里?
PS:这也是一篇畅想,虽然经过了一番试验,依旧有一些不足,但是大体上站得住脚。传统的软件生成方式需要程序员编写大量的代码,然后进行测试、发布等一系列繁琐的流程。而实时生成技术则是借助人工智能技术,让…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !
我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...

【Veristand】Veristand环境安装教程-Linux RT / Windows
首先声明,此教程是针对Simulink编译模型并导入Veristand中编写的,同时需要注意的是老用户编译可能用的是Veristand Model Framework,那个是历史版本,且NI不会再维护,新版本编译支持为VeriStand Model Generation Suppo…...

ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]
报错信息:libc.so.6: cannot open shared object file: No such file or directory: #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...

Sklearn 机器学习 缺失值处理 获取填充失值的统计值
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 使用 Scikit-learn 处理缺失值并提取填充统计信息的完整指南 在机器学习项目中,数据清…...