Transformer稱霸的原因找到了?OpenAI前核心員工揭開注意力頭協同工作機理

 2022-04-30 14:17:14.0

在過去的兩年裏,人工智慧在自然語言處理領域的突破達到了驚人的水平。很多重要的突破都是基於谷歌在 2017 年提出的 Transformer 架構。

但在模型之下,我們仍然不知道 Transformer 對其處理的單詞做了什麼。從普遍的理解來看,它們能夠以某種方式關注多個單詞,從而可以立即進行「全域性」分析。但這究竟是如何做到的,或者這種說法是否是理解 Transformer 的正確方式,都還不清楚。我們知道「成分」,但卻不瞭解「配方」。

現在,Anthropic 公司的研究人員進行的兩項研究試圖從根本上探究 Transformer 在處理和生成文字時會做什麼。Anthropic 公司成立於 2021 年 5 月,團隊主要由一批前 OpenAI 核心員工組成,致力於提高 AI 的安全性及可解釋性。

第一篇論文發表於 2021 年的 12 月,作者着眼於架構的簡化版本,並充分解釋了它們的功能。以色列理工學院的 Yonatan Belinkov 表示:「這些簡化架構很好地描述了 Transformer 在非常簡單的情況下是如何工作的。我對這項工作非常感興趣。它很有趣,同時很有前途,也比較獨特和新穎。」


論文連結:https://transformer-circuits.pub/2021/framework/index.html

作者還表明,簡單的 Transformer 具備從學習基本語言模式到語言處理的一般能力。「你會看到能力的飛躍」,哈佛大學的 Martin Wattenberg 說道。研究團隊已經開始破解 Transformer 的「配方」了。

在 2022 年發表的第二篇論文中,研究者表明,負責這種能力的相同元件在最複雜的 Transformer 中也能發揮作用。雖然這些模型背後的數學原理在很大程度上仍然難以理解,但該研究的結果提供了一種理解途徑。「他們在簡化版模型中發現的東西可以遷移到更大的模型中」,Conjecture 公司和研究小組 EleutherAI 的 Connor Leahy 說道。


論文連結:https://transformer-circuits.pub/2022/in-context-learning-and-induction-heads/index.html

理解 Transformer 的難點在於它們的抽象。傳統程式遵循可理解的過程,例如每當看到「green」一詞時,就輸出「grass」一詞,而 Transformer 將「green」一詞轉換為數字,然後將它們與某些值相乘。這些值(也稱為引數)決定下一個單詞是什麼。Transformer 在訓練的過程中得到微調,模型能夠學會產生最佳輸出,但目前尚不清楚模型學習的是什麼。

大多數機器學習程式將數學打包為模組化的神經元。Transformer 則加入了一種額外的成分,稱為注意力頭(attention head),這些頭分層排列(就像神經元一樣)。但是頭的運算方式與神經元不同。頭的作用通常被理解為「允許程式記住輸入的多個單詞」,但這種解釋並不確切。

「注意力機制顯然是有效的。它取得了很好的效果,」Wattenberg 說。「但問題是它在做什麼?我的猜測是它正在做很多我們不知道的事情。」

爲了更好地理解 Transformer 的工作原理,Anthropic 的研究人員簡化了架構,去掉了所有的神經元層和除了一層或兩層注意力頭之外的所有層。這讓他們發現了 Transformer 和簡化模型之間的聯絡。

理解 Transformer

先假設一種最簡單的語言模型,稱為「二元模型」,它再現了基本的語言模式。例如在大型文字上訓練時,二元模型會記下單詞「green」之後最常出現的單詞(例如「grass」)並記住它。然後,在生成文字時,它會重現相同的模式。通過為每個輸入單詞記住一個相關的後續單詞,它可以獲得非常基本的語言知識。

研究人員表明,具有一層注意力頭的 Transformer 模型做了類似的事情:它再現了所記憶的內容。假設你給它一個特定的輸入,比如「Doctor Smith went to the store because Doctor …」這個輸入被稱為 prompt 或上下文。對我們來說,下一個詞是顯而易見的 ——Smith。

