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