被忽略的起點?Karpathy揭秘最初的注意力論文被Transformer光芒掩蓋的故事
幾個小時前,著名 AI 研究者、OpenAI 創(chuàng)始成員之一 Andrej Karpathy 發(fā)布了一篇備受關(guān)注的長推文,其中分享了注意力機制背后一些或許少有人知的故事。
其中最值得注意的一個故事是真正首次提出注意力機制的論文其實是 Dzmitry Bahdanau、Kyunghyun Cho 和 Yoshua Bengio 的《Neural Machine Translation by Jointly Learning to Align and Translate》,這比《Attention is All you Need》還早 3 年,但很顯然,這篇論文并沒有收獲后者那般的關(guān)注。
Karpathy 長推文的不完整截圖
實際上,這個故事來自 Dzmitry Bahdanau 發(fā)給 Karpathy 的一封郵件。Bahdanau 是 ServiceNow Research 的研究科學家和研究負責人以及麥吉爾大學兼職教授。
他在發(fā)給 Karpathy 的這封郵件中分享了自己發(fā)現(xiàn)注意力機制的旅程以及 Attention 這個術(shù)語的由來——其實來自 Yoshua Bengio。此外,他也提到了 Alex Graves 的 NMT 論文和 Jason Weston 的記憶網(wǎng)絡(luò)(Memory Networks)論文各自獨立發(fā)現(xiàn)類似機制的故事。
Karpathy 推文發(fā)布后反響熱烈,短時間內(nèi)就已有超過 20 萬閱讀量,很多讀者都被這個注意力背后的故事吸引。
有讀者在看過這個故事后發(fā)出感嘆:2013-2017 年間的深度學習宇宙中有很多隱藏的英雄。
也有人分享自己對注意力機制的看法。
Hyperbolic Labs 創(chuàng)始人和 CTO Yuchen Jin 更是打趣說《Attention Is All You Need》的另一項重要貢獻是將后面的 AI 論文標題帶歪了:「吸引注意力的標題才是 All You Need」。
注意力機制的背后故事
下面我們就來看看 Karpathy 的推文究竟說了什么:
「attention」算子——也就是提出了 Transformer 的《Attention is All you Need》中的那個注意力,背后的(真實)開發(fā)和靈感故事。來自大約 2 年前與作者 @DBahdanau 的個人電子郵件通信,在此發(fā)布(經(jīng)許可)。此前幾天,網(wǎng)上流傳著一些關(guān)于其開發(fā)過程的假新聞。
Attention 是一種出色的(數(shù)據(jù)依賴型)加權(quán)平均運算。它是一種形式的全局池化、歸約、通信。它是一種從多個節(jié)點(token、圖塊等)聚合相關(guān)信息的方法。它富有表現(xiàn)力、功能強大、具有足夠的并行性,并且可以高效優(yōu)化。甚至多層感知器(MLP)實際上也可以大致重寫為數(shù)據(jù)獨立型權(quán)重上的 Attention(第一層權(quán)重是查詢,第二層權(quán)重是值,鍵就是輸入,softmax 變?yōu)樵丶?,刪除了規(guī)范化)。簡單來說,注意力非常棒,是神經(jīng)網(wǎng)絡(luò)架構(gòu)設(shè)計中的重大突破。
《Attention is All You Need》獲得的…… 呃…… 注意力差不多是 3 年前真正提出 Attention 的論文的 100 倍,即 Dzmitry Bahdanau、Kyunghyun Cho 和 Yoshua Bengio 的論文《Neural Machine Translation by Jointly Learning to Align and Translate》。在我看來,這一直有點出人意料。顧名思義,《Attention is All You Need》的核心貢獻是提出:Transformer 神經(jīng)網(wǎng)絡(luò)就是刪除注意力之外的一切,然后基本上就是將其堆疊在帶有 MLP(根據(jù)上述內(nèi)容,這也可以大致被視為注意力)的 ResNet 中。但我確實認為這篇 Transformer 論文有自己獨特的價值,因為它一次性添加了其它許多令人驚嘆的想法,包括位置編碼、縮放式注意力、多頭注意力、各向同性的簡單設(shè)計等。在我看來,直到今天(大約 7 年過去了),Transformer 基本上還保持著 2017 年的形式,只有相對較少的微小修改,也許除了使用更好的位置編碼方案(RoPE 等)。
總之,我先把完整郵件貼在下面,其中也暗示了這個運算一開始被稱為 Attention 的原因 —— 它源自對源句子中詞的關(guān)注(attending)并同時以順序方式輸出翻譯結(jié)果的詞,并且之后 Yoshua Bengio 在 RNNSearch 中將其引入成了一個術(shù)語(感謝上帝?:D)。同樣有趣的是,該設(shè)計的靈感來自人類的認知過程/策略,即按順序來回關(guān)注一些數(shù)據(jù)。最后,從發(fā)展進步的本質(zhì)來看,這個故事相當有趣——類似的想法和表述「早就已經(jīng)在空氣中回蕩」,特別要提到當時 Alex Graves(NMT)和 Jason Weston(記憶網(wǎng)絡(luò))的工作。
謝謝你的故事 @DBahdanau !
之后,Karpathy 還做了一些補充:ChatGPT 以及絕大多數(shù)現(xiàn)代 AI 模型都是巨型 Transformer?!杆?nbsp;LLM 的核心神奇之處來自于反復應用注意力,一遍又一遍地關(guān)注輸入的 token,以預測下一個 token 是什么?!?/span>
Dzmitry Bahdanau 的原始郵件內(nèi)容
Karpathy 也一并分享了 Dzmitry Bahdanau 的原始郵件內(nèi)容:
嗨,Andrej,
很高興告訴你 8 年前發(fā)生的故事!
我在雅各布大學 Herbert Jaeger 的指導下完成碩士課程的第一年后,作為實習生來到了 Yoshua 的實驗室。
我告訴 Yoshua 我很樂意做任何事情。Yoshua 讓我參與機器翻譯項目,與 Kyunghyun Cho 和團隊一起工作。我當時非常懷疑將詞序列塞入向量的想法。但我也非常想獲得博士學位。所以我擼起袖子,開始做我擅長的事情——編寫代碼、修復錯誤等等。在某個時候,我表現(xiàn)得很了解我做的東西了,Yoshua 邀請我攻讀博士學位(2014 年是一個很好的時機,表現(xiàn)得很了解就已經(jīng)足夠了——美好的舊時光?。N曳浅8吲d,我認為可以開始享受樂趣并發(fā)揮創(chuàng)造力了。
所以我開始思考如何避免編碼器和解碼器 RNN 之間的瓶頸。我的第一個想法是構(gòu)建一個帶有兩個「光標」的模型,一個在源序列中移動(由一個 BiRNN 編碼),另一個在目標序列中移動。使用動態(tài)規(guī)劃(dynamic programming)可以將光標軌跡邊緣化。KyungHyun Cho 認為這相當于 Alex Graves 的 RNN Transducer 模型。之后,我可能還讀了 Graves 的手寫識別論文。不過,這種方法看起來不適合機器翻譯。
在我實習的剩余 5 周內(nèi),上述使用光標的方法很難實現(xiàn)。所以我嘗試了一種更簡單的方法——兩個光標同時同步移動(實際上是硬編碼的對角注意力)。這種方法有點效果,但方法不夠優(yōu)雅。
所以有一天,我想到如果能讓解碼器 RNN 學會在源序列中搜索放置光標的位置就好了。這多少受到我中學時學習英語時的翻譯練習的啟發(fā)。翻譯時,你的目光會在源序列和目標序列之間來回移動。我將這種軟性搜索表示為 softmax,然后對 BiRNN 狀態(tài)進行加權(quán)平均。它的效果很好,從第一次嘗試,到后來振奮人心。我將這個架構(gòu)稱為 RNNSearch,我們急于發(fā)表一篇 arXiv 論文,因為我們知道谷歌的 Ilya 和同事領(lǐng)先于我們,他們有巨大的 8 GPU LSTM 模型(而 RNN Search 仍在 1 GPU 上運行)。
后來發(fā)現(xiàn),這個名字并不好。直到最后幾次過論文時,Yoshua 才將更好的名字(attention)添加到論文結(jié)論中。
一個半月后,我們看到了 Alex Graves 的 NMT 論文。這確實是完全相同的想法,盡管他提出它的動機完全不同。在我們的情況下,是因為需要而產(chǎn)生了這個發(fā)明。在他的情況下,我想應該是將神經(jīng)和符號 AI 連接起來的雄心吧?Jason Weston 及其同事的記憶網(wǎng)絡(luò)論文也采用了類似的機制。
我沒有遠見地想到注意力可以在較低的層級使用,以作為表征學習的核心運算。但是當我看到 Transformer 論文時,我立即向?qū)嶒炇彝聰嘌?RNN 已死。
回到你最初的問題:在蒙特利爾 Yoshua 的實驗室發(fā)明的「可微分和數(shù)據(jù)依賴加權(quán)平均」獨立于神經(jīng)圖靈機、記憶網(wǎng)絡(luò)以及 90 年代(甚至 70 年代)的一些相關(guān)認知科學論文。這是 Yoshua 領(lǐng)導推動實驗室進行雄心勃勃的研究的結(jié)果,KyungHyun Cho 在運行一個大型機器翻譯項目方面擁有高超的技能,該項目由初級博士生和實習生組成;最后,我自己的創(chuàng)造力和編碼技能在多年的競爭性編程中得到了磨練。但我認為這個想法很快就會被發(fā)現(xiàn)。就算我、Alex Graves 和這個故事中的其他角色當時沒有研究深度學習也是如此,注意力就是深度學習中實現(xiàn)靈活空間連接的自然方式。等待 GPU 足夠快,讓人們有動力認真對待深度學習研究,這是一個顯而易見的想法。自從我意識到這一點以來,我在 AI 領(lǐng)域的抱負就是啟動像機器翻譯項目這樣的出色的應用項目。相比于那些研究所謂的「真正」AI 的花哨理論,良好的研發(fā)工作可以為基礎(chǔ)技術(shù)的進步做出更大貢獻。
就這些!我非常想更多了解關(guān)于您的教育 AI 項目的信息(我從 Harm de Vries 那里聽到了一些傳言;))。
祝好,
Dima
相關(guān)論文
最后,下面梳理了前面提及的相關(guān)論文,以幫助感興趣的讀者做進一步的技術(shù)探索。
Neural Machine Translation by Jointly Learning to Align and Translate,未得到應有關(guān)注的注意力論文
作者:Dzmitry Bahdanau, Kyunghyun Cho, Yoshua Bengio
鏈接:https://arxiv.org/abs/1409.0473
Attention is All You Need,著名的 Transformer 論文
作者:Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, Illia Polosukhin
鏈接:https://arxiv.org/abs/1706.03762
Neural Turing Machines,其中幾乎同時提出了類似的 soft pooling 運算
作者:Alex Graves, Greg Wayne, Ivo Danihelka
鏈接:https://arxiv.org/abs/1410.5401
Generating Sequences With Recurrent Neural Networks,研究了使用 LTSM 循環(huán)神經(jīng)網(wǎng)絡(luò)生成具有長程結(jié)構(gòu)的復雜序列,很有開創(chuàng)性
作者:Alex Graves
鏈接:https://arxiv.org/abs/1308.0850
Memory Networks,記憶網(wǎng)絡(luò)
作者:Jason Weston, Sumit Chopra, Antoine Bordes
鏈接:https://arxiv.org/abs/1410.3916
Sequence to Sequence Learning with Neural Networks,文中提到的當時在谷歌的 Ilya 等人的論文
作者:Ilya Sutskever, Oriol Vinyals, Quoc V. Le
鏈接:https://arxiv.org/abs/1409.3215