Q去和别人的K进行矩阵相乘。这完全是一个可以用GPU暴力加速的并行矩阵运算。”
安德烈根本没等顾屿把话说完。他直接抄起一支红色的马克笔,转身扑向了背后的白板。
笔尖在白板上疯狂摩擦,发出一连串刺耳的吱吱声。一串串极其复杂的矩阵变换公式被他写了出来。
“对。对。矩阵乘法。Q的转置乘以K。太优美了。这就解决了并行的计算瓶颈。”
安德烈一边写一边用俄语大声感叹。
但他写着写着,动作突然停住了。
“等等,有个数学上的漏洞。”安德烈盯着白板上的一个点积运算式,
“如果序列变长,维度变大。Q和K的点积结果会变得极其庞大。这丢进Softmax函数里,会导致梯度直接消失。模型根本无法训练。”
任少卿也看出了这个问题,脸色变得有些凝重。
这就是新架构在理论推导时最容易死掉的环节。
顾屿坐在北京的办公室里,极其随意地掸了掸袖口。
“那就给它套个缰绳。”顾屿语气平缓,循循善诱,
“安德烈,既然是向量维度变大导致点积结果的方差变大,作为一个数学家,你通常用什么工具把它的分布重新拉回标准差为1的平滑状态?”
白板前的安德烈猛地一僵。
他脑子里灵光乍现,几乎是咆哮着用俄语喊了出来:
“除以方差的平方根!对!除以维度的平方根!”
他赶紧用袖子擦掉一半的算式,重新把那个代表缩放因子的分母加了进去。
他快速心算了几十秒,然后扔掉马克笔,转头看着屏幕里的顾屿,眼神里全是难以置信的震撼。
“平滑了!数据分布完美平滑了!”安德烈双眼通红地盯着屏幕,
“顾,你简直是个魔鬼。”
顾屿当然不会说这是前世无数个秃头算法工程师在论文里写明的现成答案。
他只是耸了耸肩,保持着那份高深莫测。
“所以,RNN可以扔进历史的垃圾堆了吗?”顾屿看向楼天城。
楼天城这时候已经完全从刚才的萎靡中复活了。
“绝对可以。但这套玩意的计算复杂度是跟着序列长度的平方增长的。序列越长,显存占用越恐怖。”
楼天
本章未完,请点击下一页继续阅读!