代码编织梦想

一、知识点:

1、原子操作(atomic operation)指的是由多步操作组成的一个操作。如果该操作不能原子地执行,则要么执行完所有步骤,要么一步也不执行,不可能只执行所有步骤的一个子集。

2、联邦学习为移动设备上的模型共享创造可能,模型训练与云端存储解耦,移动端存储训练数据,并进行模型训练和进化。

联邦学习机理如下:设备下载云端最新的共享模型,本地改进和训练,个性化后的模型被抽取为一个更新文件,将差异部分加密上传云端,在云端和其它设备上传的最新模型差异做平均化更新,以改善共享模型。

网络的上传速度通常比下载速度慢,谷歌开发出一种新颖的算法:“random rotations and quantization”,将上传更新的通信速度提升为原来的100倍。这些算法都聚焦在深度学习的训练上,还针对点击率预测的问题设计出了“high-dimensional sparse convex"模型。

3、差分隐私

差分隐私是用来防范差分攻击的,我们对加入新样本后的结果查询中加入噪声,使得攻击者无法辨别某一样本是否在数据集中,即达到双兔傍地走安能辨我是雄雌的境地。

4、智能合约,类似于实际合同效力,在计算机语言描述和实现,在没有第三方参与的情况下进行合约的触发和执行。

智能合约区别于传统合约:

1)合约的触发与执行合二为一次原子操作

2)去中心化和自动化地合约流程,无须第三方中心机构的介入。

5、横向和纵向联邦学习

横向联邦学习适用于联邦学习的参与方的数据有重叠的数据特征,即数据特征在参与方之间是对齐的,参与方数据样本不同。纵向联邦学习 适用于联邦学习参与方的训练数据有重叠的数据样本,即参与方之间的数据样本对齐的,但数据特征上不同。

二、钱学海团队的研究成果:

1、钱学海认为,分布式训练系统的核心问题是不同计算设备的通信以及由于计算和通讯性能的差异带来的异构性,具体可以看做面临三个方面的挑战,分别是:通信(Communication)、异构性(Heterogeneity)和多因素交互的复杂性 (Complex Trade-offs )。

(1)通信:早期分布式训练是一个中心化结构,每一个worker会把自己计算得到的梯度上传到中心节点,中心节点对all worker 的梯度平均化处理,再传回各个worker。存在中心节点通信瓶颈问题;第二代分布式训练系统结构是Ring-All-Reduce,节点同步环+并行流水线工作机制,通信更加高效,但当每个worker的运行性能差距较大时,系统性能受限于运行效率最低的worker。

Ring All-Reduce系统结构

(2)异构性:确定异构性(Deterministic heterogeneity)和 动态异构性(Dynamic heterogeneity )。确定异构性是指不同的设备通常有不同的计算能力(比如:采用不同的GPU或 TPU系列),并且设备或节点具有不同的网络通信性能。动态异构性是由资源共享造成的,即同一个设备对不同的应用提供的计算性能不同。分布式训练系统下会产生Slow Worker,被称为Straggler。Straggler问题亦称之为异构性问题,即平台上Worker具有不同的运行性能时,整个系统的性能受限于运行效率最低的Worker。

(3)复杂性:全局考量系统设计,如考虑并行性与通信之间的关系,一般采用Data Parallelism 和 Model Parallelism

        Data Parallelism      

              Model Parallelism

2、去中心化的分布式训练

去中心化方法下,可定义任意模式的通信图。提供了一个更灵活的通讯方式。每一个节点的运行过程如下:

根据Min-batch数据和当前的模型进行梯度计算,并更新模型;

把参数发送给“邻居”Worker;

接收其他Worker的参数,并进行Reduce操作;

更新模型参数,进入下一个Iteration。

此训练中的同步是指每个Worker在做Reduce操作时,所有的参数应该出自同一个Iteration。这是在构建去中心化分布式训练系统中独特的一个问题,在PS和Ring All-Reduce中都不存在这样的问题,因为它们有一个非常自然的中心节点或者有一个同步的操作去划分Iteration。

PS和Ring All-Reduce

3、 基于同步算法的去中心化分布式训练

基于队列的同步算法(Queue-based Synchronization),该算法应用于同步算法系统设计中,主要解决两个问题:(1)系统应该能够自适应按需分配资源,而不是持续分配资源(2)Backup Worker是解决异构问题的一种技术,它能够控制同步的松紧程度(Bounding Iteration Gap),但会造成无穷大的Iteration gap

