林允宁靠在机柜旁,随口问道。
“并没有。”
克莱尔耸耸肩,“杰夫?迪恩他们也是用堆机器的笨办法,或者把模型切得碎碎的。虽然有些传闻说他们在搞专用的ASIC芯片,但那还在PPT阶段。”
“这也是我想做的。”
林允宁眼神一凝,指了指那些显卡,“以后有了钱,我们会研发自己的芯片,专门为矩阵乘法设计的处理单元。但那是以后。现在,我们得带着脚镣跳舞。”
“怎么跳?”
克莱尔挑眉,“把序列截断?只读摘要?或者用你之前在ICML上提出的那个线性注意力模型?”
林允宁看了看克莱尔,没想到她居然对自己的工作这么了解。
但他摇了摇头:
“不。之前的线性注意力LinearAttention虽然快,但它采用了核函数近似,丢失了太多细节。对于我们要做的‘自然语言阅读助手来说,精度不够。”
林允宁想了想,走到白板前。
拿起笔,在上面画了一个巨大的方格矩阵。
“克莱尔,从语言学的角度想一想。当你读一篇论文时,你的注意力是均匀分布的吗?”
“当然不是。”
克莱尔立刻跟上了思路,她走到白板前,抢过林允宁手里的笔,在矩阵对角线上画了一条粗线,“大部分时候,词只和它前后的词有关。比如‘卷积神经网络,这三个词是紧密绑定的。这是局部性Locality。”
“没错。”
林允宁点头,然后伸手在矩阵的空白处随机点了几个点,“但还有一种情况。比如文章开头的‘定理1,和文章结尾的‘证明完毕,它们距离很远,但逻辑上是强相关的。”
“这是长程依赖。”
克莱尔眼睛亮了,“所以。。。。。。我们不需要计算整个NXN的矩阵?”
“我们只需要计算这条对角线”,再加上这几个‘随机点’。
林允宁在白板上写下了一个新的复杂度公式:
Complexity:ON^2->ONlogN
“我们保留局部的滑动窗口,再引入少量的全局Token作为信息高速公路。剩下的90%空白区域,直接置零,不参与计算。”
林允宁看着克莱尔,微笑道:
“我们就叫它。。。。。。稀疏注意力SparseAttention吧。
“既然显存装不下整个世界,那我们就只保留世界的主干。
“这样,哪怕是1。5GB的显卡,也能吞下整篇论文。”
克莱尔盯着白板上的图示,眼神从审视变成了兴奋。
作为普林斯顿的计算机博士,她太清楚这一刀“剪枝”切得有多精准了。
这不仅是工程上的妥协,更是一种对语言结构的深刻洞察。
"1560。。。。。。"
克莱尔把玩着手里的马克笔,嘴角勾起一抹极客特有的狂热笑容,“这就像是在拥堵的高速公路上,直接给数据开了个虫洞。
“Boss,我现在承认,你的数学直觉确实比谷歌那帮老头子厉害多了。
“给我两天时间,我把CUDA内核重写一遍,让它支持这种稀疏矩阵乘法。”