林渊这是在照顾庾明轩的感受。像他这种习惯了风月场所和商业谈判的花花公子,让他在实验室里干坐几个小时听代码架构,估计能把他憋死,到时候走又不好意思走,还不如提前把他支开。
庾明轩一听笑着说:“行,那你们聊,林总我先撤了,车子我给你留在这。”
等庾明轩离开后,吴恩达笑着带林渊穿过走廊,来到了他的课题组机房。
机房的白板上画满了复杂的网络拓扑图。吴恩达指着白板,开始阐述问题:“林渊,你看。我们目前在尝试用多台机器并行处理庞大的神经网络参数。但在高并发状态下,所有的节点(WOrker)都要频繁地跟中央参数服务器(Parameter Server)进行数据同步。节点一多,网络带宽瞬间就被挤爆了,中央服务器成了绝对的瓶颈。这个问题,你怎么看?”
林渊盯着白板,脑海里迅速翻阅起他从 2035 年带回来的记忆。在那个年代,这种早期的分布式训练瓶颈早就被一种叫做“环形同步”(Ring All-RedUCe)的底层算法彻底解决了。
林渊拿起马克笔,在白板上画了一个圆圈,开口道:“吴教授,为什么一定要有一个中央服务器?如果把所有节点连成一个逻辑上的环形网络呢?”
吴恩达皱了皱眉:“环形?节点 1 传给节点 2,节点 2 传给 3?但这样一来,数据跑完整个环的延迟太高了,根本无法满足实时并发的需求。”
“不,数据不是整体传输的。”林渊在环上切了几条线,“我们把庞大的参数数组切分成和节点数量相等的碎块。在第一步(SCatter-RedUCe)里,每个节点只负责把自己计算的那一小块数据传给下一个节点,同时接收上一个节点传来的另一小块数据。”
吴恩达推了推眼镜,目光瞬间亮了起来:“同时收发不同的数据块?这样就不会出现单点拥堵了。”
林渊继续说道:“对,因为所有节点的上下行带宽都在被满负荷利用。无论集群里有 10 台机器还是 100 台机器,单次同步的通信总量都是恒定的。这就是去中心化。”
吴恩达立刻转身,拿起笔在黑板上快速写下了一串公式。他敏锐的数学直觉瞬间将林渊的设想具象化:“如果总数据量是 K,节点数是 N。传统的中央服务器带宽瓶颈是 O(N),但按照你这个环形切块的设想,每个节点在每一步只需要传输 \fraC{K}{N} 的数据。总的传输时间 T
本章未完,请点击下一页继续阅读!