大白話!解析大模型原理!

LLM 的工作原理對大多數人來說是個謎。雖然 它們本質上在於 “預測下一個詞”,並需要大量文本進行訓練,但具體細節往往令人困惑。原因在於這些系統獨特的開發方式:基於數十億詞彙訓練的神經網絡,不同於傳統的人類編寫的軟件。 儘管沒人完全理解其內部機制,但研究人員正努力探索。

本文旨在以非技術、非數學的方式解釋 LLM 的工作原理,包括詞向量、Transformer 模型及其訓練方式,以及爲何需要海量數據來取得良好性能。

一、Word vectors——詞向量

理解語言模型工作原理,首要了解它如何表示單詞。人類用字母序列表示單詞,如 "cat" 爲 C-A-T。語言模型用長詞向量列表表示單詞,如 "cat" 表示爲:[0.0074, 0.0030, -0.0105, ... , 0.0002]。

爲什麼要使用這樣的複雜表示法呢?這裏舉個類比。華盛頓特區位於北緯 38.9 度、西經 77 度。我們可以使用向量表示法來表示它:

空間推理對判斷地點間距離至關重要。38.9 與 40.7,77 與 74 的接近性表明紐約與華盛頓特區相近,而巴黎與倫敦相近,但與華盛頓特區遠離。

語言模型採用類似方法,將詞向量視爲 “詞空間” 中的點,含義相近的單詞在空間中更靠近。如,“cat”的相近詞爲 “dog”、“kitten” 和“pet”。實數向量(非字母序列)能執行字母無法實現的操作。

由於單詞複雜性,語言模型使用數百甚至數千維度的向量空間。人類難以想象,但計算機能推理並得出有用結果。

詞向量概念自 20 世紀 70 年代已有,但真正流行始於 2013 年穀歌的 word2vec 項目。谷歌分析數百萬份 Google 新聞文檔,學習預測共現單詞,將相似詞放置在靠近位置。其特性之一是使用向量算術推理單詞,如 “biggest” 向量減去 “big” 加上 “small” 得“smallest”。

可以使用向量算術進行類比,如 big 對應 biggest,small 對應 smallest。谷歌的詞向量捕捉到了多種關係,如 nationalities、capitals、opposites、plurals 和 gender roles。

這些向量根據人類使用單詞的方式構建,反映了語言中的偏見,如 doctor-man+woman=nurse。減輕偏見是研究的一個方向。詞向量對語言模型是有用的構建模塊,因爲它們編碼了單詞間關係的微妙信息。語言模型若學到貓的一些情況,同樣適用於小貓或狗;若學到巴黎和法國的關係,則柏林和德國、羅馬和意大利也可能存在相同情況。

Word meaning depends on context

詞義取決於上下文

詞向量方案不能全面捕捉自然語言的多義性。例如,“bank”可以是金融機構或河岸,“雜誌”在 “John picks up a magazine” 和“Susan works for a magazine”中含義微妙不同。這是多義性(polysemy)或同音異義詞(homonyms)的體現。語言模型如 ChatGPT 能根據上下文以不同向量表示相同單詞。對於 “bank” 和“雜誌”,它們會有不同的向量表示,以區分其不同含義。這種向量表示對理解語言模型的工作方式至關重要。

傳統軟件處理明確數據,但自然語言存在歧義。如 “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”。人們依賴上下文解決這些歧義,但無確定規則。詞向量爲語言模型提供了在特定上下文中表示單詞精確含義的靈活方式。現在,我們來探究它們如何實現這一點。

二、將詞向量轉化爲詞語預測

GPT-3,即 ChatGPT 原始版本背後的模型,由數十個層組成。每個層以一系列向量作爲輸入,輸入文本中每個單詞對應一個向量,並添加信息來澄清該單詞的含義,並更好地預測接下來可能出現的單詞。

讓我們從一個簡化的例子開始

LLM(語言模型)每層都是 transformer,這種神經網絡架構由 Google 在 2017 年首次引入。模型的輸入是句子的一部分,這些單詞被表示爲 word2vec 風格的向量,並輸入到第一個 transformer 中。Transformer 能推斷出單詞的詞性,生成新的向量稱爲隱藏狀態,傳遞給下一個 transformer。後續的層對整個段落進行高層次的理解。

