詳細解釋
流水線並行(Pipeline Parallelism)是將模型層分佈到多GPU,並通過流水線方式處理多個微批次,提高GPU利用率的並行策略。
工作原理:
- 模型分片:將網絡層分組到不同GPU
- 微批次:將大批次分為多個小批次
- 流水線:
- GPU0處理微批次0,傳給GPU1
- GPU0處理微批次1,同時GPU1處理微批次0
- 形成流水線,多GPU同時工作
- 氣泡:啟動和排空階段的空閒
GPipe和PipeDream:
- GPipe:同步梯度,簡單但氣泡大
- PipeDream:異步權重,複雜但效率高
優勢:
- 提高利用率:多GPU同時工作
- 內存效率:每個GPU只存部分層
- 擴展性:可擴展到更多GPU
- 與數據並行兼容
挑戰:
- 流水線氣泡:啟動和排空時間
- 調度複雜:微批次調度策略
- 權重存儲:需要存多個版本(PipeDream)
- 通信:激活傳輸開銷
應用:
- 超大模型:與張量並行結合
- 多節點:跨機流水線
- 訓練效率:大規模訓練必需
與其他並行關係:
- 模型並行:基礎層級分割
- 流水線並行:在此基礎上流水線化
- 三維並行:數據+模型+流水線
流水線並行是大規模訓練的重要組成。