天才一秒记住【热天中文网】地址:https://www.rtzw.net
“显存爆了。”
林允宁看着报错,没有任何犹豫,立刻新建了一个脚本文件,“既然一张卡装不下,那就切开了装。”
他在脑海中迅速构建了一个“模型并行ModelParallelism”
的架构。
这就像是一个巨大的拼图。
他把神经网络的前10层切给第一个显卡集群,中间10层切给第二个......
数据像流水线上的工件一样,在显卡之间通过PCI-E总线高速传输。
“这也行?”
旁边看着的程新竹目瞪口呆,“你把神经网络给肢解了?”
“只要神经连着,肢解了也能跑。”
林允宁手指翻飞,重写了底层的通信协议,“这叫模型并行。
以后模型会越来越大,单卡的显存肯定扛不住,这是唯一的出路。”
半小时后,代码修改完成。
"
--"
随着脚本运行,机柜里的显卡啸叫声瞬间拔高了一个八度,那是硅基芯片在极限负荷下的哀鸣。
这一次,没有显存报错。
数千个流处理器开始疯狂吞吐数据,机房里的温度直线上升,热浪滚滚而来。
“跑起来了!”
程新竹惊喜地喊道,擦了擦额角的汗珠,兴奋地脱掉了卫衣,露出了里面粉色的HelloKitty短袖T恤衫。
屏幕上的进度条开始移动。
Loss损失函数曲线开始生成。
但是,仅仅过了几分钟,林允宁的脸色就变得比刚才更难看。
那条代表模型误差的Loss曲线,并没有像预期那样下降,反而在震荡了几次后,直接冲上了天际。
紧接着,屏幕上跳出了一行行令人绝望的字符:
Loss:NaN
Gradient:NaN
NaNNotaNumber,非数。
这意味着计算溢出了。
梯度在几十层的反向传播中,要么消失成了零,要么爆炸成了无穷大。
"
ZETT......"
林允宁盯着那些NaN,感觉像是被嘲讽了一样。
这不是硬件问题,这是算法的数学缺陷。
随着网络层数的加深,每一层参数的微小变化,都会导致输出数据的分布发生剧烈偏移。
这就好比是在打靶。
本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!