数据并行:夜班程序员看见的拆分时代

老周换完工服往机房走的时候,门禁系统跳出来的时间是22:17。郊区的风裹着稻田的味道往衣领里钻,这是杭州郊区智算中心少有的舒服时刻。

凌晨三点的显卡风扇声

机房里的温度永远恒定在22度,冷得像刚从冰箱拿出来的可乐。老周隔着厚重的隔音门都能听见里面的轰鸣——那是几千张AI加速卡同时跑训练的声音,每一片风扇都在对着全世界吐热气。

他靠在运维室的椅子上刷了半局短视频,系统突然弹出红色告警,训练又崩了。

就是这种事。调千亿参数大模型这两年,他见得太多了。前几年做行业小模型,一张卡就能塞下所有数据,顺着计算序列一步一步算,像熬一锅老汤,火开着慢慢等就行。现在千亿参数的大模型,就算把显存堆到顶,也塞不下哪怕一轮训练的所有数据。

怎么办?

拆。

数据并行,就是这群程序员天天挂在嘴边的解法。

夜间智算中心服务器机架灯光
夜间智算中心服务器机架灯光

老周对着监控屏幕揉了揉发红的眼睛,走到机房外的吸烟区点了根烟,想起三年前第一次跟着导师学分布式训练的时候,导师拍着桌子说,你们这代人能把大模型做起来,全靠数据并行给的底气。说实话,那时候他还没太懂。不就是把数据劈成好几块,扔给不同的卡同时算吗?能有什么难的?

真踩了坑才知道,坑比你头顶的发缝还宽。梯度要同步啊,节点要通信啊,万一某一块卡慢了,整个集群都要停在那儿等它。就像十个人搬砖,九个都搬完摞好了,你还在跟那块陷在泥里的砖较劲,全工位都得等你下班锁门。

把数据拆成碎片的魔法

很多人听了“并行”两个字,就觉得是多么玄乎的黑科技。说白了,就是让大家一起干活,别排着队挨个等。原来的串行计算是一个人从第一道菜做到最后一道菜,现在数据并行是一百个厨师每个人做一道菜,凑起来就是满汉全席。

技术逻辑说破了很简单:把训练数据集按批次拆分,每个计算设备各拿一块,各自算自己的梯度,算完了再把所有梯度聚合起来更新模型参数。每一轮都这么走,训练速度就硬生生拉上去了。你想啊,原来一百个小时才能跑完一轮训练,现在十台机器一起跑,十个小时就完事,这不香吗?

数据并行分布式训练任务分配示意图
数据并行分布式训练任务分配示意图

不过话说回来,天下没有免费的午餐。拆分越多,需要同步的信息就越多,通信开销就像滚雪球一样往上长。老周上个月调一个多节点的任务,八张卡跑的时候,加速比能到七倍,扩到六十四张卡,加速比才不到二十,一大半性能都耗在卡跟卡之间传数据上了。

那时候他连续熬了三个夜班,改了三次划分策略,把同步通信次数从每轮一次砍到每四轮一次,才把性能拉回合格线。走出机房的时候,太阳已经晒屁股了,他在门口的沙县小吃点了一笼蒸饺,吃着吃着就趴在桌子上睡着了。老板也没叫他,让他睡了四十分钟。

老周说那四十分钟是他一个月里最踏实的四十分钟,没有告警,没有同步,没有节点掉链子,就只是睡觉。

我们都是被并行的个体

我们都是被并行的个体
我们都是被并行的个体

老周今年三十八,上有老下有小,白天要送孩子上学,晚上要值夜班,周末还要带老人去医院做定期检查。那天蹲在吸烟区跟我聊天,他突然说,你发现没有啊,现在咱们的日子,不就是活生生的数据并行吗?

原来咱们父辈,是串行过日子:二十岁读书,三十岁工作,五十岁退休带孩子,一件事完了再做下一件,一步接一步走得稳稳的。现在呢?你早上开着会回微信,中午陪客户改方案,晚上陪孩子上网课,同时要处理七八件事,不就是把自己的时间和精力拆成了好多块,同时跑好多“任务”吗?

太像了对吧?机房里的卡要同步梯度,我们呢?要同步日程,同步孩子的作业,同步老人的体检报告,哪个任务块慢了,整个生活的节奏都乱了。原来数据并行提效率,是为了帮人类省时间。现在我们把自己的生活并行化,省下来的时间去哪了?都填进更多的任务里了。你多出来的两个小时空闲,不会用来躺着,只会再接一个活,再刷一堆信息流,再攒一堆新的待办。

老周说他上个月偷了一天懒,把手机调了飞行模式,开车去江边坐了一整天,什么事都没干。那一天他过得特别舒服,像回到了十几年前还在学校读书的时候,一天只做一件事,背单词就是背单词,打球就是打球,不用拆分自己,不用同步进度,不用等别人也不用被别人等。

天快亮的时候,老周把崩掉的训练重新跑了起来。这次数据划分改了新的差异化策略,集群跑的很稳,监控屏上的进度条一跳一跳走得很顺,连远程机房的风扇声都比刚才均匀了。他拎着包走出智算中心的大门,朝阳把远处的稻田染成了金色,远处的高速公路上已经有早高峰的车在跑。

每个人都在往前赶,每个人都在同时跑着好几个任务。拆分带来了速度,速度带来了更多可能。可偶尔停下来想想,那些被我们拆成碎片的自己,什么时候才能安安稳稳拼回完整的一块?

没人说得准。对吧?

作者|大讲堂

排版|大讲堂

审核|安然

免责声明:市场有风险,选择需谨慎!此文仅供参考,不作买卖依据。如有侵权请联系删除。
文章名称:数据并行:夜班程序员看见的拆分时代
文章链接:https://m.lfdjt.com/info_23_23526.html