博客專欄

        EEPW首頁 > 博客 > 將330億參數大模型「塞進」單個消費級GPU,加速15%、性能不減

        將330億參數大模型「塞進」單個消費級GPU,加速15%、性能不減

        發布人:CV研究院 時間:2023-06-09 來源:工程師 發布文章

        轉自《機器之心》

        圖片

        預訓練大語言模型(LLM)在特定任務上的性能不斷提高,隨之而來的是,假如 prompt 指令得當,其可以更好的泛化到更多任務,很多人將這一現象歸功于訓練數據和參數的增多,然而最近的趨勢表明,研究者更多的集中在更小的模型上,不過這些模型是在更多數據上訓練而成,因而在推理時更容易使用。
        舉例來說,參數量為 7B 的 LLaMA 在 1T token 上訓練完成,盡管平均性能略低于 GPT-3,但參數量是后者的 1/25。不僅如此,當前的壓縮技術還能將這些模型進一步壓縮,在保持性能的同時還能大幅減少內存需求。通過這樣的改進,性能良好的模型可以在終端用戶設備(如筆記本)上進行部署。
        然而,這又面臨另一個挑戰,即想要將這些模型壓縮到足夠小的尺寸以適應這些設備,怎樣才能兼顧生成質量。研究表明,盡管壓縮后的模型生成的答案準確率還可以,但現有的 3-4 位量化技術仍然會讓準確性降低。由于 LLM 生成是順序進行的,依賴于先前生成的 token,小的相對誤差不斷累積并導致嚴重的輸出損壞。為了確保可靠的質量,關鍵是設計出低位寬的量化方法,與 16 位模型相比不會降低預測性能。
        然而,將每個參數量化到 3-4 位通常會導致中等程度、甚至是高等程度的準確率損失,特別是那些非常適合邊緣部署的 1-10B 參數范圍內的較小模型。
        為了解決準確性問題,來自華盛頓大學、蘇黎世聯邦理工學院等機構的研究者提出了一種新的壓縮格式和量化技術 SpQR(Sparse-Quantized Representation,稀疏 - 量化表征),首次實現了 LLM 跨模型尺度的近無損壓縮,同時達到了與以前方法相似的壓縮水平。
        SpQR 通過識別和隔離異常權重來工作,這些異常權重會導致特別大的量化誤差,研究者將它們以更高的精度存儲,同時將所有其他權重壓縮到 3-4 位,在 LLaMA 和 Falcon LLMs 中實現了不到 1% 的困惑度相對準確率損失。從而可以在單個 24GB 的消費級 GPU 上運行 33B 參數的 LLM,而不會有任何性能下降,同時還能提高 15% 的速度。
        SpQR 算法高效,既可以將權重編碼為其他格式,也可以在運行時進行有效地解碼。具體來說,該研究為 SpQR 提供了一種高效的 GPU 推理算法,可以比 16 位基線模型更快地進行推理,同時實現了超過 4 倍的內存壓縮收益。
        方法
        該研究提出一種混合稀疏量化的新格式 —— 稀疏量化表征(SpQR),可以將精確預訓練的 LLM 壓縮到每個參數 3-4 位,同時保持近乎無損。
        具體來說,該研究將整個過程分為兩步。第一步是異常值檢測:該研究首先孤立了異常值權重,并證明其量化會導致高誤差:異常值權重保持高精度,而其他權重以低精度(例如 3 位的格式)存儲。然后,該研究以非常小的組大小實現分組量化(grouped quantization)的變體,并表明量化尺度本身可以被量化為 3 位表征。
        SpQR 極大地減少了 LLM 的內存占用,而不會降低準確性,同時與 16 位推理相比,LLM 的生成速度快了 20%-30%。
        此外,該研究發現,權重矩陣中敏感權重的位置不是隨機的,而是具有特定的結構。為了在量化過程中突出顯示其結構,該研究計算了每個權重的敏感度,并為 LLaMA-65B 模型可視化這些權重敏感度。下圖 2 描繪了 LLaMA-65B 最后一個自注意力層的輸出投影。

        圖片

        該研究對量化過程進行了兩個改變:一個用于捕捉小的敏感權重組,另一個用于捕捉單個的異常值。下圖 3 為 SpQR 的總體架構:

        圖片

        下表為 SpQR 量化算法,左邊的代碼片段描述了整個過程,右邊的代碼片段包含了二級量化和查找異常值的子程序:

        圖片

        實驗
        該研究將 SpQR 與其他兩種量化方案進行了比較:GPTQ、RTN(rounding-to-nearest),并用兩個指標來評估量化模型的性能。首先是困惑度的測量,所用數據集包括 WikiText2、 Penn Treebank 以及 C4;其次是在五個任務上的零樣本準確率:WinoGrande、PiQA、HellaSwag、ARC-easy、ARC-challenge。
        主要結果。圖 1 結果顯示,在相似的模型大小下,SpQR 的性能明顯優于 GPTQ(以及相應的 RTN),特別是在較小的模型上。這種改進得益于 SpQR 實現了更多的壓縮,同時也減少了損失退化。

        圖片

        表 1、表 2 結果顯示,對于 4 位量化,與 GPTQ 相比,SpQR 相對于 16 位基線的誤差減半。

        圖片

        圖片

        表 3 報告了 LLaMA-65B 模型在不同數據集上的困惑度結果。

        圖片

        最后,該研究評估了 SpQR 推理速度。該研究將專門設計的稀疏矩陣乘法算法與 PyTorch(cuSPARSE)中實現的算法進行了比較,結果如表 4 所示。可以看到,盡管 PyTorch 中的標準稀疏矩陣乘法并沒有比 16 位推理更快,但本文專門設計的稀疏矩陣乘法算法可以提高約 20-30% 的速度。

        圖片


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: AI

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 惠东县| 麻城市| 台前县| 广丰县| 绍兴市| 中阳县| 嘉义市| 荥阳市| 县级市| 黑水县| 屏东市| 大安市| 开封市| 宁明县| 庆城县| 买车| 宜兴市| 高州市| 江北区| 合水县| 托里县| 买车| 合川市| 南宁市| 郸城县| 德保县| 绍兴县| 健康| 新龙县| 永康市| 高雄县| 禹城市| 化隆| 佛冈县| 太湖县| 神木县| 海安县| 新泰市| 罗定市| 贺兰县| 绥中县|