基于队列的同步是指每个Worker有两个队列:Update Queue(UQ), 用来存储邻居发送来的信息,Token Queue(TQ), 用来控制同步。假设在部署协议时,设定Iteration Gap的最大容忍是2,则TQ的Token数最大为2。协议开始执行以后,每一个Worker都可以向其他Worker发送参数更新。Worker要想进入下一个Iteration,必须要从邻居的TQ中获取Token放入自己的TQ当中。如果C要进入下一个Iteration,必须先从TQ_A->C和TQ_B->C中获取token,分别放入TQ_C->A和TQ_C->B中。

解释上述提到的Backup技术控制Bounding Iteration Gap,设Number of backup = 1,若A出现Slowdown,B和C仍然可继续进行。当B和C进入Iteration(2)之后,由于A仍然在Iteration(0)且A的TQ中已经没有token了,所以B和C也会停止。这样就确定了Iteration gap的边界。这个边界值是由TQ的长度决定的

Queue-based Synchronization with backup Worker

4、基于异步算法的去中心化分布式训练

去中心化异步训练算法的代表:深度学习异步去中心化随机梯度下降算法Asynchronous Decentralized Parallel SGD(AD-PSGD),其核心思想是通信的随机性(worker的迭代是随机选择的)以及worker之间进行原子性操作。

原子性操作的两个作用:(1)两个串行操作执行完以后,w(2)的模型更新中也包含w(1)的模型更新,(2)模型的收敛速度会大大提高。

原子性操作也存在弊端,参数大量同步成本,训练过程中,AD-PSGD在不同的数据集上训练的同步开销都比Ring All-Reduce要大。在异构环境下,AD-PSGD的收敛速度比Ring All-Reduce要快;在同构环境下,则相反。

鉴于上述挑战,Partial All-Reduce算法应用于异步算法系统设计中,应运而生,它主要解决两个问题:1)如何让同步操作本身更快;2)如何减少冲突,降低由于串行操作带来的延迟。

概算法的核心思想是worker Group 代替worker 同步,首先,Group Generator 产生不冲突的分组,每个节点一个分组,每个分组内部有一个Head worker进行节点之间的同步,组内同步不需要进行节点之间的通信,避免了网络拥堵的问题。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_40798471/article/details/121364495

数据归一化、标准化和去中心化-爱代码爱编程

数据预处理,一般有数据归一化、标准化和去中心化。 归一化 将数据映射到[0,1]或[-1,1]区间范围内,不同特征的量纲不同,值范围大小不同,存在奇异值,对训练有影响。 标准化 将数据映射到满足标准正态分布的范围内,使数据满足均值为0,标准差为1。标准化同样可以消除不同特征的量纲。 去中心化 使数据满足均值为0,但对标准差没有要求。 每种方法

联邦学习之我见-爱代码爱编程

2019年7月8日,英国信息监管局发表声明说,英国航空公司因为违反《一般数据保护条例》被罚1.8339亿英镑(约合15.8亿元人民币)。伴随着欧盟出台的新法案——《通用数据保护条例》(General Data Protection Regulation, 简称GDPR),数据隐私保护已经成为全世界关注的趋势。个人隐私保护也是2019年RSA大会的重要议题。

联邦学习(联合学习) Federated Learning(FL)-爱代码爱编程

联邦学习,是联邦机器学习的简称, 也叫联合学习,联盟学习 谷歌公司和微众银行分别提出了不同的“联邦学习”(Federated Learning)算法框架   Federated Learning: Collaborative Machine Learning without Centralized Training Data  

联邦学习笔记(二)-爱代码爱编程

本文首发于Feng Yu的空间 https://yu-feng.top/ 写在前面 ​ 参考文献《Advances and Open Problems in Federated Learning, 2019》,58位作者的105页文章。笔者当前花了一些时间来阅读这篇论文,由于能力有限,只做一些感兴趣点的记录和分析。另引用内容见文末参考文献,如侵权请联系

联邦学习(电子工业出版社)——读书笔记(4)-爱代码爱编程

第五章 纵向联邦学习 纵向联邦学习的定义 把在数据集上具有相同的样本空间、不同的特征空间的参与方所组成的联邦学习归纳为纵向联邦学习(Vertical Federated Learning, VFL),也可以理解为按特征划分的联邦学习。 在这种联邦学习体系下,每一个参与方的身份和地位是相同的。 在VFL的设置中,存在一些关于实现安全和隐私保护的假设。

mnist数据集训练_Part 06 在MNIST数据集上执行联邦学习训练CNN模型-爱代码爱编程

