今天,AI圈被一个惊天「翻车」刷屏了。
谷歌大脑的NLP奠基之作、提出Transformer架构的开山鼻祖级论文 《Attention Is All Your Need》 中的图,被网友扒出与代码并不一致。
论文地址:https://arxiv.org/abs/1706.03762
自2017年问世以来,Transformer已经成为AI领域的基石王者。就连大红大紫的ChatGPT真正的幕后大佬也是它。
2019年,谷歌还专门为它申请了专利。
归宗溯源,现在各类层出不穷的GPT(Generative Pre-trained Transformer),都起源于这篇17年的论文。
据Google Scholar,截止目前,这篇奠基之作已有7万多次的引用。
所以,ChatGPT的奠基石都不稳了?
作为「开山鼻祖」的论文,结构图竟是错的?
Lightning AI创始人、机器学习研究者Sebastian Raschka发现,这篇论文中Transformer的图是错误的。
图中被圈出的地方,LayerNorms是在注意力和全连接层之后。在残差块之间放置层归一化,会导致输出层附近参数的预期梯度很大。
而且,这也与代码不一致。
代码地址:https://github.com/tensorflow/tensor2tensor/commit/f5c9b17e617ea9179b7d84d36b1e8162cb369f25#diff-76e2b94ef16871bdbf46bf04dfe7f1477bafb884748f08197c9cf1b10a4dd78e
不过有网友指出,Noam shazeer在几周后对代码进行了纠正。
随后,Sebastian称,在论文Layer Normalization in the Transformer Architecture中,Pre-LN表现得更好,可以解决梯度问题。
这是很多或者大多数架构在实践中所采用的,但它可能导致表征崩溃。
如果层归一化在注意力和全连接层之前被放置在残差连接之中,就会实现更好的梯度。
Sebastian提出,虽然关于使用Post-LN或Pre-LN的讨论仍在进行中,但也有一篇新论文提议把二者结合起来。
论文地址:https://arxiv.org/abs/2304.14802
在这种双残差Tranformer中,表征崩溃和梯度消失的问题都得到了解决。
网友热议
针对论文中的疑点,有网友指出:中间不是已经有了PreLN和PostLN了吗?
Sebastian回答说,自己也觉得有点奇怪。或许2nd LN指的是最后一个输出层,而不是每个transformer块,但他对此也不确定。
有网友表示:「我们经常遇到与代码或结果不匹配的论文。大多数就是出于错误,但有时也会让人很奇怪。而这篇论文已经流传甚久了,为什么这种问题此前从没被人提出过,这真的很奇怪。」
Sebastian表示,公平地讲,最原始的代码是和图片一致的,但他们在2017年修改了代码版本,却没有更新图片。所以,这很令人困惑。
有网友表示,已经有论文在NormFormer中展示了一个不太复杂的架构,而他的团队最近也证实了他们的结果。而ResiDual论文没有在任何地方提到NormFormer,这让人很惊讶。
同时,评论区不断出现网友证实:Transformers中使用的LN,与CNN中使用的方式并不同。
所以,论文真的存在漏洞,还是乌龙事件?
让我们静观后续。