群体学习Swarm Leaning学习笔记

群体学习 笔记

背景

如今,在一些疾病的诊断领域,AI的准确率已经超过了医生。靠谱的诊断结果背后,是建立海量数据集上的机器学习。但实际上,可用于训练的医疗数据非常分散,想要把世界各地的数据都集合起来又会引发对数据所有权、隐私性、保密性、安全性的担忧,甚至数据垄断的威胁……
常用的方法如联邦学习,可以解决上述的一些问题,但该模型的参数由“中央协调员”( central coordinator)处理,造成了“权力”的集中,且它的星形架构也导致容错性降低。群体学习的引入在一定程度上可以解决这些问题。

架构

联邦学习 群体学习
群体学习

群体学习VS联邦学习

群体学习与传统的联邦学习(CS架构)不同,它没有中央参数服务器,不需要将参数上传到中央服务器进行聚合,数据和模型参数都在本地储存,拥有更高的隐私性以及安全性。与其说群体学习是一种全新的机器学习方式,我更倾向于认为它是一种去中心化联邦学习新的范式,它将去中心化硬件基础设施、分布式机器学习与区块链结合,从而安全加入成员节点、动态选举领导者、聚合模型参数。

联邦学习(Fedearted Learning,FL)

定义: 联邦学习(Federated Learning)是一种分布式机器学习技术,其核心思想是通过在多个拥有本地数据的数据源之间进行分布式模型训练,在不需要交换本地个体或样本数据的前提下,仅通过交换模型参数或中间结果的方式,构建基于虚拟融合数据下的全局模型,从而实现数据隐私保护和数据共享计算的平衡,即“数据可用不可见”、“数据不动模型动”的应用新范式 。
联邦学习按架构划分为:中心化联邦学习(具有中央服务器/中央协调方)的CS架构,去中心化的联邦学习(P2P对等网络)架构和委员会架构

经典联邦学习框架(CS架构)的训练过程可以简单概括为以下步骤:

协调方建立基本模型,并将模型的基本结构与参数告知各参与方;
各参与方利用本地数据进行模型训练,并将结果返回给协调方;
协调方汇总各参与方的模型,构建更精准的全局模型,以整体提升模型性能和效果。

在对等架构(P2P)中,由于没有第三方服务器的参与,参与方之间直接交互,需要更多的加解密操作。在整个过程中,所有模型参数的交互都是加密的。
委员会架构分为固定委员会和动态委员会两种,动态委员会主要是指区块链类型的架构(有点类似群体学习),固定委员会主要是指MPC(多方安全计算)类型的架构。
委员会架构BFLC:

知乎 联邦学习圆桌会议 论文 《A Blockchain-based Decentralized Federated Learning Framework with Committee Consensus》

引入: 传统的FL架构更容易偏向某个节点(权利集中)恶意的中央节点可以通过对模型投毒,进而从模型更新中收集用户信息。BAFFLE利用区块链去除了中心化聚合器,通过智能合约代替中央聚合器的作用。
BFLC VS SL
BAFFLE关于模型的参数以及更新等都存储在区块链中;
BAFFLE是在一定数量的更新块后进行模型聚合,SL是经过同步时间SI后选取领导者
攻击
只有攻击者掌握了超过51%的计算资源才能实现攻击,当攻击发生时还可以进行回退(之前保存在区块链的信息)

区块链(BlockChain,BC)

区块链是一种链式结构,将数据块遵循时间顺序组合并与密码学、共识机制、智能合同等技术结合所形成的一种去中心化的公共账簿技术。具有如下特点:数据难篡改、去中心化、可追溯、去信任化:

1.去中心化: 系统中的所有结点都参与数据的记录和验证,将计算结果通过分布式传播发送给各个结点;在部分结点遭受损坏的情况下,整个系统的运作并不会受到影响,相当于每个参与的结点都是“自中心”。

2.基于共识建立信任(去信任化): 只需要信任共同的算法就可以建立互信,通过算法为参与者创造信用、产生信任和达成共识,不需要第三方机构。

3.数据难篡改: 时间戳存储了网络中所执行的所有交易历史,可为每一笔数据提供检索和查找功能,并可借助区块链结构追本溯源,逐笔验证。根据“少数服从多数”原则,从概率上讲,要篡改历史信息,必须同时控制整个系统中超过50%的结点。

群体学习(SL)

