NVIDIA-Certified Associate: Generative AI LLMs 重點整理
AssociateNVIDIA-Certified Associate: Generative AI LLMs

Core ML & AI Knowledge 重點整理

先免費試做 5 題

NCA-GENL 科目 G1 — Core ML & AI Knowledge

考試佔比:30%(最高權重科目) 本篇涵蓋 Domain 1 全部能力指標。依據來源:exam-blueprint、study-guide、dli-01、dli-03、hf-transformers-concepts、hf-peft-lora、cs224n-selected、blog-01-llms-enterprise。


核心概念

本科目圍繞「機器如何從資料中學習、深度神經網路如何訓練、Transformer 架構為何主導現代 LLM、以及如何高效地調適預訓練模型」四大主軸。考生必須能在給定情境下判斷合適的學習範式、損失函數、優化策略,並深入說明 self-attention 機制與 PEFT 方法(LoRA / QLoRA)的數學直覺與實務限制。

知識鏈核心邏輯:模型如何「學」(ML 範式與優化)→ 用什麼「結構」學(neural network 與 Transformer)→ 在什麼硬體上學(GPU)→ 學完之後如何「調教對齊」成可用的 LLM(alignment 與 PEFT)。


ML Foundations

Supervised vs unsupervised learning fundamentals

定義

機器學習依據訓練資料是否帶有標籤(label),分成三大範式:

範式資料形式目標典型演算法
Supervised Learning(x, y) 配對學習 f(x) → y線性回歸、SVM、決策樹、神經網路分類
Unsupervised Learning只有 x發現資料內部結構K-means、PCA、Autoencoder
Self-supervised Learning只有 x,但自動生成偽標籤利用資料本身建立監督信號BERT(MLM)、GPT(CLM)、CLIP

原理

Supervised learning 透過最小化預測值與真實標籤之間的損失函數(loss function),以 gradient descent 迭代更新模型參數。Unsupervised learning 不依賴標籤,而是尋找資料中的分群、密度或低維流形結構。Self-supervised learning 是 LLM 時代的核心:模型從海量未標注文字中自我生成學習信號,例如遮住部分 token 後預測它們,不需任何人工標注。

具體例子

  • Supervised:情緒分類(輸入評論 → 輸出 positive/negative)、圖像分類(ImageNet 120 萬張已標注圖片)。
  • Unsupervised:新聞文章主題分群(LDA)、使用者行為壓縮(PCA 降維後視覺化)。
  • Self-supervised:GPT pretraining 在 800GB Common Crawl 上自動以「下一個 token」為目標訓練,完全不需人工標注。BERT 的 Masked Language Modeling(MLM)遮住 15% token 後預測。

常見陷阱

  • 把 self-supervised 誤稱為 unsupervised:兩者的差異在於 self-supervised 確實有明確的 loss 信號(雖然偽標籤是自動生成的),因此學到的表示通常遠優於 unsupervised 方法。
  • 誤以為 LLM pretraining 是 supervised:pretraining 階段無人工標籤,只有從文字序列自動推導的 next-token target。

常考點:Self-supervised learning 是 BERT/GPT pretraining 的正確分類;考題常混淆三大範式,特別是 self-supervised 與 unsupervised 的邊界。


Loss functions and optimization

定義

Loss function(損失函數)量化模型預測值與真實值之間的差距;optimizer(優化器)決定如何利用梯度資訊更新參數以最小化 loss。

原理

Cross-entropy loss(分類任務):

LCE=c=1Cyclogp^c\mathcal{L}_{CE} = -\sum_{c=1}^{C} y_c \log \hat{p}_c

對於二元分類,簡化為 [ylogp^+(1y)log(1p^)]-[y \log \hat{p} + (1-y)\log(1-\hat{p})]。值愈低代表模型預測機率分布愈接近真實標籤 one-hot 分布。

Mean Squared Error(MSE)(回歸任務):

LMSE=1ni=1n(yiy^i)2\mathcal{L}_{MSE} = \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2

對離群值(outlier)更敏感,因為誤差被平方放大。

Gradient Descent 系列優化器

θt+1=θtηθL\theta_{t+1} = \theta_t - \eta \nabla_\theta \mathcal{L}

  • SGD:每次只用一個(或一個 mini-batch)樣本的梯度更新,噪聲大但能逃出局部極小值。
  • SGD + Momentum:加入動量項 vt+1=βvt+(1β)Lv_{t+1} = \beta v_t + (1-\beta)\nabla\mathcal{L},加速收斂。
  • Adam:結合一階(mean)和二階(variance)動量估計,自適應學習率。mt=β1mt1+(1β1)gtm_t = \beta_1 m_{t-1} + (1-\beta_1)g_tvt=β2vt1+(1β2)gt2v_t = \beta_2 v_{t-1} + (1-\beta_2)g_t^2,更新 θtηmt/(vt+ϵ)\theta_t - \eta \cdot m_t / (\sqrt{v_t} + \epsilon)
  • AdamW:Adam + 解耦 weight decay(L2 正則化與梯度不共用縮放),是訓練 Transformer 的業界標準。

