“实践是检验真理的唯一标准”,联邦学习谈概念的文章已经很多,今天我们来从实践中聊几个实事求是的问题。
联邦学习领域已有众多论文支撑,但在实践中,因为涉及到多学科的交叉,真正能落地应用的平台,少之又少。所以你可以看到已经有三四十家做联邦学习的公司,但是仅有七八家是能真正亮相产品。这应该是一个比较正常的现象,因为联邦学习工程落地所面临的挑战远远比理论复杂。
1)断点训练
断点训练,是指联邦学习过程中“训练可暂停”,如果发生多方之间的网络异常造成超时,待网络恢复正常后,联邦学习模型可从上次的断点开始继续训练,而避免重新开始。
这在我们的客户实际环境中非常重要,因为多方机构之间进行联合建模,无法预见和避免网络之间连接不稳定,一旦发生断网,普通的time out机制容易让学习过程超时或者异常退出。可能各家联邦学习平台的产品大多进行了网络不稳定的报警,这种处理是比较简单粗糙的,做一个心跳机制,不间断地去测试多方之间的网络情况,并发出日志报警。但是这种简单的处理方式只能帮助定位联邦学习建模过程出现的异常。试想,如果客户花了2小时眼看模型马上训练出来,进度条到99%的时候,突然time out了,是不是想死的心都有?这在用户体验上是极其不友好的。
下面我给出一种基于监控回调的处理方案:
“基于zookeeper的监控回调”断点训练方案