搜尋
首頁科技週邊人工智慧100億參數的語言模型跑不動? MIT華人博士提出SmoothQuant量化,記憶體需求直降一半,速度提升1.56倍!

大型語言模型(LLM)雖然性能強勁,但動輒幾百上千億的參數量,對計算設備還是內存的需求量之大,都不是一般公司能承受得住的。

量化(Quantization)是常見的壓縮操作,透過降低模型權重的精度(如32bit降為8bit),犧牲一部分模型的性能來換取更快的推理速度,更少的內存需求。

但對於超過1000億參數量的LLM來說,現有的壓縮方法都無法維持模型的準確率,也無法在硬體上有效率地運作。

最近,麻省理工學院和英偉達的研究人員聯合提出了一個通用後訓練的量化(GPQ, general-purpose post-training quantization)方案SmoothQuant,對大型語言模型可以高效實現8-bit權重,8-bit激活(W8A8)的量化,無需訓練也能保持模型的準確率。

100億參數的語言模型跑不動? MIT華人博士提出SmoothQuant量化,記憶體需求直降一半,速度提升1.56倍!

論文連結:https://arxiv.org/pdf/2211.10438.pdf

程式碼連結:https://github.com/mit-han-lab/smoothquant

由於激活相比權重更難量化, SmoothQuant透過數學等價變換將較難量化的活化遷移到權重上,實現了對活化異常值(activation outliers)的平滑處理。

SmoothQuant能夠對所有LLM的各種層中權重和活化量化到INT8,包括OPT-175B, BLOOM-176B和GLM-130B。

相比現有方法僅對權重進行靚貨,或者對激活進行混合精度的量化,SmoothQuant有更高的硬體效率,實現了1.56倍加速,記憶體需求僅為原始LLM的一半,且在準確率上幾乎沒有損失

100億參數的語言模型跑不動? MIT華人博士提出SmoothQuant量化,記憶體需求直降一半,速度提升1.56倍!

SmoothQuant同時具有硬體友善的設計,研究人員將SmoothQuant整合進了LLM服務框架FasterTransformer中,實現了更快的推理速度,相較於FP16的精準度僅需一半數量的GPU

文章的第一作者肖光烜是MIT EECS的一年級博士生,本科畢業於清華大學計算機科學與技術學院。

導師Song Han是MIT EECS的副教授,博士畢業於史丹佛大學,主要研究方向為高效深度學習,曾提出深度壓縮(deep compression)技術,可以將神經網路的尺寸降低一個數量級,而不損失準確率。

SmoothQuant

量化(Quantization)就是把高精度的值映射到更低精度的離散值,在這篇論文中研究人員主要關注對硬體更高效的整數均勻量化(integer uniform quantization),尤其是INT8。

100億參數的語言模型跑不動? MIT華人博士提出SmoothQuant量化,記憶體需求直降一半,速度提升1.56倍!

量化操作可以在不同的粒度上執行,如per-tensor量化應用於整個權重矩陣,per-token量化應用於激活中的每個token,per-channel量化應用於權重的每個輸出通道。

100億參數的語言模型跑不動? MIT華人博士提出SmoothQuant量化,記憶體需求直降一半,速度提升1.56倍!


透過對活化的量化結果進行觀察,研究人員總結出了幾個模式:

1、量化比權重更難量化。

權重的分佈相對更加均勻且平坦,先前的研究結果已證明將大型語言模型的權重降低到INT8,甚至到INT4對準確率的影響都不大。

2、異常值是激活量化中的主要困難。

激活中的異常值通常比正常值高出100倍左右,導致沒有異常值通道中的量化bits/levels效率很低。

100億參數的語言模型跑不動? MIT華人博士提出SmoothQuant量化,記憶體需求直降一半,速度提升1.56倍!

3、異常值固定在某一通道中出現。

異常值只會在很小一部分的通道中才會出現,但如果一個通道中有一個異常值,那麼該異常值可能會在所有的token中出現。

100億參數的語言模型跑不動? MIT華人博士提出SmoothQuant量化,記憶體需求直降一半,速度提升1.56倍!

給定一個token中所有通道的變異數會很大(有些通道會非常大,但大部分很小),但是給定一個通道在所有token度中的變異數會很小(異常值通道會很大)。

由於異常值具有持續出現和每個通道內小方差的特點,那麼如果對激活執行per-channel量化,其量化誤差將會遠小於per-tensor量化。

透過一個簡單的實驗,其結果再次驗證了研究者的想法,量化到INT8時,per-channel的準確率遠高於per-tensor和per-token量化,和FP16基線準確​​率相差無幾。

100億參數的語言模型跑不動? MIT華人博士提出SmoothQuant量化,記憶體需求直降一半,速度提升1.56倍!

研究者透過使用一個per-channel平滑因子s來將輸入活化進行平滑(smooth)。為了維持線性層的數學等價,也需要反向縮放權重。

