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