以下部分內容參考了AI。?
?
要真正理解大語言模型(LLM)的創生過程,我們需要將其拆解為一個完整的生命周期,每個階段的關鍵技術相互關聯,共同支撐最終模型的涌現能力。以下是體系化的訓練流程框架:
階段一:數據工程 - 大模型的根基
-
數據采集與清洗
-
多源異構數據:爬取網頁(Common Crawl)、書籍、論文、代碼(GitHub)、對話數據等
-
去重與質量過濾:基于規則/LM的垃圾內容剔除,語言檢測(保留多語種但需平衡)
-
數據安全合規:版權爭議內容處理,隱私信息脫敏(如郵箱、電話號碼)
-
-
Tokenizer設計與訓練
-
BPE/WordPiece/Unigram算法選擇:平衡詞匯表大小與OOV問題
-
特殊Token設計:
<|im_start|>
等對話標記,領域相關符號(如代碼中的縮進) -
多語言支持:通過SentencePiece實現跨語言分詞(如LLaMA的20萬詞表)
-
階段二:模型架構設計 - Transformer的進化
-
核心架構選擇
-
Decoder-only結構:因果注意力掩碼(GPT系列)
-
稀疏注意力優化:FlashAttention-2的IO感知計算(提升3倍訓練速度)
-
位置編碼創新:RoPE(相對位置編碼,支持長度外推)
-
-
組件級優化
-
激活函數:SwiGLU(比ReLU更平滑的梯度流)
-
歸一化層:RMSNorm(省去均值計算,適合超大模型)
-
注意力頭機制:GQA(Grouped-Query Attention,平衡KV緩存與效果)
-
-
擴展性設計
-
MoE架構:如Mixtral的8個專家+路由網絡,顯存消耗僅1/4
-
3D并行策略:數據并行+流水并行(PipeDream)+張量并行(Megatron-LM)
-
階段三:預訓練 - 解鎖模型潛能
-
訓練目標設計
-
標準語言建模:next-token prediction(覆蓋95%以上訓練步)
-
填充預測(Fill-in-middle):提升代碼生成能力(如StarCoder)
-
多任務混合訓練:在1%數據中混合指令數據(為微調鋪墊)
-
-
優化策略
-
學習率調度:余弦退火+Warmup(例如峰值3e-4,持續20k步)
-
混合精度訓練:FP16+動態Loss Scaling(A100顯存節省40%)
-
梯度裁剪:閾值0.1-1.0(防止梯度爆炸)
-
-
穩定性保障
-
Checkpoint保存:每2小時保存一次(含優化器狀態)
-
監控指標:Perplexity突變為重啟信號,梯度范數監測
-
災難性遺忘應對:保留5%通用數據作為正則化
-
?階段四:對齊與微調 - 從知識到智能
-
監督微調(SFT)
-
數據構造:指令-響應對(如Alpaca的52k數據)
-
課程學習:先單輪對話后多輪,逐步增加難度
-
災難性遺忘緩解:Lora(低秩適配器,僅訓練0.1%參數)
-
-
偏好對齊
-
RLHF流程:
-
獎勵模型訓練:基于Bradley-Terry模型的對數損失
-
PPO優化:KL散度約束防止過度優化(β=0.1-0.2)
-
-
DPO替代方案:直接優化策略梯度,無需顯式獎勵模型
-
-
持續學習
-
增量訓練:插入新的專家層(如PaLM 2的pathways)
-
參數隔離:Side Network防止舊知識覆蓋
-
?階段五:部署優化 - 讓模型落地
-
推理加速
-
量化方案:GPTQ(3bit量化,精度損失<1%)
-
算子融合:將LayerNorm+GEMM合并為單一CUDA Kernel
-
動態批處理:vLLM的PagedAttention技術
-
-
安全防護
-
推理時干預:基于概率的拒絕采樣(如Llama Guard)
-
后門檢測:激活空間異常值分析(如MAD防御)
-