100億參數的語言模型跑不動? MIT華人博士提出SmoothQuant量化,記憶體需求直降一半,速度提升1.56倍!

由於輸入X通常是由先前的線性運算產生的(如線性層、層norms等),所以就可以輕鬆地將平滑因子融合到之前層的參數offline,而且不會產生額外縮放的核心呼叫開銷。對於其他情況,例如當輸入來自殘差add時,可以向殘差分支添加額外的縮放。

將量化難度從活化轉移到權重

#Smooth的目標是選擇一個per-channel的平滑因子s,使該逆操作更易於量化。

為了減少量化誤差,應該增加所有通道的有效量化位元。當所有通道的最大magnitude相同時,總的有效量化位數將是最大的。

因此,一個最直接的平滑因子選擇就是輸入中每個通道的最大值,可以保證在分割之後,所有的激活通道都有相同的最大值,從而實現更容易的量化。

但要注意的是,啟動的範圍是動態的,對於不同的輸入樣本是不同的。所以研究人員使用預訓練資料集中的校準樣本來估計活化通道的規模。

由於這個公式將所有的量化困難遷移給了權重,可以發現在這種情況下,權重的量化誤差會很大,導致準確度下降很多。

100億參數的語言模型跑不動? MIT華人博士提出SmoothQuant量化,記憶體需求直降一半,速度提升1.56倍!

另一方面,也可以透過選擇sj = 1/ max(|Wj |),將所有的量化難度從權重推到活化上。同樣,由於活化量化誤差過大,模型的表現也不好。因此需要在權重和活化之間分割量化難度,使它們都易於量化。

研究人員引入一個超參數遷移強度α,來控制要從活化遷移到權重的難度。

100億參數的語言模型跑不動? MIT華人博士提出SmoothQuant量化,記憶體需求直降一半,速度提升1.56倍!

可以發現,對於大多數模型,例如OPT和BLOOM模型,α=0.5是一個很好的平衡點,可以平均分配量化難度,特別是使用相同的量化器進行權重和激活。

此公式保證了對應通道的權重和活化具有相似的最大值,從而共享相同的量化難度。

100億參數的語言模型跑不動? MIT華人博士提出SmoothQuant量化,記憶體需求直降一半,速度提升1.56倍!

#對於其他一些活化異常值比較大的模型,例如GLM-130B有30%的異常值,這對活化量化來說比較困難,可以選擇一個較大的α(如0.75),將更多的量化難度遷移到權重上。

SmoothQuant應用於Transformer區塊

線性層佔據了LLM模型的大部分參數和計算。在預設情況下,SmoothQuant對Transformer中所有線性層的輸入活化進行比例平滑,並以W8A8對線性層進行量化,在註意力計算中啟用了BMM運算子的量化。

100億參數的語言模型跑不動? MIT華人博士提出SmoothQuant量化,記憶體需求直降一半,速度提升1.56倍!

在流程中,首先用INT8對線性層和注意力層中的BMM等計算量大的運算子的輸入和權重進行量化,而對其他輕量級元素的運算,如Softmax和LayerNorm,保持活化為FP16,這樣的設計有助於平衡準確性和推理效率。

實驗部分

研究人員選擇了三個大型語言模型用來評估SmoothQuant,包括OPT, BLOOM和GLM-130B;並使用七個zero-shot任務,包括LAMBADA, HellaSwag , PIQA, WinoGrande, OpenBookQA, RTE, COPA等。

實驗結果顯示SmoothQuant可以處理非常大的LLM的量化問題,其活化更難量化。

100億參數的語言模型跑不動? MIT華人博士提出SmoothQuant量化,記憶體需求直降一半,速度提升1.56倍!

SmoothQuant可以在所有評估資料集上匹配FP16的準確性,而W8A8、ZeroQuant和Outlier Suppression基準產生的結果幾乎是隨機的。

100億參數的語言模型跑不動? MIT華人博士提出SmoothQuant量化,記憶體需求直降一半,速度提升1.56倍!

並且SmoothQuant可以無損地量化所有超過100B參數的開放式LLMs

SmoothQuant的O1和O2級成功地保持了浮點精度,而O3級(per-tensor static)使平均精度下降了0.8%,可能是因為靜態收集的統計數據與真實評估樣本的激活統計數據之間的差異。

儘管如此,SmoothQuant-O1可以與FP16的準確性相匹配,而SmoothQuant-O3只降低了1%的準確性,明顯優於基線。

SmoothQuant不僅對超過100B參數的非常大的LLM有效,而且對較小的LLM也有穩定的效果,SmoothQuant可以在所有規模的OPT模型上工作,並與INT8量化的FP16精度相匹配。

100億參數的語言模型跑不動? MIT華人博士提出SmoothQuant量化,記憶體需求直降一半,速度提升1.56倍!

