Split Learning(分裂学习)

Split Learning被提出的场景是:多个常规算力节点(Alices)+一个超级算力节点(Bob)。核心思想是各方在不泄露原始数据的情况下,共同训练一个完整的模型,同时将模型中计算负载较高的部分安排在Bob节点。

1.经典架构

普通型

image-20230516165706838

image-20230516165845635

普通型架构中只有一个Client节点(Alice)和一个Server节点(Bob)。Client根据其原始数据前向计算半模型得到cut layer(绿色框条)的前向值,Client随后将此值发送至Server侧,Server接收后完成剩余的前向计算;Server根据前向结果与label计算Server节点半模型的梯度,然后通过Server的cut layer把梯度反传给Client节点,最后Client完成它的半模型的BP梯度计算。注意:Server节点的label有可能是Client节点share给它的。

内容参考于https://zhuanlan.zhihu.com/p/541880009