---
# System prepended metadata

title: 【生成式AI導論 2024】第10講：今日的語言模型是如何做文字接龍的 — 淺談Transformer

---

# 【生成式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 架構