qinsh
Loading Heatmap…

qinsh commented on issue PCL-Platform.Inte.../AISynergy#14

加速模型收敛探索

![](http://)

2 weeks ago

qinsh commented on issue PCL-Platform.Inte.../AISynergy#14

加速模型收敛探索

继续上次实验: 1. non-iid分布下,bn可以改进为gn,提升模型效果。 2. 在non-iid场景下,优化更新策略,可以提升模型效果 下一步: 1. 利用狄利克雷分布,验证一般性。 2. 调整模型聚合更新频率,验证一般性。 3. 对比不同更新聚合算法,对比效果。

3 weeks ago

qinsh commented on issue PCL-Platform.Inte.../AISynergy#14

加速模型收敛探索

继续上次实验 1. iid数据分布下,去掉bn层,改用vgg19模型,batch_size为100的情况下,svrg无明显提升。 2. 在non-iid分布下,去掉bn层,vgg19模型,测试精度正常提升。 3. 在non-iid分布下,去掉bn层,vgg19模型,svrg有提升。 分析: 1. bn层在non-iid分布下效果不好,通过去掉bn设置初始值可提升模型性能,下一步实验: i.bn改进group norm, instance norm, layer norm 2. iid分布下,svrg无明显提升,猜测是batch-size为100,梯度方差较batch-size为1已经很小,所以没提升。 在non-iid分布下,梯度方差较大。下一步实验: i.观察svrg和sgd梯度方差分布,验证方差减小。 3. 在non-iid分布下,修改模型更新策略,为每个参与方暂存梯度,(类似sag,但是不是针对每个样本,针对联邦参与方)对比sgd,svrg策略效果。 4. 狄利克雷分布,目前实验是两个极端,可验证一般性。

1 month ago

qinsh opened issue PCL-Platform.Inte.../AISynergy#14

加速模型收敛探索

1 month ago

qinsh commented on issue PCL-Platform.Inte.../AISynergy#4

新增通信模块与topk功能

加密模块原理图: ![](https://git.openi.org.cn/PCL-Federated.Learning.Middleware/HiStar/raw/branch/master/secure_aggregation/images/secure_aggregration2.png)

1 month ago

qinsh pushed to fed_middleware at PCL-Platform.Inte.../AISynergy

  • de6f790524 integrate function for spliting big data to splices

2 months ago

qinsh pushed to fed_middleware at PCL-Platform.Inte.../AISynergy

2 months ago

qinsh commented on issue PCL-Platform.Inte.../AISynergy#6

添加联邦学习模型参数加密功能

额外耗时基本可以忽略,每轮迭代额外工作: 1 已经设置seed的随机数生成器生成mask 2 相加到参数上 测试resnet50,每轮迭代选择3个client mask duration(s): 0.03592681884765625 无损mask,对模型精度无影响

2 months ago

qinsh commented on issue PCL-Platform.Inte.../AISynergy#6

添加联邦学习模型参数加密功能

参考样例: AISynergy/examples/quickstart_pytorch 增加server端接口参数,进行配置加密模块以及压缩模块 syncore.server.run_server( ... mask_protocol='DHProtocol’ ) mask_protocol: 加密mask协议名称#TODO only Diffie–Hellman key excheange now 注意:加密mask正确性需保持正常连接(掉线功能#TODO)

2 months ago

qinsh commented on issue PCL-Platform.Inte.../AISynergy#4

新增通信模块与topk功能

参考样例: AISynergy/examples/quickstart_pytorch 增加server端接口参数,进行配置加密模块以及压缩模块 syncore.server.run_server( ... mask_protocol='DHProtocol', compression_protocol='TopKProtocol', server_with_compression=True, client_with_compression=True, ) mask_protocol: 加密mask协议名称#TODO only Diffie–Hellman key excheange now compression_protocol: 压缩协议名称#TODO only topk now server_with_compression: server端模型是否需要压缩 client_with_compression: client端模型是否需要压缩 server端完成相应接口配置,即会创新默认的DHProtocol类实例和Mask ************************* topk压缩协议说明: server端接口配置topk协议名称,会在server端和client端创TopKCompressionProtocol类默认参数实例负责topk压缩协议 TopKCompressionProtocol在 AISynergy/AISynergy-core/src/AISyncore/common/compression/topk_compression_protocol.py定义 目前compress_ratio是默认配置0.5,可以自行定义默认值进行对比实验 ************************* 添加其他压缩协议: 可参考TopKCompressionProtocol实现 1 继承CompressionProtocol完成compress,decompress功能,并完成注册协议名称,例如: compression_protocol_register.register('TopKProtocol', TopKCompressionProtocol) 2 添加相应的压缩参数的数据格式,grpc通信参数的数据格式,以及序列化方法 压缩参数数据格式:AISynergy/AISynergy-core/src/AISyncore/common/typing.py grpc通信参数的数据格式:AISynergy/AISynergy-core/src/AISyncore/proto/transport.proto 序列化方法:AISynergy/AISynergy-core/src/AISyncore/common/serde.py 3 添加压缩参数数据格式和numpy数据格式的转换方法: (AISynergy/AISynergy-core/src/AISyncore/common/parameter.py) weights_to_parameters parameters_to_weights ************************** 测试100个(10,1000)的numpy.float32数据的压缩及解压缩总体时间大约需要1s start encode 1649987906.2903526 TopKCompressionProtocol.compress duration(s): 0.052579641342163086 weights_to_parameters serde duration(s): 0.664482593536377 finish encode, start decode 1649987906.9550595 TopKCompressionProtocol.decompress duration(s): 0.03636360168457031 parameters_to_weights serde duration(s): 0.23481202125549316 finish decode 1649987907.197273 encode dureation(s): 0.6647069454193115 decode duration(s): 0.24221348762512207 total duration(s): 0.9069204330444336 Done 瓶颈在压缩数据格式转换上 原因:目前topk实现方式:形成indices的位置信息后需要转换成1位的mask信息,原始的bool值是char数据类型,占8位,所以将8个bool值转为一个字节mask,这个转换是性能瓶颈。 解决思路:1. 添加多进行并行处理此转换函数或接入C++接口优化。 2. 在压缩比ratio极小(压缩后参数很少)的场景,直接传indices的int型位置信息,无需进行转换 ************************** 更多效率-精度实验有待测量

2 months ago

qinsh pushed to fed_middleware at PCL-Platform.Inte.../AISynergy

2 months ago

qinsh pushed to fed_middleware at PCL-Platform.Inte.../AISynergy

2 months ago

qinsh created pull request PCL-Platform.Inte.../AISynergy#1

fed_middlewar with mask protocol

2 months ago

qinsh pushed to fed_middleware at PCL-Platform.Inte.../AISynergy

3 months ago