Chuyển đến nội dung chính

第5課:訓練與超參數調校

SageMaker Training Jobs:執行個體類型、Pipe Mode vs File Mode。 分散式訓練:數據並行 vs 模型並行。 自動模型調校(HPO):貝葉斯 vs 隨機 vs 網格搜尋。 Spot Instance Training降低成本。

SageMaker Training & Hyperparameter Tuning

SageMaker Training Jobs與超參數調校:分散式訓練、Spot Instances、HPO策略

1. SageMaker Training Jobs

SageMaker Training Jobs在託管運算基礎設施上執行ML訓練程式碼。訓練在臨時執行個體上進行 — 僅在執行時計費。

Training Job Lifecycle:

  Submit Job ──→ Provision Instances ──→ Download Data
                                              ↓
                                       Run Training Code
                                              ↓
                                       Save Model to S3
                                              ↓
                                       Terminate Instances  

2. 訓練用執行個體類型

執行個體系列硬體最適用途
ml.c5CPU最佳化表格ML、XGBoost、sklearn
ml.m5通用CPU輕量訓練、數據處理
ml.p3V100 GPU深度學習訓練
ml.p4dA100 GPU(8x)大規模DL、分散式訓練
ml.g4dnT4 GPU(高性價比)中小型DL模型
ml.trn1AWS TrainiumLLM訓練、成本最佳化

3. 分散式訓練

當模型或數據集太大無法在單一執行個體上處理時,需要跨多個執行個體進行分散式訓練。

策略運作方式使用時機
數據並行每個執行個體有完整模型副本,在數據子集上訓練,同步梯度數據集太大,模型可裝入1個GPU
模型並行模型拆分到多個執行個體,每個執行個體包含一部分模型太大無法裝入1個GPU(LLMs)
Data Parallelism:

Instance 1 [Full Model] ──→ Train on data shard A ──→ ↓
Instance 2 [Full Model] ──→ Train on data shard B ──→ ↓  AllReduce
Instance 3 [Full Model] ──→ Train on data shard C ──→ ↓  (sync gradients)
                                                          ↓
                                              Updated Model Weights

Model Parallelism:

Instance 1 [Layers 1-4]  ──→ forward pass ──→
Instance 2 [Layers 5-8]  ──→ forward pass ──→
Instance 3 [Layers 9-12] ──→ forward pass ──→ output

考試提示: SageMaker提供SageMaker Distributed函式庫,包含2個模組:(1) smdistributed.dataparallel — 最佳化的AllReduce;(2) smdistributed.modelparallel — 自動管線並行。當題目問「大型模型訓練」→ 模型並行。

4. 自動模型調校(HPO)

超參數最佳化(HPO)通過執行多個不同配置的訓練工作,自動找出最佳超參數。

策略運作方式取捨
隨機搜尋從範圍中隨機取樣超參數快速、良好的基準線
網格搜尋嘗試所有組合窮舉、昂貴、不適合大搜尋空間
貝葉斯最佳化結果的機率模型,建議最佳下一個配置高效、從先前試驗中學習 — SageMaker預設
Hyperband提前停止表現不佳的試驗資源高效、快速

考試提示: SageMaker AMT(自動模型調校)預設使用貝葉斯最佳化。它會參考先前工作的結果來建議下一組超參數 — 智慧搜尋,而非暴力法。

5. Spot Instance訓練

SageMaker支援使用EC2 Spot Instances進行訓練工作,與隨需相比可節省高達90%的成本。

功能詳情
MaxWaitTimeInSeconds等待Spot容量的最長時間
檢查點定期將模型儲存至S3 — 中斷後可恢復
use_spot_instances=TrueSageMaker Estimator中的參數

考試提示: 當題目問「降低訓練成本」時,答案通常是Spot Instances搭配檢查點。檢查點非常重要,可避免Spot Instance被終止時遺失進度。

6. 偏差-變異數取捨

問題症狀原因解決方案
高偏差(欠擬合)訓練誤差高、測試誤差高模型太簡單增加模型複雜度、增加特徵、減少正規化
高變異數(過擬合)訓練誤差低、測試誤差高模型太複雜增加數據、dropout、正規化、特徵選擇
平衡訓練誤差低、測試誤差低(接近)良好擬合部署模型

7. 練習題

Q1: 一家公司正在訓練一個無法裝入單一GPU執行個體的大型深度學習模型。應該使用哪種SageMaker分散式訓練策略?

  • A) 數據並行
  • B) 模型並行 ✓
  • C) 僅管線並行
  • D) 增加批次大小

解析:模型並行將模型本身拆分到多個GPU執行個體上,允許訓練無法裝入單一GPU記憶體的模型。數據並行在每個執行個體上保留完整的模型副本,當模型本身太大時無法解決問題。

Q2: 團隊想要將執行500個超參數調校工作的成本降至最低。訓練可以容忍中斷。最具成本效益的方法是什麼?

  • A) 使用更大的執行個體來加快工作速度
  • B) 使用Spot Instances並啟用檢查點 ✓
  • C) 使用網格搜尋代替貝葉斯最佳化
  • D) 減少訓練epoch數

解析:Spot Instances與隨需定價相比可節省高達90%。啟用檢查點後,被中斷的工作會將狀態儲存至S3並可恢復,使Spot Instances適用於長時間的HPO工作。

Q3: 一個模型在訓練數據上達到95%的accuracy,但在測試集上只有62%。這表明什麼問題?

  • A) 欠擬合 / 高偏差
  • B) 過擬合 / 高變異數 ✓
  • C) 數據洩漏
  • D) 類別不平衡

解析:訓練accuracy(95%)和測試accuracy(62%)之間的巨大差距是過擬合(高變異數)的典型徵兆。模型記住了訓練數據但無法泛化。解決方案:更多數據、正規化(L1/L2、dropout)、降低模型複雜度。