【论文笔记】《FLchain: Federated Learning via MEC-enabled Blockchain Network》精读笔记

Information of the paper:

DOI: 10.23919/APNOMS.2019.8892848

 

目录

1. Abstract

2. Preliminaries and Definitions

2.1 Channel

2.2 Global Model State Trie

3. System Model

4.The Operation of FLchain

4.1FLchain过程

4.2 Transaction Pool

4.3 Global Model Update

4.4 Consensus Protocol

4.5 Analysis

5.Evaluation

6.思考


 

 

1. Abstract

1)提出了基于区块链网络的“FLchain”.

2)介绍了“the Global model state trie”.

2. Preliminaries and Definitions

2.1 Channel

将peers隔离开,分成小的“区域”,每一小“区域”属于同一个channel。只有在同一个channel中的peers才有权在channel内读取、提交、验证事务。每个channel有单独的分类帐本,单独的共识。在FLchain中,对于每个全局模型,都会创建一个带有genesis块(用于存储该channel的分类账)的新channel。genesis块存储全局模型的初始权重、权重的维数、超参数、激活函数、偏差(bias)。

2.2 Global Model State Trie

类似于用于追踪账户状态的“Account StateTrie”。作者提出的“Global Model State Trie”用来追踪FLchain中全局模型的权重。每一个channel都有它自己的“Merkle Patricia tree”形式的trie。Global Model State Trie将权值存储在键值对中,其中“key”为权重位置(下表表权重的索引),“value”是权重系数。达成共识之后,trie为全局学习模型提供更新后的权重系数。

3. System Model

作者将多存取边缘计算(MEC)和区块链网络结合,提出了一套适用于FL的系统模型。FLchain包括移动设备和边缘设备(如Fig.1)。移动设备使用设备上的数据样本计算local model update。边缘设备有两个作用:①向资源受限的移动设备提供网络资源;②在FLchain的区块链网络中充当节点。

每个全局模型是在单独的channel上进行的。

在FLchain中,区块链网络由边缘设备组成,对于特定的channel,它以块的形式在单独的区块链上存储来自于设备的本地模型更新。区块链网络也计算并安全地将特定channel的全局模型更新存储在分类账上。

Fig.2 表示特定信道FL的区块链的简化结构。

FLchain的底层区块链平台应该是定制开发的,具有Hyperledger Fabric(一个分布式账本技术)和Ethereum(以太坊)的特点。

4.The Operation of FLchain

4.1FLchain过程

上述算法1 描述了FLchain的操作。

【L.2】初始化。

t表示全局迭代的次数;w_{j}表示channel j的全局模型权重;w_{i,j}表示channel j 中设备i的本地模型权重;D_{j}表示channel j 上的设备数量。

这一篇的实验部分和《Blockchained On-Device Federated Learning》的方法基本相同,都是解决线性回归问题,Loss Function也基本一样,本篇就不再赘述。

【L3~L7】为每个设备分配channel。

当一个设备想要加入一个channel时,就执行“channel inquiry”操作,然后, 区块链网络会向设备发送一个channel list。

设备选定一个channel,就标记c_{i}=j。然后,去选定的channel那里进行注册,然后设备会获得一组公钥和私钥,设备可以通过公私钥向channel上传本地模型权重系数。

【L8~L20】一个channel内的模型更新。其中,

【L9~L17】channel内的所有设备的操作。

[L10~L11]是将全局模型下载同步到本地。(通过该channel中的边缘节点从区块链那里下载最新的全局模型参数。 疑问:边缘节点怎么选出来的,如果边缘节点崩溃了呢?

[L12~L14]本地设备进行V轮计算(通过公式6)。

这篇文章的方法也是用的SVRG(随机方差梯度下降)。

[L15~L16]将本地模型权重上传至channel的边缘节点。达到块生成并且转发到区块链网络。并等待channel的回应。

【L19】使用公式(7)计算全局权重。

【L20】进行全局模型状态Trie的更新,块生成,共识。

下面是时序图。

4.2 Transaction Pool

这篇文章提到了“Transaction Pool”这个概念,我理解为“交易池”。设备提交的交易被累积在交易池(实际是一个mempool)中,直到时间达到该channel的T_{wait,j}(每个全局模型迭代内存池中交易的累计时间),达到T_{wait,j}后,边缘节点会转发给区块链。区块链网络的每个节点都有特定自己的channel-specific mempool。有些交易会由于网络延迟等原因而“迟到”,这些“迟到”的交易要被丢弃,而不能用于下一次全局模型更新的计算。

4.3 Global Model Update

当到达T_{wait,j}后,channel j中的边缘节点会生成一个块,块中存储该channel的mempool中的第t轮迭代的信息。全局模型状态trie会保存全局模型参数w_{j}(t)。全局模型状态trie的root被添加进块的头部(block header)。全局模型权重更新使用的DANE(分布式拟牛顿法)。

4.4 Consensus Protocol

有的设备可能无法在规定时间内向胜利矿工报告它们的本地模型,这就需要一个协议来处理这些设备。

在矿工广播最新的块之后,区块链中的peers必须验证块交易并检查更新的全局模型状态trie。Peers计算它们自己的本地模型状态trie,并且对照广播的块来验证全局模型状态trie的根。如果发现该区块有效,则区块链网络必须为区块链达成共识。但若该块无效,就会被拒绝。赢家矿工的块广播被附加到特定的分布账本上。由于每个区块链节点都要计算、验证和确认全局模型状态trie,因此blockchain-based FL就比传统的FL可信且健壮。基本一致性协议可以用pBFT(拜占庭容错)或者POW来代替。

4.5 Analysis

在每次全局模型迭代之后,都将进行判断,检查FL是否已达期望的结果。

迭代结束的条件:\left \|w _{j}\left ( T \right )-w_{j}\left ( T-1 \right ) \right \|_{2}\leq\varepsilon _{threshold,j},其中\varepsilon _{threshold,j}是预定义的大于零的常数。

5.Evaluation

本篇文章,主要的优点:

  • FLchain为学习每个全局模型提供一个单独的channel,用于存储属于该channel的本地模型更新的共识和分类帐本。
  • 全局模型trie也是基于每个channel维护的,它可以安全地将全局模型权重存储在Merkle Patricia Tree中,并且它还可以进行溯源。
  • 在FLchain中,全局模型更新有区块链网络进行计算、验证、存储,代替了中心服务器,它比传统地FL更健壮。

6.思考

6.1 channel的实质作用是什么?

目前理解:通过channel把设备进行“分块”,设备上传local model时,先暂存到channel内边缘节点的mempool,等达到T_{wait,j}后,边缘节点将mempool中的内容转发到区块链。此外,设备下载global model时,通过本channel的边缘节点从区块链下载。

6.2 交易池,仅仅是为了暂存设备上传的本地模型?所有本channel设备上传的都存在那里,等到统一处理?最后一起上传到区块链?

目前来看是这样的。

6.3 超过Twait的都丢掉了,这个不算是故障吗?(上一篇文章中,超时的怎么办了?是假设都成功上传了吗?)

作者未解释这中情况。上一篇文章未考虑“迟到”的问题。

这篇文章相当于把“迟到”问题做了一个处理,即丢掉,不予处理,从而不让其影响全局模型的更新。

猜你喜欢

转载自blog.csdn.net/Aibiabcheng/article/details/108957134