種惠君
指數(shù)級增長的模型算力需求,宣告了大智算集群作為訓(xùn)練基礎(chǔ)設(shè)施的“剛需”時(shí)代已然來臨。?面對動輒10^26FLOPS級的計(jì)算量和長達(dá)數(shù)十天的萬卡訓(xùn)練周期,單純擴(kuò)充集群規(guī)模已非良策。破局的關(guān)鍵在于多管齊下:?深挖低精度訓(xùn)練(尤其是FP8)帶來的巨大潛力以提升單卡效率;同時(shí),構(gòu)建高可靠、高可用的集群環(huán)境以保障大規(guī)模訓(xùn)練的持續(xù)穩(wěn)定運(yùn)行?。這不僅關(guān)乎成本,更決定著大模型研發(fā)的節(jié)奏與成敗。
7月25日,在WAIC2025期間舉辦的摩爾線程技術(shù)分享日上,摩爾線程副總裁王華以《基于FP8的國產(chǎn)萬卡訓(xùn)練》為主題,分享了在大規(guī)模集群上用FP8做訓(xùn)練的創(chuàng)新及思考。
以下為王華的演講實(shí)錄精華:
1、大智算集群成為訓(xùn)練的剛需
從行業(yè)模型發(fā)展的角度看,從2020年到2025年包括GPT、Llama、Grok等主流模型所需要的計(jì)算算力資源,需要的計(jì)算算力是非常大的。
整個(gè)趨勢在往上漲,在2020年的時(shí)候,還有許多并不需要很多算力的模型。舉例來說,2020年大模型算力TOP需求是1023flops。但是到2025年左右,現(xiàn)在Grok-4的算力需求更高,而Grok-3的算力需求在1026flops,差不多是1000倍的增長。驅(qū)動增長的核心點(diǎn)是參數(shù)加數(shù)據(jù)。由于我們追求更好的模型效果,參數(shù)量在不斷增大,數(shù)據(jù)也在不斷增大,這是考慮到ScalingLaw這兩個(gè)數(shù)值增大會帶來模型效果的提升,最終帶來算力需求接近指數(shù)型增長。
再從一些熟知模型的實(shí)際算力需求,以及我們用不同規(guī)模的集群訓(xùn)練它們所需要的時(shí)間分析。從算力角度來講,因?yàn)榭紤]到橫向校正,全部拿英偉達(dá)的H100集群來做計(jì)算,這里有千卡集群、五千卡集群和萬卡集群??紤]到不同的計(jì)算效率,DeepSeek算力需求大概在3.4×1024flops,1024的千卡集群計(jì)算需要的時(shí)間大概是97天,五千卡集群需要22天,萬卡集群是13天。
最近剛剛發(fā)布的KimiK2是萬億參數(shù)模型,它的計(jì)算量是2.98×1024flops,計(jì)算的時(shí)間分別是85天、19天、11天。
而對巨無霸模型GPT-4,它的訓(xùn)練量是1025flops,又高了一個(gè)數(shù)量級,我們看到的時(shí)間也是高了一個(gè)數(shù)量級,千卡需要602天,五千卡集群需要137天,萬卡集群需要80天。早期運(yùn)行比較小的GPT-3等,參數(shù)并不少,但是數(shù)據(jù)量小,所以算得很快。
由上可以看到,數(shù)據(jù)和模型這兩個(gè)因素推動著整個(gè)訓(xùn)練的算力需求在大幅度增長。
第二個(gè)是精度的變化,從開始的FP32到FP16,再到現(xiàn)在的FP8。精度下降帶來的好處是算力提升,精度每下降一半,算力會翻一倍,因?yàn)樗枰娘@存、緩存速度都在下降。另外精度下降會導(dǎo)致模型效果下降,主要由于精度下降會導(dǎo)致一些數(shù)值的損失。
2、低精度訓(xùn)練會帶來大規(guī)模訓(xùn)練效率提升
如何在其中找到平衡點(diǎn)?回到ScalingLaw,這里有兩個(gè)參數(shù),模型的loss值我們希望越小越好,參數(shù)量、數(shù)據(jù)量越大,loss值就會越小。引入精度之后,我們得到一個(gè)新的ScalingLaw,除了參數(shù)量、數(shù)據(jù)量還會有一個(gè)P(精度),隨著精度上升L更小,但是我們需要在P和N之間取一個(gè)平衡,變成在總的計(jì)算量固定的情況下,怎么樣合理配置這三個(gè)值。這一塊有一些研究,做了一系列的試驗(yàn)去擬合這個(gè)工具,最后我們得到一個(gè)結(jié)果。我們拿FP32、FP16、FP8、FP6以及FP4來對比。我們看到FP32對應(yīng)的是220M,精度下降一半這塊就會變成440M,整個(gè)loss值在FP6、FP8是一個(gè)最佳的"甜點(diǎn)區(qū)域",到FP4反而會上升。我們從近期研究的結(jié)果來看,引入精度這個(gè)ScalingLaw之后,比較合理的值是在FP8,所以我們現(xiàn)在用FP16做訓(xùn)練,用FP8替換之后有了很大的提升空間。
但是用低精度做訓(xùn)練也遇到了很多的挑戰(zhàn)。這是低精度的表達(dá)范圍,當(dāng)中包含我們?nèi)〉淖畲笾怠⒆钚≈?,另外在每一個(gè)區(qū)間上,它表達(dá)的尾數(shù)位數(shù)少,整體的數(shù)量會少。這兩個(gè)限制會導(dǎo)致的問題,第一個(gè)是我們的取值范圍小,它就容易上溢和下溢,上溢是梯度爆炸的錯誤,下溢會導(dǎo)致數(shù)據(jù)丟失,從而梯度消失。我們在整個(gè)訓(xùn)練過程當(dāng)中會有不同的操作,不同操作對精度的需求和敏感度不同,我們可以做一個(gè)大致的分類。這里面按照精度不敏感到中度敏感到高度敏感進(jìn)行排列,不敏感的部分比如說矩陣乘,矩陣乘一般兩個(gè)數(shù)直接相乘,操作次數(shù)不會太多,它的精度敏感度相對比較低。像累加/歸約類,會把很多數(shù)放在一起操作,精度要求是中等的,非線型函數(shù)則可能是指數(shù)級增長,對精度要求是高的。我們針對不同的精度需求,有一個(gè)比較直白的做法就是混合精度訓(xùn)練,在FP32、FP16的時(shí)代就已經(jīng)采用這種技術(shù)了,F(xiàn)P8引入之后我們也可以用類似的方式,對非敏感的部分采用FP8去做計(jì)算。
FP8出現(xiàn)之后,F(xiàn)P8技術(shù)有了很大的發(fā)展,有很多技術(shù)點(diǎn)支持FP8的訓(xùn)練。比如說硬件上就是TensorCore,新的TensorCore都是支持FP8的,比如說英偉達(dá)的,在輸入上可以用FP8輸入,輸出是高精度矩陣。
另外是權(quán)重Backup,我們把權(quán)重更新部分用FP32去表達(dá)。而TensorScaling,在縮放的時(shí)候,先把它縮放到一個(gè)合理的值。在縮放因子的選擇上,包括選擇的時(shí)間點(diǎn)上和顆粒度上都會有不同的方式方法,有很多相關(guān)的研究。
FP8走進(jìn)現(xiàn)實(shí)很重要的一個(gè)點(diǎn)就是,我們使用FP8技術(shù)真的可以訓(xùn)出效果很好的模型。DeepSeek在訓(xùn)練過程當(dāng)中,不同的操作對精度的要求不一樣。DeepSeek在訓(xùn)練當(dāng)中以矩陣乘操作,DeepSeek前向和反向傳播的3次矩陣乘都使用了FP8去做,還有激活值的緩存和傳輸也使用FP8來做。但是對于一些精度相對來說比較敏感的部分,DeepSeek里面還是繼續(xù)用高精度來運(yùn)算。但是從整個(gè)訓(xùn)練過程來講,已經(jīng)帶來很大的收益,因?yàn)檫@里面很大一部分計(jì)算量是矩陣乘帶來的。
摩爾線程對FP8的訓(xùn)練提供了軟硬件全棧的完整支持。硬件方面,我們的GPU是一個(gè)全功能GPU,算力精度上支持從FP64、FP32到FP8的全精度算力。
從軟件棧上講,我們有三個(gè)開源框架,一個(gè)是Torch-MUSA,這是我們在Torch棧上構(gòu)建的MUSA底層插件,可以在MUSA上把整個(gè)Torch跑起來。這里面我們已經(jīng)實(shí)現(xiàn)了對FP8數(shù)據(jù)類型的完整支持。
二是MT-MegatronLM,這里面支持FP8混合并行訓(xùn)練??蚣?,支持Dense、多模態(tài)、MoE模型的高效訓(xùn)練,支持FP8混合精度訓(xùn)練、高性能muDNN庫和MCCL通信庫。
三是MT-TransformerEngine。主要用于Transformer的高效訓(xùn)練和推理優(yōu)化,支持FP8混合精度訓(xùn)練,通過算子融合、并行加速等技術(shù),提升訓(xùn)練和推理的效率。
經(jīng)過這些軟件棧,成功復(fù)現(xiàn)了DeepSeek-V3整個(gè)訓(xùn)練過程,因?yàn)榇蠹抑繢eepSeek最開始并沒有開源,即便開源只是開一部分。我們是在這個(gè)軟件?;A(chǔ)上,實(shí)現(xiàn)了它一系列的相關(guān)技術(shù),比如說MTFlashMLA和DeepGEMM庫等等。我們是行業(yè)里到率先能復(fù)現(xiàn)DeepSeek滿血版訓(xùn)練的廠商,其他家都在嘗試做推理的復(fù)現(xiàn)。
我們在FP8訓(xùn)練上也做了很多的探索和實(shí)驗(yàn)。主要做了兩個(gè)探索性的工作,第一個(gè)是在scalingfactor的選擇上面,像我們有不同顆粒度的Per-Tensor或者是Per-Block。根據(jù)我們的觀察,像AMX這個(gè)值,如果說在Per-Tensor這個(gè)維度上,它的最小值在200左右,它并不是特別小。我們最大值大概是在2000左右,所以我們做scalingfactor的時(shí)候,用最大值去除的話,不會把這個(gè)值除的非常小,所以我們在Tensor這個(gè)維度上,可以Per-Tensor的一個(gè)scalingfactor。但是對Per-Block,它的最小值非常小是0,除的話容易把結(jié)果除得很大,所以在這個(gè)維度上,我們就會用JIT動態(tài)的scalingfactor的選擇。
另外一個(gè)是outlier的影響,因?yàn)镕P8取值范圍比較小,所以出現(xiàn)一些異常值的時(shí)候,一旦數(shù)值增大,容易把FP8取值范圍上限給超了,從而導(dǎo)致訓(xùn)練不穩(wěn)定。一個(gè)比較有效的技術(shù)就是SmoothSwiGLU,也是在我們的框架里面復(fù)現(xiàn)了本身帶來的問題,用SmoothSwiGLU怎么去降低這個(gè)問題,核心點(diǎn)我們在量化之后,先去乘一個(gè)縮放因子,第二次量化之后再把這個(gè)縮放因子再給恢復(fù)回來,去降低FP8階段的時(shí)候,出現(xiàn)上溢的這種風(fēng)險(xiǎn)。
在集群訓(xùn)練方面的技術(shù)考慮點(diǎn)。首先在大規(guī)模訓(xùn)練上,一些數(shù)值估算的東西,我們不可能所有東西都靠實(shí)驗(yàn)性來做,因?yàn)橘Y源消耗太大,很多工作都是通過模擬器方式來做的。我們有Simumax這樣一個(gè)軟件,這個(gè)已經(jīng)開源了,大家可以在GitHub上下載到。
它解決的問題一個(gè)是理論與仿真結(jié)合去估算我們一系列感興趣的開銷,我們可以支持各種不同的并行策略,優(yōu)化策略等等。在一些主流模型上都可以用理論分析以及各種策略的設(shè)置去得出它大概的資源消耗。一方面可以估算我們需要的資源,如果說我們出現(xiàn)一些性能偏差,我們比較容易找到這其中出現(xiàn)的性能問題。
做法是我們會在計(jì)算圖上去根據(jù)SPEC整個(gè)計(jì)算過程,根據(jù)經(jīng)驗(yàn)數(shù)據(jù)或者是理論分析的數(shù)據(jù)去跑一下計(jì)算圖,去收集各種各樣的開銷,匯總起來得到最后的結(jié)果,這需要我們對整個(gè)計(jì)算圖的各種模擬做到比較全的覆蓋。
3、集群可靠性對大規(guī)模訓(xùn)練至關(guān)重要
大規(guī)模集群訓(xùn)練的可靠性非常重要,因?yàn)榧阂?guī)模大了之后,單機(jī)故障率不會那么高。但是我們一個(gè)節(jié)點(diǎn)出問題,這個(gè)訓(xùn)練就掛掉了,數(shù)量大了之后,這將是很恐怖的故障率。我們做了很多可靠性相關(guān)的工作。
首先,我們的訓(xùn)練生命周期的管理,包括它的監(jiān)控、故障檢測,我們引入了大規(guī)模訓(xùn)練的起飛檢查、飛行檢查和落地檢查。起飛檢查就是訓(xùn)練開始之前我們它用到的硬件做全面檢查,不是一個(gè)單點(diǎn)的檢查,我們會做包括網(wǎng)絡(luò)的,甚至?xí)芤恍┬∝?fù)載看整個(gè)棧是不是有問題。另外在檢查過程當(dāng)中,一旦發(fā)現(xiàn)有異常節(jié)點(diǎn)我們會自動給踢掉,這樣會降低人工排查帶來的時(shí)間成本和人力成本。
在飛行檢查過程與訓(xùn)練過程當(dāng)中,可能會出現(xiàn)hang、異常退出、訓(xùn)練亞健康等問題,我們要檢測到這些問題,然后做相應(yīng)的處理。最后是落地檢查,在過程中出現(xiàn)亞健康或者是故障的情況,我們在訓(xùn)練停掉的時(shí)候,能夠找到故障點(diǎn),以及自動抓取故障的上下文,然后做分析。
在同步訓(xùn)練模式下,一個(gè)節(jié)點(diǎn)變慢之后,整個(gè)訓(xùn)練會拖慢,那我們怎么抓到這些慢節(jié)點(diǎn),避免我們整個(gè)訓(xùn)練的過程會變慢?其實(shí)慢節(jié)點(diǎn)是我們遇到一個(gè)比較常見的問題,通過解決慢節(jié)點(diǎn),我們經(jīng)常會有10%、20%的性能提升。這一塊的解決包括兩方面檢查,第一是在起飛檢察階段,我們會做一些小工作負(fù)載的測試,我們找到它明顯比其他節(jié)點(diǎn)慢的節(jié)點(diǎn);二是在訓(xùn)練過程當(dāng)中,如果說它的通信執(zhí)行時(shí)間和其他節(jié)點(diǎn)不一樣,我們就把這樣的節(jié)點(diǎn)挑出來。
容錯訓(xùn)練方面,在大規(guī)模集訓(xùn)上,尤其到萬卡、十萬卡這樣的規(guī)模上,完全靠現(xiàn)有的方式是不可行的,到這種級別,我們的模式就是發(fā)現(xiàn)一個(gè)節(jié)點(diǎn)之后,這個(gè)節(jié)點(diǎn)可能是一個(gè)DP,如果說出了故障之后,我們就把這個(gè)DP從通信組上摘出去,這個(gè)通信組可以繼續(xù)工作。對于大DP,我去摘一個(gè)DP成本很高,還可以在一個(gè)DP里去摘一個(gè)節(jié)點(diǎn),這種情況下對這一部分參數(shù)的計(jì)算或者更新,我們會把它Skip,但對這種大規(guī)模的海量數(shù)據(jù)來說,這么一點(diǎn)點(diǎn)的數(shù)據(jù)對它整體性能影響并不大,但是我們省掉了停掉整個(gè)集群重新拉起的開銷。
最后做一個(gè)總結(jié),我的分享主要是三點(diǎn):
第一,算力需求的發(fā)展趨勢,使得大智算集群成為訓(xùn)練的剛需。
第二,低精度的訓(xùn)練,會帶來大規(guī)模訓(xùn)練效率的提升。
第三,集群的可靠性對大規(guī)模訓(xùn)練至關(guān)重要。
大家可以關(guān)注一下今年10月摩爾線程MUSA開發(fā)者大會,我們也會在MUSA開發(fā)者大會上為大家?guī)砀嗉夹g(shù)上的探索。
僵尸國度第四季-美劇-第01集-高清免費(fèi)在線觀看-美劇府
電視劇僵尸國度第四季第02集免費(fèi)觀看-56電影僵尸國度第四季僵尸國度第四季|僵尸國度第四季|喪尸國度|喪尸國度第四季
《僵尸國度第四季》第01集免費(fèi)在線播放_最新好看的美劇_影視大全網(wǎng)
僵尸國度第四季|僵尸國度第四季|喪尸國度|喪尸國度第四季美國美國《僵尸國度第四季》是阿布拉姆·考克斯,亞歷山大·耶倫,基斯·阿蘭,史蒂夫·格拉漢姆,Jennifer,Derwingson導(dǎo)演的一部超級經(jīng)典的美國美國片,該劇講述了:NBC旗下的基礎(chǔ)有線網(wǎng)Syfy電視網(wǎng)宣布續(xù)訂表現(xiàn)穩(wěn)健的《僵尸國度(Z Nation)》第四季第四季將于201說完了__。
《僵尸國度第四季》第07集免費(fèi)在線播放-全集歐美劇-星光影視
來源:紅網(wǎng)
作者:耿星波
編輯:戲憶雪
本文為紅辣椒評論 原創(chuàng)文章,僅系作者個(gè)人觀點(diǎn),不代表紅網(wǎng)立場。轉(zhuǎn)載請附原文出處鏈接和本聲明。