具體例子

LLM pretraining 使用 cross-entropy 預測下一個 token;訓練 MNIST 影像分類器時同樣使用 cross-entropy,但做房價預測時改用 MSE。Fine-tuning LLaMA 通常選 AdamW,learning rate 約 2×1052 \times 10^{-5},加上 cosine learning rate schedule。

常見陷阱

  • 回歸任務錯誤使用 cross-entropy、分類任務錯誤使用 MSE。
  • 混淆 Adam 與 AdamW:AdamW 的 weight decay 正確套用在參數上而非梯度上,對 Transformer 至關重要。
  • 學習率(η\eta)太大 → loss 震盪或發散;太小 → 收斂過慢。

常考點:AdamW 是 Transformer 訓練的標準選擇;cross-entropy 對應分類、MSE 對應回歸;學習率是最關鍵超參數。


Overfitting, regularization, generalization

定義

  • Overfitting(過擬合):模型在訓練集上表現極佳,但在未見過的資料(validation/test set)上表現顯著下降——模型「記住」了訓練資料的噪聲而非泛化規律。
  • Underfitting(欠擬合):模型容量不足,連訓練集都學不好。
  • Generalization(泛化):模型在新資料上維持良好表現的能力。
  • Regularization(正則化):透過在訓練時施加約束或懲罰,抑制過擬合、提升泛化。

原理:Bias-Variance Tradeoff

Expected Error=Bias2+Variance+Irreducible Noise\text{Expected Error} = \text{Bias}^2 + \text{Variance} + \text{Irreducible Noise}

  • 高 bias → underfitting(模型假設太強,如線性模型擬合非線性資料)。
  • 高 variance → overfitting(模型過於複雜,對訓練資料微小變化反應過激)。

主要正則化技術:

  • Dropout:訓練時隨機將部分 neuron 輸出設為 0(機率 pp),迫使網路學習冗餘表示。推論時關閉。
  • L2 Weight Decay:在 loss 中加入 λθ22\lambda ||\theta||_2^2,懲罰大權重,讓參數向 0 收縮。
  • L1 Regularization:加入 λθ1\lambda ||\theta||_1,會產生稀疏解(部分權重正好為 0)。
  • Early Stopping:監控 validation loss,當它停止下降並開始上升時終止訓練,防止過度擬合訓練集。
  • Data Augmentation:增加訓練資料多樣性(隨機裁切、翻轉、顏色抖動),等效於增大訓練集規模。

具體例子

訓練曲線是診斷的核心工具:若訓練 loss 持續下降而 validation loss 先降後升(出現「剪刀差」),即過擬合。解法:加大 dropout 比例、降低 learning rate、縮短訓練 epoch、加入 weight decay。NVIDIA DLI Getting Started 課程中,在 CIFAR-10 加入 Dropout(p=0.5)後 validation accuracy 提升約 3–5%。

常見陷阱

  • 混淆 L1 與 L2:L1 產生稀疏,L2 讓權重小但不為零。
  • Dropout 在推論(eval 模式)時必須關閉(model.eval() in PyTorch 會自動處理);忘記切換會導致推論結果隨機且變差。
  • Early stopping 需使用獨立 validation set 而非 test set,否則 test set 資訊洩漏到訓練流程。

常考點:過擬合的訓練曲線特徵(training loss 繼續下降 + validation loss 上升);Dropout 在推論時必須關閉;L1 vs L2 差異。


Deep Learning

Neural network architectures

定義

深度神經網路(Deep Neural Network,DNN)由多層可學習的線性變換加上非線性激活函數組成,能夠從原始資料中自動學習層次化的特徵表示。

原理

Feed-forward Network(FFN / MLP):最基礎架構,每層做 h=σ(Wx+b)\mathbf{h} = \sigma(W\mathbf{x} + \mathbf{b})σ\sigma 為激活函數(ReLU、GELU、SiLU)。

Convolutional Neural Network(CNN):透過 convolution kernel 在空間上共享權重,利用「平移不變性」處理影像。關鍵操作:卷積、池化(max/avg pooling)、stride、padding。代表架構:ResNet、EfficientNet、VGG。

