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(分類任務):
對於二元分類,簡化為 。值愈低代表模型預測機率分布愈接近真實標籤 one-hot 分布。
Mean Squared Error(MSE)(回歸任務):
對離群值(outlier)更敏感,因為誤差被平方放大。
Gradient Descent 系列優化器:
- SGD:每次只用一個(或一個 mini-batch)樣本的梯度更新,噪聲大但能逃出局部極小值。
- SGD + Momentum:加入動量項 ,加速收斂。
- Adam:結合一階(mean)和二階(variance)動量估計,自適應學習率。,,更新 。
- AdamW:Adam + 解耦 weight decay(L2 正則化與梯度不共用縮放),是訓練 Transformer 的業界標準。
具體例子
LLM pretraining 使用 cross-entropy 預測下一個 token;訓練 MNIST 影像分類器時同樣使用 cross-entropy,但做房價預測時改用 MSE。Fine-tuning LLaMA 通常選 AdamW,learning rate 約 ,加上 cosine learning rate schedule。
常見陷阱
- 回歸任務錯誤使用 cross-entropy、分類任務錯誤使用 MSE。
- 混淆 Adam 與 AdamW:AdamW 的 weight decay 正確套用在參數上而非梯度上,對 Transformer 至關重要。
- 學習率()太大 → loss 震盪或發散;太小 → 收斂過慢。
常考點:AdamW 是 Transformer 訓練的標準選擇;cross-entropy 對應分類、MSE 對應回歸;學習率是最關鍵超參數。
Overfitting, regularization, generalization
定義
- Overfitting(過擬合):模型在訓練集上表現極佳,但在未見過的資料(validation/test set)上表現顯著下降——模型「記住」了訓練資料的噪聲而非泛化規律。
- Underfitting(欠擬合):模型容量不足,連訓練集都學不好。
- Generalization(泛化):模型在新資料上維持良好表現的能力。
- Regularization(正則化):透過在訓練時施加約束或懲罰,抑制過擬合、提升泛化。
原理:Bias-Variance Tradeoff
- 高 bias → underfitting(模型假設太強,如線性模型擬合非線性資料)。
- 高 variance → overfitting(模型過於複雜,對訓練資料微小變化反應過激)。
主要正則化技術:
- Dropout:訓練時隨機將部分 neuron 輸出設為 0(機率 ),迫使網路學習冗餘表示。推論時關閉。
- L2 Weight Decay:在 loss 中加入 ,懲罰大權重,讓參數向 0 收縮。
- L1 Regularization:加入 ,會產生稀疏解(部分權重正好為 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):最基礎架構,每層做 , 為激活函數(ReLU、GELU、SiLU)。
Convolutional Neural Network(CNN):透過 convolution kernel 在空間上共享權重,利用「平移不變性」處理影像。關鍵操作:卷積、池化(max/avg pooling)、stride、padding。代表架構:ResNet、EfficientNet、VGG。
Recurrent Neural Network(RNN / LSTM / GRU):處理序列,隱藏狀態 ,但有 sequential bottleneck 與 vanishing gradient 問題,現已被 Transformer 大幅取代。
Residual Connections(殘差連接):,讓梯度有捷徑反向傳播,使訓練 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 → 逐層計算 → 輸出 → 計算 loss 。
反向傳播(backward pass)利用鏈式法則:
現代框架(PyTorch、JAX)使用 automatic differentiation(autograd),在前向傳播時建立計算圖(computation graph),反向傳播時沿圖反向計算梯度。
Vanishing Gradients(梯度消失):當梯度在反向傳播時逐層相乘,若每層梯度 ,則梯度指數性縮小,早期層幾乎無法更新。觸發條件:sigmoid/tanh 激活函數(飽和區梯度接近 0)+ 很深的網路。
緩解方法:
- 使用 ReLU / GELU(非飽和)激活函數。
- Residual connections(梯度捷徑)。
- LayerNorm / BatchNorm(穩定中間層分布)。
- 謹慎的 weight initialization(Xavier、Kaiming/He)。
Exploding Gradients(梯度爆炸):梯度指數性增大,參數更新震盪。緩解方法:Gradient Clipping(torch.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 架構差異:
| 特性 | CPU | GPU |
|---|---|---|
| Core 數量 | 8–128 | 數千–數萬 CUDA cores |
| 設計目標 | 低延遲,複雜控制流 | 高吞吐,SIMD 平行計算 |
| 適合任務 | 序列邏輯、分支 | 大規模矩陣運算 |
| 記憶體頻寬(約) | 100 GB/s | 2–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 組成。
原理
給定輸入序列 ,分別投影為 Query、Key、Value:
Self-attention 輸出:
- :計算所有 token pair 的相似度(點積),形狀為 。
- (scaling factor):防止 大時點積過大、softmax 進入飽和區。
- Softmax:將相似度轉為注意力權重(和為 1)。
- 乘以 :以注意力權重加權聚合 value 向量。
Multi-Head Attention:並行執行 個獨立的 attention head,每個 head 學習不同的子空間關係,最後 concat:
完整 Transformer Encoder block 結構:
計算複雜度:Self-attention 的時間與記憶體複雜度為 ,其中 為序列長度。這是長 context 的核心挑戰——context 從 512 擴展到 100K 時,記憶體增加約 38,000 倍。
位置編碼(Positional Encoding):
| 類型 | 代表模型 | 特點 |
|---|---|---|
| Sinusoidal | 原始 Transformer | 固定頻率正弦,可外推長序列 |
| Learned PE | BERT、GPT-2 | 可學習但無法外推 |
| RoPE | LLaMA、Mistral | 旋轉矩陣編碼相對位置,主流 |
| ALiBi | MPT | Attention bias 形式,外推性好 |
常見陷阱
- 混淆 scaling factor:除以 (不是 ),是為了讓點積方差穩定在 1 附近。
- Self-attention 是「全局」機制,每個 token 都能直接關注其他所有 token,不像 RNN 需要逐步傳遞——這是 Transformer 打敗 RNN 的關鍵。
- Decoder 的 self-attention 使用 causal mask(遮住未來 token),確保自回歸生成時不洩漏未來資訊。
常考點:scaling 的目的; 複雜度限制長 context;RoPE 是現代 LLM 的位置編碼主流;causal mask 讓 decoder 只看過去。
Encoder vs decoder vs encoder-decoder LLMs
定義
現代 LLM 分三種架構,各以不同的 attention pattern 和 pretraining objective 為特徵,適用於不同任務。
原理與比較
| 架構 | 代表模型 | Attention Pattern | Pretraining Objective | 強項任務 |
|---|---|---|---|---|
| Encoder-only | BERT、RoBERTa、DeBERTa | Bidirectional 雙向可見 | MLM(遮住 token 預測) | 分類、NER、Extractive QA、句向量 |
| Decoder-only | GPT、LLaMA、Mistral、Qwen | Causal 只看左側 | CLM(預測下一個 token) | 文字生成、對話、Code、推理 |
| Encoder-Decoder | T5、BART、mT5、mBART | Encoder 雙向 + Decoder 因果 + Cross-Attention | Span 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 演算法:
| 演算法 | 代表模型 | 原理 | 特點 |
|---|---|---|---|
| WordPiece | BERT | 貪婪最大似然合併子詞 | 連續子詞加 ## 前綴 |
| BPE 或 Byte-level BPE | GPT-2、LLaMA | 反覆合併最高頻率的 pair | Byte-level 確保任何 UTF-8 序列都能編碼(無 UNK) |
| SentencePiece 或 Unigram | T5、mT5、ALBERT | 語言無關,不需先 pre-tokenize 空格 | 多語言友好 |
Tokenization 的關鍵影響:
- 相同字串在不同模型中產生不同 token IDs,必須使用
AutoTokenizer.from_pretrained(model_name),不可混用 tokenizer。 - 數字、程式碼、非英文語言往往被分割成更多 token。
- Token 數量直接決定:輸入長度限制(context window)、API 費用、推論延遲。
Token Embeddings:
模型的第一層是 embedding lookup table ,將 token ID 映射到 維向量 。加上 positional encoding 後進入 Transformer 層:
句向量(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:
15% 中:80% 換為 [MASK]、10% 換為隨機 token、10% 保留原 token。
2. Causal Language Modeling(CLM / Next Token Prediction)— GPT / LLaMA
預測下一個 token,是 autoregressive 語言建模:
訓練目標簡單、資料需求無限,是 LLaMA、GPT、Mistral 等 decoder-only 模型的基礎。
3. Span Corruption — T5
隨機遮住連續的 span(而非單一 token),要求 decoder 預測被遮掉的 span。整合 MLM 的優點並更符合 Seq2Seq 架構。
| Objective | 模型 | 方向 | 優點 |
|---|---|---|---|
| MLM | BERT | 雙向 | 上下文理解強 |
| CLM | GPT、LLaMA | 單向 | 生成能力強 |
| Span Corruption | T5 | Enc 雙向 + Dec 單向 | Seq2Seq 任務強 |
Scaling Laws(Chinchilla,Hoffmann et al. 2022)
Chinchilla 研究得出的計算最優(compute-optimal)結論:
即模型參數量()與訓練 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 最優比例 ;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 模型:
資料來源:人工撰寫示範(昂貴但高品質)、GPT-4 蒸餾(快速但有法律風險)、Self-Instruct(自動生成)。SFT 是 RLHF 和 DPO 的前置步驟。
RLHF(Reinforcement Learning from Human Feedback)三階段流程:
- SFT:建立基礎 instruction-following 能力。
- Reward Model(RM)訓練:人工對同一 prompt 的多個回覆排名,訓練 RM 預測哪個回覆更好。
- PPO 優化:用 RM 的分數作為 reward,以 PPO 演算法更新 LLM policy,同時加入 KL 懲罰避免模型偏離 SFT 基準:
DPO(Direct Preference Optimization)
DPO 跳過 reward model 和 PPO,直接在偏好對 上訓練:
- :被偏好的回覆(winner)
- :被拒絕的回覆(loser)
- :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)
核心思想:大型預訓練模型的權重更新 具有低秩(low-rank)結構,可以用兩個小矩陣的乘積近似:
- :凍結的原始權重
- :初始化為
- :用 Gaussian 初始化
- :rank(秩),通常 8–64
- :縮放因子,通常 或
原始參數量:;LoRA 新增:,當 時,可訓練參數量大幅減少(約 0.5–1%)。
初始化策略(重要): 初始化為 , 用正態分佈,使訓練開始時 ——即 fine-tuning 的起點與原始模型完全相同。
LoRA 套用位置(典型配置):
QLoRA(Quantized LoRA)
在 LoRA 基礎上加入 4-bit NF4(Normal Float 4)量化:
- 將 base model 量化為 4-bit NF4(凍結),顯存大幅降低。
- 在 BF16/FP16 精度的 LoRA adapter 上計算梯度。
- 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(),只訓練 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 的 矩陣必須初始化為零:若隨機初始化 ,訓練起始點的 ,等於沒有繼承預訓練知識的起點。
- rank 越高不一定越好:rank 過高可能過擬合(尤其資料少時);通常 r=8 是合理起點。
- LoRA 在推論時可以 merge 回 base model(),不增加推論延遲;如果不 merge,adapter forward 有輕微額外計算。
- QLoRA 只是 fine-tuning 技術,最終可以 dequantize/merge 後部署為全精度模型,或保持量化格式以節省推論顯存。
常考點:LoRA 公式 ; 初始化必須為 ;rank 典型值 8–64;QLoRA = 4-bit NF4 + BF16 LoRA;PEFT 的核心優勢是凍結 99%+ 參數、只更新 adapter,使 7B 模型能在單卡 fine-tune。
總整理速查表
| 能力指標 | 核心公式 / 關鍵數字 | 最常考陷阱 |
|---|---|---|
| Supervised vs Unsupervised | Self-supervised 不等於 Unsupervised | BERT/GPT 是 self-supervised |
| Loss & Optimization | Cross-entropy 分類;MSE 回歸;AdamW 是 Transformer 標準 | L2 weight decay 解耦於梯度 |
| Overfitting & Regularization | train 下降 + val 上升 = overfitting;Dropout 在 eval 關閉 | L1 稀疏 vs L2 小但非零 |
| Neural Architectures | Residual 解決梯度消失;LayerNorm for Transformer | BatchNorm 不適合小 batch |
| Backpropagation | Vanishing:sigmoid 加深層;Exploding:gradient clipping | autograd 自動建計算圖 |
| GPU Acceleration | BF16 優於 FP16 for LLM(更大指數範圍) | FP16 需 GradScaler |
| Self-Attention | softmax(QKT / sqrt(dk)) V;複雜度 O(n^2) | scaling 除 sqrt(dk) 非 dk |
| Encoder vs Decoder | BERT 雙向 + MLM;GPT 因果 + CLM;T5 Enc-Dec + Span | Chat LLM 是 decoder-only |
| Tokenization | BPE 無 UNK;必須用對應 tokenizer | token 數不等於字數 |
| Scaling Laws | N_tokens 約等於 20 乘以 N_params(Chinchilla) | Emergent abilities 不可預測 |
| SFT / RLHF / DPO | DPO 跳過 RM;KL 防 reward hacking | SFT 是 RLHF/DPO 的前置步驟 |
| LoRA / QLoRA | W' = W + alpha/r * BA;QLoRA = 4-bit + LoRA | B 初始化必須為 0 |
依據來源:01-exam-blueprint.md、02-study-guide.md、dli-01-getting-started-deep-learning.md、dli-03-transformer-nlp.md、hf-transformers-concepts.md、hf-peft-lora.md、cs224n-selected.md、blog-01-llms-enterprise.md