LLM 的層數通常遠不止兩個,例如 GPT-3 有 96 個層。前幾層主要關注理解句子的語法和解決歧義,後續層致力於對整個段落進行高層次的理解。例如,當 LLM“閱讀” 短篇小說時,它會跟蹤性別、年齡、關係、位置、個性和目標等信息。

研究人員不完全理解 LLM 如何跟蹤這些信息,但模型通過在層與層之間傳遞時修改隱藏狀態向量來實現。現代 LLM 使用的詞向量非常大,例如 GPT-3 使用具有 12,288 個維度的詞向量。這些額外的維度爲模型提供了對每個單詞的上下文進行記錄的 “臨時空間”。後續層次可以讀取和修改早期層次所做的記錄,使模型逐漸加深對整個段落的理解。

96 層的 LLM 的目標是輸出包含所有必要信息的最終詞的隱藏狀態,以預測下一個詞。這種模型通過多層 transformer 實現對句子和段落的深層次理解,並通過大維度的詞向量記錄每個單詞的上下文信息。

三、Transformer 的注意力機制

讓我們聚焦 Transformer 內部的工作機制。Transformer 通過兩步過程更新輸入段落中每個單詞的隱藏狀態:

  1. 注意力步驟:單詞尋找與其上下文相關的其他單詞並共享信息。

  2. 前饋步驟:單詞思考注意力步驟中收集的信息,並嘗試預測下一個單詞。

執行這些步驟的是網絡,而不是單詞本身。這種以單詞爲基本單位的分析方法充分利用了現代 GPU 的大規模並行處理能力,使得語言模型能夠處理數千個單詞的段落,克服了之前模型的限制。

注意力機制類似於單詞之間的媒婆服務。每個單詞創建一個查詢向量,描述它尋找的單詞特徵,以及一個鍵向量,描述它自身的特徵。網絡通過比較查詢和鍵向量來找到最佳匹配的單詞,並傳遞信息。

例如,假設 Transformer 推斷出 “his” 指的是“John”。his 的查詢向量可能表示“我正在尋找描述男性的名詞”,而 John 的鍵向量表示“我是描述男性的名詞”。網絡檢測到匹配後,將 John 的信息轉移到 his 的向量中。

每個注意力層有多個注意力頭,每個頭專注於不同的任務,如代詞與名詞匹配、同音異義詞解析或短語鏈接。這些頭按順序操作,每層的結果成爲下一層的輸入。例如,GPT-3 有 96 層,每層 96 個注意力頭,每次預測執行 9,216 個注意力操作。

四、A real-world example

一個完整的案例

在最後兩部分中,我們瞭解了注意力頭如何工作。現在,讓我們探究真實語言模型內部的工作機制。去年,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 的向量中複製信息到最終輸入向量。其次,“Subject Inhibition Heads”通過標記第二個 John 向量,阻止 “Name Mover Heads” 複製 John。最後,“Duplicate Token Heads”將第二個 John 向量標記爲第一個 John 向量的重複,幫助 “Subject Inhibition Heads” 做出決策。

這九個注意力頭使 GPT-2 推斷出 “John gave a drink to John” 無意義,而選擇了“John gave a drink to Mary”。這個例子展示了理解語言模型的困難性。Redwood 團隊的論文詳細解釋了他們如何識別和驗證這些注意力頭,但即使如此,我們仍未能全面解釋 GPT-2 爲何選擇 Mary。

例如,模型如何知道下一個單詞應該是人名而非其他類型的詞?類似句子中,Mary 可能不是好的預測。科學家們仍在努力揭示 GPT-2 推理過程的其他步驟。然而,要全面理解 GPT-2 的決策可能需要數月甚至數年的努力。

ChatGPT 背後的 GPT-3.5 和 GPT-4 更爲龐大和複雜。因此,完全解釋這些系統的工作原理將是一項巨大的任務,可能在短時間內無法完成。

the feed-forward step

前饋步驟(模型推理的過程)

