LLM:What';什麼是大型語言模型?

大型語言模型 (LLM) 是一種較新的技術,可預測符記或符記序列,有時甚至可以預測出多段文字。請注意,符記可以是字詞、子字詞 (字詞的子集),甚至是單一字元。相較於 N-gram 語言模型或循環類神經網路,LLM 的預測結果更準確,原因如下:

  • 大型語言模型包含的參數遠多於迴圈模型。
  • 大型語言模型會收集更多脈絡。

本節將介紹建構 LLM 最成功且最廣泛使用的架構:Transformer。

什麼是 Transformer?

Transformer 是各種語言模型應用程式 (例如翻譯) 的最新架構:

圖 1. 輸入內容為:I am a good dog. 以 Transformer 為基礎的翻譯器會將該輸入內容轉換為輸出內容:Je suis un bon chien,這是翻譯成法文的相同句子。
圖 1:以 Transformer 為基礎的應用程式,可將英文翻譯成法文。

 

完整的轉換器由編碼器和解碼器組成:

  • 編碼器會將輸入文字轉換為中繼表示法。編碼器是龐大的類神經網路
  • 解碼器會將中繼表示法轉換為實用的文字。解碼器也是龐大的神經網路。

例如在翻譯工具中:

  • 編碼器會將輸入文字 (例如英文句子) 處理成某種中間表示法。
  • 解碼器會將該中間表示法轉換為輸出文字 (例如,等同的法文句子)。
圖 2:以 Transformer 為基礎的翻譯器會從編碼器開始,產生英文句子的中繼表示法。解碼器會將該中繼表示法轉換為法文輸出句子。
圖 2. 完整的 Transformer 包含編碼器和解碼器。

 

什麼是自注意力?

為了強化背景資訊,Transformer 會大量依賴「自我注意力」這個概念。實際上,自注意力會代表每個輸入符記提出以下問題:

「每個其他輸入符記對此符記的解讀影響為何?」

「自注意」中的「自」是指輸入序列。部分注意力機制會將輸入符記與輸出序列中的符記 (例如翻譯) 或其他序列中的符記進行權重比較。不過,注意力只會權衡輸入序列中符號之間的關係重要性。

為簡化問題,我們假設每個符記都是一個字,而完整的上下文只有一個句子。請考慮下列句子:

The animal didn't cross the street because it was too tired.

上一個句子包含十一個字。每個字都會注意其他十個字,想知道每個字對自己有多重要。舉例來說,請注意該句子包含代名詞「it」。代名詞通常含糊不清。代名詞「it」通常是指最近出現的名詞或名詞片語,但在範例句子中,「it」指的是哪個最近出現的名詞?動物還是街道?

自注意機制會判斷「每個」鄰近字詞與代名詞「it」的關聯性。圖 3 顯示結果:線條越藍,這個字對代名詞「it」的重要性就越高。也就是說,在代名詞 it 的情況下,animalstreet 更重要。

圖 3. 句子「The animal didn't cross the street because it was too tired」中的每個字詞與代名詞「it」的關聯性。字詞「animal」與代名詞「it」最為相關。
圖 3. 代名詞「it」的自注意力。摘自 Transformer:語言理解的全新類神經網路架構

 

相反地,假設句子中的最後一個字詞變更為下列內容:

The animal didn't cross the street because it was too wide.

在這個修訂過的句子中,自注意系統會將「街道」評為與代名詞「它」相關性較高,而非「動物」

部分自我注意力機制是雙向的,也就是說,它們會計算與要注意的字詞「前置」和「後置」的符記關聯度分數。舉例來說,在圖 3 中,請注意「it」兩側的字詞都會進行檢查。因此,雙向自注意力機制可從所關注字詞兩側的字詞收集語境。相較之下,單向自注意機制只能從所關注字詞一側的字詞收集語境。雙向自注意力特別適合產生整個序列的表示法,而逐個符號產生序列的應用程式則需要單向自注意力。因此,編碼器會使用雙向自我注意力,解碼器則會使用單向注意力。

