不要模糊了DeepSeek的真正價值。
作者|王博
三個月前,我們和中國科學院院士、清華大學計算機系教授張鈸曾經聊過一個話題:“為什么在提高算法效率上中國人會做得更好?”
張鈸告訴我們:“對中國企業來講,算法效率是生命攸關的,我們必須全力以赴。也許因為美國人有強大的算力,算法效率對他們來說只是錦上添花而已。”
當時,我們對這句話感受還不是很深,直到后來看到了DeepSeek-V3技術報告里的這張表格。
DeepSeek-V3的訓練成本(假設H800的租賃價格為2美元/GPU小時),圖片來源:DeepSeek-V3技術報告
簡單來說,DeepSeek-V3僅使用了2048塊英偉達H800 GPU,耗費了557.6萬美元就完成了訓練,相比同等規模的模型(如GPT-4、GPT-4o、Llama 3.1),訓練成本大幅降低。
這樣說沒有錯,但在復雜的輿論場中也引發了一些誤讀。比如,“中國AI企業用幾百萬美元的成本打敗了美國AI企業數億美元的投入”“成本僅為國外三十分之一,硅谷恐慌”。
這種誤讀有一些客觀原因,因為OpenAI、Meta官方從來沒有公布過GPT-4、GPT-4o、Llama 3.1的訓練成本,多數人對模型訓練成本構成也并不熟悉,但誤讀背后更多還是主觀原因——情緒。
AI大模型領域,中國AI企業一直是一個“追隨者”的角色,這次有了和硅谷巨頭“掰手腕”的機會,就像霍元甲站上了與西洋力士的比武臺,誰不想叫聲好呢?
這種情緒本身沒有錯,但也在一定程度上模糊了DeepSeek團隊在算法、框架和硬件上的優化協同設計的價值,而這正是DeepSeek-V3降本增效的關鍵。
1.訓練成本差距是否有那么大?
我們查閱了技術報告,DeepSeek只公布了基座模型V3的訓練成本,并沒有公布推理模型R1的訓練成本。
DeepSeek-V3技術報告顯示,該模型的正式訓練成本包括三個階段:預訓練(pre-training)、擴展上下文(context extension)、后訓練(post-training),共計557.6萬美元。
但是這557.6萬美元的訓練成本并不包括前期研究以及關于架構、算法或數據的消融實驗所產生的成本。
前期研究、消融實驗屬于“隱性成本”,但不容忽視。
在一個AI企業正式訓練一個模型之前,需要進行大量的前期研究,包括對算法的理論研究、對硬件性能的探索、對數據集的分析等。
而消融實驗(Ablation Study)是一種在機器學習和深度學習中廣泛使用的分析方法,用于評估模型各個組件或特征的重要性及其對模型整體性能的影響。
消融實驗就像是在玩“減法游戲”或者“排除法”,通過逐一移除或修改模型的某些部分,觀察模型性能的變化,從而確定每個部分的相對重要性。
另外,在訓練模型之前還會有一定的試錯成本。
為什么說這些成本是“隱性成本”?
因為大模型前期研發往往分散在數月甚至數年中,難以量化統計;消融實驗可能反復進行,但最終僅保留最優方案,失敗案例的成本常被忽視;企業通常不會公開內部研發細節(如試錯次數),導致外部估算會產生偏差。
除了“隱性成本”,不同的成本計算方式也會產生不一樣的結果。
DeepSeek-V3這557.6萬美元訓練成本是怎么計算的呢?按照DeepSeek-V3技術報告的邏輯,我們簡單列了一個公式:
訓練耗費的時長(GPU小時)×H800每GPU小時的租賃價格(美元)=DeepSeek-V3訓練成本(美元)
正式訓練耗費的時長包括:預訓練階段耗費266.4萬(2664K)GPU小時,擴展上下文長度階段耗費11.9萬(119K)GPU小時,后訓練階段耗費0.5萬(5K)GPU小時,因此DeepSeek-V3的正式訓練共耗費278.8萬(2788K)GPU小時。
而DeepSeek在技術報告中假設H800每GPU小時的租賃價格為2美元,這樣DeepSeek-V3訓練成本就是:
2,788,000×2=5,576,000(美元)
需要注意的是,這里是按GPU小時而不是GPU個數計算,單價是按GPU租賃價格計算而不是GPU購買價格計算。
換種方式計算訓練成本,結果就會很不一樣。
比如,為了訓練Llama 3.1 405B,Meta使用了超過1.6萬個英偉達H100 GPU,如果按照H100 GPU的購買價格計算,這樣計算下來的訓練成本就已高達數億美元。
我們也可以按照DeepSeek-V3一樣的租賃邏輯計算。
盡管Meta沒有透露Llama 3.1具體的訓練成本,但是其技術報告顯示,Llama 3.1 405B的預訓練(此處說的是預訓練時間而非完整訓練時間)為54天。那么,Llama 3.1 405B預訓練階段耗費的GPU小時為:
天數×24小時×H100 GPU個數=預訓練階段耗費的GPU小時 54×24×16,000=20,736,000
Llama 3.1 405B是2024年7月推出的,如果按照2024年初海外市場H100 GPU每GPU小時的租賃價格2.8美元(參考價格,會浮動)計算,那么其預訓練成本約為5800萬美元。相比之下,DeepSeek-V3的532.8萬美元預訓練成本的確是大幅降低了。
而OpenAI官方從來沒有公布過其訓練成本,但是我們可以從側面推算。
英偉達CEO黃仁勛在NVIDIA GTC 2024主題演講中介紹,如果要訓練一個有1.8萬億參數的GPT模型,用Hopper(H100)的話,需要約8000個GPU,耗電15兆瓦,用時90天,大約需要三個月。
雖然黃仁勛沒有明說,但根據此前多個渠道的爆料信息,這個1.8萬億參數的GPT模型就是GPT-4。
黃仁勛在NVIDIA GTC 2024 主題演講,圖片來源:英偉達B站賬號
黃仁勛在演講中解釋道:“這樣就可以訓練出這種開創性的AI模型,這顯然沒有人們想象中那么昂貴,但是8000個GPU仍然是一大筆投資。”
我們同樣可以按照租賃邏輯估算一下與GPT-4規模相當模型訓練成本。為什么說估算?因為H100是2022年3月發布的GPU,但實際大規模供貨和云服務商部署通常在2022年底至2023年初才開始,而GPT-4在2023年3月發布,所以GPT-4的訓練更多還是依靠A100。
假設在2024年初,也就是黃仁勛發表演講之前,訓練一個與GPT-4規模相當的大模型,其訓練成本是:
天數×24小時×H100 GPU個數=訓練階耗費的GPU小時 90×24×8,000=17,280,000(小時) 訓練耗費的GPU小時×H100每GPU小時的租賃價格=訓練成本 17,280,000×2.8=48,384,000(美元)
大約4800萬美元的訓練費用,的確如黃仁勛所說“沒有人們想象中那么昂貴”。
而據SemiAnalysis在2023年7月發布的分析報告,OpenAI在GPT-4的訓練中使用了約2.5萬個A100GPU,訓練了90到100天,利用率(MFU)約為32%至36%,這種極低的利用率部分是由于大量的故障導致需要重新啟動檢查點。如果每個A100 GPU的使用成本大約為每小時1美元,那么僅此次訓練的成本將達到約6300萬美元。
圖片來源:SemiAnalysis
DeepSeek-V3對標的Claude 3.5 Sonnet的訓練成本又是多少呢?此前Anthropic也沒有公布Claude 3.5 Sonnet的訓練成本,但Anthropic CEO達里奧·阿莫迪(Dario Amodei)近期在一篇評價DeepSeek的文章中透露,Claude 3.5 Sonnet訓練成本在數千萬美元(cost a few $10M's to train),他還特意說:“我不會給出具體的數字。”
“A few”在英語里通常指3到5個,所以我們估計Claude 3.5 Sonnet的訓練費用在3000萬到5000萬美元之間。
我們統一按照DeepSeek-V3的GPU租賃邏輯計算,不考慮其他“隱性成本”,可以發現,DeepSeek-V3的訓練成本相比其對標模型訓練成本大幅降低,但沒有到某些人說的“幾十分之一”的夸張程度。
需要注意的是,隨著技術和市場的發展,GPU租賃價格的降低使得企業和研究機構能夠以更低的成本配置更多的GPU,從而讓模型訓練降本增效。
企業還可以用更先進的GPU降低訓練的能耗。
還記得黃仁勛舉的例子嗎?如果要訓練一個有1.8萬億參數的GPT模型,用Hopper(H100)的話,需要約8000個GPU,耗電15兆瓦,用時90天;如果用Blackwell(GB200)的話,需要2000個GPU,耗電僅需4兆瓦,約為Hopper的四分之一。
圖片來源:英偉達
這是先進GPU帶來的效率提升,但是國內AI企業由于管控,無法獲得最先進的GPU,又是靠什么來實現降本增效呢?
Meta技術報告顯示,Llama 3.1 405B的預訓練時長54天,使用了15萬億(15T)的tokens以及1.6萬個英偉達H100 GPU進行訓練。
DeepSeek-V3在預訓練階段,使用了14.8萬億(14.8T)的tokens進行訓練,預訓練耗時也是54天,DeepSeek-V3技術報告里也說的是“不到兩個月”:
預訓練階段耗費的GPU小時÷H800 GPU個數÷24小時=天數 2,664,000÷2048÷24≈54(天)
但是,DeepSeek-V3僅使用了2048塊英偉達H800 GPU,盡管可能存在利用率的差異,但這與Llama 3.1 405B訓練使用的1.6萬個英偉達H100 GPU形成了鮮明對比。而且H800是英偉達為了滿足出口限制而設計的GPU,性能低于H100。
也就是說,DeepSeek-V3在GPU比Llama 3.1 405B用得少,GPU性能也更弱的情況下,在相同的時間,完成了與Llama 3.1 405B差不多的訓練量。
DeepSeek-V3技術報告里的這句話“DeepSeek-V3每訓練一萬億(trillion)個token僅需18萬(180K)H800GPU小時”成為了關鍵。
DeepSeek-V3大幅提升了模型訓練效率。
2.DeepSeek如何降本增效?
DeepSeek-V3是一個混合專家模型 (Mixed Expert Models,以下簡稱MoE) ,旨在通過整合多個模型或“專家”的預測來提升整體模型性能。
圖片來源:DeepSeek-V3技術報告
清華大學計算機系長聘教授、高性能計算研究所所長翟季冬在《夜話DeepSeek:技術原理與未來方向》直播中介紹,之前發布的一些MoE模型,采用的是“專家數很少、每個專家很大”的架構,但是DeepSeek采用的是“大量細粒度的專家”。
“大量細粒度的專家”可以更靈活地處理各種輸入數據,提高模型的適應性和泛化能力。由于每個專家的規模小,計算效率更高,訓練和存儲成本也相對較低。不過,由于專家數量眾多,可能會導致模型的管理和調度變得更加復雜。
翟季冬分析,為了提升DeepSeek-V3的模型訓練效率,DeepSeek團隊在四個方面進行了優化,分別是:負載均衡優化、通信優化、內存優化、計算優化。
首先是負載均衡優化。在MoE架構中,負載均衡指的是將輸入數據合理分配給各個專家,使得每個專家都能充分發揮其性能,同時避免某些專家過度負載而其他專家空閑。
負載均衡是MoE訓練中的非常大的挑戰,如果處理不好,那么模型在一個大規模GPU集群訓練時,利用率就很難提升上去。
DeepSeek團隊為了解決負載均衡的挑戰,創新提出了“Auxiliary-loss-free(無輔助損失)”負載均衡方案。
在傳統的MoE中,為了保證各個專家的負載均衡,通常會引入一個Auxiliary Loss(輔助損失)。這個Auxiliary Loss會強制讓每個專家處理的任務量盡量均勻。但它可能會讓模型在優化過程中過于關注負載均衡,而忽略了模型本身的性能。
而DeepSeek的Auxiliary-Loss-Free方案,不依賴額外的輔助損失,而是在每個token的專家分配過程中直接施加一個bias(偏差值)來實現負載均衡,從而實現動態調整專家的負載。
由于這種bias的引入已經在專家選擇的過程中起到了調控作用,使得各專家之間的token分配趨向均衡,因此就不再需要設計和調節額外的輔助損失項來“強制”負載平衡。這不僅簡化了訓練目標,也避免了因輔助損失權重設置不當而可能引入的訓練不穩定問題。
簡單來說,這就類似紅綠燈路口,Auxiliary loss就是固定時長的紅綠燈,車流量大了,路口通行效率會降低;而Auxiliary-Loss-Free中的bias就是可以根據實時車流量動態調整時長的紅綠燈,基于當前狀態(交通流量或專家負載)動態調整資源分配,以達到整體平衡和高效利用。
負載均衡優化,圖片來源:翟季冬,《夜話DeepSeek:技術原理與未來方向》
第二是通信優化。在MoE訓練中,使用專家并行會引入非常大的All to All通信開銷。
什么是All to All通信開銷?
假設在一個MoE中,有10個專家,每個專家被放置在一個獨立的計算節點上。在訓練過程中,每個專家需要與其他所有專家進行數據交換,以更新模型參數和同步訓練狀態。這種情況下,每個節點都需要與其他9個節點進行通信,形成了All to All的通信模式。隨著專家數量的增加,通信開銷也會顯著增加,導致訓練效率下降。
DeepSeek-V3就包括1個共享專家和256個路由專家,它采用的并行訓練策略:16路流水線并行、64路專家并行,跨8個物理節點。
DeepSeek團隊為了降低通信開銷,提出了DualPipe算法。
DualPipe算法的核心創新就是能夠將計算和通信階段重疊進行。在傳統的訓練過程中,計算和通信是分開進行的,這會導致GPU在等待數據傳輸時出現空閑期,即所謂的 “流水線氣泡”(pipeline bubbles)。DualPipe算法通過確保在一個微批量(micro-batch)被計算的同時,另一個微批量可以進行通信,精細地編排計算和通信,從而最大限度地減少這些空閑期,提高GPU的利用率。
通信優化,圖片來源:翟季冬,《夜話DeepSeek:技術原理與未來方向》
DualPipe算法還采用了雙向流水線機制,同時從流水線的兩端處理微批量。這種策略確保了在整個訓練過程中GPU始終保持活躍。通過這種方式,DeepSeek能夠保持良好的計算與通信比例,減少延遲,提高吞吐量。
“這里有一個需要注意的點,如果采用雙向流水線,要在GPU顯存里存兩份模型參數。大模型訓練內存使用非常重要,為了解決這個問題,它采用了64路的專家并行,雙流水可以非常有效地降低流水線bubble。”翟季冬說。
通信優化,圖片來源:翟季冬,《夜話DeepSeek:技術原理與未來方向》
此外,DeepSeek的通信優化還包括跨節點通信優化以及Warp Specialization技術。
通信優化,圖片來源:翟季冬,《夜話DeepSeek:技術原理與未來方向》
第三是內存優化。包括了重計算、使用CPU內存和參數共享。
大模型訓練往往存在顯存瓶頸。重計算的核心思想是在前向傳播過程中,只保留少量關鍵的中間結果,而將其余的中間結果釋放掉。當在反向傳播過程中需要用到這些已釋放的中間結果時,再重新執行前向傳播中的相應部分來計算得到。這種方法通過增加一定的計算量,顯著降低了內存消耗,是一種“以時間換空間”的策略。
這可以理解為一種在大模型訓練過程中“偷懶”的技巧。
同時,DeepSeek還把一些數據,包括像模型參數的指數移動平均(EMA),存到CPU內存,從而節約GPU顯存;將主模型與MTP(Multi-Token Prediction)模塊的output head和embedding部署在相同節點,最大化地共享參數空間。
內存優化,圖片來源:翟季冬,《夜話DeepSeek:技術原理與未來方向》
第四是計算優化。為了提升訓練效率,DeepSeek采用了混合精度訓練策略。
DeepSeek引入了英偉達FP8混合精度訓練框架,并首次在超大規模模型上驗證了其有效性。通過支持FP8計算和存儲,DeepSeek實現了加速訓練和減少GPU內存使用。FP8訓練在相同加速平臺上的峰值性能顯著超越FP16/BF16,并且模型參數越大,訓練加速效果越好。
計算優化,圖片來源:翟季冬,《夜話DeepSeek:技術原理與未來方向》
總的來說,翟季冬認為:DeepSeek充分挖掘了算法、軟件、硬件性能,實現了協同創新;其軟件相對靈活,軟件賦能硬件,彌補了硬件的很多限制;優秀的系統軟件能夠充分釋放底層硬件的潛力。
DeepSeek正是通過這一步步的優化,讓整個模型的訓練效率得到提升,并降低訓練成本。
3.“小米加步槍”式的成功
經歷了春節假期的喧囂,我們對于DeepSeek的討論應趨向理性。
我們不應神話DeepSeek,也不要因為外部的貶低而看輕DeepSeek,這些都對DeepSeek團隊不公平。其實,DeepSeek就是一種“小米加步槍”式的成功。
行云集成電路創始人季宇最近跟我們聊起DeepSeek時說,創新的意識其實國內根本不缺,但缺乏Known-Why的創新往往會走向類似賭徒的歧途。
“創新不是簡簡單單的不一樣的技術路線,國內其實不缺乏創新性和天馬行空的想象,其實無論AI行業還是算力芯片行業,都有無數走非Transformer架構、走非GPU架構、非馮諾伊曼架構的差異化路線,但是基本都陷入了用差異化的技術路線主流技術路線替代品的邏輯里。”季宇說。
但是DeepSeek的創新是一步一個腳印的。
季宇告訴我們,第一性原理思考問題很多人都在講,但實際上非常困難。第一性原理需要深入推敲,需要對每個論斷的邊界條件,需要深入考慮各個層級技術的細節。
“之前跟在DeepSeek的一個師弟交流,梁老板(DeepSeek創始人梁文鋒)對他寫的CUDA Kernel里每個線程具體在干什么事情都非常清楚,只有這樣才能從全局視角去思考突圍的方式,真正把創新做成。”季宇說。
這一點在另一位投資人那里也得到了印證。這位投資人去年曾問DeepSeek的人:“為什么你們的模型做得好?”
DeepSeek的人回答,因為我們老板自己在讀論文、寫代碼、搞招聘。
關于DeepSeek的成功,你可以說他們有豐富的GPU儲備,可以說他們對模型架構進行了創新,但其成功內核往往是樸實而簡單的。
DeepSeek創始人梁文鋒去年接受《暗涌》采訪時說過的一句話,既謙虛又意味深長。
他說:“我們不是有意成為一條鯰魚,只是不小心成了一條鯰魚。”
*甲子光年作者蘇霍伊對本文亦有貢獻
**參考資料:
DeepSeek-V3 Technical Report,DeepSeek
The Llama 3 Herd of Models,Meta
GPT-4 Architecture, Infrastructure, Training Dataset, Costs, Vision, MoE,SemiAnalysis
《夜話DeepSeek:技術原理與未來方向》,中國計算機學會青年計算機科學與技術論壇(CCF YOCSEF)
(封面圖來源:「甲子光年」使用AI工具生成)
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
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.