在注意力頭之間傳遞信息後,有一個前饋網絡進行思考每個詞向量,並嘗試預測下一個單詞。在這個階段,詞之間不進行信息交換:前饋層獨立分析每個單詞。然而,前饋層可以訪問之前由注意力頭複製的任何信息。以下是 GPT-3 最大版本中前饋層的結構。

綠色和紫色圓圈代表神經元,這些神經元通過計算輸入的加權和來進行數學運算。前饋層的強大之處在於其龐大的連接數。GPT-3 的前饋層規模龐大,輸出層有 12,288 個神經元,隱藏層有 49,152 個神經元。每個前饋層有大約 12 億個權重參數,總共有 96 個前饋層,總參數數達到 1160 億,佔據 GPT-3 總參數的三分之二。

前饋層通過模式匹配工作,每個神經元匹配輸入文本中的特定模式。隨着層數的增加,模式變得更加抽象。早期的層匹配特定單詞,而後期的層匹配更廣泛的語義類別,如電視節目或時間間隔。這很有趣,因爲前饋層一次只檢查一個單詞,但它能夠將上下文信息移入向量中,從而判斷單詞與某個類別相關。

當神經元匹配這些模式之一時,它會向詞向量添加信息,這些信息可以視爲關於下一個單詞的初步預測。布朗大學的研究揭示了前饋層如何使用向量運算進行推理來預測下一個單詞。例如,他們發現 GPT-2 在前幾層之後開始預測下一個單詞,而在更高層時,預測變得越來越準確。布朗大學研究人員發現,通過向模型中添加一個向量,第 20 個前饋層能夠將波蘭轉換爲華沙,中國轉換爲北京。同時,該層也能將小寫單詞轉換爲大寫,現在時轉換爲過去時。注意力層和前饋層在 GPT-2 中有不同任務:注意力層基於提示預測,而前饋層依賴訓練數據中的信息。禁用前饋層,模型無法預測華沙;但添加 “波蘭的首都是華沙” 後,GPT-2 又能回答。這表明注意力層從提示中檢索信息,前饋層則提供訓練數據中的信息。因此,可將前饋層視爲模型的數據庫,早期層編碼簡單事實,如“特朗普與唐納德常同時出現”,而後期層則編碼更復雜的關係,如國家與首都間的轉換。

How language models are trained

語言模型是如何訓練的(模型訓練的過程)

早期的機器學習算法需要人工標記的訓練數據,這限制了模型的規模和訓練成本。然而,語言模型的創新在於它們可以利用未標記的文本數據進行學習。這種模型可以從大量的書面材料中學習,如維基百科頁面、新聞文章和計算機代碼。

語言模型通過預測下一個單詞來學習,初始的模型表現會很差,因爲其權重參數是隨機設置的。隨着模型接觸到更多的示例,這些權重參數會逐漸調整以改進預測。這一過程可以類比爲調整水龍頭的溫度,直到找到合適的水溫。在語言模型中,這個過程更爲複雜,因爲它需要調整數百億的閥門(權重參數),以控制信息的流動。

雖然這個概念聽起來很複雜,但由於計算機的性能不斷提高,這種規模的運算在現實中是可行的。所有的語言模型部分,如前饋層中的神經元和注意力頭,都被實現爲簡單的數學函數,這些函數的行爲由權重參數決定。訓練算法通過增加或減少這些權重參數來控制信息在神經網絡中的流動。

訓練過程分爲兩個步驟:前向傳遞和反向傳遞。在前向傳遞中,模型會檢查預測是否準確。然後,在反向傳遞中,模型會調整權重參數以改進預測。這個過程需要大量的數學運算,訓練像 GPT-3 這樣的大型模型需要數十億次的前向和反向傳遞。儘管計算量大,但由於計算機性能的提升,這種訓練在數月內即可完成。

The surprising performance of GPT-3

GPT-3 的驚人表現

您可能會對 ChatGPT 的表現感到驚訝,它能夠執行撰寫論文、類比推理和編寫計算機代碼等複雜任務。那麼,爲什麼這樣一個簡單的學習機制能夠產生如此強大的模型呢?

其中一個重要原因是規模。像 GPT-3 這樣的模型所接觸到的例子數量龐大,其在大約 5000 億個單詞的語料庫上進行訓練,相比之下,一個 10 歲的孩子大約只接觸到 1 億個單詞。

