<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Training on YennJ12 Engineering Blog</title><link>https://yennj12.js.org/yennj12_blog_V4/tags/training/</link><description>Recent content in Training on YennJ12 Engineering Blog</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Sun, 21 Jun 2026 16:00:00 +0800</lastBuildDate><atom:link href="https://yennj12.js.org/yennj12_blog_V4/tags/training/feed.xml" rel="self" type="application/rss+xml"/><item><title>AI 工程從零開始｜Phase 7 Part 2：Transformer 訓練策略與架構變體</title><link>https://yennj12.js.org/yennj12_blog_V4/posts/ai-eng-from-scratch-phase7-part2-training-variants-zh/</link><pubDate>Sun, 21 Jun 2026 16:00:00 +0800</pubDate><guid>https://yennj12.js.org/yennj12_blog_V4/posts/ai-eng-from-scratch-phase7-part2-training-variants-zh/</guid><description>大多數人認為：Transformer 就是 attention + FFN，照抄論文程式碼就能訓練起來。 真實情況是：沒有 LR warmup 模型在第 100 步就 loss 爆炸；沒有梯度裁剪 NaN 讓你懷疑人生。 進階工程師知道：訓練策略與架構選型決定了 90% 的成敗，程式碼只佔 10%。 本文要解決的是：為什麼這些技巧存在、何時用哪個、以及三個演進階段的工程落地路徑。
面試情境 面試官問：「你要為一個電商平台設計一套 NLP 系統，需要同時支援商品描述生成（生成任務）、評論情感分析（分類任務）、以及跨語言商品搜尋（語義匹配）。你會選擇哪種 Transformer 架構？訓練時的學習率策略和精度選擇是什麼？如果預算只有 $50K，怎麼做？」
一、核心問題：Transformer 訓練為什麼這麼難 Transformer 訓練困難的根源不在於架構複雜，而在於多個不穩定因素的耦合：
問題 1：參數初始化 vs 梯度流
Transformer 在初始化時，attention 層的 softmax 容易輸出接近均勻分佈（對梯度無貢獻）或接近 one-hot（梯度消失）。用過大的學習率，前幾步梯度就會爆炸；用過小的學習率，前幾千步幾乎不學習。
問題 2：不同層的梯度尺度差異
淺層（embedding 附近）和深層（最後幾個 block）的梯度尺度可以相差 100 倍以上。固定學習率對一部分層太大、對另一部分太小。
問題 3：浮點精度的精度懸崖
FP16 的最大值約 65504，一旦梯度超過就 overflow 變 NaN，整批訓練廢掉。BF16 範圍更大但精度更低，小 loss 差異可能被截斷。
問題 4：任務與架構的阻抗失配
用 Decoder-only 做分類：浪費計算，需要特殊 pooling；用 Encoder-only 做生成：無法自回歸，強行做需要 mask 技巧。錯誤的架構選型讓精度天花板提前到來。</description></item></channel></rss>