首頁  >  文章  >  科技週邊  >  圖與程式碼不一致,Transformer論文被發現錯誤,網友:早該被指出1000次

圖與程式碼不一致,Transformer論文被發現錯誤,網友:早該被指出1000次

WBOY
WBOY轉載
2023-05-25 15:01:06801瀏覽

2017 年,Google大腦團隊在其論文《Attention Is All You Need》中創造性的提出Transformer 這一架構,自此這一研究一路開掛,成為當今NLP 領域最受歡迎的模型之一,被廣泛應用於各種語言任務,並取得了許多SOTA 結果。

不僅如此,在NLP 領域一路領先的Transformer,迅速席捲電腦視覺(CV)、語音辨識等領域,在影像分類、目標偵測、語音辨識等任務上取得良好的效果。

圖與程式碼不一致,Transformer論文被發現錯誤,網友:早該被指出1000次

#論文網址:https://arxiv.org/pdf/1706.03762 .pdf

從推出至今,Transformer 已成為眾多模型的核心模組,例如大家熟悉的BERT、T5 等都有Transformer 的身影。就連近段時間爆紅的 ChatGPT 也依賴 Transformer,而後者早已被Google申請了專利。

圖與程式碼不一致,Transformer論文被發現錯誤,網友:早該被指出1000次

#圖表來源:https://patentimages.storage.googleapis.com /05/e8/f1/cd8eed389b7687/US10452978.pdf

此外OpenAI 發布的系列模型GPT(Generative Pre-trained Transformer),名字中帶有Transformer,可見Transformer是GPT 系列模型的核心。

與此同時,最近OpenAI 聯合創始人Ilya Stutskever 在談到Transformer 時表示,當Transformer 剛發布之初,實際上是論文放出來的第二天,他們就迫不及待的將先前的研究切換到Transformer ,後續有了GPT。可見 Transformer 的重要性不言而喻。

6 年時間,基於 Transformer 建構的模型不斷發展壯大。然而現在,有人發現了 Transformer 原始論文中的錯誤。

Transformer 架構圖與程式碼「不一致」

發現錯誤的是一位知名機器學習與AI 研究者、新創公司Lightning AI 的首席AI 教育家Sebastian Raschka。他指出,原始 Transformer 論文中的架構圖有誤,將層歸一化(LN)放置在了殘差塊之間,而這與程式碼不一致。

圖與程式碼不一致,Transformer論文被發現錯誤,網友:早該被指出1000次

#Transformer 架構圖如下左,圖右為Post-LN Transformer 層(出自論文《On Layer Normalization in the Transformer Architecture》[1])。

不一致的程式碼部分如下,其中 82 行寫了執行順序「layer_postprocess_sequence="dan"」,表示後處理依序執行 dropout、residual_add 和 layer_norm。如果上圖左中的 add&norm 理解為:add 在 norm 上面,即先 norm 再 add,那確實代碼和圖不一致。

程式碼位址:

#https://github.com/tensorflow/tensor2tensor/commit/ f5c9b17e617ea9179b7d84d36b1e8162cb369f25#diff-76e2b94ef16871bdbf46bf04dfe7f1477bafb884748f08197c#8 ,論文《On Layer Normalization in the Transformer Architecture》認為Pre-LN 表現較好,能夠解決梯度問題。這是很多或大多數架構在實踐中所採用的,但它可能導致表示崩潰。

當層歸一化在註意力和全連接層之前被放置在殘差連接之中時,能夠實現更好的梯度。

圖與程式碼不一致,Transformer論文被發現錯誤,網友:早該被指出1000次

因此,雖然關於Post-LN 或Pre-LN 的爭論仍在繼續,但另一篇論文結合了這兩點,即《ResiDual: Transformer with Dual Residual Connections》[2]。

對於 Sebastian 的這項發現,有人認為,我們經常會遇到與程式碼或結果不一致的論文。大多數是無心之過,但有時令人感到奇怪。考慮到 Transformer 論文的流行程度,這個不一致問題早就該被提及 1000 次。

Sebastian 回答稱,公平地講,「最最原始」的程式碼確實與架構圖一致,但 2017 年提交的程式碼版本進行了修改,同時沒有更新架構圖。所以,這實在令人困惑。

圖與程式碼不一致,Transformer論文被發現錯誤,網友:早該被指出1000次

#正如一位網友所說,「讀程式碼最糟糕的是,你會經常發現這樣的小變化,而你不知道是有意還是無意。你甚至無法測試它,因為你沒有足夠的算力來訓練模型。」

##不知谷歌之後會更新程式碼還是架構圖,我們拭目以待!

以上是圖與程式碼不一致,Transformer論文被發現錯誤,網友:早該被指出1000次的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除