# 【生成式AI導論 2024】第10講:今日的語言模型是如何做文字接龍的 — 淺談Transformer ## 語言模型內部運作與 Transformer 架構概述 📌 課程分為兩部分 1. 前半段:深入語言模型的內部結構 * 重點:了解語言模型內的類神經網路,特別是 Transformer * 為下半段「語言模型的心理活動」奠定基礎 2. 後半段:探討語言模型「在想什麼」 * 必須先理解運作機制,才能進一步剖析其「心智 ## 🧠 語言模型做了什麼事? * 本質:文字接龍(next token prediction) * 從大量語料中學習如何接下去產生文字 * 語言模型是一個函式 function,裡面有大量的未知參數 parameters * 經由訓練資料,找出這些參數 ## 📈 語言模型演進簡史(簡略帶過) * N-Gram(非神經網路方法) * Feed Forward Neural Network * Recurrent Neural Network(RNN) * Transformer(主角登場) ## 🔧 Transformer 基本架構 * 一句話被語言模型處理的流程: 1. Tokenization(斷詞) * 把文字轉換為一連串的 Token * 需要有一個預先定義好的 Token 表(Vocabulary) * 英文常用演算法:Byte Pair Encoding(BPE) 中文可能會以單一方塊字為 Token,但 ChatGPT 並不以中文為主設計 2. Embedding(向量化) * 將每個 Token 轉換為一個向量(稱為 Token Embedding) * Token Embedding 是模型的一部分參數,經由訓練學習而來 * 語意相近的 Token,其 Embedding 向量也會比較接近 * 但 Token Embedding 本身不含上下文資訊 3. 加入位置資訊(Positional Embedding) * 每個 Token 加上一個表示其位置的向量 * 可以是人工設計,也可以是模型學習出來 4. Contextualization(語境建模)——Attention 模組 * 用來加入上下文資訊 * 透過計算每個 Token 和其它 Token 的關聯性(Attention Weight) * 計算關聯性後,對其他 Token 做加權總和(Weighted Sum) * 輸出新的向量(Contextualized Token Embedding) 5. Multi-head Attention(多頭注意力) * 不同的「注意力頭」考慮不同面向的關聯性 * 例如 Dog 和 Cat 是生物、Dog 和 Bark 是動作 * 多個 Attention heads 輸出再統合起來 6. Feedforward Network(前饋神經網路) * 每個 Transformer Block 裡的第二個模組 * 接收 Attention 的輸出後進一步加工 * 加上 Attention 組成一個完整的 Transformer Block 7. 堆疊多個 Transformer Block * 每一層都再處理一次 Embedding * 預設一個 Block 為一個 Layer,實際內部也有多層神經網路 8. Output Layer(輸出層) * 通過線性轉換(Linear Transform) + Softmax * 輸出下一個 Token 的機率分佈 ## 🔄 Transformer 的運作重點:只看左邊(Causal Attention) * 語言模型是逐步產生文字,每產生一個 Token 都重新運算 * 所以每次 只看前面的 Token(左邊) * AI 輸出 W1 → 把 W1 接上輸入 → 產出 W2,以此類推 * 注意力只考慮前面的內容,有效避免不必要的重算 ## ⚠️ 處理長文本的挑戰 * Attention 的運算成本是 O(n²) * 如果輸入是 100K 個 Token,就要計算 100K x 100K 次 Attention * 所以處理長文本會非常吃資源 * 為什麼語言模型炫耀可以讀多長的文本?→ 這是一項硬實力指標 ## 🔬 延伸議題與研究方向 1. 如何加速 Attention 計算? * 大量研究致力於降低 Attention 的時間與記憶體成本 * 有些研究提出 近似 Attention、稀疏 Attention 等解法 2. Train Short, Test Long * 訓練時使用短文本,推理時能處理長文本 * 需要設計特殊的架構與技巧 3. Transformer 的替代方案 * 如 Mamba 系列(復興類似 RNN 的架構,但解決 RNN 的訓練效率問題) * JAMBAR 模型:結合 Transformer 與 Mamba 架構
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up