Recurrent Neural Network(RNN / LSTM / GRU):處理序列,隱藏狀態 ht=f(ht1,xt)h_t = f(h_{t-1}, x_t),但有 sequential bottleneck 與 vanishing gradient 問題,現已被 Transformer 大幅取代。

Residual Connections(殘差連接)y=F(x)+x\mathbf{y} = F(\mathbf{x}) + \mathbf{x},讓梯度有捷徑反向傳播,使訓練 100+ 層的網路成為可能(ResNet,He et al. 2016)。

Normalization

  • Batch Normalization(BatchNorm):對每個 batch 的同一 feature 維度做標準化,穩定訓練,適合 CNN。
  • Layer Normalization(LayerNorm):對每個 token/sample 的所有 feature 做標準化,適合 Transformer(batch size 不一致或序列長度可變時 BatchNorm 不適用)。

Attention Mechanism:允許模型動態加權關注序列中不同位置,是 Transformer 的核心(詳見 Transformers & LLMs 章節)。

具體例子

ResNet-50 在 ImageNet 上達到 76% top-1 accuracy,使用 skip connection 解決梯度消失;LLaMA 3 採用 RMSNorm(LayerNorm 的變體)+ SiLU 激活函數 + Rotary Position Embedding。

常見陷阱

  • 混淆 BatchNorm 與 LayerNorm 的適用場景:BatchNorm 依賴 batch statistics,在小 batch 或 autoregressive 生成時不穩定;LayerNorm 則不受 batch size 影響。
  • 激活函數選擇:ReLU 有 dying ReLU 問題(neuron 永久輸出 0),現代 LLM 多用 GELU 或 SiLU。

常考點:Residual connection 解決梯度消失;LayerNorm 用於 Transformer,BatchNorm 用於 CNN;CNN 利用平移不變性與參數共享。


Backpropagation and training dynamics

定義

Backpropagation(反向傳播)是透過鏈式法則(chain rule)計算 loss 對每個參數梯度的演算法,是所有深度學習訓練的核心。

原理

前向傳播(forward pass):輸入 x → 逐層計算 → 輸出 y^\hat{y} → 計算 loss L\mathcal{L}

反向傳播(backward pass)利用鏈式法則:

LWl=LhLhLhL1hl+1hlhlWl\frac{\partial \mathcal{L}}{\partial W_l} = \frac{\partial \mathcal{L}}{\partial h_L} \cdot \frac{\partial h_L}{\partial h_{L-1}} \cdots \frac{\partial h_{l+1}}{\partial h_l} \cdot \frac{\partial h_l}{\partial W_l}

現代框架(PyTorch、JAX)使用 automatic differentiation(autograd),在前向傳播時建立計算圖(computation graph),反向傳播時沿圖反向計算梯度。

Vanishing Gradients(梯度消失):當梯度在反向傳播時逐層相乘,若每層梯度 <1< 1,則梯度指數性縮小,早期層幾乎無法更新。觸發條件:sigmoid/tanh 激活函數(飽和區梯度接近 0)+ 很深的網路。

緩解方法:

  1. 使用 ReLU / GELU(非飽和)激活函數。
  2. Residual connections(梯度捷徑)。
  3. LayerNorm / BatchNorm(穩定中間層分布)。
  4. 謹慎的 weight initialization(Xavier、Kaiming/He)。

Exploding Gradients(梯度爆炸):梯度指數性增大,參數更新震盪。緩解方法:Gradient Clippingtorch.nn.utils.clip_grad_norm_(model.parameters(), max_norm=1.0))。

具體例子

訓練 12 層 BERT 時若不使用 LayerNorm 和 residual,loss 完全不收斂。PyTorch 標準訓練循環:loss.backward()optimizer.step()optimizer.zero_grad()

常見陷阱

  • 忘記在每個 step 呼叫 optimizer.zero_grad():梯度會累積(通常是 bug,但 gradient accumulation 技術刻意利用這個行為來模擬大 batch)。
  • 梯度消失不等於梯度爆炸:前者 loss 停滯不動,後者 loss 發散(NaN)。
  • Residual connections 不是消除梯度消失,而是讓梯度有一條「不經過非線性」的捷徑,使其至少能傳到前面的層。

常考點:vanishing gradient 的根本原因(飽和激活函數 + 深層連乘)及四種緩解方法;gradient clipping 用於爆炸梯度;autograd 自動計算計算圖。


GPU acceleration concepts

定義

GPU(Graphics Processing Unit)對深度學習訓練的加速來自其大規模並行計算架構——數千個 CUDA core 能夠同時執行矩陣乘法(GEMM),而神經網路訓練的主要計算瓶頸正是大量的 matrix multiplication。

