深度學習徹底改變了我們分析、理解和處理數(shù)據(jù)的方式,而且在各個領域的應用中都取得了巨大的成功,其在計算機視覺、自然語言處理、醫(yī)療診斷和醫(yī)療保健、自動駕駛汽車、推薦系統(tǒng)以及氣候和天氣建模方面有許多成功案例。
在神經(jīng)網(wǎng)絡模型不斷變大的時代,對計算速度的高需求對硬件和軟件都形成了巨大的挑戰(zhàn)。模型剪枝和低精度推理是非常有效的解決方案。
自 NVIDIA Ampere 架構(gòu)開始, 隨著 A100 Tensor Core GPU 的推出,NVIDIA GPU 提供了可用于加速推理的細粒度結(jié)構(gòu)化稀疏功能。在本文中,我們將介紹此類稀疏模型的訓練方法以保持模型精度,包括基本訓練方法、漸進式訓練方法以及與 int8 量化的結(jié)合。我們還將介紹如何利用 Ampere 架構(gòu)的結(jié)構(gòu)化稀疏功能進行推理。
騰訊機器學習平臺部門 (MLPD) 利用了漸進式訓練方法,簡化了稀疏模型訓練并實現(xiàn)了更高的模型精度。借助稀疏功能和量化技術(shù),他們在騰訊的離線 倍的加速。
NVIDIA Ampere和NVIDIA Hopper 架構(gòu) GPU增加了新的細粒度結(jié)構(gòu)化稀疏功能,該功能主要用于加速推理。此功能是由稀疏 Tensor Core 提供,這些稀疏 Tensor Core 需要 2:4 的稀疏模式。也就是說,以 4 個相鄰權(quán)重為一組,其中至少有 2 個權(quán)重必須為 0,即 50% 的稀疏率。
這種稀疏模式可實現(xiàn)高效的內(nèi)存訪問能力,有效的模型推理加速,并可輕松恢復模型精度。在模型壓縮后,存儲格式只存儲非零值和相應的索引元數(shù)據(jù)(圖 1)。稀疏 Tensor Core 在執(zhí)行矩陣乘法時僅處理非零值,理論上,計算吞吐量是同等稠密矩陣乘法的 2 倍。
?。ńY(jié)構(gòu)化稀疏矩陣具有 2:4 的稀疏模式。在 4 個相鄰權(quán)重當中,至少有 2 個值為零。在模型壓縮后,僅存儲非零值和相應的索引元數(shù)據(jù)。)
結(jié)構(gòu)化稀疏功能主要應用于能夠提供 2:4 稀疏權(quán)重的全連接層和卷積層。如果提前對這些層的權(quán)重做剪枝,則這些層可以使用結(jié)構(gòu)化稀疏功能來進行加速。
由于直接對權(quán)重做剪枝會降低模型精度,因此在使用結(jié)構(gòu)化稀疏功能的時候,您需要進行訓練來恢復模型精度。下面,我們將介紹一些基本訓練方法和新的漸進式訓練方法。
基本訓練方法可保持模型精度,并且無需任何超參數(shù)調(diào)優(yōu)。了解更多技術(shù)細節(jié),請參閱論文Accelerating Sparse Deep Neural Networks()。
?。ɑ居柧毞椒ň褪鞘褂眉糁蟮臋?quán)重和掩碼后的優(yōu)化器重復原始稠密模型的訓練過程。)
例如,把稀疏訓練應用在多階段式的稠密模型訓練當中。比如對于一些目標檢測模型,如果下游任務的數(shù)據(jù)集足夠大,您只需做稀疏調(diào)優(yōu)訓練。對于像 BERT-SQuAD 等模型,調(diào)優(yōu)階段使用的數(shù)據(jù)集相對較小,您則需要在預訓練階段進行稀疏訓練以獲得更好的模型精度。
此外,通過在稀疏調(diào)優(yōu)之前插入量化節(jié)點,您可以輕松將稀疏調(diào)優(yōu)與 int8 量化調(diào)優(yōu)結(jié)合起來。所有這些訓練以及調(diào)優(yōu)方法都是一次性的,即最終獲得的模型只需要經(jīng)過一次稀疏訓練處理。
一次性稀疏調(diào)優(yōu)(fine-tuning)可以覆蓋大多數(shù)任務,并在不損失精度的情況下實現(xiàn)加速。然而,就一些對權(quán)重數(shù)值變化敏感的困難任務而言,對所有權(quán)重做一次性稀疏訓練會導致大量信息損失。在小型數(shù)據(jù)集上只做稀疏化調(diào)優(yōu)可能會很難恢復精度,對于這些任務而言,就需要稀疏預訓練(pretraining)。
然而稀疏預訓練需要更多數(shù)據(jù),而且更加耗時。因此,受到卷積神經(jīng)網(wǎng)絡剪枝方法的啟發(fā),我們引入了漸進式稀疏訓練方法,在此類任務上僅應用稀疏化調(diào)優(yōu)便可以實現(xiàn)模型的稀疏化,同時不會造成明顯的精度損失。了解更多細節(jié),請參閱論文Learning both Weights and Connections for Efficient Neural Networks()。
?。u進式稀疏訓練方法將稀疏率分為幾個步驟,以輕松恢復精度。漸進式稀疏訓練方法的核心思想是將目標稀疏率進行若干次切分。)
如上述公式和圖 4 所示,對于目標稀疏率 S,我們將其分為 N 份,這將有助于在稀疏調(diào)優(yōu)過程中快速恢復信息。根據(jù)我們的實驗,在相同的調(diào)優(yōu)迭代次數(shù)內(nèi),使用漸進式稀疏訓練相比一次性稀疏訓練,可以獲得更高的模型精度。
圖 4. 漸進式稀疏訓練方法 (以 50% 稀疏率的 2:4 結(jié)構(gòu)化稀疏模式為例)
?。u進式稀疏訓練方法的示例:計算權(quán)重掩碼以達到 25% 稀疏率,再進行稀疏調(diào)優(yōu)恢復性能,最后重新計算掩碼使之達到 50% 稀疏率并對網(wǎng)絡進行調(diào)優(yōu)。)
我們以 50% 稀疏率的 2:4 結(jié)構(gòu)化稀疏為例,將稀疏率分為兩份,然后逐步稀疏和調(diào)優(yōu)模型中的權(quán)重參數(shù)。如圖 4 所示,首先計算權(quán)重掩碼以實現(xiàn) 25% 的稀疏率,然后執(zhí)行稀疏調(diào)優(yōu)以恢復模型精度。接下來,重新對剩余權(quán)重計算權(quán)重掩碼以達到 50% 的稀疏率,并對網(wǎng)絡進行調(diào)優(yōu),以獲得一個精度無損的稀疏模型。
為了獲得更輕量的模型,我們進一步將稀疏與量化、蒸餾相結(jié)合,即 Sparse-QAT。
下方的公式表示一個通用的量化過程。對于 32 位浮點數(shù)值 x,我們使用 Q [x] 表示其具有 K-bits 表示的量化值。
通常情況下,我們首先將原始參數(shù)量化到特定范圍,并將其近似為整數(shù)。然后,可以使用這個量化比例 scale (s) 來恢復原始值。這樣就得到了第一種量化方法,即校準,也稱為訓練后量化(post-training quantization, PTQ)。在校準中,一個關(guān)鍵的因素是要設置一個適當?shù)牧炕壤╯cale)。如果這個比例值過大,量化范圍內(nèi)的數(shù)字將不太準確。相反,如果這個比例值過小,會導致大量的數(shù)字落在 lmin 到 lmax 的范圍之外。因此,為了平衡這兩個方面,我們首先獲得張量中數(shù)值的統(tǒng)計分布,然后設置量化比例以覆蓋 99.99% 的數(shù)值。許多工作已經(jīng)證明,這種方法對于在校準過程中找到合適的量化比例非常有幫助。
然而,盡管我們已經(jīng)為校準設置了一個合理的量化比例,但是對于 8 bit 量化來說,模型精度仍然會顯著下降。因此,我們引入量化感知訓練(quantization-aware training, QAT),以進一步提高校準后的精度。QAT 的核心思想是以模擬量化的方法來訓練模型。
在前向傳播過程中,我們將權(quán)重量化為 int8,然后將其反量化為浮點數(shù)來模擬真實量化。在反向傳播過程中,引入 straight through estimation (STE) 的方法來更新模型權(quán)重。STE 的核心思想可以用如下公式表示:
由上述公式可知,閾值范圍內(nèi)的值對應的梯度直接反向傳播,超出閾值范圍的值對應的梯度被裁剪為 0。
Sparse-QAT 訓練流水線 顯示了 Sparse-QAT 的訓練流水線。稀疏化、量化、蒸餾以并行的方式執(zhí)行,最終獲得一個稀疏的 int8 量化模型。整個流水線包括如下三條路徑:
自 8.0 版本開始,TensorRT 可以支持稀疏卷積,矩陣乘法 (GEMM) 需要用 1x1 的卷積替代來進行稀疏化推理。在 TensorRT 中啟用稀疏化推理非常簡單。在導入 TensorRT 之前,模型的權(quán)重應具有 2:4 的稀疏模式。如果使用 trtexec 構(gòu)建引擎,只需設置 -sparity=enable 標志即可。如果您正在編寫代碼或腳本來構(gòu)建引擎,只需按如下所示設置構(gòu)建配置:
TensorRT 插件應實現(xiàn) configurePlugin方法,該方法會根據(jù)輸入和輸出類型及尺寸設置插件。您需要在這個函數(shù)當中初始化 cuSPARSELt 的相關(guān)結(jié)構(gòu)。
在相關(guān)性案例 2 中,稀疏 int8 模型可以獲得與 float32 模型接近的 Acc 分數(shù),相比稠密 int8 模型,其獲得了 1.4 倍的推理加速。
NVIDIA Ampere 架構(gòu)中的結(jié)構(gòu)化稀疏功能可以加速許多深度學習工作負載,并且易于結(jié)合 TensorRT 和 cuSPARSELt 稀疏加速庫一起使用。
江西宜春市市長嚴允擬任市委書記!宜春市委書記于秀明已當選江西政協(xié)副主席
小米明日將在印度發(fā)布 Redmi 12 手機,消息稱其 10999 盧比起
三星Galaxy S24全系參數(shù)曝光,可能是近幾年最有看點的三星手機了
iPhone15系列參數(shù)爆料匯總,一系四機,全系靈動島+USB-C接口