模型並行

Model Parallelism

將大模型切分到多裝置訓練

詳細解釋

模型並行(Model Parallelism)是將大型模型分割到多個GPU的技術,當模型太大無法放入單個GPU記憶體時使用。

工作原理:

  • 模型分割:將網絡層分組,分配到不同GPU
  • 前向傳播:GPU0計算完畢後將激活傳給GPU1,依此類推
  • 反向傳播:反向順序,梯度從後向前傳播
  • 參數分佈:每個GPU只存儲部分參數

與數據並行的對比:

  • 數據並行:完整模型在每個GPU,不同數據
  • 模型並行:模型分佈到多GPU,相同數據流經各層
  • 適用場景:
  • 數據並行:模型能放入單個GPU
  • 模型並行:模型太大,必須分割

挑戰:

  • GPU利用率低:只有當前計算的GPU忙碌,其他閒置
  • 通信開銷:層間激活傳輸(特別是跨節點)
  • 流水線氣泡:前向和反向傳播的等待時間
  • 複雜性:需要仔細設計層分配

優化:

  • 流水線並行:流水線化提高利用率
  • 層間平衡:使每個GPU計算量相近
  • 激活檢查點(Gradient Checkpointing):減少激活存儲
  • 通信優化:合併小張量傳輸

應用場景:

  • 大語言模型:GPT-3 175B分佈到多GPU
  • 大圖像模型:超大分辨率輸入
  • 嵌入層:大詞彙表的嵌入表分片

與流水線並行的關係:

  • 模型並行是層級分割的基礎
  • 流水線並行在此基礎上添加微批次流水線
  • 通常組合:模型+流水線+數據三維並行

模型並行是超大模型訓練的必需技術。

探索更多AI詞彙

查看所有分類,繼續學習AI知識