過去五年,OpenAI 逐漸擴大了其語言模型的規模。據 2020 年論文報道,模型準確性與其規模、數據集規模和訓練計算量呈冪律關係,趨勢跨越七個數量級以上。

隨着模型規模的增大,其在語言任務上的表現也逐漸提升。但前提是,訓練數據量也需要以類似比例增加,這就需要更多的計算能力。

OpenAI 從 2018 年的 GPT-1 開始,逐步增加了模型的規模。GPT-1 有 117 萬個參數,而 GPT-2 的最大版本則有 15 億個參數。到了 2020 年的 GPT-3,參數數量更是達到了 1750 億個。今年發佈的 GPT-4,雖然具體細節尚未公佈,但普遍認爲其規模遠超 GPT-3。

這樣的模型規模,使得 ChatGPT 等語言模型能夠在各種任務中展現出強大的能力。

每個模型不僅學到了比其較小的前身更多的事實,而且在需要某種形式的抽象推理的任務上表現更好:

例如,考慮以下故事:

這是一個裝滿爆米花的袋子。袋子裏沒有巧克力。然而,袋子上的標籤卻寫着“巧克力”而不是“爆米花”。Sam找到了這個袋子。她以前從未見過這個袋子。她無法看到袋子裏面的東西。她讀了標籤。

Sam 相信袋子裏有巧克力,發現爆米花時會驚訝。這是 "心智理論",人類從小就具備,但對非人類動物有爭議。今年,斯坦福大學研究了大型語言模型的心智理論能力。GPT-1 和 GPT-2 失敗了,但 GPT-3 準確率約爲 40%,與三歲兒童相當。最新版的 GPT-3 準確率提高到 90%,與七歲兒童相當,而 GPT-4 則有 95% 的準確率。

Kosinski 認爲,沒有證據表明心智理論能力被特意設計進模型中,且科學家也不清楚如何實現。這種能力可能是隨着模型語言能力的增強自然湧現的。不過,並非所有研究者都認同這一觀點,他們認爲 GPT-3 在某些任務中的表現可能受到混淆效應的影響。儘管存在爭議,GPT-3 在一些衡量心智理論的任務上展現出近乎人類的能力,這與大型模型在高級推理任務上表現更佳的觀點相符。此外,GPT-4 也展現了類似人類的複雜思考方式,如在 TiKZ 圖形編程語言中繪製獨角獸的任務中,儘管結果略顯粗糙,但顯示出 GPT-4 對獨角獸外觀的理解。

研究人員認爲 GPT-4 可能以某種方式從其訓練數據中記住了繪製獨角獸的代碼,所以他們給它一個後續挑戰:他們修改了獨角獸的代碼,將犄角移除,並移動了其他一些身體部位。然後他們要求 GPT-4 將犄角放回去。GPT-4 的回答是將犄角放在了正確的位置上:

儘管 GPT-4 的訓練數據未包含圖像,它仍能從文本中推理出獨角獸的身體形狀。這引發了關於模型是否真正理解單詞含義的辯論。儘管此辯論深具哲學性,我們仍應關注模型的實際表現。若模型能在特定問題上給出正確答案,且已控制混淆因素,那麼無論其理解方式是否與人類相同,這都是有趣且重要的結果。

語言模型使用下一個令牌預測的原因之一是語言本身的可預測性。語言中的規律通常與物理世界中的規律相關,因此模型在學習單詞關係時也在學習世界關係。預測是生物智能和人工智能的基礎,良好的預測需要良好的表示方式。

傳統上,語言模型的挑戰在於如何最佳表示詞語,尤其是詞語含義隨上下文變化的情況。下一個詞語預測方法使研究人員能繞過這一難題,通過提供足夠數據和計算能力,模型最終能學到很多關於人類語言如何工作的知識。然而,這些系統的內部工作機制並不完全理解。

參考資料

[1]https://www.understandingai.org/p/large-language-models-explained-with

[2]https://www.youtube.com/watch?v=dIyQl99oxlg&t=1205s

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/6G9mAa0QWl_9fxGUXTXPiw