大模型承重牆,去掉了就開始擺爛!蘋果給出了「超級權重」

機器之心報道

編輯:蛋醬、佳琪

大模型的參數量越來越大,越來越聰明,但它們也越來越奇怪了。

兩年前,有研究者發現了一些古怪之處:在大模型中,有一小部分特別重要的特徵(稱之爲「超權重」),它們雖然數量不多,但對模型的表現非常重要。

如果去掉這些「超權重」,模型就完全擺爛了,開始胡言亂語,文本都不會生成了。但是如果去掉其他一些不那麼重要的特徵,模型的表現只會受到一點點影響。

有趣的是,不同的大模型的「超權重」卻出奇地相似,比如:

它們總是出現在層中。

它們會放大輸入 token 激活的離羣值,這種現象研究者們稱之爲「超激活」(super activation)。無論輸入什麼提示詞,「超激活」在整個模型中都以完全相同的幅度和位置持續存在。而這源於神經網絡中的「跨層連接」。

它們還能減少模型對常用但不重要的詞彙,比如「的」、「這」、「了」的注意力。

得到了這些發現,聖母大學和蘋果的研究團隊進一步對「超權重」進行了探索。

他們改進了 round-to-nearest quantization(RNQ)技術,提出了一種對算力特別友好的方法。

這種新方法與 SmoothQuant 效果相當,在處理模型的權重時,可以用這種技術處理更大的數據塊,讓模型在變小的同時,還能保持很好的效果。

看來,蘋果是真的把寶押在小模型身上了!

什麼是「超權重」?

爲了量化「超權重」對模型的影響有多大,研究團隊修剪了所有的離羣值權重,結果發現,去掉一個「超權重」的影響,比去掉其他 7000 個離羣值權重加起來還要嚴重。

如何識別「超權重」?

雖然之前的研究者發現了「超權重」可以激活異常大的神經網絡。該團隊又把「超權重」和「超激活」之間的聯繫向前推進了一步。他們發現在降維投影之前,門控和上投影的 Hadamard 乘積產生了一個相對較大的激活,而「超權重」進一步放大了這個激活並創造了「超激活」。

而通過激活的峰值可以進一步定位「超權重」。基於此,研究團隊提出了一種高效的方法:通過檢測層間降維投影輸入和輸出分佈中的峰值來定位「超權重」。

這種方法只需要輸入一個提示詞,非常簡單方便,不再需要一組驗證數據或具體示例了。

在這種情況下,j 和 k 是由 X_ik 和 Y_ij 的值決定的。因此,可以首先繪製出 mlp.down proj 層的輸入和輸出激活中的極端異常值。接着,如圖 3 所示,確定超權重所在的層和座標。

一旦檢測到一個超權重,將其從模型中移除並重覆上述過程,直到抑制住較大的最大激活值。

「超權重」的機制

研究團隊發現超級權重有兩種主要影響:

爲了探究「超權重」是完全通過「超激活」,還是也通過其他 token 來影響模型質量,研究團隊設計了一個控制變量實驗:

實驗結果如表 1 所示。恢復「超激活」後,模型的平均準確率從 35.14 恢復到 49.94,恢復「超激活」挽回了約 42% 的質量損失。

這表明,「超權重」對模型整體質量的影響並不完全由「超激活」所導致。

「超權重」會影響輸出 token 的概率分佈。爲此,該團隊研究了「超權重」對 Lambaba 測試集的 500 個 prompt 的輸出 token 概率分佈有何影響。

實驗表明,移除「超權重」後,停用詞的生成概率顯著放大。例如,對於 Llama-7B 模型,「the」的生成概率增加約 2 倍,「.」 增加約 5 倍,「,」 增加約 10 倍

爲了更加深入地剖析,研究團隊進行了案例研究:

含有「超權重」的原始模型能夠以 81.4% 的高概率正確預測。然而,移除「超權重」後,模型預測的最多的詞變成了停用詞「the」,並且「the」的概率僅爲 9.0%,大多數情況是在胡言亂語。

這表明,「超權重」對於模型正確且有信心地預測具有語義的詞彙至關重要。

研究團隊還分析了超級權重幅值變化對模型質量的影響,通過將超級權重按 0.0 到 3.0 的縮放因子放大。結果表明,適度放大幅值可以提升模型準確率,詳見下圖。

超離羣值感知量化

量化是一種壓縮模型和減少內存需求的強大技術。然而,無論是權重量化還是激活量化,異常值的存在都會大大降低量化質量。如前所述,研究者將這些有問題的異常值(包括超權值和超激活值)稱爲超異常值。

如上所示,這些超離羣值對模型質量的重要性是不成比例的,因此在量化過程中保留它們至關重要。

量化一般是將連續值映射到一個有限的值集;這裡考慮的是其中一種最簡單的形式,即非對稱輪至最近量化:

