---
# System prepended metadata

title: '[Youtube] 3Blue1Brown - Large Language Models explained briefly'
tags: [Youtube]

---

# 語言模型的基本原理

* 大型語言模型透過預測「下一個詞」來生成文字
* 模型不是只選一個詞，而是為所有可能的詞分配機率
* 為了回應更自然，會隨機選擇一些機率較低的詞

# 訓練與參數

* 模型依靠龐大的文字資料進行訓練
* GPT-3 的訓練資料量，等同人類 2600 年不眠不休閱讀
* 模型的行為由「參數/權重」決定，可達數千億以上
* 初始輸出為亂數，經由反覆調整參數逐步改善

# 訓練方法

* 使用「自動補全」的方式訓練：輸入前 N 個詞，預測最後一個詞
* 搭配「反向傳播」演算法調整參數
* 透過無數樣本學習，模型能泛化到未看過的文字

# 計算需求

* 訓練需極大計算量，單人以每秒十億次運算速度需超過一億年
* 使用 GPU 等平行運算晶片才可完成

# 前訓練與後訓練

* 預訓練（pre-training）：學習隨機文字的補全
* 強化學習搭配人類回饋（RLHF）：透過人工標註調整，使輸出更有用

# Transformer 的突破

* 2017 年 Google 提出 Transformer 架構
* 與傳統逐字處理不同，Transformer 可同時並行處理整段文字
* 文字會轉換為數字向量（embedding），用來表示語意

# 注意力機制與網路結構

* 注意力機制（attention）：讓詞向量依上下文動態調整
* 相同詞如「bank」可依環境區分「河岸」或「銀行」
* 結合前饋神經網路（feed-forward network）增強模式學習
* 經多層迭代後，最終輸出每個可能下一詞的機率

# 模型的特性

* 研究者設計框架，但最終行為取決於訓練過程中調整出的參數
* 輸出流暢自然，但具體為何做出某個選擇難以解釋
* 儘管如此，模型生成的結果常具有高度可用性


