DeepSeek 開源的 DualPipe,居然是梁文峰寫的,你感性?
繼DeepGEMM之后,deepseek開源了第四彈DualPipe。今天來簡(jiǎn)單聊聊DualPipe,包懂。

DualPipe是干嘛的?

Dualpipe,一個(gè)雙向管道并行算法,提高了前向傳播/反向傳播過程中的計(jì)算+通信效率,降低了單向流水線的等待時(shí)間(pipeline bubbles)。
前向傳播和反向傳播是干嘛的?
你輸入:how are you?
AI輸出:I’m fine. Thank you. And you?
為什么?
AI的輸出,是依據(jù)事先訓(xùn)練好的模型(一大堆參數(shù)),以追求“用戶體驗(yàn)最好”的最大概率。說白了,就是一個(gè)預(yù)測(cè)的過程。
模型的一大堆參數(shù),是怎么來的?

- 前向傳播:根據(jù)輸入,根據(jù)模型參數(shù)(左圖的每一條綠線,一個(gè)權(quán)重),生成預(yù)測(cè)結(jié)果,通過損失函數(shù),衡量模型的好壞。
- 反向傳播:根據(jù)損失函數(shù),明確每個(gè)參數(shù)對(duì)誤差的“責(zé)任”,指導(dǎo)調(diào)整參數(shù)(右圖的每一條紅線,調(diào)整權(quán)重),對(duì)模型進(jìn)行優(yōu)化。
如此往復(fù),不斷優(yōu)化,最終訓(xùn)練出模型成品(損失函數(shù)最?。?。
舉個(gè)更形象的例子,這好比工廠流水線:
- 前向傳送帶:加工零件,生產(chǎn)商品;
- 反向傳送帶:質(zhì)檢返修,優(yōu)化商品;
如此反復(fù),直到生成成品。
可以說,前向傳播和反向傳播是預(yù)測(cè)模型的基礎(chǔ)。
這和DualPipe有什么關(guān)系?
我們要進(jìn)行多輪參數(shù)優(yōu)化,通常需要:
- 前向傳播
- 反向傳播
- 前向傳播
- 反向傳播
- …
單向流水線交替進(jìn)行。
如此一來,計(jì)算與通信就無法跑滿,GPU會(huì)有pipeline bubbles。
而Dualpipe:
- 前向傳播與反向傳播同時(shí)進(jìn)行;
- 計(jì)算與通訊同時(shí)進(jìn)行(例如:前向傳播計(jì)算時(shí),加載反向傳播所需的數(shù)據(jù));

從調(diào)度圖上能夠看出,pipeline bubbles大部分都被填滿了。工廠流水線上的單向傳送帶,升級(jí)成了雙向循環(huán)傳送帶。
另外,DualPipe的作者:

梁文峰赫然在列!
結(jié)尾
對(duì)于DualPipe,我的思考是:
其一,軟件的優(yōu)化和硬件的升級(jí),一樣重要;
其二,為什么很多大公司AI搞不出來?
- 自己懂,必須自己下場(chǎng);
- 自己不懂,就讓懂的人上;
- 如果又不懂,又占著資源,能搞得出來?
補(bǔ)充閱讀材料:
《DualPipe》:https://github.com/deepseek-ai/DualPipe可參考。


























