成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何在英特爾? 平臺上實現高效的大語言模型訓練后量化

企業動態
提升 SmoothQuant 量化方法的效力。

作者:英特爾公司 陸彤、何欣、郭恒、程文華、王暢、王夢妮、沈海豪

本文介紹了可提升大語言模型的訓練后量化表現的增強型 SmoothQuant 技術,說明了這項技術的用法,并證明了其在準確率方面的優勢。此方法已整合至英特爾? Neural Compressor(1) 中。英特爾? Neural Compressor 是一個包含量化、剪枝(稀疏性)、蒸餾(知識提煉)和神經架構搜索等多種常用模型壓縮技術的開源 Python 庫。目前,諸如 TensorFlow、英特爾? Extension for TensorFlow(2) 、PyTorch、英特爾? Extension for PyTorch(3) 、ONNX Runtime 和 MXNet等主流框架,都能與之兼容

英特爾? Neural Compressor 已經支持多款英特爾? 架構的硬件,比如英特爾? 至強? 可擴展處理器(4) 英特爾? 至強? CPU Max 系列(5) 英特爾? 數據中心 GPU Flex 系列(6) 英特爾? 數據中心 GPU Max 系列(7) 。本文涉及的實驗基于第四代英特? 至強? 可擴展處理器(8) 進行。

大語言模型

大語言模型 (Large Language Model, LLM) 需基于海量數據集進行訓練,可能擁有數十億權重參數。其先進的網絡結構和龐大的參數量,使它們能夠很好地應對自然語言本身的復雜性。完成訓練后的大語言模型,可針對各種下游的自然語言處理 (NLP) 和自然語言生成 (NLG) 任務進行調優,讓其更適合對話式聊天機器人(如 ChatGPT)、機器翻譯、文本分類、欺詐檢測和情感分析等任務場景。

大語言模型部署面臨的挑戰

大語言模型在執行自然語言處理和自然語言生成任務方面表現出色,但其訓練和部署頗為復雜,主要面臨以下挑戰:

  1. AI 與內存墻(9) 瓶頸問題:算力每兩年提高 3.1 倍,內存帶寬卻只提高 1.4 倍;
  2. 網絡帶寬挑戰:訓練大語言模型需要采用分布式系統,這對網絡帶寬提出了較高要求;
  3. 系統資源有限:訓練后的模型往往會部署在算力和內存資源均有限的系統上。

因此,采用訓練后量化的方法來為大語言模型瘦身,對于實現低時延推理至關重要。

大語言模型的量化

量化是一種常見的壓縮操作,可以減少模型占用的內存空間,提高推理性能。采用量化方法可以降低大語言模型部署的難度。具體來說,量化是將浮點矩陣轉換為整數矩陣:

其中 X_fp32、S 和 Z 分別為輸入矩陣、比例因子和整數零點。

有關每通道 (per-channel) 量化策略雖然可能會減少量化損失,但不能用于激活值量化的原因,請參看 SmoothQuant 相關文檔(10) 不過,激活值量化誤差損失卻是導致模型量化準確率下降的重要因素。為此,人們提出了很多方法來降低激活值量化損失,例如:SPIQ(11) Outlier Suppression(12) SmoothQuant(13) 。這三種方法思路相似,即把激活值量化的難度轉移到權重量化上,只是三者在轉移難度的多少上有所不同。

增強型 SmoothQuant

SmoothQuant 引入了一個超參數 α 作為平滑因子來計算每個通道的量化比例因子,并平衡激活值和權重的量化難度。

其中 j 是輸入通道索引。

對于OPT 和 BLOOM 等大多數模型來說,α=0.5 是一個能夠較好實現權重和激活值量化難度分割的平衡值。模型的激活異常值越大,就越需要使用更大的 α 值來將更多的量化難度轉移到權重上。

原始的 SmoothQuant 旨在通過針對整個模型使用一個固定值 α 來分割權重和激活值的量化難度。然而,由于激活異常值的分布不僅在不同模型之間存在差異,而且在同一模型的不同層之間也不盡相同,因此,本文推薦使用英特爾? Neural Compressor 的自動調優能力,逐層獲取最佳 α 值。

相關方法包括以下五個主要步驟(偽代碼如下所示):

  1. 通過特殊的回調函數 register_forward_hook 捕獲 (hook) 模型各層的輸入和輸出值。
  2. 根據用戶定義的 α 范圍和步長生成一個 α 值列表。
  3. 根據給定的 α 值重新計算平滑因子并調整參數(權重值和激活值)。
  4. 對權重執行每通道量化與反量化 (quantization_dequantization),對輸入值執行每張量 (per-tensor) 量化與反量化,以預測與給定 α 值對應的每層輸出值。
  5. 計算相對實際輸出值的均方損失,將調整后的參數恢復回來,并保存每層的最佳 α 值。

本文提出的方法支持用多個標準(如最小值、最大值和平均值)來確定 Transformer 塊的輸入層歸一化 (LayerNorm) 操作的 α 值。實驗發現,將 α 范圍設為 [0.3, 0.7],步長設為 0.05,對大多數模型來說都能達到很好的平衡。

這一方法有兩個顯著特點:一是全自動化,二是比原始方法支持的融合模式多。

下圖提供了在 BLOOM-1b7 模型上執行 SmoothQuant α 值自動調優的樣例代碼:

啟用增強型 SmoothQuant 的樣例代碼啟用增強型 SmoothQuant 的樣例代碼