原理

CPU vs GPU 架構差異

特性CPUGPU
Core 數量8–128數千–數萬 CUDA cores
設計目標低延遲,複雜控制流高吞吐,SIMD 平行計算
適合任務序列邏輯、分支大規模矩陣運算
記憶體頻寬(約)100 GB/s2–3 TB/s(H100)

Tensor Cores:NVIDIA Volta 架構起引入的專用矩陣計算單元,原生支援 FP16/BF16 的矩陣乘法,吞吐量比一般 CUDA core 高數倍。

Mixed Precision Training(混合精度訓練)

  • 前向/反向傳播使用 FP16 或 BF16(16-bit)以節省記憶體與提升速度。
  • 主要參數副本(master weights)保存在 FP32 以維持數值穩定性。
  • PyTorch:torch.cuda.amp.autocast() + GradScaler
  • BF16 比 FP16 更適合 LLM:BF16 有較大的指數範圍(8 bits vs FP16 的 5 bits),不易溢位,是 H100 的預設訓練格式。

記憶體優化策略

  • Gradient Checkpointing:前向傳播不保存所有中間激活,而是在反向傳播時重新計算,以計算換記憶體。
  • Quantization(量化):INT8/INT4 量化推論,大幅降低顯存需求(QLoRA 利用 4-bit NF4 量化)。

具體例子

在 H100 GPU 上使用 BF16 訓練 LLaMA 3-8B,比 FP32 快約 2–4 倍;QLoRA 在單張 24GB RTX 4090 上 fine-tune 7B 模型,記憶體降至 6–8GB。

常見陷阱

  • FP16 的數值範圍(最大 ~65504)容易溢位(inf/NaN),因此需要 GradScaler 動態縮放 loss;BF16 沒有這個問題(更大指數範圍)。
  • 量化會造成精度損失,但 QLoRA 論文顯示 4-bit NF4 量化的精度損失可接受(與 16-bit 相差 <1%)。

常考點:GPU 適合深度學習的根本原因(並行矩陣運算);Tensor Cores 原生加速 FP16/BF16;BF16 比 FP16 對 LLM 更友好(指數範圍更大);QLoRA = 4-bit 量化 + LoRA。


Transformers & LLMs

Self-attention and the Transformer block

定義

Self-attention(自注意力)是一種讓序列中每個位置都能「關注」序列中所有其他位置的機制,計算每個位置對輸出的加權貢獻。Transformer block 以 multi-head self-attention 為核心,結合 residual connection、LayerNorm 和 FFN 組成。

原理

給定輸入序列 XRn×dmodelX \in \mathbb{R}^{n \times d_{model}},分別投影為 Query、Key、Value:

Q=XWQ,K=XWK,V=XWVQ = XW_Q, \quad K = XW_K, \quad V = XW_V

Self-attention 輸出:

Attention(Q,K,V)=softmax ⁣(QKTdk)V\text{Attention}(Q, K, V) = \text{softmax}\!\left(\frac{QK^T}{\sqrt{d_k}}\right) V

  • QKTQK^T:計算所有 token pair 的相似度(點積),形狀為 n×nn \times n
  • dk\sqrt{d_k}(scaling factor):防止 dkd_k 大時點積過大、softmax 進入飽和區。
  • Softmax:將相似度轉為注意力權重(和為 1)。
  • 乘以 VV:以注意力權重加權聚合 value 向量。

Multi-Head Attention:並行執行 hh 個獨立的 attention head,每個 head 學習不同的子空間關係,最後 concat:

MultiHead(Q,K,V)=Concat(head1,,headh)WO\text{MultiHead}(Q,K,V) = \text{Concat}(\text{head}_1, \ldots, \text{head}_h) \cdot W^O

完整 Transformer Encoder block 結構

計算複雜度:Self-attention 的時間與記憶體複雜度為 O(n2d)O(n^2 d),其中 nn 為序列長度。這是長 context 的核心挑戰——context 從 512 擴展到 100K 時,記憶體增加約 38,000 倍。

位置編碼(Positional Encoding)

類型代表模型特點
Sinusoidal原始 Transformer固定頻率正弦,可外推長序列
Learned PEBERT、GPT-2可學習但無法外推
RoPELLaMA、Mistral旋轉矩陣編碼相對位置,主流
ALiBiMPTAttention bias 形式,外推性好

