WwZzz / easyFL

An experimental platform for federated learning.
Apache License 2.0
543 stars 92 forks source link

如何采用模型压缩 #43

Open Gitreceiver opened 1 year ago

Gitreceiver commented 1 year ago

希望对梯度进行量化、稀疏应该对哪部分进行处理呢?

WwZzz commented 1 year ago

在Client.unpack()里记录一份全局模型的副本self.received_global_model = copy.deepcopy(pakcage['model']),在Client.pack中计算delta_model = model-self.received_global_model,然后对delta_model的参数进行额外的稀疏和量化,这种方式需要改动的地方较少

Gitreceiver commented 1 year ago

那么如果我使用量化方法,直接的做法是客户端将model转换为tensor,再将tensor量化,传输给服务端,服务端反量化,将tensor转换为model,进行模型聚合。 我考虑的问题是,tensor和model的转化函数中的计算开销是多大,还有,有没有更好的量化方案。