研究者特別考慮了硬件以半精度執行運算的情況,這意味着張量 X 在使用前會進行量化和去量化;在這種情況下,我們可以通過兩種方法利用超離羣值的先驗知識。

首先,保留超離羣值,防止對離羣值量化產生不利影響。其次,在去量化後恢復超離羣值,以確保超離羣值的效果得以保留。

接下來將以兩種形式對權重和激活採用這一觀點。

激活量化

研究者使用值舍入量化技術進行實驗,並做了一個小修改:用中值替換超激活(REPLACE),量化(Q)和去量化(Q-1)激活,然後在 FP16 中恢復超激活(RESTORE)。具體操作如下:

由於超激活是單個標量,因此對比特率和內核複雜度的影響不大。

權重量化

小規模分組會帶來計算和比特率開銷,需要其他技術來處理大量的半精度刻度和偏差。爲了應對這一挑戰,本文提出了一種簡單的方法來改進 INT4 的大塊量化。首先,識別超權重;其次,爲了改善離羣值擬合,對離羣值權重進行剪切(CLIP),在這一步超權重也會被剪切,對剪切後的權重進行量化(Q)和去量化(Q-1);然後,爲了確保保留超權重的效果,在去量化後恢復半精度超權重(RESTORE)。

如上公式,使用 z-score 對剪切進行參數化。假定所有權重都符合高斯分佈,研究者認爲所有 z 值超過某一閾值 z 的值都是離羣值。爲了調整超參數 z,研究者使用 Wikitext-2 訓練集中的 500 個示例找到了最小重構誤差 z-score。

實驗

爲了全面展示超權重的效果,研究者在 LLaMA 7B-30B、Mistral 7B 和 OLMo 上進行了實驗。爲了評估 LLM 的實際應用能力,他們評估了這些模型在 PIQA、ARC、HellaSwag、Lambada 和 Winogrande 等零樣本基準上的精度。細節如下所示。

激活量化

表 3 比較了本文方法和 SmoothQuant。對於兩個數據集上的三個 Llama 模型,本文方法比 SmoothQuant 的 naive 量化方法提高了 70%。在使用 Llama7B 的 C4 數據集和使用 Llama-30B 的 Wikitext 數據集上,本文改進幅度超過 SmoothQuant 的 80%。這意味着,與更復雜的方法相比,經過大幅簡化的量化方法可以獲得具有競爭力的結果。

隨後,研究者擴大了評估範圍,納入了更多的 LLM:OLMo(1B 和 7B)、Mistral-7B 和 Llama-2-7B,結果如表 4 和附錄表 7 所示。這些模型代表了不同的架構和訓練範式,能夠評估量化方法的通用性。由於 SmoothQuant 沒有報告這組模型,因此研究者將他們的結果與 naive W8A8 量化進行了比較。在所有模型和數據集上,本文方法始終優於 naive W8A8 量化,且在 OLMo 模型上表現特別突出。

值得注意的是,OLMo 模型使用非參數化 LayerNorm,因此與 SmoothQuant 方法不兼容,後者依靠 LayerNorm 權重來應用每個通道的比例。在 Mistral-7B 上,改進幅度較小。研究者假設這是因爲這些模型的 LayerNorm 所學習的權重可能會積極抑制超激活,從而使激活幅度的分佈更加均勻。

這些結果凸顯了超激活在量化過程中保持模型性能的重要性。通過以最小的計算開銷解決這一單一激活,本文方法捕捉到了更復雜的量化方案所實現的大部分優勢。這一發現表明,在量化過程中,超激活在保持模型質量方面發揮着不成比例的巨大作用。

權重量化

爲了評估所提出的超權重感知量化方法的有效性,研究者將其與傳統的 round-to-near 量化方法進行了比較,在一套零樣本下游任務中對模型進行了評估,結果如圖 7 所示。

在傳統的 round-to-near 量化方法中,可以觀察到一個明顯的趨勢:隨着塊大小的增加,模型質量明顯下降。這種下降可能是由於當較大的權重塊一起量化時,量化誤差會增加,從而使異常值影響到更多的權重。相比之下,本文的「超權重」感知量化方法對更大的塊大小具有更強的魯棒性。隨着塊大小的增大,模型質量的下降明顯小於 round-to-near 方法。

這種魯棒性源於本文方法能夠保留最關鍵的權重(超權重),同時將離羣值權重對整個量化過程的影響降至最低。通過剪除離羣值並關注離羣值權重,本文的方法在表示模型參數時保持了更高的保真度。

還有一個關鍵優勢是,它能夠支持更大的數據塊尺寸,同時減少模型質量的損失。這種能力使平均比特率更低,文件尺寸更小,這對於在資源有限的環境(如移動設備或邊緣計算場景)中部署模型至關重要。

更多研究細節,可參考原論文。