Time: 2019-11-19 教程作者:Théo Ryffel - GitHub: [@LaRiffle](LaRiffle - Overview) 1. 上下文 联邦学习是非常令人激动且日益火热的机器学习技术,只在构建一种这样的系统:能够在分布式数据上学习。 想法是让数据仍然保持在数据生产者手里(也叫作_worker_),此想法能够保

联邦学习-个性化学习总结(二)-爱代码爱编程

文章目录 Decentralized Federated Learning via Mutual Knowledge Transfer 思路 理论细节 结果 FedH2L: Federated Learning with Model

终于有人把联邦学习讲明白了-爱代码爱编程

导读:本文将详细介绍联邦学习的概念、架构思想、应用场景等内容,帮助大家全面认识联邦学习。 作者:王健宗 李泽远 何安珣 来源:大数据DT(ID:hzdashuju) 01 什么是联邦学习 联邦学习是一种带有隐私保护、安全加密技术的分布式机器学习框架,旨在让分散的各参与方在满足不向其他参与者披露隐私数据的前提下,协作进行机器学习的模型训练。

联邦学习技术应运而生!-爱代码爱编程

↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过  Datawhale干货  作者:王健宗等,联邦学习技术负责人 联邦学习作为一种强调数据安全和隐私保护的分布式机器学习技术,在人工智能广泛发挥作用的背景下,受到广泛关注。 人工智能技术不断发展,在不同前沿领域体现出强大活力。然而,现阶段人工智能技术的发展受到

联邦学习(Federated Learning)概述-爱代码爱编程

哈尔滨工程大学 区块链讨论课 2018065124 杨儒浓 1.什么是联邦学习 也许很多人从未听说过联邦学习是联邦学习?甚至从词义本身也无法得知是何种领域的技术。今天我将为大家介绍一下这种近几年由人工智能与区块链技术结合并衍生出的一种全新概念,联邦学习。关于联邦学习的定义,可以理解为是在保证数据隐私安全及合法合规的基础上,利用各个节点掌握的数据实现共

联邦学习开坑!-爱代码爱编程

入门联邦学习(FL),在导师的建议下,我决定从客户端数据异构这一方向出发开展学习。这里就先开个坑,开始记录自己的学习心得,欢迎各位批评指正,共同学习。 联邦学习是什么 联邦学习(FL)是一个框架,它允许多个用户(即客户端)协作训练一个共享全局模型,并且不需要从他们的本地设备移动数据。中央服务器协调由多个轮次组成的FL过程。在每一轮开始时,服务器将当前的

联邦学习如何训练用户识别模型?-爱代码爱编程

“用户识别模型”也就是训练一个通过语音,或人脸,或指纹等个人信息进行身份识别的模型,也是一个选择“接受”或”拒绝”的二元决策问题。以基于embedding的分类为例,一个样本只有其embedding与reference embedding足够接近,才能通过模型验证(被模型接受),换句话说就是“身份验证成功”。 联邦学习训练“用户识别模型”存在两个挑战:

联邦学习笔记-《A Blockchain-based Decentralized Federated Learning Framework with Committee Consensus》论文翻译-爱代码爱编程

联邦学习笔记-《A Blockchain-based Decentralized Federated Learning Framework with Committee Consensus》论文翻译个人笔记 摘要 联邦学习已经被广泛研究并应用于各种场景。在移动计算场景中,联邦学习保护用户不暴露他们的私有数据,同时为各种实际应用合作训练全局模型。然而,由

初识联邦学习(Federated learning)-爱代码爱编程

  联邦学习(Federated learning)最早在2016由谷歌提出,并在之后受到大量的关注。本文旨在简要介绍联邦学习,了解联邦学习的背景,而不关注联邦学习具体的实现方案。希望能解释通如下几个问题。   1.为什么要有联邦学习   2.什么是联邦学习   3.联邦学习的简易模型   4.联邦学习的优势 1.为什么要有联邦学习?   在阅读联邦学

去中心化的联邦图神经网络-爱代码爱编程

《Decentralized Federated Graph Neural Networks》论文阅读笔记 发表在2021年的IJCAI 背景 GNN广泛用来分析图结构数据,然而,在用户端有隐私,规则限制,商业竞争等。因此,我们能看到的图结构数据是分布式的,这也就限制了GNN的应用。已有方法 已有一些关于中心化联邦图神经网络的研究,中心服务器协调各个参

pysyft学习笔记四:minist数据集下的联邦学习(并行训练与非并行训练)_fed_avg-爱代码爱编程

目录 手写数字识别模型(非并行训练)概述图导入基本包创建客户机设置训练参数初始化数据集搭建神经网络模型定义训练与测试函数定义主函数训练效果 手写数字识别模型(并行训练)概述图导入必要的包建立客户机