為了展示整合到PyTorch和FasterTransformer中的SmoothQuant-O3的速度提升和記憶體節省,研究人員我們測量了一次產生一批4個句子的所有隱藏狀態的端對端延遲,也就是context階段的延遲,並記錄了這個過程中GPU記憶體使用的峰值。

由於Huggingface缺乏對模型並行的支持,所以研究人員只測量了SmoothQuant在單一GPU上的PyTorch實現的性能,因此選擇了OPT-6.7B、OPT-13B和OPT-30B進行評估。

在FasterTransformer庫中,SmoothQuant可以與Tensor Parallelism演算法無縫對接,因此研究人員在OPT-13B、OPT-30B、OPT-66B和OPT-175B上測試SmoothQuant的單GPU和多GPU基準。

在NVIDIA A100 80GB GPU伺服器上進行的實驗結果顯示,基於PyTorch實現的推理延遲和峰值記憶體使用上,SmoothQuant始終比FP16基線快,當序列長度為256時,在OPT-30B上獲得了1.51倍的速度提升。

100億參數的語言模型跑不動? MIT華人博士提出SmoothQuant量化,記憶體需求直降一半,速度提升1.56倍!

還可以看到一個趨勢,即模型越大,加速越明顯,但LLM.int8()幾乎總是比FP16基準慢,這也是由於混合精度啟動表示的巨大開銷造成的。

在記憶體方面,SmoothQuant和LLM.int8()都可以將FP16模型的記憶體用量幾乎減半,而SmoothQuant由於完全使用INT8 GEMM,所以節省的記憶體稍多。

100億參數的語言模型跑不動? MIT華人博士提出SmoothQuant量化,記憶體需求直降一半,速度提升1.56倍!

與FasterTransformer對OPT的FP16實作相比,SmoothQuant-O3在使用單一GPU時可以進一步降低OPT-13B和OPT-30B的執行延遲,最高可達1.56倍。


以上是100億參數的語言模型跑不動? MIT華人博士提出SmoothQuant量化,記憶體需求直降一半,速度提升1.56倍!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:51CTO.COM。如有侵權,請聯絡admin@php.cn刪除
大多數使用的10個功率BI圖 - 分析Vidhya大多數使用的10個功率BI圖 - 分析VidhyaApr 16, 2025 pm 12:05 PM

用Microsoft Power BI圖來利用數據可視化的功能 在當今數據驅動的世界中,有效地將復雜信息傳達給非技術觀眾至關重要。 數據可視化橋接此差距,轉換原始數據i

AI的專家系統AI的專家系統Apr 16, 2025 pm 12:00 PM

專家系統:深入研究AI的決策能力 想像一下,從醫療診斷到財務計劃,都可以訪問任何事情的專家建議。 這就是人工智能專家系統的力量。 這些系統模仿Pro

三個最好的氛圍編碼器分解了這項代碼中的AI革命三個最好的氛圍編碼器分解了這項代碼中的AI革命Apr 16, 2025 am 11:58 AM

首先,很明顯,這種情況正在迅速發生。各種公司都在談論AI目前撰寫的代碼的比例,並且這些代碼的比例正在迅速地增加。已經有很多工作流離失所

跑道AI的Gen-4:AI蒙太奇如何超越荒謬跑道AI的Gen-4:AI蒙太奇如何超越荒謬Apr 16, 2025 am 11:45 AM

從數字營銷到社交媒體的所有創意領域,電影業都站在技術十字路口。隨著人工智能開始重塑視覺講故事的各個方面並改變娛樂的景觀

如何註冊5天ISRO AI免費課程? - 分析Vidhya如何註冊5天ISRO AI免費課程? - 分析VidhyaApr 16, 2025 am 11:43 AM

ISRO的免費AI/ML在線課程:通向地理空間技術創新的門戶 印度太空研究組織(ISRO)通過其印度遙感研究所(IIR)為學生和專業人士提供了絕佳的機會

AI中的本地搜索算法AI中的本地搜索算法Apr 16, 2025 am 11:40 AM

本地搜索算法:綜合指南 規劃大規模活動需要有效的工作量分佈。 當傳統方法失敗時,本地搜索算法提供了強大的解決方案。 本文探討了爬山和模擬

OpenAI以GPT-4.1的重點轉移,將編碼和成本效率優先考慮OpenAI以GPT-4.1的重點轉移,將編碼和成本效率優先考慮Apr 16, 2025 am 11:37 AM

該版本包括三種不同的型號,GPT-4.1,GPT-4.1 MINI和GPT-4.1 NANO,標誌著向大語言模型景觀內的特定任務優化邁進。這些模型並未立即替換諸如

提示:chatgpt生成假護照提示:chatgpt生成假護照Apr 16, 2025 am 11:35 AM

Chip Giant Nvidia週一表示,它將開始製造AI超級計算機(可以處理大量數據並運行複雜算法的機器),完全是在美國首次在美國境內。這一消息是在特朗普總統SI之後發布的

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器