圖與代碼不一致,Transformer論文被發(fā)現(xiàn)錯(cuò)誤,網(wǎng)友:早該被指出1000次
論文中的圖有時(shí)會(huì)出現(xiàn)與實(shí)現(xiàn)代碼不對(duì)應(yīng)的情況,這會(huì)讓讀者頭大,不知是有意還是無(wú)意為之。這次,沒(méi)想到大名鼎鼎的 Transformer 論文也「翻車(chē)」了。
2017 年,谷歌大腦團(tuán)隊(duì)在其論文《Attention Is All You Need》中創(chuàng)造性的提出 Transformer 這一架構(gòu),自此這一研究一路開(kāi)掛,成為當(dāng)今 NLP 領(lǐng)域最受歡迎的模型之一,被廣泛應(yīng)用于各種語(yǔ)言任務(wù),并取得了許多 SOTA 結(jié)果。不僅如此,在 NLP 領(lǐng)域一路領(lǐng)先的 Transformer,迅速席卷計(jì)算機(jī)視覺(jué)(CV)、語(yǔ)音識(shí)別等領(lǐng)域,在圖像分類(lèi)、目標(biāo)檢測(cè)、語(yǔ)音識(shí)別等任務(wù)上取得良好的效果。論文地址:https://arxiv.org/pdf/1706.03762.pdf從推出至今,Transformer 已經(jīng)成為眾多模型的核心模塊,比如大家熟悉的 BERT、T5 等都有 Transformer 的身影。就連近段時(shí)間爆火的 ChatGPT 也依賴 Transformer,而后者早已被谷歌申請(qǐng)了專利。圖源:https://patentimages.storage.googleapis.com/05/e8/f1/cd8eed389b7687/US10452978.pdf此外 OpenAI 發(fā)布的系列模型 GPT(Generative Pre-trained Transformer),名字中帶有 Transformer,可見(jiàn) Transformer 是 GPT 系列模型的核心。與此同時(shí),最近 OpenAI 聯(lián)合創(chuàng)始人 Ilya Stutskever 在談到 Transformer 時(shí)表示,當(dāng) Transformer 剛發(fā)布之初,實(shí)際上是論文放出來(lái)的第二天,他們就迫不及待的將以前的研究切換到 Transformer ,后續(xù)才有了 GPT。可見(jiàn) Transformer 的重要性不言而喻。6 年時(shí)間,基于 Transformer 構(gòu)建的模型不斷發(fā)展壯大。然而現(xiàn)在,有人發(fā)現(xiàn)了 Transformer 原始論文中的一處錯(cuò)誤。Transformer 架構(gòu)圖與代碼「不一致」發(fā)現(xiàn)錯(cuò)誤的是一位知名機(jī)器學(xué)習(xí)與 AI 研究者、初創(chuàng)公司 Lightning AI 的首席 AI 教育家 Sebastian Raschka。他指出,原始 Transformer 論文中的架構(gòu)圖有誤,將層歸一化(LN)放置在了殘差塊之間,而這與代碼不一致。Transformer 架構(gòu)圖如下左,圖右為 Post-LN Transformer 層(出自論文《On Layer Normalization in the Transformer Architecture》[1])。不一致的代碼部分如下,其中 82 行寫(xiě)了執(zhí)行順序「layer_postprocess_sequence="dan"」,表示后處理依次執(zhí)行 dropout、residual_add 和 layer_norm。如果上圖左中的 add&norm 理解為:add 在 norm 上面,即先 norm 再 add,那確實(shí)代碼和圖不一致。代碼地址:https://github.com/tensorflow/tensor2tensor/commit/f5c9b17e617ea9179b7d84d36b1e8162cb369f25#diff-76e2b94ef16871bdbf46bf04dfe7f1477bafb884748f08197c9cf1b10a4dd78e…接下來(lái),Sebastian 又表示,論文《On Layer Normalization in the Transformer Architecture》認(rèn)為 Pre-LN 表現(xiàn)更好,能夠解決梯度問(wèn)題。這是很多或者大多數(shù)架構(gòu)在實(shí)踐中所采用的,但它可能導(dǎo)致表示崩潰。當(dāng)層歸一化在注意力和全連接層之前被放置于殘差連接之中時(shí),能夠?qū)崿F(xiàn)更好的梯度。因此,雖然關(guān)于 Post-LN 或 Pre-LN 的爭(zhēng)論仍在繼續(xù),但另一篇論文結(jié)合了這兩點(diǎn),即《ResiDual: Transformer with Dual Residual Connections》[2]。對(duì)于 Sebastian 的這一發(fā)現(xiàn),有人認(rèn)為,我們經(jīng)常會(huì)遇到與代碼或結(jié)果不一致的論文。大多數(shù)是無(wú)心之過(guò),但有時(shí)令人感到奇怪。考慮到 Transformer 論文的流行程度,這個(gè)不一致問(wèn)題早就應(yīng)該被提及 1000 次。Sebastian 回答稱,公平地講,「最最原始」的代碼確實(shí)與架構(gòu)圖一致,但 2017 年提交的代碼版本進(jìn)行了修改,同時(shí)沒(méi)有更新架構(gòu)圖。所以,這實(shí)在令人困惑。正如一位網(wǎng)友所說(shuō),「讀代碼最糟糕的是,你會(huì)經(jīng)常發(fā)現(xiàn)這樣的小變化,而你不知道是有意還是無(wú)意。你甚至無(wú)法測(cè)試它,因?yàn)槟銢](méi)有足夠的算力來(lái)訓(xùn)練模型?!?/span>不知谷歌之后會(huì)更新代碼還是架構(gòu)圖,我們拭目以待!參考鏈接:論文[1]:https://arxiv.org/pdf/2002.04745.pdf論文[2]https://arxiv.org/pdf/2304.14802.pdf
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。