最近肝到爆,一直以為昨天是賬號建立兩周年。然后回溯了下歷史,才發現原來是前天。。。
我說25號是什么黃道吉日呢。。。
發了這么多篇文章,唯獨把我自己忘了。
感謝DeepSeek的開源連擊,真的感謝。。。
從FlashMLA、DeepEP再到DeepGEMM,開源的世界里真就闖進來一位大神。
老黃辛辛苦苦多年建起來的商業護城河上,DeepSeek居然明目張膽地開始架橋了。。。
但是說實話,DeepSeek的所有開源的項目,全部都是基于英偉達的生態做的,雖然大家戲稱說DeepSeek比老黃更懂顯卡,但是這些項目開源出來,我咋感覺大家跟英偉達綁定的就更深了呢。。。
說回今天(第四天)。
他們又一口氣開源了倆東西,還有一個性能分析數據庫。
數據庫就不提了,主要看另外兩個。
一個能把硬件資源,再度榨干到極致的雙頭流水線DualPipe。
還有一個能平衡所有任務,把效率拉爆的EP調度器EPLB。
開源鏈接在此:
DualPipe
https://github.com/deepseek-ai/DualPipe?tab=readme-ov-file
EPLB
https://github.com/deepseek-ai/eplb
說DeepSeek牛逼已經說麻了,只能跪著給他們鼓掌了。。
先說DualPipe。
一. DualPipe
這玩意兒是一種賊新的雙向并行算法,在DeepSeek v3的論文里面其實已經出現過了。
我用一個做面包的例子給大家解釋一下這玩意到底干啥用。
比如說你家里是開面包店的,叫X利來,每天都要賣好吃的面包給大家吃大家也很喜歡你。
你家里呢,有一條面包生產線,就像工廠里那種流水線一樣。
面包從揉面、發酵、整形、烘烤到包裝,需要很多道工序,而且每道工序都要排隊依次進行。
如果是那種單向的傳統的流水線就會有一個非常der的問題:比如說一個人先把面揉好然后送給下一個人發酵,等發酵好了再送給下一個人烤,烤好了再送給下一個人包裝。。。
這就導致每個人在等待之前那道工序結束的時候,可能都要等上一會兒。如果有幾道工序比較耗時,那么后邊的人就只能干等,沒法同時干點別的,這就拖慢了整體產量。
所以為了提高效率,你就就會想,能不能讓前面的操作和后面的操作同時進行?比如這個人一邊揉面,另一邊又有人可以烤前一批次的面包,不至于讓所有人都卡在同一個步驟上面。
這其實就類似最基本的流水線并行思想,也是現在很多工廠的流水線方式,簡稱,工業化。
可是,這樣也會產生一種所謂的“氣泡”,就比方說等你揉面的人實在太多了,而烘烤那邊一時沒得可烤,或者反過來,烘烤還沒結束,就阻塞了包裝,一來一回會浪費一些時間空檔。
這個浪費的空檔,形象點說就像流水線上兩個工序之間充了空氣的“氣泡”,它還是沒有完美的提升效率,會讓人有摸魚的“氣泡”空間。
普通的流水線并行,還會遇到一個問題,就是你的搬運。
比如說你家工廠太大,揉面機在一樓,烤爐在八樓,中間還沒電梯。有時候揉面好了要送到烤爐,這個來回搬運也得干死個人,但是又不得不做。
所以,你還在加上搬運的工序,也就是在搬運的同時,爐子、揉面機啥的也都不能閑著。
你現在可以歇一會,來考慮一下他們的計算量,是不是非常的恐怖。
但是相比于大模型的計算,面包廠這個case的復雜度,就是小巫見大巫了。
而DeepSeek掏出來的DualPipe,就是解決這個問題的,就是如果帶入我們自己的話,你就可以把它想象成一個非常黑心但又非常聰明的資本家。。。
DualPipe這東西,中文可以叫“雙管并行”或“雙向流水線”,它直接把整套的邏輯和計算設計,都給你做完了,找到了最優解,你不用想著每個工序怎么安排了,你直接用就完了。
它就是,調度之神。
所以,DualPipe到底能把干活的人發呆的時間,降到什么程度?
來看下面這個表。
DeepSeek真是把一切數據都開源。
這其實就是一個干活效率對比表。
主要有幾個數據:流水線氣泡(浪費的時間)和參數(用的資源)、激活(額外用的內存)。
能看得出來,效率最高,浪費時間最少。但用了更多資源(參數翻倍,空間多占一點)。
可能是為了適合需要超快速度的大任務,代價就是資源稍微多點。
快速使用方法,也給出來了,不過需要自定義一下。
我還記得老黃說自己是全世界最好的CEO。確實,一路給市值干到頂峰的人物。
但現在,DeepSeek要沖上山,走一條之前無人問津的羊腸小道,拔下那把勇者的寶劍了。
AI的世界,變化就是這么快。
沒有誰是必須打到的怪物。
但擋在路上的永遠不會是下山的神。
在開發者那一欄,還有個非常好玩的是,真大佬親自下場了。。。
二.EPLB
再說今天DeepSeek給的第二份大禮:EPLB。
Expert Parallelism Load Balancer,翻譯過來可以叫“專家并行負載均衡器”,你也可以說是EP調度器。
還是舉例子吧。
比如說一個學校,現在要一起辦2周年學校慶典。
一旦搞起這個慶典,我相信大家懂得都懂,就很繁瑣。
會涉及到不少項目:布置會場、教室衛生、文藝匯演彩排、音響燈光調試、食堂伙食安排、禮儀接待……
各個項目可能都由不同的老師或同學去負責。要是這些項目的難度或工作量不一樣,有些老師就會被忙得不可開交,而另一些可能比較清閑,這就不公平,也不高效。
那么這個所謂的“專家并行”就意味著,每個老師或同學都可以看作某個“專家”,專門負責一部分工作。
比如語文老師可能負責寫文案,音樂老師負責排練合唱等等。
可是總會有一些專家特別搶手,比如PPT做的好的老師,那你肯定懂的,這絕壁是最搶手的專家。
于是這個專家就累死累活。要是能再安排兩個PPT專家,這樣就可以分擔一部分壓力,這個就叫“冗余專家”。
EPLB做的事情就是,根據統計到的每個專家最近一段時間的工作量,推測哪幾個專家可能會特別繁忙,然后趕緊給它們“復制”一下,也就是直接給PPT大拿來幾個復制人。
這樣當需要調用這個專家時,一部分請求可以排到復制人那里執行,大家就不用都擠在同一個人那里里,工作可以被分散出去。
這就是影分身之術。
然后還得考慮你的學校有不同的教學樓對吧,教學樓之間的距離比較遠(類似節點之間用IB連接)。
同一個教學樓里的人肯定近的多(類似節點內用NVLink),所以讓同樓里老師之間的合作肯定比跨樓去合作更方便。
EPLB就希望那些經常一起合作的“專家組”能放在同一個樓里,避免來回跑的浪費。比如有幾個老師最常交流合作,那就得把他們都排在一個樓層,就能減少在樓間奔跑。
相當于在DeepSeek里就可以減少節點間的數據通信。
所以,總結一下,學校慶典馬上開始了,EPLB會先數一數每個專家上個慶典忙了多少,比如看歷史統計,某個專家被調用了100次,另一個才10次,差距很大,就說明前者更忙,需要復制,直接就火速復制10個數字人。
然后它要決定這些復制的專家該放到哪張GPU卡上。如果有兩張卡特別空閑,就把繁忙專家的復制人放到這兩張卡上,以便一旦有請求過來,不管發到哪張卡都能快速處理。
它也會盡量把同一組的專家都放到同一個節點(同一個樓),減少跨節點的大量通信。
這,就是EPLB。
超級調度器。
同樣,DeepSeek并不只為了開源而開源,還給出來詳細的接口和例子。
下面這串代碼,就是這群聰明人,怎么安排工人干活的。
復制就行。
下面這個圖就是他們,在專家少的情況下,做調度的策略(分層負載均衡策略)。
早上這兩發完以后,看到這,一堆在技術中摸排滾打的群友坐不住了。。。
已經懵逼。
DeepSeek這群人。
其實就像DeepSeek在X上的官方簽名:
用好奇心解開AGI的奧秘,用長期主義回答本質問題。
DeepSeek開源的魅力就是。
能讓所有人都品嘗到AI這顆大樹上開出的果子。
花木逢春。
中國,要春暖花開了。
感謝DeepSeek。
謝謝你。
以上,既然看到這里了,如果覺得不錯,隨手點個贊、在看、轉發三連吧,如果想第一時間收到推送,也可以給我個星標?~謝謝你看我的文章,我們,下次再見。
>/ 作者:卡茲克、芝蘭山
>/ 投稿或爆料,請聯系郵箱:wzglyay@gmail.com
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.