常見陷阱

  • 混淆 scaling factor:除以 dk\sqrt{d_k}(不是 dkd_k),是為了讓點積方差穩定在 1 附近。
  • Self-attention 是「全局」機制,每個 token 都能直接關注其他所有 token,不像 RNN 需要逐步傳遞——這是 Transformer 打敗 RNN 的關鍵。
  • Decoder 的 self-attention 使用 causal mask(遮住未來 token),確保自回歸生成時不洩漏未來資訊。

常考點:scaling dk\sqrt{d_k} 的目的;O(n2)O(n^2) 複雜度限制長 context;RoPE 是現代 LLM 的位置編碼主流;causal mask 讓 decoder 只看過去。


Encoder vs decoder vs encoder-decoder LLMs

定義

現代 LLM 分三種架構,各以不同的 attention pattern 和 pretraining objective 為特徵,適用於不同任務。

原理與比較

架構代表模型Attention PatternPretraining Objective強項任務
Encoder-onlyBERT、RoBERTa、DeBERTaBidirectional 雙向可見MLM(遮住 token 預測)分類、NER、Extractive QA、句向量
Decoder-onlyGPT、LLaMA、Mistral、QwenCausal 只看左側CLM(預測下一個 token)文字生成、對話、Code、推理
Encoder-DecoderT5、BART、mT5、mBARTEncoder 雙向 + Decoder 因果 + Cross-AttentionSpan Corruption 或 Denoising翻譯、摘要、Seq2Seq

架構選擇決策樹

具體例子

  • BERT:輸入「The [MASK] sat on the mat」,輸出預測被遮住的 token(cat)。Fine-tune 在 GLUE 上跑情緒分類,取 [CLS] token 加分類頭。
  • GPT / LLaMA:給定 prompt「What is the capital of France?」,autoregressive 地逐 token 生成「Paris」。
  • T5:輸入「translate English to German: Hello」,Encoder 理解後 Decoder 生成「Hallo」。T5 將所有 NLP 任務統一為 text-to-text 格式。

常見陷阱

  • 誤以為 BERT 適合生成任務:BERT 是雙向 encoder,沒有 causal masking,無法做 autoregressive 生成。
  • 現代「chat LLM」(ChatGPT、LLaMA 3 Instruct)是 decoder-only 架構,而非 encoder-decoder,這是常見誤解。
  • Encoder-decoder 的 decoder 使用 cross-attention 關注 encoder 的輸出,這個機制是原始 Transformer 論文(Vaswani 2017)的核心設計。

常考點:三種架構的 attention pattern 差異(雙向 vs 因果 vs 混合);任務對應架構選擇;BERT 不適合生成、GPT 不適合需要完整理解輸入的任務。


Tokenization and embeddings

定義

Tokenizer 將原始文字字串分割為 token(子詞單元),再映射為整數 ID。Embedding 層將 token ID 轉換為稠密向量,是模型理解語言的起點。

原理

主流 Tokenization 演算法

演算法代表模型原理特點
WordPieceBERT貪婪最大似然合併子詞連續子詞加 ## 前綴
BPE 或 Byte-level BPEGPT-2、LLaMA反覆合併最高頻率的 pairByte-level 確保任何 UTF-8 序列都能編碼(無 UNK)
SentencePiece 或 UnigramT5、mT5、ALBERT語言無關,不需先 pre-tokenize 空格多語言友好

Tokenization 的關鍵影響

  • 相同字串在不同模型中產生不同 token IDs,必須使用 AutoTokenizer.from_pretrained(model_name),不可混用 tokenizer。
  • 數字、程式碼、非英文語言往往被分割成更多 token。
  • Token 數量直接決定:輸入長度限制(context window)、API 費用、推論延遲。

Token Embeddings

模型的第一層是 embedding lookup table ERV×dmodelE \in \mathbb{R}^{|V| \times d_{model}},將 token ID ii 映射到 dmodeld_{model} 維向量 E[i]E[i]。加上 positional encoding 後進入 Transformer 層:

h0=E[token_ids]+PE\mathbf{h}_0 = E[\text{token\_ids}] + \text{PE}

句向量(Sentence Embeddings)

  • BERT 系列:取 [CLS] token 的最後隱藏狀態,或對所有 token 做 mean pooling。
  • 專門的 sentence-transformers 透過對比學習訓練,語義相似的句子 embedding 距離更小,用於 RAG 的 dense retrieval。

具體例子

「Hello world」在 LLaMA 3 tokenizer 分成 ["Hello", "▁world"](2 tokens),在 GPT-2 中可能是 ["Hello", "Ġworld"](同樣 2 tokens 但 ID 不同)。若把 BERT tokenizer 的輸出餵給 LLaMA,模型會產生亂碼。

Tokenization 流程視覺化

