模型平行化 是什麼?
Model Parallelism — 模型平行化 的完整解釋
模型平行化是一種將大型模型分割到多個裝置上進行訓練或推論的技術,以克服單一裝置的記憶體限制。
容易混淆
模型平行化 vs 資料平行化
模型平行化:把模型切開,分散到多個裝置。 資料平行化:把資料切開,每個裝置跑同一份模型。 最關鍵的區別:前者分模型,後者分資料。
模型平行化 vs 分散式訓練
模型平行化:是其中一種分散方式。 分散式訓練:是更大的總稱,包含多種平行策略。 最關鍵的區別:前者是方法,後者是整體架構。
記住這句就好
模型太大就切開,不要硬塞一張卡。
實際案例
超大語言模型訓練
某些層放在這張 GPU,另一些層放在另一張 GPU,前向和反向傳播時一起協作。
記憶體爆掉的推論
當單卡顯存不夠,模型切分後就能在多卡上完成一次推論。
算法與應用
常見形式包括張量切分、流水線切分和層切分。 核心挑戰是通訊成本,切太細反而會被資料交換拖慢。 在大模型時代,模型平行化常和資料平行化一起使用。
情境判斷
Q1(情境題): 如果模型很大但資料不多,還需要模型平行化嗎?
→ 可能需要。只要單卡裝不下或算不動,即使資料不多也可能要用。
Q2(情境題): 模型平行化一定比資料平行化難嗎?
→ 多半是。因為模型拆分後的通訊和同步更複雜。
相關術語
常見問題
模型平行化只能用在訓練嗎?
不是,推論也能用,尤其是超大模型。
它和資料平行化可以一起用嗎?
可以,很多大模型訓練會混合使用。
最難的是什麼?
通常是切分策略和通訊開銷。