# 語言模型的基本原理 * 大型語言模型透過預測「下一個詞」來生成文字 * 模型不是只選一個詞,而是為所有可能的詞分配機率 * 為了回應更自然,會隨機選擇一些機率較低的詞 # 訓練與參數 * 模型依靠龐大的文字資料進行訓練 * 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):模型適應不同任務的能力