Scaling Laws終結,量化無用,AI大佬都在審視這篇論文
最近幾天,AI 社區都在討論同一篇論文。
UCSD 助理教授 Dan Fu 說它指明了大模型量化的方向。
CMU 教授 Tim Dettmers 則直接說:它是很長一段時間以來最重要的一篇論文。OpenAI 創始成員、特斯拉前 AI 高級總監 Andrej Karpathy 也轉發了他的帖子。
Tim Dettmers 表示,可以說,人工智能的大部分進步都來自計算能力的提升,而(在最近)這主要依賴于低精度路線的加速(32- > 16 - > 8 位)。現在看來,這一趨勢即將結束。再加上摩爾定律的物理限制,大模型的大規模擴展可以說要到頭了。
例如,英偉達最新的 AI 計算卡 Blackwell 將擁有出色的 8 位能力,并在硬件層面實現逐塊量化。這將使 8 位訓練變得像從 FP16 切換到 BF16 一樣簡單。然而,正如我們從新論文中看到的那樣,對于很多大模型的訓練來說,8 位是不夠的。
與其他模型相比,Llama 405B 沒有得到太多應用的主要原因是它體量太大了,運行 405B 模型進行推理非常麻煩。但論文表明,訓練較小的模型(例如 70B)時,你也無法在低精度下有效地訓練這些模型。見下圖 8B(圓形) 70B(三角形) 405B(星型):
可見對于 20B Token 數據的訓練,訓練 8B 模型在 16 位中效率更高。對于 70B 模型來說 8 位仍然有效,但效率越來越低。
Tim Dettmers 感嘆道:從我自己的經驗(大量失敗的研究)來看,效率是無法欺騙的。如果量化失敗,那么稀疏化也會失敗,其他效率機制也會失敗。如果這是真的,那么我們現在就已經接近最優了。
那以后我們怎么辦?眼前似乎只有三條可能的路線:
- 擴大數據中心規模:未來約 2 年這仍然是可以做到的事;
- 通過動態擴展:路由到更小的專門模型或大 / 小模型上;
- 知識的提煉:這條路線與其他技術不同,并且可能具有不同的特性。
對于新硬件來說,我們仍然有 HBM4 內存,這將是一個很好的提升。但 FP4 訓練似乎是一個謊言,節點縮小不會再增加多少效率了。
這篇名為《Scaling Laws for Precision》的論文顧名思義,制定了一個和大語言模型使用數據精度有關的擴展定律,涵蓋了訓練前和訓練后。
- 論文標題:Scaling Laws for Precision
- 論文鏈接:https://arxiv.org/abs/2411.04330
據論文一作,來自哈佛大學的 Tanishq Kumar 介紹,他們的研究認為:
- 由于當代大模型在大量數據上經歷了過度訓練,因此訓練后量化已變得非常困難。因此,如果在訓練后量化,最終更多的預訓練數據可能會造成副作用;
- 在預訓練期間以不同的精度放置權重、激活或注意力的效果是一致且可預測的,并且擬合擴展定律表明,高精度(BF16)和下一代精度(FP4)的預訓練可能都是次優的設計選擇。
低精度訓練和推理會影響語言模型的質量和成本,但當前的大模型 Scaling Law 并未考慮到這一點。在這項工作中,研究人員為訓練和推理設計了「精度感知」擴展定律。
作者提出,以較低的精度進行訓練會降低模型的有效參數數量,從而使我們能夠預測低精度訓練和訓練后量化帶來的額外損失。對于推理,隨著模型在更多數據上進行訓練,訓練后量化帶來的性能下降會加劇,最終導致額外的預訓練數據產生負面影響。對于訓練,擴展定律使我們能夠預測具有不同精度的不同部分的模型的損失,以較低精度訓練較大的模型可能是計算最優的。
該工作統一了訓練后量化和訓練前量化的擴展定律,得出一個單一的函數形式,可以預測不同精度下訓練和推理的性能下降。
預訓練 scaling law 表明,計算最佳預訓練精度通常獨立于計算預算。然而,令人驚訝的是,如果模型大小受到限制,這種獨立性就不再成立,在這種情況下,計算最佳精度在計算中增長緩慢。
該研究以 3-16 bit 精度預訓練了 465 個語言模型,并對每個模型進行了訓練后量化。對于具有 N 個參數的語言模型,在 D 個 token 上進行訓練,訓練精度為 P_train,訓練后權重精度為 P_post,該研究最終找到了一個統一的 Scaling Law,其形式如下:
其中,A、B、E、α、β 是正擬合常數,δ_PTQ 是指推理前訓練后量化引起的損失退化。
研究簡介
該研究首先研究了訓練后量化模型權重的常用方法,發現訓練時間越長 / 預訓練期間「看到」的數據越多,模型在推理時對量化就越敏感,這解釋了為什么 Llama-3 可能更難量化。
事實上,這種損失退化大致是預訓練期間看到的 token / 參數比值的冪律,因此可以提前預測關鍵數據大小,超過該數據大小的更多數據的預訓練會非常有害。直覺可能是,當你訓練更多的數據時,更多的知識被壓縮成權重,給定的擾動會對模型性能造成更大的損害。
圖 1:主要發現示意圖。在 BF16 中將固定大小的模型在各種數據預算上訓練,并在最后量化權重。可以發現,由于訓練后量化而導致的退化會隨著預訓練期間看到的 token 數量增加而增加,因此額外的預訓練數據可能會造成損害。
經過擴展驗證表明,以較低的精度訓練較大的模型可以實現計算優化。
然后該研究將注意力轉向低精度訓練,主要研究量化感知訓練(僅權重)和低精度訓練。該研究將模型分解為權重、激活和 KV 緩存,找到其中任何一個量化到任意精度時損失的 Scaling Law,并開發一種組合且可解釋的函數形式來預測在預訓練期間,量化這三者的任意組合對損失的影響。
該研究的 Scaling Law 依賴于「有效參數計數」的概念,研究團隊假設當你降低精度,參數也降低一定數量,計數就降低,那么包含 FP4 中所有內容的 10 億參數模型具有可比較的數量 BF16 中 250m 模型的「有效參數」。
雖然權重可以毫無問題地以低精度進行訓練,但激活和 KV 緩存很敏感。
最后,該研究將訓練前和訓練后的發現統一為可解釋的函數形式,可以以任何精度組合預測訓練前和訓練后的損失。
該研究還發現,低精度的預訓練可以以定量可預測的方式「增強」模型的訓練后量化,但其程度低于直觀預期。
作者表示:「該研究在進行實驗時保持受控的架構和設置,但在實踐中,通常會故意進行架構調整以適應低精度訓練。」這也是這項研究的一點局限性。
感興趣的讀者可以閱讀論文原文,了解更多研究內容。