這種精度高,消耗資源少的大模型稀疏訓練方法被找到了
近日,阿里云機器學習PAI關于大模型稀疏訓練的論文《Parameter-Efficient Sparsity for Large Language Models Fine-Tuning》被人工智能頂會IJCAI 2022接收。
論文提出了一種參數高效的稀疏訓練算法PST,通過分析權重的重要性指標,得出了其擁有兩個特性:低秩性和結構性。根據這一結論,PST算法引入了兩組小矩陣來計算權重的重要性,相比于原本需要與權重一樣大的矩陣來保存和更新重要性指標,稀疏訓練需要更新的參數量大大減少。對比常用的稀疏訓練算法,PST算法可以在僅更新1.5%的參數的情況下,達到相近的稀疏模型精度。
背景
近幾年各大公司和研究機構提出了各式各樣的大模型,這些大模型擁有的參數從百億級別到萬億級別不等,甚至于已經出現十萬億級別的超大模型。這些模型需要耗費大量的硬件資源進行訓練和部署,從而導致它們面對著難以落地應用的困境。因此,如何減少大模型訓練和部署所需的資源成為了一個急需解決的問題。
模型壓縮技術可以有效的減少模型部署所需的資源,其中稀疏通過移除部分權重,使得模型中的計算可以從稠密計算轉換為稀疏計算,從而達到減少內存占用,加快計算速度的效果。同時,稀疏相比于其他模型壓縮方法(結構化剪枝/量化),可以在保證模型精度的情況下達到更高的壓縮率,更加合適擁有大量參數的大模型。
挑戰
現有的稀疏訓練手段可以分為兩類,一類是基于權重的data-free稀疏算法;一類是基于數據的data-driven稀疏算法。基于權重的稀疏算法如下圖所示,如magnitude pruning[1],通過計算權重的L1范數來評估權重的重要性,并基于此生成對應稀疏結果?;跈嘀氐南∈杷惴ㄓ嬎愀咝?,無需訓練數據參與,但是計算出來的重要性指標不夠準確,從而影響最終稀疏模型的精度。
基于數據的稀疏算法如下圖所示,如movement pruning[2],通過計算權重和對應梯度的乘積作為衡量權重重要性的指標。這類方法考慮到了權重在具體數據集上的作用,因此能夠更加準確的評估權重的重要性。但是由于需要計算并保存各個權重的重要性,因此這類方法往往需要額外的空間來存儲重要性指標(圖中S)。同時相較于基于權重的稀疏方法,往往計算過程更加復雜。這些缺點隨著模型的規模變大,會變得更加明顯。
綜上所述,之前的稀疏算法要么高效但是不夠準確(基于權重的算法),要么準確但是不夠高效(基于數據的算法)。因此我們期望提出一種高效的稀疏算法,能夠準確且高效的對大模型進行稀疏訓練。
破局
基于數據的稀疏算法的問題是它們一般會引入額外的與權重相同大小的參數來學習權重的重要性,這讓我們開始思考如何減少引入的額外參數來計算權重的重要性。首先,為了能夠最大化利用已有信息來計算權重的重要性,我們將權重的重要性指標設計成如下公式:
即我們結合了data-free和data-driven的指標來共同決定最終模型權重的重要性。已知前面data-free的重要性指標無需額外的參數來保存且計算高效,因此我們需要解決的就是如何壓縮后面那項data-driven重要性指標所引入的額外訓練參數。
基于之前的稀疏算法,data-driven重要性指標可以設計成
,因此我們開始分析通過該公式計算出來的重要性指標的冗余性。首先,基于之前的工作已知,權重和對應的梯度均具有明顯的低秩性[3,4],因此我們可以推導出該重要性指標也具有低秩性,從而我們可以引入兩個低秩小矩陣來表示原始與權重一樣大的重要性指標矩陣。
其次,我們分析了模型稀疏后的結果,發現它們具有明顯的結構性特征。如上圖所示,每張圖的右邊是最終稀疏權重的可視化結果,左邊是統計每一行/列對應稀疏率的直方圖。可以看出,左邊圖有30%的行中的大部分權重都被移除了,反之,右邊圖有30%的列中的大部分權重都被移除了?;谶@樣的現象,我們引入了兩個小結構化矩陣來評估權重每一行/列的重要性。
基于上述的分析,我們發現data-driven的重要性指標存在低秩性和結構性,因此我們可以將其轉換成如下表示形式:
其中A和B表示低秩性,R和C表示結構性。通過這樣的分析,原本和權重一樣大的重要性指標矩陣就被分解成了4個小矩陣,從而大大減少了參與稀疏訓練的訓練參數。同時,為了進一步減少訓練參數,我們基于之前的方法將權重的更新也分解成了兩個小矩陣U和V,因此最后的重要性指標公式變成如下形式:
對應算法框架圖如下所示:
最終PST算法實驗結果如下,我們在NLU(BERT、RoBERTa)和NLG(GPT-2)任務上與magnitude pruning和movement pruning進行比較,在90%的稀疏率下,PST可以在大部分數據集上達到與之前算法相當的模型精度,但是僅需1.5%的訓練參數。
PST技術已經集成在阿里云機器學習PAI的模型壓縮庫,以及Alicemind平臺大模型稀疏訓練功能中。為阿里巴巴集團內部落地使用大模型帶來了性能加速,在百億大模型PLUG上,PST相比于原本的稀疏訓練可以在模型精度不下降的情況下,加速2.5倍,內存占用減少10倍。目前,阿里云機器學習PAI已經被廣泛應用于各行各業,提供AI開發全鏈路服務,實現企業自主可控的AI方案,全面提升機器學習工程效率。
論文名字:Parameter-Efficient Sparsity for Large Language Models Fine-Tuning
論文作者:Yuchao Li , Fuli Luo , Chuanqi Tan , Mengdi Wang , Songfang Huang , Shen Li , Junjie Bai
論文pdf鏈接:?https://arxiv.org/pdf/2205.11005.pdf?