常見陷阱

  • OOV(Out-of-Vocabulary)問題:BPE/WordPiece 透過子詞分解避免 OOV,但罕見字仍可能被過度分割。
  • 計算 token 數時不能簡單等同於字數:英文平均約 1.3 tokens/word,中文約 2–3 tokens/character(取決於分詞器)。

常考點:同模型必須用對應 tokenizer;Byte-level BPE 無 UNK;token 數 ≠ 字數;[CLS] 向量用於 BERT 分類,mean pooling 用於 sentence embedding。


Pretraining objectives and scaling laws

定義

Pretraining objective 是模型在大量未標注文字上自我學習的信號;scaling laws 描述模型效能如何隨模型大小、資料量、計算量等比例擴增。

原理:三大 Pretraining Objectives

1. Masked Language Modeling(MLM)— BERT

隨機遮住輸入序列 15% 的 token,要求模型從雙向 context 預測原始 token:

LMLM=imaskedlogP(xixunmasked)\mathcal{L}_{MLM} = -\sum_{i \in \text{masked}} \log P(x_i \mid x_{\text{unmasked}})

15% 中:80% 換為 [MASK]、10% 換為隨機 token、10% 保留原 token。

2. Causal Language Modeling(CLM / Next Token Prediction)— GPT / LLaMA

預測下一個 token,是 autoregressive 語言建模:

LCLM=t=1TlogP(xtx<t)\mathcal{L}_{CLM} = -\sum_{t=1}^{T} \log P(x_t \mid x_{<t})

訓練目標簡單、資料需求無限,是 LLaMA、GPT、Mistral 等 decoder-only 模型的基礎。

3. Span Corruption — T5

隨機遮住連續的 span(而非單一 token),要求 decoder 預測被遮掉的 span。整合 MLM 的優點並更符合 Seq2Seq 架構。

Objective模型方向優點
MLMBERT雙向上下文理解強
CLMGPT、LLaMA單向生成能力強
Span CorruptionT5Enc 雙向 + Dec 單向Seq2Seq 任務強

Scaling Laws(Chinchilla,Hoffmann et al. 2022)

Chinchilla 研究得出的計算最優(compute-optimal)結論:

Ntokens20×NparamsN_{tokens} \approx 20 \times N_{params}

即模型參數量(NN)與訓練 token 數應當等比成長;給定固定計算預算,訓練較小的模型到更多 token 比訓練超大模型到較少 token 效果更好。

例:70B 模型應至少訓練在 1.4T tokens 上(LLaMA 3-70B 實際訓練了 15T tokens,超出 Chinchilla 最優值以換取推論效率)。

Emergent Abilities(湧現能力):當模型達到某個規模閾值,某些能力(如 few-shot arithmetic、CoT reasoning)突然出現,在小模型上完全不存在。

具體例子

GPT-3(175B)在 few-shot 情境下展現的 chain-of-thought 推理是典型的 emergent ability;GPT-2(1.5B)在相同設定下幾乎無法做到。

常見陷阱

  • MLM 不能直接用於生成任務(雙向 attention),CLM 才能做 autoregressive 生成。
  • Chinchilla 規則是計算最優,不是性能絕對最優;使用更多 token 訓練(如 LLaMA 3)能讓小模型推論效能更強。
  • Scaling laws 不保證 emergent abilities 的出現時機——能力的突現依然難以預測。

常考點:BERT 用 MLM(雙向)、GPT 用 CLM(因果)、T5 用 span corruption;Chinchilla 最優比例 Ntokens20×NparamsN_{tokens} \approx 20 \times N_{params};emergent abilities 在大模型突然出現。


LLM Adaptation & Alignment

SFT, RLHF, DPO and alignment

定義

Alignment(對齊)是讓 LLM 的行為符合人類意圖、價值觀和安全要求的過程。Pretraining 只讓模型學會語言,alignment 讓模型學會「如何有用且無害地回答問題」。三個主要方法:SFT、RLHF、DPO。

原理

SFT(Supervised Fine-Tuning)

在高品質的 (prompt, ideal-response) 配對資料上,用標準 cross-entropy loss fine-tune 模型:

LSFT=tlogπθ(ytx,y<t)\mathcal{L}_{SFT} = -\sum_t \log \pi_\theta(y_t \mid x, y_{<t})

資料來源:人工撰寫示範(昂貴但高品質)、GPT-4 蒸餾(快速但有法律風險)、Self-Instruct(自動生成)。SFT 是 RLHF 和 DPO 的前置步驟。