什麼是多頭自注意力?

每個自注意層通常由多個自注意向量組成。層的輸出內容是不同頭輸出的數學運算 (例如加權平均值或內積)。

由於每個自注意層都會初始化為隨機值,因此不同頭端可學習到各個要注意的字詞與附近字詞之間的不同關係。舉例來說,前一個章節所述的自注意層著重於判斷代名詞「it」參照哪個名詞。不過,其他自注意層可能會學習每個字詞與其他字詞的語法關聯性,或學習其他互動。

為什麼變形金剛這麼大?

轉換器包含數十億甚至數兆個參數。本課程一般建議您建構參數較少的模型,而非參數較多的模型。畢竟,參數較少的模型比參數較多的模型,需要較少資源才能進行預測。不過,研究顯示,參數較多的 Transformer 一貫表現優於參數較少的 Transformer。

不過,大型語言模型如何產生文字呢?

您可能已經瞭解研究人員如何訓練 LLM 來預測缺少的一個或兩個字詞,但這可能不會讓您感到驚艷。畢竟,預測一兩個字的功能,本質上就是各種文字、電子郵件和撰寫軟體內建的自動完成功能。您可能會想知道大型語言模型如何產生關於套利的句子、段落或俳句。

事實上,LLM 本質上是自動完成機制,可自動預測 (完成) 數千個符記。舉例來說,假設句子後面有一個經過遮蔽的句子:

My dog, Max, knows how to perform many traditional dog tricks.
___ (masked sentence)

大型語言模型可為遮蓋的句子產生機率,包括:

機率 字詞
3.1% 例如,他可以坐下、待命和翻滾。
2.9% 例如,他知道如何坐下、待命和翻滾。

大型語言模型可為段落和整篇文章產生機率。您可以將使用者對 LLM 提出的問題視為「給定」句子,後面接著虛擬遮罩。例如:

User's question: What is the easiest trick to teach a dog?
LLM's response:  ___

大型語言模型會為各種可能的回覆產生機率。

舉另一個例子來說,以大量數學「文字題」訓練的 LLM 可能會讓人誤以為它能進行複雜的數學推理。不過,這些 LLM 基本上只是自動完成字詞問題提示。

LLM 的優點

大型語言模型可為各種目標對象產生清晰易懂的文字。大型語言模型可針對明確訓練的任務進行預測。部分研究人員聲稱,大型語言模型也可以針對「未」明確訓練的輸入內容做出預測,但其他研究人員駁斥了這項說法。

大型語言模型的問題

訓練大型語言模型時會遇到許多問題,包括:

  • 收集龐大的訓練資料集。
  • 耗用數月時間、大量運算資源和電力。
  • 解決平行處理的挑戰。

使用 LLM 進行推論預測會導致下列問題:

  • LLM 會產生幻覺,也就是說,其預測結果通常會出現錯誤。
  • LLM 會消耗大量運算資源和電力。在較大的資料集上訓練 LLM 通常可減少推論所需的資源量,但較大的訓練集會產生更多訓練資源。
  • 和所有機器學習模型一樣,LLM 也可能會出現各種偏誤。

練習:檢查您的理解程度

假設 Transformer 是根據十億份文件進行訓練,其中包含至少一個「elephant」字詞例項的文件有數千份。以下哪個敘述可能正確?
相思樹是象的食物來源之一,會隨著「elephant」一詞逐漸獲得高自注意分數。
是的,這樣 Transformer 就能回答有關大象飲食習慣的問題。
轉換器會將「elephant」這個字與包含「elephant」這個字的各種成語連結在一起。
是的,系統會開始在「elephant」一詞與象徵大象成語的其他字詞之間附加高自注意分數。
Transformer 會逐漸學會忽略訓練資料中任何以嘲諷或反諷方式使用「elephant」一詞的用法。
在足夠廣泛的訓練資料集上訓練的大型轉換器,會變得相當擅長辨識嘲諷、幽默和反諷。因此,Transformer 會從中學習,而非忽略挖苦和反諷。