群体学习结合了分布式机器学习和区块链这两种技术,拥有这两种技术的优势:各节点之间权利对等,有较高的安全性和容错性。
SL框架主要组成部分( FL for BC 区块链网络

  • (Swarm 边缘节点)
    1.SL节点:运行用户定义的深度学习算法,并迭代更新本地模型
  • (Swarm 协调器节点)

2.SN节点(Swarm Network 节点):相互交流以维护模型的全局状态信息,通过以太坊区块链平台跟踪训练进度
3.SWCI节点(Swarm Learning Command Interface 节点):安全地连接到SN节点以查看SL框架的状态,并进行控制和管理
4.SPIFFE SPIRE server node:SN节点和SL节点都包含一个SPIRE Agent Workload Attestor 插件,该插件与SPIRE服务器节点通信以证明其身份并获取和管理SPIRE可验证身份文档(SVID)
5.LS节点(License server node 许可证服务器节点):下载和管理许可证以运行SL框架

SPIFFE 和 SPIRE 项目提供了一个生产级别的身份认证框架
SPIFFE ( Secure Production Identity Framework For Everyone ):是一套开源标准,用于在动态和异构环境中安全地识别软件系统。
SPIRE ( SPIFFE Runtime Environment ):是 SPIFFE 标准的一套生产就绪实现,它执行节点证明和工作负载证明,可以安全地向服务颁发身份凭证,并根据预定义的条件集合验证其他服务的身份。

简单过程:
SL在分布式的节点上进行训练,动态选取领导者,新节点通过区块链智能合约注册,获取模型,并进行本地模型训练,直到满足定义的同步条件(SI:同步时间)。接下来,通过 Swarm 应用程序编程接口 (API) 交换模型参数,并在开始新一轮训练之前,合并创建一个更新参数的最新模型。

【注】其中区块链仅记录模型状态以及训练进度等元数据,不记录模型参数;在每一个SI结束时,其中一个SL节点被区块链选为领导者,领导者从每个节点收集局部模型(如何收集?),并通过平均它们的训练参数更新全局模型。
参数通过类似于管道(pipeline)的端口API进行交换。


流程图

思考

个人认为SL模型是基于区块链的联邦学习(BFL)的一种新的范式。
==本人对此领域的研究尚未深入,有任何问题欢迎大家积极指出,一起交流!

参考文献:

[1]Jialiang Han, Yun Ma, Yudong Han, Ying Zhang and Gang Huang. “Demystifying Swarm Learning: A New Paradigm of Blockchain-based Decentralized Federated Learning” (2023).
[2]Stefanie Warnat-Herresthal et al. “Swarm Learning for decentralized and confidential clinical machine learning…” (2021).
[3]登上Nature封面的群体学习,无需中央协调员,比联邦学习更优秀(https://baijiahao.baidu.com/s?id=1702788856189355655&wfr=spider&for=pc)
[4]联邦学习的架构(爱吃牛油果的璐璐:联邦学习的架构)
[5]Yuzheng Li, Chuan Chen, Liu Nan, Huawei Huang, Zibin Zheng, & Qiang Yan (2021). A Blockchain-Based Decentralized Federated Learning Framework with Committee Consensus IEEE Network.

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
当谈到Docker学习笔记时,我可以为你提供一些基本的指导和主题,以帮助你开始学习Docker。以下是一些可能涵盖的主题: 1. Docker简介:了解Docker的基本概念、优势以及它如何与虚拟化技术不同。 2. Docker安装:学习如何在不同的操作系统上安装Docker,并熟悉Docker引擎的组成部分。 3. Docker镜像:了解Docker镜像的概念,以及如何通过构建、拉取和推送镜像来管理和共享容器环境。 4. Docker容器:学习如何创建、启动、停止和删除容器,并了解容器和主机之间的交互方式。 5. Docker网络:探索Docker网络模式,包括桥接网络、主机网络和覆盖网络,并理解容器之间以及容器与主机之间的通信方式。 6. Docker存储:了解Docker存储技术,包括数据卷和绑定挂载,并学习如何在容器中持久化数据。 7. Docker Compose:介绍Docker Compose工具,它可以用于定义和运行多个容器的应用程序。 8. Docker Swarm:探索Docker Swarm,它是Docker官方的容器编排和集群管理工具,于在多个主机上部署和管理容器应用。 9. Docker和持续集成/持续部署(CI/CD):了解如何将Docker与CI/CD工具(如Jenkins、GitLab CI等)集成,以简化应用程序的构建和部署过程。 这只是一些可能的主题,你可以根据自己的需求和兴趣来选择学习内容。希望这些指导可以帮助你开始学习Docker!如果你有任何特定的问题,我很乐意回答。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值