Transformer開山論文驚天「翻車」?圖與代碼不一致,神秘Bug看傻了
今天,AI圈被一個驚天「翻車」刷屏了。
谷歌大腦的NLP奠基之作、提出Transformer架構(gòu)的開山鼻祖級論文 《Attention Is All Your Need》 中的圖,被網(wǎng)友扒出與代碼并不一致。
論文地址:https://arxiv.org/abs/1706.03762
自2017年問世以來,Transformer已經(jīng)成為AI領(lǐng)域的基石王者。就連大紅大紫的ChatGPT真正的幕后大佬也是它。
2019年,谷歌還專門為它申請了專利。
歸宗溯源,現(xiàn)在各類層出不窮的GPT(Generative Pre-trained Transformer),都起源于這篇17年的論文。
據(jù)Google Scholar,截止目前,這篇奠基之作已有7萬多次的引用。
所以,ChatGPT的奠基石都不穩(wěn)了?
作為「開山鼻祖」的論文,結(jié)構(gòu)圖竟是錯的?
Lightning AI創(chuàng)始人、機器學(xué)習(xí)研究者Sebastian Raschka發(fā)現(xiàn),這篇論文中Transformer的圖是錯誤的。
圖中被圈出的地方,LayerNorms是在注意力和全連接層之后。在殘差塊之間放置層歸一化,會導(dǎo)致輸出層附近參數(shù)的預(yù)期梯度很大。
而且,這也與代碼不一致。
代碼地址:https://github.com/tensorflow/tensor2tensor/commit/f5c9b17e617ea9179b7d84d36b1e8162cb369f25#diff-76e2b94ef16871bdbf46bf04dfe7f1477bafb884748f08197c9cf1b10a4dd78e
不過有網(wǎng)友指出,Noam shazeer在幾周后對代碼進(jìn)行了糾正。
隨后,Sebastian稱,在論文Layer Normalization in the Transformer Architecture中,Pre-LN表現(xiàn)得更好,可以解決梯度問題。
這是很多或者大多數(shù)架構(gòu)在實踐中所采用的,但它可能導(dǎo)致表征崩潰。
如果層歸一化在注意力和全連接層之前被放置在殘差連接之中,就會實現(xiàn)更好的梯度。
Sebastian提出,雖然關(guān)于使用Post-LN或Pre-LN的討論仍在進(jìn)行中,但也有一篇新論文提議把二者結(jié)合起來。
論文地址:https://arxiv.org/abs/2304.14802
在這種雙殘差Tranformer中,表征崩潰和梯度消失的問題都得到了解決。
網(wǎng)友熱議
針對論文中的疑點,有網(wǎng)友指出:中間不是已經(jīng)有了PreLN和PostLN了嗎?
Sebastian回答說,自己也覺得有點奇怪。或許2nd LN指的是最后一個輸出層,而不是每個transformer塊,但他對此也不確定。
有網(wǎng)友表示:「我們經(jīng)常遇到與代碼或結(jié)果不匹配的論文。大多數(shù)就是出于錯誤,但有時也會讓人很奇怪。而這篇論文已經(jīng)流傳甚久了,為什么這種問題此前從沒被人提出過,這真的很奇怪?!?/span>
Sebastian表示,公平地講,最原始的代碼是和圖片一致的,但他們在2017年修改了代碼版本,卻沒有更新圖片。所以,這很令人困惑。
有網(wǎng)友表示,已經(jīng)有論文在NormFormer中展示了一個不太復(fù)雜的架構(gòu),而他的團(tuán)隊最近也證實了他們的結(jié)果。而ResiDual論文沒有在任何地方提到NormFormer,這讓人很驚訝。
同時,評論區(qū)不斷出現(xiàn)網(wǎng)友證實:Transformers中使用的LN,與CNN中使用的方式并不同。
所以,論文真的存在漏洞,還是烏龍事件?
讓我們靜觀后續(xù)。