Transformer Explainer:LLM 架構視覺化指南
Transformer Explainer 提供了一個互動式的視覺化導覽,深入解析 GPT-2 (small) 架構,揭開大型語言模型 (LLM) 如何處理文字並預測 Token 的神秘面紗。
該工具由喬治亞理工學院的研究人員開發,允許使用者輸入自訂文字,並即時觀察 Token 如何通過嵌入層 (Embeddings)、注意力機制 (Attention mechanisms) 和 MLP 層。此實作利用了直接在瀏覽器中透過 Svelte 和 D3.js 執行的即時 GPT-2 (small) 模型——該模型源自 Andrej Karpathy 的 nanoGPT 並轉換為 ONNX Runtime。
Transformer 核心架構
文字生成 Transformer 的運作原理是基於「下一個 Token 預測」。其架構由三個主要階段組成:嵌入 (Embedding)、Transformer 區塊 (Transformer Blocks) 以及輸出機率 (Output Probabilities)。
1. 嵌入 (Embedding):將文字轉換為向量
嵌入將原始文字轉換為模型可處理的數值格式,過程分為四個步驟:
- Tokenization (分詞):輸入文字被拆分為 Token(單字或子詞)。GPT-2 使用包含 50,257 個唯一 Token 的詞彙表。
- Token Embedding (Token 嵌入):每個 Token 都會從一個包含約 3,900 萬個參數的矩陣中,映射為一個 768 維的向量。這確保了語義相似的 Token 在高維空間中彼此靠近。
- Positional Encoding (位置編碼):由於 Transformer 是平行處理序列而非循序處理,模型會為每個 Token 加入位置資訊,以維持輸入的順序。
- Final Embedding (最終嵌入):將 Token 編碼與位置編碼相加,建立最終的表示形式。
2. Transformer 區塊
像 GPT-2 (small) 這類模型會堆疊多個 Transformer 區塊(總共 12 個)來建立輸入的高階表示。每個區塊由兩個主要組件組成:
多頭自注意力機制 (Multi-Head Self-Attention)
自注意力機制允許 Token 之間進行溝通並捕捉上下文關係。這是透過查詢 (Query, Q)、鍵 (Key, K) 和值 (Value, V) 矩陣來實現的:
- Query (Q):代表正在尋求資訊的 Token。
- Key (K):代表查詢可以關注的潛在 Token。
- Value (V):包含一旦 Q 與 K 匹配後所要提取的實際內容。
這些向量被拆分為多個「頭」(GPT-2 small 中為 12 個),以平行捕捉不同的語言特徵(例如語法與語義)。模型使用 遮罩自注意力 (Masked Self-Attention) 來防止模型在訓練和推論期間「偷看」未來的 Token,確保它只關注當前位置左側的 Token。
多層感知器 (MLP)
雖然注意力機制負責在 Token 之間傳遞資訊,但 MLP 會獨立優化每個 Token 的表示。它使用兩個帶有 GELU 激活函數的線性轉換。第一次轉換將維度從 768 擴展到 3072 以捕捉複雜模式,第二次則將其壓縮回 768。
3. 輸出機率 (Output Probabilities)
在最後一個 Transformer 區塊之後,表示形式會被投影到 50,257 維空間(詞彙表大小)以產生 Logits。這些 Logits 隨後透過 Softmax 函數轉換為機率分佈。
為了控制輸出多樣性,採樣過程中會使用三個超參數:
- Temperature (溫度):調整機率分佈。低溫 (<1) 使模型趨於確定性;高溫 (>1) 則增加隨機性和「創造力」。
- Top-k:將候選範圍限制在機率最高的 $k$ 個 Token 內。
- Top-p:將候選範圍限制在累積機率超過閾值 $p$ 的最小 Token 集合內。
輔助效能功能
為了確保訓練期間的穩定性和效率,Transformer 採用了幾種輔助機制:
- Layer Normalization (層正規化):透過跨特徵正規化輸入來穩定訓練,防止內部協變量偏移。
- Dropout:一種正規化技術,在訓練期間隨機停用神經元以防止過度擬合。
- Residual Connections (殘差連接):將層的輸入加到其輸出的捷徑,減輕深度網路中的梯度消失問題。
技術見解與社群觀點
關於 Transformer Explainer 的社群討論突顯了該架構的幾個關鍵細節:
動態網路建構
社群的一個見解是,注意力機制本質上是在推論期間動態建構一個小型單層網路。正如使用者 @andblac 所指出的:
"注意力矩陣已經計算完畢,並正與 Value 向量相乘。它的行為就像是將 Value 向量推入普通網路的密集層 (Dense layer),其中注意力矩陣形成了該層的權重。" — @andblac
架構演進
雖然 GPT-2 是極佳的教學基準,但使用者提醒現代 LLM 已經演進。具體來說,GPT-2 使用的絕對位置編碼在最先進的模型中,已大多被更靈活的方法(如旋轉位置嵌入 RoPE)所取代。
資源密集度
由於在瀏覽器中執行即時模型,一些使用者回報了顯著的硬體負擔,包括高記憶體使用量(最高達 2.2 GB),以及在 Chromebook 等低階裝置上出現效能下降的情況。
Sources
相關
- Dispatch
- 專案
- Dispatch
- Dispatch
- Dispatch