在人工智能領域,規模越大似乎就意味着能力越強。爲了追求更強大的語言模型,各大科技公司都在瘋狂堆疊模型參數和訓練數據,結果卻發現成本也隨之水漲船高。難道就沒有一種既經濟又高效的方法來訓練語言模型嗎?

來自哈佛大學和斯坦福大學的研究人員最近發表了一篇論文,他們發現,模型訓練的精度(precision) 就像一把隱藏的鑰匙,可以解鎖語言模型訓練的“成本密碼”。
什麼是模型精度?簡單來說,它指的是模型參數和計算過程中使用的數字位數。傳統的深度學習模型通常使用32位浮點數(FP32)進行訓練,但近年來,隨着硬件的發展,使用更低精度的數字類型,例如16位浮點數(FP16)或8位整數(INT8)進行訓練已經成爲可能。

那麼,降低模型精度會對模型性能產生什麼影響呢? 這正是這篇論文想要探究的問題。研究人員通過大量的實驗,分析了不同精度下模型訓練和推理的成本和性能變化,並提出了一套全新的“精度感知”縮放法則。
他們發現,使用更低精度進行訓練可以有效降低模型的“有效參數數量”,從而減少訓練所需的計算量。這意味着,在相同的計算預算下,我們可以訓練更大規模的模型,或者在相同規模下,使用更低的精度可以節省大量的計算資源。
更令人驚訝的是,研究人員還發現,在某些情況下,使用更低的精度進行訓練反而可以提高模型的性能! 例如,對於那些需要進行“量化後訓練”(post-training quantization)的模型,如果在訓練階段就使用較低的精度,模型對量化後的精度降低會更加魯棒,從而在推理階段表現出更好的性能。
那麼,我們應該選擇哪種精度來訓練模型呢? 研究人員通過分析他們的縮放法則,得出了一些有趣的結論:
傳統的16位精度訓練可能並非最優選擇。 他們的研究表明,7-8位精度可能是更經濟高效的選擇。
一味追求超低精度(例如4位)訓練也並非明智之舉。 因爲在極低的精度下,模型的有效參數數量會急劇下降,爲了維持性能,我們需要大幅增加模型規模,這反而會導致更高的計算成本。
對於不同規模的模型,最佳訓練精度可能會有所不同。 對於那些需要進行大量“過訓練”(overtraining)的模型,例如 Llama-3和 Gemma-2系列,使用更高的精度進行訓練反而可能更加經濟高效。
這項研究爲我們理解和優化語言模型訓練提供了一個全新的視角。它告訴我們,精度的選擇並非一成不變,而是需要根據具體的模型規模、訓練數據量和應用場景進行權衡。
當然,這項研究也存在一些侷限性。例如,他們使用的模型規模相對較小,實驗結果可能無法直接推廣到更大規模的模型。此外,他們只關注了模型的損失函數,並沒有對模型在下游任務上的性能進行評估。
儘管如此,這項研究仍然具有重要的意義。它揭示了模型精度與模型性能和訓練成本之間的複雜關係,併爲我們未來設計和訓練更強大、更經濟的語言模型提供了寶貴的 insights。
論文:https://arxiv.org/pdf/2411.04330
