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 內含編碼器和解碼器。

 

什麼是自注意力?

為了增強脈絡,轉換器相當仰賴名為「自我注意力」的概念。實際上,自注意力會代表每個輸入符記提出以下問題:

「其他輸入符記對這個符記的解讀有何影響?」

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

為簡化說明,我們假設每個符記都是一個字,而完整的上下文只有一個句子。請見以下句子:

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

前一句包含 11 個字詞,每個字都會注意其他十個字,想知道每個字對自己有多重要。例如,請注意語句含有人稱「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 如何生成語句、段落或有關套利的 Haikus 資訊

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

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

LLM 可產生遮蓋語句的機率,包括:

機率 字詞
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 就能回答有關大象飲食習慣的問題。
Transformer 會將「elephant」一詞和包含「elephant」一詞的各種慣用語建立關聯。
是的,系統會開始在「elephant」一詞與象徵大象成語的其他字詞之間附加高自注意分數。
轉換器會逐步學習如何忽略以「大象」一詞在訓練資料中以諷刺或嘲諷的方式使用模型。
擁有足夠廣泛的訓練集的足夠的 Transformer 經過充分訓練,擅長辨識諷刺、幽默和諷刺。因此,Transformer 會從中學習,而非忽略挖苦和反諷。