- 克雷西 發自 凹非寺
量子位 | 公眾號 QbitAI
密集模型的推理能力也能和DeepSeek-R1掰手腕了?
華為利用純昇騰集群訓練出的盤古Ultra,在數學競賽、編程等推理任務當中,和R1打得有來有回。
關鍵是模型參數量只有135B,整個訓練過程零英偉達含量,而且沒有出現損失尖峰。
通過改進的模型架構和系統優化策略,盤古Ultra擁有優異的性能表現和52%以上的算力利用率。
并且有網友表示,訓練過程中沒有出現損失尖峰這一特征,似乎此前從未實現。
135B密集模型比肩DeepSeek-R1
作為一個參數量135B密集模型,盤古Ultra達到了同尺度密集模型的最優表現,甚至可以與DeepSeek-R1等參數量更大的MoE模型競爭。
在預訓練階段模型的評測中,盤古Ultra在絕大部分英文基準任務和全部中文任務上取得了最佳性能,優于Llama 405B、DeepSeek-V3等baseline模型。
尤其在MMLU、TriviaQA、GSM8K等具有挑戰性的數據集上,盤古Ultra展現出了卓越的語言理解和推理能力。
經過指令調優后,盤古Ultra的性能進一步提升,尤其在AIME 2024、MATH-500等數學推理任務和LiveCodeBench等編程競賽題上達到了SOTA水平。
綜合來看,盤古Ultra超越了包括GPT-4o、Mistral-Large 2等強大模型,與DeepSeek-R1等MoE模型競爭激烈。
同時,盤古Ultra在Arena Hard、MMLU-pro等涵蓋通用語言理解和推理的評測中也表現優異。
那么,為了實現這樣的效果,盤古Ultra采用了哪些關鍵技術呢?
“三明治”層歸一化架構
如前文所述,盤古Ultra是一款135B參數量的密集模型,使用了94層的網絡結構。
盤古Ultra采用了分組查詢注意力(GQA)機制,包含96個查詢頭(query head)和8個鍵值頭(key-value head)。
為了解決訓練超深網絡面臨的不穩定性和收斂困難等問題,盤古Ultra在模型架構上做出了兩個關鍵改進——深度縮放的Sandwich-Norm層歸一化和TinyInit參數初始化策略。
傳統的Transformer通常使用Pre-LN層歸一化,但在深度模型中,Pre-LN容易導致每個子層輸出尺度的波動,引發訓練不穩定。
盤古Ultra使用的Sandwich-Norm層歸一化,則是在殘差連接前對每個子層的輸出做歸一化,并根據網絡深度對初始化值進行縮放,從而有效消除了訓練過程中的loss尖峰,使訓練過程更加平穩。
用更容易理解的話說,傳統方法僅在每個子層的輸入進行歸一化,但這種方法針對輸出也進行了歸一化,形成了Pre-Norm + 子層 + Post-Norm的“三明治”結構。
但是,僅僅使用Sandwich-Norm還不足以完全消除深度模型訓練中的不穩定性——隨著網絡層數的增加,每一層的輸出尺度仍然可能出現累積性的漂移。
為此,盤古Ultra在Sandwich-Norm的基礎上,進一步引入了深度縮放機制,對Post-Norm中的放縮參數γ進行了深度相關的初始化。
至于整個模型的初始化,傳統的初始化通常采用的Xavier初始化方法僅考慮模型寬度,而盤古Ultra采用的TinyInit同時依據模型深度和寬度來縮放初始化權重的標準差。
這種初始化方式有助于在前向傳播和反向傳播過程中,維持各層梯度的方差在一個合理的范圍內,避免了梯度消失或爆炸問題,使得訓練過程更加穩定,同時也加速了收斂。
實驗表明,TinyInit在深度模型訓練中取得了更好的收斂速度和下游任務性能;同時針對embedding層,保持權重的標準差接近1也能提升訓練穩定性。
另外,盤古團隊也針對Tokenizer進行了優化,通過在通用中英文、代碼、數學等不同領域分別進行詞頻統計,再合并去重,最終得到了一個兼顧領域覆蓋和編碼效率的153376個token的平衡詞表。
8192張昇騰NPU訓練集群
盤古Ultra的整個訓練流程主要分為三個階段——預訓練、長上下文擴展和指令調優。
其中預訓練又可以分為三個子階段:
- 通用階段:側重建立語言理解和知識儲備,使用了大量中英文通用語料,覆蓋網頁、書籍、百科等多個來源;
- 推理階段:引入更多高質量的數學和代碼數據,以增強模型的推理能力。同時還使用instruction數據來幫助模型學習執行任務;
- 退火階段:幫助模型鞏固知識和推理能力,并強化指令遵循能力。大量使用問答對和人類反饋數據。
研究者們采用了基于規則和模型的數據清洗方法,并設計了curriculum learning策略,讓模型循序漸進地學習不同難度的樣本。
預訓練中使用了AdamW優化器,并動態調整超參數。
預訓練后,模型在最長128K的長上下文數據上進一步訓練,通過擴大RoPE的基頻來實現長序列建模,以增強處理長文檔的能力。
最后的指令調優階則段使用監督微調(SFT)和強化學習(RL)來使模型更好地適應下游任務,學會執行指令并與人類偏好對齊。
訓練設施方面,盤古Ultra使用了一個由8192個昇騰AI處理器組成的大規模計算集群。
集群中每個節點包含8個NPU,通過華為高速緩存一致性互聯HCCS以全互聯的拓撲結構連接,每個NPU配備64GB內存,節點間則通過200Gbps的RoCE(RDMA over Converged Ethernet)網絡互聯。
為了實現盤古Ultra的高效訓練,研究團隊還采用了一套系統的并行策略和優化技術。
在并行策略的選擇上,盤古Ultra綜合考慮了模型的規模、數據的特性以及硬件的拓撲,最終采用了數據并行、張量并行、序列并行和流水線并行等多種并行方式的組合:
- 128路數據并行,將訓練數據分片到不同設備,保證了數據吞吐;
- 8路張量并行,利用設備內部高帶寬切分層內張量,實現高效通信;
- 序列并行用于處理超長序列以降低顯存壓力;
- 8段流水線并行,將不同層分布到不同設備,形成高效的計算流水線。
在并行策略的基礎上,盤古Ultra還從多個角度對訓練系統進行了深度優化。
一方面,通過使用ZeRO(Zero Redundancy Optimizer)分布式優化器,將模型狀態分片到不同設備,大幅降低了單個設備的內存占用,在提高數據并行度的同時,確保了每個設備的內存負擔在可接受范圍內。
另一方面,研究者們通過各種通信和計算優化技術,最小化了通信開銷,提升了計算效率:
- 通過算子融合(Kernel Fusion)將多個小算子合并,減少了內存訪問和kernel啟動;
- 通過通信計算重疊(Communication-Computation Overlapping)實現通信和計算的深度交織,隱藏通信延遲;
- MC^2(Merged Computation & Communication)和BOA(Batch Optimization Accelerator)分別對張量并行和規范化層的通信進行了專門優化……
在算法、工程、數據各個層面的精細優化下,盤古Ultra實現了52%以上的算力利用率。
技術報告:
https://github.com/pangu-tech/pangu-ultra/blob/main/pangu-ultra-report.pdf
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
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.