# Terminology
* 大型語言模型（Large Language Model, LLM）：以龐大參數與資料訓練出的生成式模型
* 參數（Parameters）：控制模型行為的數值，透過訓練調整
* 權重（Weights）：神經網路中連接強度的數值，屬於參數的一部分
* 向量（Vector）：用數字序列表示詞或句子的數學形式
* 詞嵌入（Word Embedding）：將文字轉換為連續數值向量的技術
* 機率分佈（Probability Distribution）：模型對下一個詞所有可能性的機率分配
* 自迴歸模型（Autoregressive Model）：逐步預測下一個詞的模型架構
* 預訓練（Pre-training）：以大量文字資料先行訓練模型的過程
* 微調（Fine-tuning）：在特定任務或資料上再訓練模型
* 強化學習（Reinforcement Learning）：透過回饋訊號調整模型行為的方法
* 人類回饋（Human Feedback）：人類標註者對模型輸出的偏好或修正
* RLHF（Reinforcement Learning with Human Feedback）：結合人類回饋的強化學習方法
* 注意力機制（Attention Mechanism）：讓模型聚焦於輸入序列中相關部分
* 自注意力（Self-Attention）：輸入序列中各元素彼此關聯的計算方法
* Transformer：基於注意力機制的神經網路架構
* 編碼器（Encoder）：將輸入轉換成抽象表示的模組
* 解碼器（Decoder）：將抽象表示轉換回輸出的模組
* 前饋神經網路（Feed-Forward Neural Network）：單向的多層感知器，用於非線性轉換
* 殘差連接（Residual Connection）：允許輸入直接傳遞到輸出的捷徑結構
* 正規化（Normalization）：使數值分佈穩定以改善訓練的技術
* 層正規化（Layer Normalization）：對每一層的輸入進行正規化的方法
* Dropout：隨機忽略部分神經元以避免過擬合的技術
* 背傳遞（Backpropagation）：根據誤差梯度更新參數的演算法
* 損失函數（Loss Function）：衡量預測與真實差距的函數
* 交叉熵損失（Cross-Entropy Loss）：用於分類與語言模型的常用損失函數
* 梯度下降（Gradient Descent）：根據梯度最小化損失函數的優化方法
* 學習率（Learning Rate）：控制參數更新步伐大小的超參數
* 批次（Batch）：訓練中同時處理的一組樣本
* 小批次（Mini-Batch）：比整批更小的訓練資料單位
* 過擬合（Overfitting）：模型過度貼合訓練資料而無法泛化
* 泛化能力（Generalization）：模型對未見資料仍表現良好的能力
* 正則化（Regularization）：避免模型過度複雜的方法
* 超參數（Hyperparameter）：由設計者設定的非訓練參數
* 優化器（Optimizer）：控制如何更新參數的演算法
* Adam：一種常用的自適應優化演算法
* GPU（Graphics Processing Unit）：用於加速平行運算的硬體
* TPU（Tensor Processing Unit）：Google 專門為深度學習設計的加速器
* 訓練資料集（Training Dataset）：用來更新模型參數的資料
* 驗證資料集（Validation Dataset）：用來調整超參數與檢測過擬合的資料
* 測試資料集（Test Dataset）：用來評估最終模型效能的資料
* 語料庫（Corpus）：用於模型訓練的大規模文字集合
* 樣本（Sample）：資料集中單一的訓練實例
* Token：文字被切分後的最小單位（字、詞或子詞）
* 分詞（Tokenization）：將文字拆解成 token 的過程
* 子詞單位（Subword Unit）：介於字與詞之間的拆分單位
* Byte Pair Encoding（BPE）：常用的子詞分詞演算法
* 熱度取樣（Temperature Sampling）：控制生成隨機性的方法
* Top-k 取樣（Top-k Sampling）：只在機率前 k 高的詞中抽樣生成
* Top-p 取樣（Nucleus Sampling）：只在累積機率達 p 的詞中抽樣生成
* 語言建模（Language Modeling）：學習文字序列分佈的任務
* 自然語言處理（Natural Language Processing, NLP）：研究電腦理解與生成語言的領域
* 機器學習（Machine Learning, ML）：透過資料自動學習規律的技術
* 深度學習（Deep Learning, DL）：基於多層神經網路的機器學習方法
* 神經網路（Neural Network）：模仿大腦神經元連接的數學模型
* 前向傳播（Forward Propagation）：輸入經過網路層層計算得到輸出的過程
* 激活函數（Activation Function）：引入非線性能力的數學函數
* ReLU（Rectified Linear Unit）：常用的激活函數，將負值截斷為零
* Softmax：將輸出轉換為機率分佈的函數
* Sigmoid：將數值壓縮到 0 與 1 之間的函數
* 語義向量（Semantic Vector）：向量化後能捕捉語意的數值表示
* 上下文（Context）：影響詞義的周邊文字環境
* 語境依存（Contextual Dependency）：詞義隨上下文改變的特性
* 語義消歧（Word Sense Disambiguation）：辨別詞在特定語境中的意義
* 序列到序列模型（Seq2Seq）：將一段輸入序列轉換成輸出序列的模型
* 雙向編碼器（Bidirectional Encoder）：同時考慮前後文的編碼方式
* Masking（遮罩）：忽略或隱藏部分輸入的技術
* 預測頭（Prediction Head）：接在模型最後，專門處理特定任務的層
* 多頭注意力（Multi-Head Attention）：並行計算多種注意力表示的技術
* 位置編碼（Positional Encoding）：讓模型辨識序列中位置資訊的方法
* 段落編碼（Segment Embedding）：標記不同句子或段落來源的編碼
* 訓練迭代（Epoch）：完整遍歷一次訓練資料集的過程
* 梯度消失（Gradient Vanishing）：深層網路中梯度趨近零導致學習困難
* 梯度爆炸（Gradient Explosion）：梯度過大導致訓練不穩定
* 權重初始化（Weight Initialization）：訓練開始前對參數設定初值的方法
* 語言模型頭（Language Modeling Head）：專門處理下一詞預測的輸出層
* 蒸餾（Distillation）：將大型模型知識壓縮到小型模型的技術
* 剪枝（Pruning）：刪除部分不重要參數以減少模型大小
* 量化（Quantization）：將浮點數參數轉換為低精度表示以加速推理
* 推理（Inference）：使用訓練好的模型進行預測或生成的過程
* 訓練曲線（Training Curve）：顯示損失或準確率隨訓練進展變化的圖表
* 遷移學習（Transfer Learning）：將已訓練模型應用於新任務的方法
* 零樣本學習（Zero-Shot Learning）：在無標註樣本下直接進行任務
* 少樣本學習（Few-Shot Learning）：僅使用少量樣本完成新任務
* 提示工程（Prompt Engineering）：設計輸入以引導模型生成所需輸出
* 語義相似度（Semantic Similarity）：衡量兩段文字語意接近程度
* 餘弦相似度（Cosine Similarity）：常用於向量間相似度的度量方法
* 嵌入空間（Embedding Space）：詞向量所在的高維數學空間
* 分佈式表示（Distributed Representation）：以多維數字向量表示語意的方法
* 注意力分數（Attention Score）：衡量一詞對另一詞的重要性
* 查詢（Query）：注意力機制中的查詢向量
* 鍵（Key）：注意力機制中的匹配向量
* 值（Value）：注意力機制中的資訊向量
* 掩碼注意力（Masked Attention）：限制模型只關注序列中特定部分的注意力
* 梯度檢查點（Gradient Checkpointing）：節省記憶體的訓練技巧
* 批次正規化（Batch Normalization）：對每個批次的輸入進行正規化的方法
* 指令微調（Instruction Tuning）：使用任務指令資料進行模型微調
* 對齊（Alignment）：調整模型輸出以符合人類價值或需求
* 模型漂移（Model Drift）：模型隨時間對真實世界失效的現象
* 泛用性（Versatility）：模型適應不同任務的能力