在訓練好的單層模型中,注意力頭可以分兩步進行此預測。首先,它檢視上下文中的最後一個詞(Doctor),並在它(訓練期間)已經學習的上下文中搜索一個特定的詞以與最後一個詞相關聯。然後,對於找出的單詞,查詢另一個它已知相關聯的單詞,就像二元模型一樣。最後將這個關聯的詞移動到模型的輸出中。

對於這個例子,研究人員表示,根據最後一個詞「Doctor」,注意力頭從訓練中知道:要搜尋一個通用名稱的詞。在句子前面找到名字「Smith」時,注意力頭會檢視它學到的與「Smith」相關聯的內容,並將該詞移動到輸出。(在這種情況下,模型已經學會將同一個詞「Smith」與找到的詞「Smith」相關聯。)整個過程的淨效果是模型將「Smith」這個詞從上下文複製到輸出。

研究作者:Chris Olah(左)、Catherine Olsson(中)和 Nelson Elhage(右)

「在這裏,我們實際上可以理解注意力的作用,」研究的共同作者之一 Chris Olah 說。

但這種「記憶」只能幫模型到這裏了。思考一下,當史密斯的名字變成一個虛構的名字時會發生什麼,比如「Gigamuru」。對我們來說,句子如何完成仍然很簡單 ——Gigamuru,但模型在訓練期間不會看到虛構的詞。因此,它不可能記住它與其他詞之間的任何關係,也不會生成它。

當研究一個更復雜的模型 —— 一個有兩層注意力頭的模型時,Anthropic 團隊找到了一種解決方案。該方案依賴於注意力頭獨有的能力:它們不僅可以將資訊移動到輸出上,還可以移動到上下文中的其他地方。

藉助這種能力,第一層的頭部學習利用前驅詞的資訊來註釋上下文中的每個詞。然後,第二個頭可以搜尋以單詞 「Doctor」(在本例中為 「Gigamuru」)之前的單詞,並像單層模型中的頭一樣,將其移動到輸出上。研究人員將與前一層中頭協作的後一層中的注意力頭稱為感應頭(induction head)。感性頭不僅有記憶的功能,而且可以做一些類似於抽象推理或實現演算法的事情。

感應頭能讓兩層模型做到更多的事情,但它們與全尺寸 Transformer 的相關性尚不清楚,它們有數百個注意力頭協同工作。在第二篇論文中,研究人員發現這些結果得到了延續:感應頭似乎對一些最複雜多層架構的顯著行為做出了重大貢獻。

在這些行為中,算術的能力得到彰顯,因為模型只被訓練來完成文字。例如,如果給出重複 prompt:「問:48 加 76 等於多少?答:124;問:48 加 76 等於多少?A:___」一個完整的模型會得到正確的答案,並且在獲得足夠多的非重複 promp 後,它就能正確回答它從未見過的算術問題。這種從上下文中明顯學習新能力的現象稱為「上下文學習」。

這種現象令人費解,因為從上下文中學習是不可能的。這是因為決定模型效能的引數僅在訓練期間進行調整,而沒有在模型處理輸入上下文時進行調整。

感應頭至少解決了部分難題。它們解釋了上下文學習的簡單、重複形式的可能性,同時提供了所需要的 —— 複製模型未經訓練使用的新詞(如「Gigamuru」或「124」)的能力。

論文作者之一、Anthropic 團隊成員 Catherine Olsson 表示:「感應頭更可能適應各種模式,即使它有些許奇怪或新奇。」

該研究進一步在多層模型中應用感應頭,表明感性頭能夠參與更新穎的上下文學習形式,例如學會翻譯語言。

該研究為理解 transformer 提供了一個新的視角。它們不僅在獲取知識,而且還在學習處理根本沒有學過的東西。這或許可以解釋 transformer 現在的「霸主」地位。


原文連結:https://www.quantamagazine.org/researchers-glimpse-how-ai-gets-so-good-at-language-processing-20220414/

文章來源:機器之心