用戶只需傳遞一個模型名稱 (model_name) 和一個數據加載器。值得注意的是,模型分析主要依靠的是 Torch JIT。用戶可以在加載 Hugging Face 模型(14) 時將 torchscript 設置為 True,或將 return_dict 設置為 False。更多信息請參閱英特爾? Neural Compressor 文檔(10)

結果

本文提出的增強型 SmoothQuant 的主要優勢在于提高了準確率。

經過對多種主流大語言模型的評估,具備自動調優能力的 INT8 SmoothQuant 最后一個詞元 (last-token) 的預測準確率要高于原始 INT8 SmoothQuant 和 FP32 基線方法。詳見下圖:

FP32 基線方法、INT8(啟用和不啟用 SmoothQuant)以及 INT8(啟用本文提出的增強型 SmoothQuant)的準確率對比

從上圖可以看出,在 OPT-1.3b 和 BLOOM-1b7 模型上,本文提出的增強型 SmoothQuant 的準確率比默認的 SmoothQuant 分別高 5.4% 和 1.6%。量化后的模型也縮小到 FP32 模型的四分之一,大大減少了內存占用空間,從而有效地提升大模型在英特爾? 平臺上的推理性能。

更全面的結果請見GitHub 存儲庫(10) 。同時,也歡迎您創建拉取請求或就GitHub 問題(15) 發表評論。期待聽到您的反饋意見和建議。

作者:

英特爾公司人工智能資深架構師沈海豪、英特爾公司人工智能資深軟件工程師程文華、英特爾公司人工智能軟件工程師陸彤、何欣、郭恒、王暢、王夢妮,他們都在從事模型量化及壓縮的研究與優化工作。

注釋:

1、英特爾? Neural Compressor

https://www.intel.cn/content/www/cn/zh/developer/tools/oneapi/neural-compressor.html

2、英特爾? Extension for TensorFlow

https://www.intel.cn/content/www/cn/zh/developer/tools/oneapi/optimization-for-tensorflow.html

3、英特爾? Extension for PyTorch

https://www.intel.cn/content/www/cn/zh/developer/tools/oneapi/optimization-for-pytorch.html

4、英特爾? 至強? 可擴展處理器

https://www.intel.cn/content/www/cn/zh/products/details/processors/xeon/scalable.html

5、英特爾? 至強? CPU Max 系列

https://www.intel.cn/content/www/cn/zh/products/details/processors/xeon/max-series.html

6、英特爾? 數據中心 GPU Flex 系列

https://www.intel.cn/content/www/cn/zh/products/details/discrete-gpus/data-center-gpu/flex-series.html

7、英特爾? 數據中心 GPU Max 系列

https://www.intel.com/content/www/us/en/products/details/discrete-gpus/data-center-gpu/max-series.html

8、第四代英特? 至強? 可擴展處理器

https://www.intel.cn/content/www/cn/zh/events/accelerate-with-xeon.html

9、AI 與內存墻

https://medium.com/riselab/ai-and-memory-wall-2cb4265cb0b8

10、SmoothQuant 相關文檔 / 英特爾? Neural Compressor 文檔 / GitHub 存儲庫

https://github.com/intel/neural-compressor/blob/master/docs/source/smooth_quant.md

11、SPIQ

https://arxiv.org/abs/2203.14642

12、Outlier Suppression

https://arxiv.org/abs/2209.13325

13、 SmoothQuant

https://arxiv.org/abs/2211.10438

14、Hugging Face 模型

https://huggingface.co/models

15、GitHub 問題

https://github.com/intel/neural-compressor/issues

責任編輯:張燕妮
相關推薦

2023-09-01 15:22:49

人工智能數據

2025-04-16 02:30:00

2011-11-23 10:04:25

英特爾Romley處理器PCI-E 3.0

2023-11-20 13:06:52

2014-04-03 14:23:02

英特爾統一固件管理套件

2023-08-09 17:35:11

開源模型

2022-07-01 18:50:32

英特爾

2011-07-07 09:36:15

2011-12-26 10:10:00

2014-12-03 10:34:31

2013-04-10 15:09:24

IDF2013英特爾陳榮坤

2011-12-14 19:01:20

英特爾

2013-09-13 15:19:08

英特爾移動平臺IDF

2014-11-14 15:59:07

英特爾架構安卓平臺創新

2014-11-14 17:15:42

英特爾

2012-06-18 17:42:42

英特爾ARM
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美在线视频免费 | 九热在线 | 亚洲二区视频 | 国产精品国产成人国产三级 | 国产精品资源在线观看 | 羞羞的视频在线 | 亚洲人成网站777色婷婷 | aaa国产大片 | h免费观看 | 福利二区 | 天天拍天天操 | 亚洲国产成人精品女人久久久 | 欧美黄色录像 | 精品久 | 天天射网站 | 久久精品视频播放 | 欧美激情久久久 | 国产精品久久久久久久久免费 | 成人黄色电影免费 | 国产精品一区二区三区在线 | 久久久久国产一区二区三区 | 精品色 | 国产在线麻豆精品入口 | 亚洲精品一 | 精精国产xxxx视频在线野外 | 成人在线免费 | 日韩日b视频| 亚洲网址在线观看 | 日一区二区三区 | 日韩欧美精品在线 | 欧美精品一级 | 天天综合久久 | 久久久久国产一区二区三区 | 97久久精品午夜一区二区 | 国产成人在线一区 | 国产日韩一区 | 国产精品视频久久 | 九九精品在线 | 免费一区 | 日韩成人精品一区二区三区 | 黄 色 毛片免费 |