Core Concepts
本文提出了一種名為「Cut Cross-Entropy (CCE)」的演算法,透過重新設計交叉熵損失函數的計算方式,在不影響訓練速度和收斂性的前提下,顯著降低大型詞彙語言模型訓練過程中所需的記憶體佔用。
本研究論文介紹了一種名為「Cut Cross-Entropy (CCE)」的新方法,旨在解決大型詞彙語言模型 (LLM) 訓練過程中記憶體佔用過高的問題。隨著 LLM 規模不斷擴大,其詞彙量也隨之增加,導致訓練期間的記憶體佔用量急劇上升,其中交叉熵損失計算佔據了大部分記憶體。
傳統的交叉熵計算需要將所有詞彙項的 logits 載入記憶體,而 CCE 則透過僅計算正確詞彙項的 logit 並動態評估所有 logits 的 log-sum-exp 來避免這個問題。研究團隊開發了一個客製化核心,在快閃記憶體中執行矩陣乘法和 log-sum-exp 運算,從而將交叉熵計算所需的記憶體佔用降至最低。
實驗結果顯示,CCE 能夠在不影響訓練速度或收斂性的情況下,顯著減少記憶體佔用。例如,在 Gemma 2 (2B) 模型中,CCE 將損失計算的記憶體佔用從 24 GB 降低到 1 MB,將分類器頭部訓練期間的總記憶體消耗從 28 GB 降低到 1 GB。
大型語言模型 (LLM) 的發展得益於參數數量、上下文長度和詞彙量的增加。然而,這些增長也帶來了巨大的計算和記憶體需求。為了應對這些挑戰,研究人員開發了各種優化技術,例如大型 mini-batch 梯度下降、資料平行化、激活檢查點和 FlashAttention。儘管這些技術有效降低了 LLM 訓練的記憶體消耗,但交叉熵損失層仍然是記憶體佔用的主要瓶頸。