RLHF(Reinforcement Learning from Human Feedback)三階段流程

  1. SFT:建立基礎 instruction-following 能力。
  2. Reward Model(RM)訓練:人工對同一 prompt 的多個回覆排名,訓練 RM 預測哪個回覆更好。
  3. PPO 優化:用 RM 的分數作為 reward,以 PPO 演算法更新 LLM policy,同時加入 KL 懲罰避免模型偏離 SFT 基準:

LPPO=E ⁣[rθ(x,y)βlogπθ(yx)πSFT(yx)]\mathcal{L}_{PPO} = -\mathbb{E}\!\left[r_\theta(x,y) - \beta \log\frac{\pi_\theta(y|x)}{\pi_{SFT}(y|x)}\right]

DPO(Direct Preference Optimization)

DPO 跳過 reward model 和 PPO,直接在偏好對 (yw,yl)(y_w, y_l) 上訓練:

LDPO=E ⁣[logσ ⁣(βlogπθ(ywx)πref(ywx)βlogπθ(ylx)πref(ylx))]\mathcal{L}_{DPO} = -\mathbb{E}\!\left[\log \sigma\!\left(\beta \log\frac{\pi_\theta(y_w|x)}{\pi_{ref}(y_w|x)} - \beta \log\frac{\pi_\theta(y_l|x)}{\pi_{ref}(y_l|x)}\right)\right]

  • ywy_w:被偏好的回覆(winner)
  • yly_l:被拒絕的回覆(loser)
  • πref\pi_{ref}:SFT 參考模型(固定不更新)

DPO 更穩定、實作更簡單,是近年主流(LLaMA 3、Mistral 均使用 DPO 或其變體)。

方法比較

方法優點缺點適用場景
SFT簡單直接,快速啟動受限於示範資料品質所有 alignment 的第一步
RLHF能超越示範資料,強大訓練不穩定,RM 可被 hacked高要求商業模型 GPT-4
DPO穩定,無需 RM,省計算對偏好資料品質敏感資源有限的開源調優

具體例子

ChatGPT 最早使用 RLHF 三階段(InstructGPT 論文,Ouyang et al. 2022)。LLaMA 3 Instruct 使用 SFT + DPO 流程。Constitutional AI(Claude)使用 AI-generated feedback 取代人工標注,規模更易擴展。

常見陷阱

  • RLHF 的 PPO 容易 reward hacking:模型學會「說 RM 喜歡的話」而非真正有用,需 KL 懲罰控制偏移程度。
  • DPO 不等於完全取代 RLHF:在極高品質需求的應用(如醫療),RLHF 的動態 reward 反饋仍有優勢。
  • SFT 之後直接部署(跳過 alignment)的模型容易 follow 有害指令——alignment 步驟不可省略。

常考點:SFT → RLHF 三階段流程;DPO 跳過 reward model 直接最大化偏好對的 log ratio;KL 懲罰防止 reward hacking;現代開源模型多用 DPO。


PEFT methods: LoRA, QLoRA, adapters

定義

Parameter-Efficient Fine-Tuning(PEFT)是一類只更新模型參數的小子集(甚至是額外插入的少量參數),同時凍結大部分預訓練權重的微調方法,使大模型在有限資源下完成任務特化。

原理:LoRA(Low-Rank Adaptation)

核心思想:大型預訓練模型的權重更新 ΔW\Delta W 具有低秩(low-rank)結構,可以用兩個小矩陣的乘積近似:

W=W+ΔW=W+αrBAW' = W + \Delta W = W + \frac{\alpha}{r} BA

  • WRdout×dinW \in \mathbb{R}^{d_{out} \times d_{in}}:凍結的原始權重
  • BRdout×rB \in \mathbb{R}^{d_{out} \times r}:初始化為 0\mathbf{0}
  • ARr×dinA \in \mathbb{R}^{r \times d_{in}}:用 Gaussian 初始化
  • rr:rank(秩),通常 8–64
  • α\alpha:縮放因子,通常 α=2r\alpha = 2rα=r\alpha = r

原始參數量:dout×dind_{out} \times d_{in};LoRA 新增:r×(din+dout)r \times (d_{in} + d_{out}),當 rdr \ll d 時,可訓練參數量大幅減少(約 0.5–1%)。

初始化策略(重要):BB 初始化為 0\mathbf{0}AA 用正態分佈,使訓練開始時 ΔW=BA=0\Delta W = BA = \mathbf{0}——即 fine-tuning 的起點與原始模型完全相同。

LoRA 套用位置(典型配置)

QLoRA(Quantized LoRA)

在 LoRA 基礎上加入 4-bit NF4(Normal Float 4)量化:

  1. 將 base model 量化為 4-bit NF4(凍結),顯存大幅降低。
  2. 在 BF16/FP16 精度的 LoRA adapter 上計算梯度。
  3. Double Quantization(量化量化常數本身)進一步節省記憶體。

