Transformer:內部工作原理及拆解

Transformer 是一種特定的神經網路架構,徹底改變了人工智慧領域,尤其是在自然語言處理 (NLP) 中。它是大型語言模型(如 ChatGPT)的核心技術。

Attention is all you need!

LLMs 是基於大量文字資料訓練的 AI 系統,能夠生成類似人類的文字、翻譯語言、撰寫不同類型的創意內容,以及回答問題。Transformer 架構使這些模型能夠以全新的方式處理和理解語言,從而實現過去無法達到的效果。

01.

Transformer 的架構

輸入分詞 (Input Tokenization):

文字輸入被分解為稱為“token”的小單元,然後將其與表示意義的數值向量相關聯。

嵌入矩陣 (Embedding Matrix):

該矩陣將每個 token 對應為其在高維空間中的初始向量表示。語義相近的詞通常在該空間中聚集在一起。模型在訓練過程中通過調整權重來決定詞語如何被嵌入為向量,最終會形成一個嵌入集,其中空間中的方向具有某種語義意義。

注意力模組 (Attention Blocks):

這些模組使向量能夠相互作用,並根據周圍詞語的上下文更新其語義。

注意力模組負責確定上下文中那些詞語與其他詞語的語義更新相關,以及具體如何更新這些語義。

多層感知機模組 (MLP Blocks):

這些模組對向量進行進一步處理,最佳化其表示。

輸出生成 (Output Generation):

序列中的最終向量用於預測下一個 token 的機率分佈。

重複預測與採樣 (Repetitive Prediction and Sampling):

大型語言模型通過反覆預測下一個詞、從分佈中採樣並將其附加到現有文字中來生成文字。

詞嵌入與上下文意義

幾何表示 (Geometric Representation):

詞嵌入被可視化為高維空間中的點,其位置編碼了語義關係。

上下文適配 (Contextual Adaptation):

向量在經過 Transformer 的過程中,其初始語義會根據周圍上下文被進一步最佳化。想想你對某個詞的理解。這個詞的意義顯然是由周圍的上下文決定的,有時這種上下文可能來自很遠的距離。

點積相似性 (Dot Product for Similarity):

向量之間的點積用於測量它們的對齊程度,以表明語義相似性。

訓練與參數

權重矩陣 (Weight Matrices):

Transformer 使用大量的權重矩陣,這些矩陣的值在訓練過程中被調整以最佳化性能。

GPT-3 的規模 (GPT-3 Scale):

GPT-3 具有 1750 億個參數,這些參數被組織為成千上萬個矩陣,展示了模型的複雜性。

反向傳播演算法 (Backpropagation Algorithm):

這種演算法被用來訓練包括 Transformer 在內的深度學習模型。

Softmax 和溫度參數

機率分佈 (Probability Distribution):

Softmax 函數將輸出值歸一化為機率分佈,確保這些值介於 0 和 1 之間且總和為 1。

溫度控制 (Temperature Control):

溫度參數可用於調整分佈,使其更均勻或更集中特定值,從而影響輸出的創造性。

上下文長度與限制

上下文限制 (Limited Context):

Transformer 的上下文長度是固定的,這限制了它在預測中可以考慮的文字量。

語義丟失 (Loss of Thread):

在長對話中,由於這一限制,一些聊天機器人可能會丟失上下文。

02.

Transformer 處理文字的過程包括以下步驟:

1.文字分詞並將每個 token 轉換為嵌入向量;

2.向量經過一系列注意力模組和 MLP 模組流動:

注意力模組允許向量根據上下文相互作用並更新其語義,MLP 模組進一步最佳化向量的語義表示;

3.最終的向量用於預測序列中的下一個 token。

通過大規模的文字和程式碼資料集進行訓練,模型學習調整其嵌入矩陣、注意力模組和 MLP 模組中的參數,以精準預測序列中的下一個 token。

訓練過程依賴反向傳播演算法(Backpropagation),該演算法通過計算模型誤差並調整參數以最小化誤差。

03.

一些常見問題

1. 注意力機制在 Transformer 模型中有何意義?

注意力機制是 Transformer 架構的一項關鍵創新。它使模型能夠專注於輸入文字中最相關的部分,從而更好地理解其含義。例如,在句子“The cat sat on the mat”中,注意力機制可以幫助模型理解“sat”與“cat”和“mat”密切相關。

這一過程使模型能夠捕捉詞語之間的長距離依賴關係,更好地理解句子的上下文,從而克服了之前語言模型的主要侷限性。

2. “嵌入”在語言模型中是如何工作的?

詞嵌入是一種將詞語表示為數字向量的技術。這些向量從大規模資料集中學習,能夠捕捉詞語的語義含義。語義相似的詞具有相似的向量,這使得模型能夠理解詞語之間的關係。

對於 Transformer 來說,嵌入過程至關重要。通過將詞語轉換為向量,模型可以進行數學運算並學習模式,而這些操作在原始文字上是難以實現的。

3. 嵌入矩陣和反嵌入矩陣的作用是什麼?

嵌入矩陣 (Embedding Matrix):

在處理開始時,將每個 token 轉換為對應的向量表示。嵌入矩陣是一個大型矩陣,其中每一列表示模型詞彙表中某個 token 的嵌入。

反嵌入矩陣 (Unembedding Matrix):

在處理結束時,將最終的處理向量轉換回對所有可能 token 的機率分佈。該分佈用於預測序列中的下一個詞或短語。

3. 在語言模型輸出中,什麼是“溫度”?

溫度是一個控制模型輸出隨機性的參數。溫度越高,輸出越多樣化且出人意料;溫度越低,輸出越可預測且更具確定性。

可以將其視為調整創造力的“旋鈕”。更高的溫度意味著生成的文字更加有創意和出乎意料,而更低的溫度則意味著輸出更加一致和可靠。

4. “logits”和“softmax”在語言模型預測中是什麼概念?

Logits:

是模型最後一層的原始、未歸一化的輸出,表示模型對每個可能下一個 token 的置信度。

Softmax:

是將這些 logits 轉換為機率分佈的函數。它確保所有可能 token 的機率總和為 1,從而使模型能夠做出預測。

簡而言之,logits 是模型的原始猜測,而 softmax 將這些猜測轉化為可以用於選擇最可能下一個詞的機率分佈。 (人工世界Artificial World)