下文翻譯自Timothy B Lee和Sean Trott花費兩個月完成的一篇博客。
“Large language?models, explained with a minimum of math and jargon (understandingai.org)”。
語言大模型內部究竟是如何工作的?本文用最少的數學知識和術語進行解釋。如今,幾乎每個人都聽說過LLM,并有數千萬人用過它們,但是,了解工作原理的人并不多。你可能聽說過,訓練LLM是用于“預測下一個詞”,而且它們需要大量的文本來實現這一點。但是,解釋通常就止步于此。它們如何預測下一個詞的細節往往被視為一個深奧的謎題。
其中一個原因是,這些系統的開發方式與眾不同。一般的軟件是由人類工程師編寫,他們為計算機提供明確的、逐步的指令。相比之下,ChatGPT是建立在一個使用數十億個語言詞匯進行訓練的神經網絡之上。
因此,地球上沒有人完全理解LLM的內部工作原理。研究人員正在努力嘗試理解這些模型,但這是一個需要數年甚至幾十年才能完成的緩慢過程。然而,專家們確實對這些系統的工作原理已有不少了解。本文的目標是將這些知識開放給廣大受眾。我們將努力解釋關于這些模型內部工作原理的已知內容,而不涉及技術術語或高級數學。
我們將從解釋詞向量(word vector)開始,它是語言模型表示和推理語言的一種令人驚訝的方式。然后,我們將深入探討構建ChatGPT等模型的基石Transformer。最后,我們將解釋這些模型是如何訓練的,并探討為什么要使用龐大的數據量才能獲得良好的性能。
Word vectors
詞向量
要理解語言模型的工作原理,首先需要了解它們如何表示單詞。人類用字母序列來表示英語單詞,比如用C-A-T來表示"cat"。語言模型使用一個稱為詞向量的長列表來表示單詞。例如,這是一種表示"cat"的向量的方式:
[0.0074, 0.0030, -0.0105, 0.0742, 0.0765, -0.0011, 0.0265, 0.0106, 0.0191, 0.0038, -0.0468, -0.0212, 0.0091, 0.0030, -0.0563, -0.0396, -0.0998, -0.0796, …, 0.0002]
(完整的向量長度為300個數字,要查看完整數字,請訪問下面網站,并然后點擊Show the raw vector of ?cat??)。
http://vectors.nlpl.eu/explore/embeddings/en/MOD_enwiki_upos_skipgram_300_2_2021/cat_NOUN/
為什么要使用這樣的復雜表示法呢?這里舉個類比。華盛頓特區位于北緯38.9度、西經77度。我們可以使用向量表示法來表示它:
Washington DC?is at [38.9, 77]
New York?is at [40.7, 74]
London?is at [51.5, 0.1]
Paris?is at [48.9, -2.4]
這對于推理空間關系非常有用。你可以通過38.9接近于40.7以及77接近于74來判斷紐約離華盛頓特區很近。同樣的道理,巴黎靠近倫敦。但是巴黎離華盛頓特區很遠。
語言模型采用類似的方法:每個詞向量代表了虛擬的“詞空間”中的一個點,具有更相似含義的單詞會被放置在彼此更靠近的位置。例如,在詞向量空間中,最接近"cat"的詞包括"dog"、"kitten"和"pet"。使用實數向量(而不是像"C-A-T"這樣的字母序列)來表示單詞的一個關鍵優勢是,數字使得可以進行字母無法實現的操作。
單詞太復雜,無法僅用二維空間表示,因此語言模型使用具有數百甚至數千維度的向量空間。人類無法想象具有如此多維度的空間,但計算機完全能夠對其進行推理并產生有用的結果。
研究人員幾十年來一直在嘗試使用詞向量,但這個概念真正開始流行起來是在2013年,當時谷歌宣布了其word2vec項目。谷歌分析了從Google新聞中獲取的數百萬份文檔,以確定哪些單詞傾向于在類似的句子中出現。隨著時間的推移,經過訓練的神經網絡學會了預測哪些單詞與其他單詞同時出現,并將相似的單詞(如"dog"和"cat")放置在向量空間中靠近的位置。
谷歌的詞向量還有一個有趣的特性:你可以使用向量算術來“推理”單詞。例如,谷歌的研究人員取了"biggest"的向量,減去"big",再加上"small"。與結果向量最接近的詞是"smallest"。
你可以使用向量算術來進行類比!在這個例子中,big對應biggest,就像small對應smallest一樣。谷歌的詞向量捕捉到了許多其他的關系:
Swiss is to Switzerland as Cambodian is to Cambodia. (nationalities)
Paris is to France?as Berlin is to Germany.(capitals)
Unethical is to ethical as?possibly is to impossibly. (opposites)
Mouse is to mice as dollar?is to dollars.(plurals)
Man is to woman as king?is to queen.(gender roles)
由于這些向量是根據人類使用單詞的方式構建的,它們反映了存在于人類語言中的許多偏見。例如,在某些詞向量模型中,doctor減去man再加上woman的結果是nurse。減輕這種偏見是當前研究的一個領域。
然而,詞向量對于語言模型來說是一個有用的構建模塊,因為它們編碼了關于單詞之間關系的微妙但重要的信息。如果語言模型學到了關于貓的某些事情(例如:它有時去看獸醫),同樣的事情很可能也適用于小貓或狗。如果模型學到了巴黎和法國之間的關系(例如:它們共用一種語言),那么柏林和德國以及羅馬和意大利之間也很有可能存在相同的情況。
Word meaning depends on context
詞義取決于上下文
像這樣的簡單詞向量方案無法捕捉到自然語言的一個重要事實:單詞通常具有多個含義。
例如,單詞"bank"可以指代金融機構或河邊的土地?;蛘呖紤]以下句子:
John picks up a?magazine.
Susan works for a?magazine.
這些句子中的"雜志"的含義相關但微妙地不同。約翰拿起的是一本實體雜志,而蘇珊為一家出版實體雜志的機構工作。
當一個單詞具有兩個無關的含義時,如"bank",語言學家稱之為同音異義詞(homonyms)。當一個單詞具有兩個密切相關的含義時,如"雜志",語言學家稱之為多義性(polysemy)。
像ChatGPT這樣的語言模型能夠根據單詞出現的上下文以不同的向量表示相同的單詞。有一個針對"bank"(金融機構)的向量,還有一個針對"bank"(河岸)的不同向量。有一個針對"雜志"(實體出版物)的向量,還有一個針對"雜志"(機構)的向量。正如你所預期的,語言模型在多義性含義上使用更相似的向量,而在同音異義詞上使用更不相似的向量。
到目前為止,我們還沒有討論語言模型如何做到這一點,我們將很快介紹。但我們一直在詳細闡述這些向量表示,因為這是理解語言模型如何工作的基礎。
傳統軟件設計用于處理明確的數據。如果你讓計算機計算"2 + 3",對于數字2、加號和數字3的含義沒有任何歧義。但自然語言充滿了超越同音異義詞和多義性的歧義:
在句子"the customer asked the mechanic to fix?his?car"中,"his?"是指顧客還是修理工?
在句子"the professor urged the student to do?her?homework"中,"her?"是指教授還是學生?
在句子"fruit?flies?like a banana"中,"flies?"是動詞(指水果在天空中飛翔)還是名詞(指喜愛香蕉的昆蟲)?
人們根據上下文來解決這樣的歧義,但沒有簡單或確定的規則可以做到這一點。相反,它需要對世界的事實有所了解。你需要知道修理工通常修理顧客的車,學生通常自己做家庭作業,以及水果通常不會飛行。
詞向量為語言模型提供了一種靈活的方式,以在特定上下文中表示每個單詞的精確含義?,F在讓我們來看看它們是如何做到這一點的。
Transforming word vectors into word predictions
將詞向量轉化為詞語預測
GPT-3,即ChatGPT原始版本背后的模型,由數十個層組成。每個層以一系列向量作為輸入,輸入文本中每個單詞對應一個向量,并添加信息來澄清該單詞的含義,并更好地預測接下來可能出現的單詞。
讓我們從一個簡化的例子開始
LLM(語言模型)的每個層都是一個transformer,這是一種神經網絡架構,由Google在2017年發表的一篇具有里程碑意義的論文中首次引入。
圖中顯示的模型輸入位于圖的底部,是部分句子“John wants his bank to cash the.” 這些單詞被表示為word2vec風格的向量,并輸入到第一個transformer中。
transformer推斷出wants和cash都是動詞(這兩個詞也可以是名詞)。我們用括號中的紅色文本表示這個額外的上下文,但實際上,模型會通過修改單詞向量的方式存儲它,這種方式對人類來說很難解釋。這些新的向量被稱為隱藏狀態,傳遞給堆疊中的下一個transformer。
第二個transformer添加了其他兩個上下文信息:它澄清了bank指的是金融機構而不是河岸,還指出his是一個指代John的代詞。第二個transformer生成了另一組隱藏狀態向量,反映了模型到目前為止學到的所有知識。
上述圖表描繪了一個純粹假設的LLM,所以不要過于認真對待細節。我們很快將研究真實的語言模型。實際的LLM通常有不止兩個層。例如,最強大的GPT-3版本有96個層。
研究表明,前幾層主要關注理解句子的語法和解決上面所示的歧義。后續的層(我們沒有顯示在圖表中以保持圖表的可管理大?。┲铝τ趯φ麄€段落進行高層次的理解。
例如,當LLM“閱讀”一篇短篇小說時,它似乎會對這個故事的多種信息進行跟蹤:性別和年齡、與其他角色的關系、過去和當前的位置、個性和目標等等。
研究人員并不完全理解LLM是如何跟蹤這些信息的,但從邏輯上講,模型必須通過在層與層之間傳遞時修改隱藏狀態向量來實現。對于現代LLM來說,這些向量非常大,這有助于這個過程。
例如,最強大的GPT-3版本使用具有12,288個維度的詞向量,也就是說,每個單詞由一個包含12,288個數字的列表表示。這比Google在2013年推出的word2vec方案大20倍。你可以將所有這些額外的維度看作是GPT-3可以用來對每個單詞的上下文進行記錄的一種“臨時空間”。早期層次所做的記錄可以被后續層次閱讀和修改,從而使模型逐漸加深對整個段落的理解。
假設我們將上面的圖表改為描述一個96層的語言模型來解釋一個1000詞的故事。第60層可能包含一個John的向量,帶有括號注釋,比如“(主角,男性,娶了Cheryl,Donald的表兄,來自明尼蘇達州,目前在博伊西,試圖找到他遺失的錢包)”。同樣,所有這些事實(或許還有更多)都會以一個包含12288個數字的列表的形式編碼,這些數字對應于單詞John?;蛘?,這些信息的一部分也可能會被編碼在Cheryl、Donald、Boise、wallet或故事中的其他單詞的12288維向量中。
96層網絡的目標是輸出一個包含所有必要信息的最終詞的隱藏狀態,以預測下一個詞。
Can I have your attention please
我可以吸引你的注意嗎?
現在讓我們談談每個Transformer內部發生的事情。Transformer對于更新輸入段落中每個單詞的隱藏狀態有一個兩步的過程:
1.在注意力步驟中,單詞會“尋找”與其具有相關上下文的其他單詞,并相互共享信息。
2.在前饋步驟中,每個單詞會“思考”之前注意力步驟中收集到的信息,并嘗試預測下一個單詞。
當然,執行這些步驟的是網絡,而不是個別單詞。但我們以這種方式表述是為了強調Transformer將單詞視為分析的基本單位,而不是整個句子或段落。這種方法使得語言模型可以充分利用現代GPU芯片的大規模并行處理能力。它還幫助語言模型在處理數千個單詞的段落時進行擴展,這是以前的語言模型所面臨的困難之處。
你可以將注意機制看作是單詞之間的媒婆服務。每個單詞都會創建一個清單(稱為查詢向量),描述它尋找的單詞的特征。每個單詞還會創建一個清單(稱為鍵向量),描述它自身的特征。網絡會將每個鍵向量與每個查詢向量進行比較(通過計算點積),以找到最佳匹配的單詞。一旦找到匹配,它會將信息從產生鍵向量的單詞傳遞給產生查詢向量的單詞。
例如,在前面的部分中,我們展示了一個假設的Transformer推斷出在部分句子“John wants his bank to cash the”中,his指的是John。以下是在內部可能的實現方式。his的查詢向量可能有效地表示“我正在尋找:描述男性的名詞”。John的鍵向量可能有效地表示“我是:描述男性的名詞”。網絡會檢測到這兩個向量匹配,并將關于John的向量的信息轉移到his的向量中。
每個注意力層都有多個“注意力頭”,這意味著這個信息交換過程在每個層次上會多次(并行)發生。每個注意力頭專注于不同的任務:
一個注意力頭可能會將代詞與名詞進行匹配,就像我們之前討論的那樣。
另一個注意力頭可能會處理解決類似“bank”這樣的同音異義詞的含義。
第三個注意力頭可能會將“Joe Biden”這樣的兩個單詞短語鏈接在一起。
諸如此類。
注意力頭經常按順序操作,一個層次中的注意力操作的結果成為后續層次中的一個注意力頭的輸入。實際上,我們剛才列出的每個任務都可能需要多個注意力頭,而不僅僅是一個。
最大版本的GPT-3有96層,每層有96個注意力頭,因此每次預測一個新單詞時,GPT-3執行9,216個注意力操作。
A real-world example
一個真實案例
在最后的兩個部分中,我們呈現了注意力頭的工作方式的簡化版本?,F在讓我們來看看對真實語言模型內部運作的研究。去年,Redwood Research的科學家研究了GPT-2(ChatGPT的前身)如何預測下一個單詞的。他們使用了以下句子作為樣本:“When Mary and John went to the store, John gave a drink to.”
GPT-2預測下一個單詞是Mary。研究人員發現有三種類型的注意力頭對此預測起到了作用:
他們稱之為“Name Mover Heads”的三個注意力頭從Mary的向量中復制信息到最終輸入向量(用于表示to這個單詞)。GPT-2使用這個最右側的向量中的信息來預測下一個單詞。
網絡是如何決定復制Mary這個單詞的呢?通過逆向分析GPT-2的計算過程,科學家們發現了一組四個注意力頭,他們稱之為“Subject Inhibition Heads”,它們以一種方式標記了第二個John向量,阻止了“Name Mover Heads”復制名字John。
Subject Inhibition Heads是如何知道不應該復制John這個單詞的呢?進一步逆向分析,團隊發現了兩個注意力頭,稱之為“Duplicate Token Heads”。它們將第二個John向量標記為第一個John向量的重復,這有助于Subject Inhibition Heads決定不應該復制John。
簡而言之,這九個注意力頭使得GPT-2能夠推斷出“John gave a drink to John”沒有意義,而選擇了“John gave a drink to Mary”。
我們喜歡這個例子,因為它展示了要完全理解語言模型的困難之處。Redwood團隊的五名成員發表了一篇25頁的論文,解釋了他們如何識別和驗證這些注意力頭。然而,即使他們完成了所有這些工作,我們仍然遠未能全面解釋為什么GPT-2決定預測Mary作為下一個單詞。
例如,模型是如何知道下一個單詞應該是一個人的名字,而不是其他類型的詞?我們可以輕松想到類似的句子,其中Mary不會是一個好的下一個單詞預測。例如,在句子“當Mary和John去餐廳的時候,John把他的鑰匙給了”中,邏輯上下一個單詞應該是“the valet”。
可以想象,通過足夠的研究,計算機科學家們可以揭示并解釋GPT-2推理過程中的其他步驟。最終,他們可能能夠全面了解GPT-2為什么決定在這個句子中預測Mary是最可能的下一個單詞。但是,即使只是理解一個單詞的預測,可能需要額外幾個月甚至幾年的努力。
ChatGPT背后的語言模型——GPT-3.5和GPT-4比GPT-2要大得多、更復雜。它們能夠進行比Redwood團隊研究的簡單句子完成任務更復雜的推理。因此,要完全解釋這些系統的工作原理將是一個巨大的項目,人類很可能在短時間內無法完成。
the feed-forward step
前饋步驟
在注意力頭之間傳遞信息后,有一個前饋網絡進行思考每個詞向量,并嘗試預測下一個單詞。在這個階段,詞之間不進行信息交換:前饋層獨立分析每個單詞。然而,前饋層可以訪問之前由注意力頭復制的任何信息。以下是GPT-3最大版本中前饋層的結構。
綠色和紫色圓圈表示神經元:它們是計算它們輸入的加權和的數學函數。
前饋層之所以強大,是因為它具有龐大的連接數。我們在輸出層中繪制了三個神經元,在隱藏層中有六個神經元,但是GPT-3的前饋層要大得多:輸出層有12,288個神經元(對應模型的12,288維詞向量),隱藏層有49,152個神經元。
因此,在GPT-3最大版本中,隱藏層有49,152個神經元,每個神經元有12,288個輸入(因此有12,288個權重參數)。每個神經元有49,152個輸入值(因此有49,152個權重參數)。這意味著每個前饋層有49,152 * 12,288 + 12,288 * 49,152 = 12億個權重參數。而且有96個前饋層,總共有12億 * 96 = 1160億個參數!這幾乎占據了GPT-3總共1750億個參數的三分之二。
在2020年的一篇論文中,來自以色列特拉維夫大學的研究人員發現,前饋層通過模式匹配工作:隱藏層中的每個神經元匹配輸入文本中的特定模式。以下是在GPT-2的16層版本中由神經元匹配的一些模式:
第一層的一個神經元匹配以“substitutes”結尾的詞序列。
第六層的一個神經元匹配與軍事相關并以“base”或“bases”結尾的詞序列。
第13層的一個神經元匹配以時間范圍結尾的詞序列,例如“between 3 pm and 7”或“from 7:00 pm Friday until”。
第16層的一個神經元匹配與電視節目相關的詞序列,例如“the original NBC daytime version, archived”或“time shifting viewing added 57 percent to the episode’s”。
正如你所看到的,隨著層數的增加,模式變得更加抽象。早期的層傾向于匹配特定的單詞,而后期的層匹配的短語則屬于更廣泛的語義類別,例如電視節目或時間間隔。
這很有趣,因為如前所述,前饋層一次只檢查一個單詞。因此,當它將序列“the original NBC daytime version, archived”分類為與電視相關時,它只能訪問archived的向量,而不能訪問NBC或daytime等單詞??梢酝茰y,前饋層能夠判斷archived是與電視相關的序列的一部分,是因為注意力頭先前將上下文信息移入了archived向量中。
當神經元匹配這些模式之一時,它會向詞向量添加信息。雖然這些信息并不總是容易解釋,但在許多情況下,你可以將其視為關于下一個單詞的初步預測。
Feed-forward networks reason with vector math
前饋網絡通過向量運算進行推理
布朗大學的最新研究揭示了前饋層如何幫助預測下一個單詞的一個優雅的例子。之前我們討論過谷歌的word2vec研究表明,可以使用向量運算進行類比推理。例如,Berlin - Germany + France = Paris。
布朗大學的研究人員發現,前饋層有時確實使用這種精確的方法來預測下一個單詞。例如,他們研究了GPT-2對以下提示的回應:“Q: 法國的首都是什么?A: 巴黎 Q: 波蘭的首都是什么?A:”
團隊研究了一個具有24層的GPT-2版本。在每一層之后,布朗大學的科學家們探測模型,觀察其對下一個標記的最佳猜測。在前15層中,最高猜測是一個看似隨機的單詞。從第16層到第19層之間,模型開始預測下一個單詞將是波蘭-雖然不正確,但越來越接近。然后在第20層,最高猜測變為華沙-正確答案,并且在最后四層保持不變。
布朗大學的研究人員發現,第20個前饋層通過添加一個將國家向量映射到它們相應的首都的向量,將波蘭轉換為華沙。將相同的向量添加到中國會產生北京。
同一模型中的前饋層使用向量運算將小寫單詞轉換為大寫單詞,并將現在時單詞轉換為它們的過去時等效詞。
The attention and feed-forward layers have different jobs
注意力層和前饋層有不同的任務。
到目前為止,我們已經看了兩個GPT-2單詞預測的真實案例:注意力頭幫助預測John給Mary一杯飲料,而前饋層則幫助預測華沙是波蘭的首都。
在第一個案例中,Mary來自用戶提供的提示。但在第二個案例中,華沙并不在提示中。相反,GPT-2必須“記住”華沙是波蘭的首都-這是它從訓練數據中學到的信息。
當布朗大學的研究人員禁用了將波蘭轉換為華沙的前饋層時,模型不再預測華沙是下一個單詞。但有趣的是,如果他們在提示的開頭添加句子“波蘭的首都是華沙”,那么GPT-2又能夠再次回答這個問題。這可能是因為GPT-2使用注意力頭從提示中復制了華沙這個名字。
這種分工更普遍地適用:注意力頭從提示中的先前單詞中檢索信息,而前饋層使語言模型能夠“記住”不在提示中的信息。
實際上,可以將前饋層視為模型從訓練數據中學到的信息的數據庫。早期的前饋層更有可能編碼與特定單詞相關的簡單事實,例如“Trump經常在Donald之后出現”。而后期的層則編碼了更復雜的關系,比如“添加這個向量以將一個國家轉換為它的首都”。
How language models are trained
語言模型是如何訓練的
許多早期的機器學習算法需要人工標記訓練示例。例如,訓練數據可能是帶有人工標簽("狗"或"貓")的狗或貓的照片。人們需要標記數據的需求使得創建足夠大的數據集來訓練強大的模型變得困難且昂貴。
語言模型的一個關鍵創新是它們不需要明確標記的數據。相反,它們通過嘗試預測普通文本中的下一個單詞來進行學習。幾乎任何書面材料,從維基百科頁面到新聞文章再到計算機代碼,都適用于訓練這些模型。
例如,一個語言模型可能會給出輸入 "我喜歡在咖啡里加奶油和",并預測下一個單詞是 "糖"。一個新初始化的語言模型在這方面會非常糟糕,因為它的每個權重參數(在GPT-3的最強版本中有1750億個)最開始都是一個基本上隨機的數。
但隨著模型看到更多的例子-數千億個單詞,這些權重逐漸調整以做出更好的預測。
這里有一個類比來說明這是如何工作的。假設你要洗澡,你希望水溫剛剛好:不太熱,也不太冷。你從未使用過這個水龍頭,所以你將旋鈕指向一個隨機的方向,然后感受水的溫度。如果水太熱,你就轉動它一邊;如果水太冷,你就轉動它另一邊。你越接近合適的溫度,你做的調整就越小。
現在讓我們對這個類比進行一些修改。首先,想象一下有50257個水龍頭,而不只是一個。每個水龍頭對應一個不同的單詞,比如"the"、"cat"或"bank"。你的目標是只有下一個單詞序列對應的水龍頭才會冒出水來。
其次,水龍頭后面有一堆相互連接的管道迷宮,這些管道上也有許多閥門。因此,如果水從錯誤的水龍頭流出,你不能只調整水龍頭上的旋鈕。你需要派遣一支智能松鼠的軍隊追蹤每根管道并沿途調整找到的每個閥門。
這變得復雜,因為同一根管道通常會連接到多個水龍頭。因此,需要仔細思考哪些閥門應該擰緊,哪些應該松開,以及程度如何。
顯然,如果你過于字面地理解這個例子,它很快就會變得荒謬。建造一個擁有1750億個閥門的管道網絡既不現實也沒有實際用途。但幸運的是,由于摩爾定律的存在,計算機可以并且確實可以在這種規模上運作。
到目前為止,在本文中討論的LLM的所有部分-前饋層中的神經元以及在單詞之間移動上下文信息的注意力頭-都被實現為一系列簡單的數學函數(主要是矩陣乘法),其行為由可調節的權重參數確定。正如我故事中的松鼠們通過松緊閥門來控制水流一樣,訓練算法通過增加或減少語言模型的權重參數來控制信息在神經網絡中的流動。
訓練過程分為兩個步驟。首先是“前向傳遞”,打開水源并檢查水是否從正確的水龍頭流出。然后關閉水源,進行“反向傳遞”,松緊閥門的松鼠們沿著每根管道競速。在數字神經網絡中,松鼠們的角色由一種稱為反向傳播的算法扮演,該算法通過“向后行走”穿過網絡,使用微積分來估計每個權重參數的變化量。
完成這個過程-對一個示例進行前向傳遞,然后進行反向傳遞以改善網絡在該示例上的性能-需要數千億次的數學運算。而訓練一個像GPT-3這樣大的模型需要重復這個過程數十億次-每個訓練數據的單詞一次。OpenAI估計,訓練GPT-3需要進行超過3000億萬億次浮點計算-這對于幾十塊高端計算機芯片來說需要數月的工作時間。
The surprising performance of GPT-3
GPT-3的驚人表現
您可能會對訓練過程的表現感到驚訝,ChatGPT可以執行各種復雜的任務,如撰寫論文、進行類比推理,甚至編寫計算機代碼。那么為什么這樣一個簡單的學習機制能夠產生如此強大的模型呢?
一個原因是規模。難以言喻的是,像GPT-3這樣的模型所見到的例子數量之多。GPT-3是在大約5000億個單詞的語料庫上進行訓練的。相比之下,一個典型的人類孩子在10歲之前大約接觸到1億個單詞。
在過去的五年里,OpenAI逐漸增加了其語言模型的規模。在一篇廣為閱讀的2020年論文中,OpenAI報告稱其語言模型的準確性“與模型規模、數據集規模和用于訓練的計算量呈冪律關系,某些趨勢跨越了七個數量級以上”。
隨著模型越來越大,它們在涉及語言的任務上表現得越好。但前提是他們需要以類似的比例增加訓練數據量。而要在更多的數據上訓練更大的模型,就需要更多的計算能力。
OpenAI的第一個語言模型GPT-1于2018年發布。它使用了768維的詞向量,有12層,總共117萬個參數。幾個月后,OpenAI發布了GPT-2。最大版本的GPT-2具有1600維的詞向量,48層,總共有15億個參數。
2020年,OpenAI發布了GPT-3,它具有12288維的詞向量和96層,總共有1750億個參數。
最后,今年OpenAI發布了GPT-4。該公司尚未公布任何架構細節,但廣泛認為GPT-4比GPT-3要大得多。
每個模型不僅學到了比其較小的前身更多的事實,而且在需要某種形式的抽象推理的任務上表現更好:
例如,考慮以下故事:
這是一個裝滿爆米花的袋子。袋子里沒有巧克力。 然而,袋子上的標簽卻寫著“巧克力”而不是“爆米花”。 Sam找到了這個袋子。她以前從未見過這個袋子。 她無法看到袋子里面的東西。她讀了標簽。
你可能可以猜到Sam相信袋子里有巧克力,當她發現里面是爆米花時會感到驚訝。心理學家將這種關于他人心理狀態的推理能力稱為"心智理論"。大多數人從小學階段就具備這種能力。專家們對于是否有非人類動物(如黑猩猩)也具備心智理論存在爭議,但普遍認為這對于人類的社會認知非常重要。
今年早些時候,斯坦福大學的心理學家Michal Kosinski發表了一項研究,研究了大型語言模型解決心智理論任務的能力。他給各種語言模型提供了像我們上面引用的那樣的段落,然后要求它們完成一個類似于"她相信袋子里裝滿了"的句子。正確答案是"巧克力",但一個簡單的語言模型可能會說"爆米花"或其他東西。
GPT-1和GPT-2在這個測試中失敗了。但在2020年發布的第一個版本的GPT-3幾乎有40%的準確率,Kosinski將其與三歲兒童的表現水平相比較。去年11月發布的最新版本的GPT-3將準確率提高到了約90%的水平,與七歲兒童相當。而GPT-4則大約有95%的準確率來回答心智理論問題。
"鑒于沒有跡象表明類似心智理論的能力是有意地被設計到這些模型中的,也沒有研究證明科學家知道如何實現這一點,類似心智理論的能力很可能是隨著模型語言能力的增強而自發地、自主地出現的副產品," Kosinski寫道。
值得注意的是,并非所有研究人員都認為這些結果表明了心智理論的證據:例如,對錯誤信念任務的細微改變導致GPT-3的表現大幅下降;而GPT-3在其他衡量心智理論的任務中表現出更多的變異性。正如我們中的一位(Sean)所寫,成功的表現可能歸因于任務中的混淆效應,這種效應類似于“聰明的漢斯”效應,只是在語言模型而不是馬匹中出現。
盡管如此,GPT-3在幾個旨在衡量心智理論的任務上表現出近乎人類水平的能力,在幾年前還是難以想象的,這與更大的模型通常在需要高級推理的任務上表現更好的觀點是一致的。
這只是語言模型表現出自發發展高級推理能力的眾多例子之一。今年四月,微軟的研究人員發表了一篇論文,認為GPT-4展示了人工通用智能的早期迷人跡象,即以一種復雜、類似于人類的方式進行思考的能力。
例如,一位研究人員要求GPT-4使用一種名為TiKZ的晦澀的圖形編程語言繪制一只獨角獸。GPT-4回答了幾行代碼,然后研究人員將這些代碼輸入到TiKZ軟件中。得到的圖像雖然粗糙,但清楚地顯示出GPT-4對獨角獸的外觀有一定的理解。
研究人員認為GPT-4可能以某種方式從其訓練數據中記住了繪制獨角獸的代碼,所以他們給它一個后續挑戰:他們修改了獨角獸的代碼,將犄角移除,并移動了其他一些身體部位。然后他們要求GPT-4將犄角放回去。GPT-4的回答是將犄角放在了正確的位置上:
盡管作者測試的GPT-4版本的訓練數據完全是基于文本的,沒有包含任何圖像,但它仍然能夠完成這個任務。換句話說,在訓練集中沒有獨角獸的圖像。然而,GPT-4顯然在大量的書面文本訓練后學會了推理關于獨角獸身體形狀的知識。
目前,我們對于大型語言模型如何實現這樣的成就還沒有真正的洞察力。有人認為,像這樣的例子表明模型開始真正理解訓練集中單詞的含義。而其他人則堅持認為語言模型只是“隨機鸚鵡”,僅僅是重復越來越復雜的詞序列,而并非真正理解它們。
這場辯論指向了一種深刻的哲學緊張關系,可能無法解決。盡管如此,我們認為專注于GPT-3等模型的實證表現是很重要的。如果一個語言模型能夠在特定類型的問題上始終給出正確答案,并且研究人員確信他們已經控制了混淆因素(例如,在訓練過程中確保語言模型沒有接觸過這些問題),那么這無論它是否以與人類完全相同的方式理解語言,都是一個有趣且重要的結果。
訓練模型使用下一個令牌預測的原因之一可能是語言本身是可預測的。語言中的規律通常(雖然不總是)與物理世界中的規律相關。因此,當語言模型學習單詞之間的關系時,它通常也在隱含地學習世界中的關系。
此外,預測可能是生物智能和人工智能的基礎。在像安迪·克拉克(Andy Clark)這樣的哲學家看來,人類大腦可以被看作是一個“預測機器”,其主要任務是對我們的環境進行預測,以便成功地在環境中導航。直覺上,進行良好的預測需要良好的表示方式,準確的地圖比不準確的地圖更有可能使我們成功導航。世界是龐大而復雜的,進行預測有助于生物體高效地適應和適應這種復雜性。
傳統上,建立語言模型的一個重要挑戰是找出最有用的表示不同詞語的方式,特別是因為許多詞語的含義嚴重依賴于上下文。下一個詞語預測方法使研究人員能夠通過將其轉化為實證問題而繞過這個棘手的理論難題。事實證明,如果我們提供足夠的數據和計算能力,語言模型通過找出最佳預測下一個詞語的方法,最終學到了很多關于人類語言如何工作的知識。不足之處在于,我們最終得到了一些內部工作機制我們并不完全理解的系統。
Tim Lee是Ars的員工,任職于2017年至2021年。他最近推出了一份名為Understanding AI的新聞簡報,探討了人工智能的工作原理以及它如何改變我們的世界。您可以在這里訂閱他的簡報。
Sean Trott是加州大學圣地亞哥分校的助理教授,他在人類和大型語言模型的語言理解方面進行研究。他在他的簡報The Counterfactual中寫到這些話題以及其他話題。
從技術上講,語言模型(LLMs)是在被稱為標記的單詞片段Token上運行的,但為了保持文章長度可控,我們將忽略這個實現細節。
從技術上講,ChatGPT的原始版本基于GPT-3.5,這是GPT-3的后繼版本,經過了一種稱為強化學習與人類反饋(RLHF)的過程。OpenAI尚未公布此模型的所有架構細節,因此在本文中我們將重點關注GPT-3,這是OpenAI詳細描述的最新版本。
前饋網絡也被稱為多層感知器。自20世紀60年代以來,計算機科學家一直在研究這種類型的神經網絡。
從技術上講,神經元計算其輸入的加權總和后,將結果傳遞給激活函數。我們將忽略這個實現細節,但如果您想要全面了解神經元的工作原理,可以閱讀Tim在2018年撰寫的解釋器。
如果你想了解更多關于反向傳播的知識,可以查閱Tim在2018年撰寫的關于神經網絡工作原理的解釋器。
在實踐中,訓練通常以批處理的方式進行,以提高計算效率。因此,軟件可能會在進行反向傳播之前對32,000個標記進行前向傳遞。
審核編輯:黃飛
?
評論
查看更多