記憶體比較

方法7B 模型顯存可訓練參數比例
Full Fine-tuning~112 GB(FP32)或 ~56 GB(BF16)100%
LoRA(r=8,BF16)~15–20 GB~0.5–1%
QLoRA(r=8,NF4)~6–8 GB~0.5–1%

其他 PEFT 方法

  • Prefix Tuning:在每層 attention 的 K/V 前加入可學習的 prefix token(soft prompt per layer),只訓練 prefix 向量。
  • Prompt Tuning:只在輸入層加入可學習的 soft prompt 向量(比 prefix tuning 更輕量)。
  • Adapter(Houlsby / Pfeiffer):在每個 Transformer block 插入小型 bottleneck MLP(drdd \to r \to d),只訓練 adapter 權重。
  • IA3:為 K、V、FFN 乘以可學習的縮放向量,極少參數量。

PEFT 方法特性比較

具體例子

使用 HuggingFace PEFT 庫,對 LLaMA 3-8B 做 QLoRA fine-tuning:

from peft import LoraConfig, get_peft_model config = LoraConfig( r=8, lora_alpha=16, target_modules=["q_proj", "v_proj"], lora_dropout=0.05, bias="none", task_type="CAUSAL_LM" ) model = get_peft_model(base_model, config) model.print_trainable_parameters() # trainable params: 4,194,304 / 8,030,261,248 = 0.052%

常見陷阱

  • LoRA 的 BB 矩陣必須初始化為零:若隨機初始化 BB,訓練起始點的 ΔW0\Delta W \neq 0,等於沒有繼承預訓練知識的起點。
  • rank 越高不一定越好:rank 過高可能過擬合(尤其資料少時);通常 r=8 是合理起點。
  • LoRA 在推論時可以 merge 回 base model(W=W+BAW' = W + BA),不增加推論延遲;如果不 merge,adapter forward 有輕微額外計算。
  • QLoRA 只是 fine-tuning 技術,最終可以 dequantize/merge 後部署為全精度模型,或保持量化格式以節省推論顯存。

常考點:LoRA 公式 W=W+αrBAW' = W + \frac{\alpha}{r}BABB 初始化必須為 0\mathbf{0};rank 典型值 8–64;QLoRA = 4-bit NF4 + BF16 LoRA;PEFT 的核心優勢是凍結 99%+ 參數、只更新 adapter,使 7B 模型能在單卡 fine-tune。


總整理速查表

能力指標核心公式 / 關鍵數字最常考陷阱
Supervised vs UnsupervisedSelf-supervised 不等於 UnsupervisedBERT/GPT 是 self-supervised
Loss & OptimizationCross-entropy 分類;MSE 回歸;AdamW 是 Transformer 標準L2 weight decay 解耦於梯度
Overfitting & Regularizationtrain 下降 + val 上升 = overfitting;Dropout 在 eval 關閉L1 稀疏 vs L2 小但非零
Neural ArchitecturesResidual 解決梯度消失;LayerNorm for TransformerBatchNorm 不適合小 batch
BackpropagationVanishing:sigmoid 加深層;Exploding:gradient clippingautograd 自動建計算圖
GPU AccelerationBF16 優於 FP16 for LLM(更大指數範圍)FP16 需 GradScaler
Self-Attentionsoftmax(QKT / sqrt(dk)) V;複雜度 O(n^2)scaling 除 sqrt(dk) 非 dk
Encoder vs DecoderBERT 雙向 + MLM;GPT 因果 + CLM;T5 Enc-Dec + SpanChat LLM 是 decoder-only
TokenizationBPE 無 UNK;必須用對應 tokenizertoken 數不等於字數
Scaling LawsN_tokens 約等於 20 乘以 N_params(Chinchilla)Emergent abilities 不可預測
SFT / RLHF / DPODPO 跳過 RM;KL 防 reward hackingSFT 是 RLHF/DPO 的前置步驟
LoRA / QLoRAW' = W + alpha/r * BA;QLoRA = 4-bit + LoRAB 初始化必須為 0

依據來源:01-exam-blueprint.md02-study-guide.mddli-01-getting-started-deep-learning.mddli-03-transformer-nlp.mdhf-transformers-concepts.mdhf-peft-lora.mdcs224n-selected.mdblog-01-llms-enterprise.md

看懂了,接著就要練

免費開始練「Core ML & AI Knowledge」

註冊即可用 AI 助教、智慧複習與完整題庫,把重點整理讀到的東西真正練起來。

同證照其他重點整理