Transformer開山論文驚天「翻車」?圖與代碼不一致,神秘Bug看傻了
今天,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中使用的方式并不同。
所以,論文真的存在漏洞,還是烏龍事件?
讓我們靜觀后續。