【项目实训】0320公共周报
项目实训总结(三)
一、本周工作总结
论文研读《Communication-efficient learning of deep networks from decentralized data》,辅以代码分析 :
1、模型结构
①有K个固定客户端,每个客户端有自己的本地数据集
②每轮随机算则C个客户端,服务器把当前全局算法状态发给这C个客户
③每个选定的客户端基于全局状态及本地数据集执行本地计算,并行向服务器发送更新
④服务器将这些更新应用于全局状态
⑤重复该过程
2、本实验要优化通讯成本,代码有改动,让每轮客户端增加了更多计算
3、模型优化的核心应该是SGD(梯度下降)
4、C=1对应于全批次(非随机)
5、计算由三个关键参数控制
C:每轮执行运算的客户端比例
E:每个客户端,在一轮中对本地数据集训练的次数
B:用于客户端更新的本地微型批次大小(B=无穷,表示本地数据集被视作单个迷你批次
6、本文提高一种关键方法: naive parameter averaqing(朴素参数平均)
7、算法伪代码如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vDSA6kSe-1648183651860)(C:\Users\李东晓\Desktop\0.png)]
二、细化分工
李东晓主要负责制作:1.发送模型的界面(这里好像涉及到文件路径的问题),2.接收到后端传送来的数据进行展示;
叶熤炜主要负责:1.每次的请求以及请求的逻辑,2.通过axios进行数据的传输(这里涉及到字节流的传输);
陈浩洋主要负责:1.接收到前端发送来的字节流转换成model文件,2.进行模型的训练;
刘云聪主要负责:1.将模型发送到另一台主机上实现分布式(这里涉及到不同主机的通讯,可能需要调整一下防火墙的配置以及需要连接网线才能进行通讯需要后续的尝试),2.接收到聚合端返回的模型进行本地模型优化并返回给前端展示数据(涉及到我们需要展示什么信息);
廖嘉麒主要负责:1.接收到另一台主机的模型,2.进行模型的聚合以及返回模型。
三、下周任务
1、本地配置环境,跑起来模型,确定传输的对象类型,考虑聚合算法的改进价值。
2、尝试前后端、后端和聚合端之间的数据传输,有一个初步的数据展示。
3、提出问题:该论文是否是我们所想的异步更新的方式?后续可以问一下学长相关的论文。