HaoDanmeng的个人博客分享 http://blog.sciencenet.cn/u/HaoDanmeng

博文

学习周报

已有 535 次阅读 2025-3-30 22:23 |个人分类:学习周报|系统分类:科研笔记

学习周报

姓名

郝丹萌

时间范围

2025.3.24-2025.3.30

周次

十四

研究方向

大模型高效参数微调

AWQ 量化详细1. 摘要

本文提出了激活感知权重量化 (AWQ),这是一种适合硬件的 LLM 低位权重(比如 w4)量化方法。AWQ 发现,并非所有 LLM 权重都同等重要,仅保护 1% 的显著权重便能大幅减少量化误差。而要识别显著权重通道,应参考的是激活分布而非权重分布。为了避免硬件效率低下的混合精度量化,我们通过数学推导得出,放大显著通道可以减少量化误差。AWQ 采用等效变换来放大显著权重通道,用于保留权重显著通道值,保留的比例通过离线收集激活统计数据确定。

AWQ 不依赖反向传播或重构,因此可以泛化到不同领域和模态而不会对校准集过拟合。AWQ 在各种语言建模和领域特定的基准测试(编码和数学)中优于现有方法。凭借更好的泛化性,它在指令微调语言模型以及多模态语言模型上首次实现了卓越的量化性能,多模态模型量化是前作 SmoothQuant 没有测试的领域。

2. AWQ: 激活感知的权重量化

量化技术通过将浮点数映射为低位整数,有效的减少 LLM 模型权重体积和推理成本。本节中,作者首先提出了一种仅针对权重的量化方法,通过保护更多“重要”权重,在无需额外训练(QAT)或回归的情况下提升模型精度。随后,作者引入了一种数据驱动的优化方法,来搜索减少量化误差的最佳缩放因子(见图 2)。

figure2

图 2b 展示了可以基于激活分布找到 LLM 中 1% 的关键权重,将这些关键权重保留为 FP16 可以显著提升量化后的性能(困惑度从 43.2(左图)降至 13.0(中图))。但这种混合精度格式在硬件上效率较低,基于激活感知原则,作者提出了 AWQ(右图)。AWQ 采用通道缩放方式,保护关键权重并减少量化误差。作者测试了 OPT-6.7B 模型上使用 INT3-g128 量化下的困惑度 PPL(越小越好)表现为 13.0,和前面的混合精度量化一样,说明 AWQ 量化算法有效。

2.1 观点 1-权重并非同等重要,需要基于激活分布来挑选权重的显著通道

作者观察到,LLM 中的权重并非同等重要:仅有 0.1%~1% 的小部分显著权重对模型输出精度影响较大。如果能保留这部分关键权重,其他权重使用低比特量化推理,那么就能在保持模型精度的前提下,大幅降低模型内存占用和提高推理速度。

这里有个问题是,哪部分权重通道更重要呢?通常评估权重重要性的方法是查看其大小或 L2-范数(所有权重平方和的平方根) (Han 等,2015;Frankle 和 Carbin,2018),但在量化推理中也是这样吗?为此,作者做了三个对比实验来判断挑选显著权重方法的有效性,结果发现保留大范数的权重通道(即基于 W 的 FP16%)对量化性能的提升有限,跟随机选择通道带来的提升类似。详细对比结果见表 1 所示:

table1

RTN 量化的核心思想是简单地将每个数值舍入到目标精度下的最接近值,量化缩放系数计算公式为 Δ=max−min2n−1Δ=2n1maxmin

但有趣的是,作者发现基于激活值大小来选择权重可以显著提升性能!即使只保留 0.1%-1% 的通道为 FP16。推测是激活值较大的的输入特征通常更重要,而保留相应的权重为 FP16 可以更好地保护这些特征,从而提升模型性能。

具体实现上,作者是对激活值的每一列求绝对值的平均值,然后把平均值较大的一列对应的通道视作显著通道,保留 FP16 精度。

到这里可以总结出一个重要结论:LLM 权重并非同等重要,只有 0.1%~1% 的小部分显著权重对模型输出精度影响较大,又因为幅度较大的输入特征通常更重要,因此需要基于激活分布来挑选权重的显著通道

局限性:尽管保留 0.1% 的权重为 FP16 可以提升量化性能,且不会显著增加模型的总位数,但混合精度的数据类型会推理系统实现复杂化。因此还需要找到一种方法,可以保护这些关键权重同时又不用实际保留它们为 FP16

2.2 观点 2-对显著权重进行放大可以降低量化误差

论文描述是基于激活感知缩放保护关键权重 Protecting Salient Weights by Activation-aware Scaling,不是很清楚,这里我换了一种表达。

作者提出一种替代方案,通过通道缩放减少关键权重的量化误差,避免硬件效率问题。

量化误差分析

从权重量化带来的误差分析入手。假设一个权重组或块 ww,其线性操作可写为 y=wxy=wx,而量化后的对应形式为 y=Q(w)xy=Q(w)x,由此可定义量化函数为:

Q(w)=Δ⋅Round(wΔ),Δ=max⁡(∣w∣)2N−1(1)Q(w)=ΔRound(Δw),Δ=2N1max(w)(1)

其中,NN 是量化位数,ΔΔ 是由绝对值的最大值确定的量化缩放系数。

现在考虑对于一个权重元素 w∈www,如果我们引入缩放因子 ss,并在量化过程中将权重 ww 与 ss 相乘,同时将激活 xx 以同样的缩放因子 ss 逆向缩放!即 Q(w⋅s)(x/s)Q(ws)(x/s),引入缩放因子之后的新线性操作函数形式变为:

Q(w⋅s)⋅xs=Δ′⋅Round(wsΔ′)⋅x⋅1s,(2)Q(ws)sx=ΔRound(Δws)xs1,(2)

虽然公式 1 和公式 2 在数学上是“等效”的,但是带来的精度损失是不一样的。

Δ’Δ’ 是在应用 ss 之后的新量化缩放系数。作者通过实验发现:

  1. 来自 Round(⋅)Round() 的期望误差(记为 RoundErr(⋅)RoundErr())不变:由于舍入函数将浮点数映射到整数,误差大致在 [0,0.5][0,0.5] 范围内均匀分布,导致平均误差约为 0.25,即 RoundErr(⋅)∼0.25RoundErr()0.25

  2. 对单个元素 ww 进行缩放通常不会改变 ww 组的最大值。因此可以得出 Δ’≈ΔΔ’Δ 的结论;

  3. 由于 ΔΔ 和 xx 以 FP16 表示,因此它们没有量化误差。

因此,方程 (1) 和 (2) 中的量化误差可以表示为公式(3):

Err(Q(w)x)=Δ⋅RoundErr(wΔ)⋅xErr(Q(w)x)=ΔRoundErr(Δw)xErr(Q(w⋅s)(xs))=Δ′⋅RoundErr(wsΔ′)⋅x⋅1s(3)Err(Q(ws)(sx))=ΔRoundErr(Δws)xs1(3)

两个误差相除,可得新误差与原始误差的比率为 Δ′Δ⋅1sΔΔs1。因为 Δ′≈ΔΔΔ 且 s>1s>1,则可推公式(2)的误差小于公式(1)。因此,量化时对显著权重进行放大即引入缩放因子 ss,是可以降低量化误差的

table2

表 2 的实验结果直接证明了量化时对显著权重进行放大,是可以降低量化误差的,同时,在保护显著通道时,我们还需考虑非显著通道的误差



https://blog.sciencenet.cn/blog-3622922-1479995.html

上一篇:学习周报
收藏 IP: 111.117.126.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

IP: 211.95.40.*   閸ョ偛顦� | 鐠э拷 鐠э拷 +1 [2]娴滃簼绠板Ч锟�   2025-4-2 13:54
閸樼喐娼甸幋鎴滄粦閻滄澘婀粈鍙ョ窗濞翠浇顢戦惃鍕Ц鐎涳附婀崇挧鍕拱娑撹绠熺悰灞艰礋
閸ョ偛顦�  閿涳拷 娑撯偓娑擃亝鏌婇惃鍕仦娴兼艾鑸板蹇斺偓缁樻Ц閸︺劌鍚嬬€硅妫惃鍕仦娴兼艾鑸板蹇ョ礉閼板奔绗夐弰顖滄祲閸欏稄绱濇担鍡曠窗鐠ф壆娈戝鍫e闂呬勘鈧倹鍨滄禒顒€绨茬拠銉ユ皑閺勵垰顦╅崷銊ㄧ箹閺嶉娈戞晶鍐ㄦ勾娑擃叏绱濋崗濂搞€愰崗顒€閽╅崪灞炬櫏閻滃洦灏崶浼存閻ㄥ嫸绱濇担鍡樺灉娴狀剟娓剁憰浣风箽閹镐焦绔婚柋鎺炵礉閸︺劉鈧粌鈧喎濮忛幍鎾冲閳ユ繃妞傞敍灞肩瑝鐞氼偄鎮堕崳顑锯偓锟�
2025-4-3 08:541 濡ょ》绱欓崶鐐差槻濡ら棿瀵岄敍锟� 鐠э拷 鐠э拷 +1 | 閸ョ偛顦�
IP: 223.72.67.*   閸ョ偛顦� | 鐠э拷 鐠э拷 +1 [1]鐠佺ǹ鐓块幍锟�   2025-4-2 09:21
娴g姵褰侀崙铏规畱鏉╂瑥顕弬鐗堫洤韫囩敻娼敮绋垮徔閺堝鎯庨崣鎴炩偓褝绱濋懗钘夘檮瀵洖褰傜€电懓顒熼張顖滄晸閹焦绻佺仦鍌炩偓鏄忕帆閻ㄥ嫭甯扮拋銊b偓鍌欎簰娑撳妲搁幋鎴濐嚠"鐎涳附婀崇挧鍕拱娑撹绠熺悰灞艰礋"娑擄拷"鐎涳附婀崇粈鍙ョ窗娑撹绠熺悰灞艰礋"閻ㄥ嫬顕В鏂垮瀻閺嬫劖顢嬮弸璁圭礉鐏忔繆鐦铏圭彌缁崵绮洪惃鍕倞鐠佺儤膩閸ㄥ绱�

1. 閺嶇ǹ绺鹃懠鍐ㄧ础鐎佃鐦�
缂佹潙瀹�        鐎涳附婀崇挧鍕拱娑撹绠熺悰灞艰礋        鐎涳附婀崇粈鍙ョ窗娑撹绠熺悰灞艰礋
娴犲嘲鈧厧褰囬崥锟�        閻儴鐦戦崯鍡楁惂閸栨牓鈧焦鍨氶弸婊咁潌閺堝瀵�        閻儴鐦戦崗顒€鍙¢崠鏍モ偓浣瑰灇閺嬫粌鍙℃禍顐㈠
缁旂偘绨ら張鍝勫煑        闁匡附鐖g挧娑樼础闂嗚泛鎷伴崡姘礄閿涘牆顩цぐ鍗炴惙閸ョ姴鐡欑粩鐐剁閿涳拷        閸楀繐鎮撳蹇撳彙閻㈢喎褰傜仦鏇礄婵″倸绱戦弨鍓ь潠鐎涳箒绻嶉崝顭掔礆
鐠у嫭绨崚鍡涘帳        妞诡剙銇婇弫鍫濈安娑撹顕遍敍鍫gカ濠ф劕鎮滄径鎾劥闂嗗棔鑵戦敍锟�        閺咁喗鍎蹇撳瀻闁板稄绱欐俊鍌烆暕閸楃増婀伴獮鍐插酱鐠у嫭绨崗鍙橀煩閿涳拷
鐠囧嫪鐜担鎾堕兇        闁插繐瀵查幐鍥ㄧ垼娑撹顕遍敍鍫n啈閺傚洦鏆熼妴浣哥穿閻€劑鍣洪敍锟�        缁€鍙ョ窗娴犲嘲鈧厧顕遍崥鎴礄鐟欙絽鍠呴崗顒€鍙¢梻顕€顣介惃鍕閻氼喖瀹抽敍锟�
閸掓稒鏌婃す鍗炲З閸旓拷        娑擃亙姹夐崚鈺冩抄妞瑰崬濮╅敍鍫d捍缁夌増妾甸崡鍥モ偓浣风瑩閸掆晜鏁归惄濠忕礆        闂嗗棔缍嬮弲鐑樺弾妞瑰崬濮╅敍鍫f硶閺堢儤鐎崡蹇庣稊缂冩垹绮堕敍锟�
2. 閸忕ǹ鐎风€圭偠杩旈崷鍝勭厵
鐎涳附婀崇挧鍕拱娑撹绠熼弰鐐偓褍婧€閸╋拷
▶ 閹垛偓閺堫垵娴嗙粔璇插閸忣剙顓婚惃鍕瑩閸掆晞绻嶉拃锟�
▶ 妞よ泛鐨烽張鐔峰灁閻拷"娴犳ǹ鍨傛晶锟�"閸熷棔绗熷Ο鈥崇础
▶ 娴滅儤澧犲鏇$箻閻拷"鏉烆兛绱扮拹锟�"缁旂偘绨�
▶ 鐎圭偤鐛欑€广倖鍨氶弸婊呮畱閸愭稐绨ㄩ崠鏍︾箽鐎碉拷

鐎涳附婀崇粈鍙ョ窗娑撹绠熺€圭偠杩旇ぐ銏♀偓锟�
▶ arXiv缁涘顣╅崡鐗堟拱楠炲啿褰撮惃鍕磻閺€鎯х摠閸欙拷
▶ 閸忋劎鎮嗗鏂库偓娆忓綁閸栨牜鐖虹粚鍓佹畱閸楀繐鎮撳鐑樐�
▶ Wikipedia瀵繒娈戞导妤€瀵橀惌銉ㄧ槕閻㈢喍楠�
▶ 閸欐垵鐫嶆稉顓炴禇鐎瑰墎鏌呴懟妤冪埡閸欐垹娈戦惌銉ㄧ槕閸忓彉闊�

3. 缁崵绮哄鐘插閸掑棙鐎�
娑撱倗顫掑Ο鈥崇础閻ㄥ嫭鐗撮張顒傜厱閻╁彞缍嬮悳鏉挎躬閻儴鐦戦悽鐔堕獓閻ㄥ嫪绨╅柌宥嗏偓褝绱�

娴f粈璐熺粔浣锋眽閻椻晛鎼ч敍姘舵付鐟曚椒楠囬弶鍐х箽閹躲倖绺洪崝鍗炲灡閺傜増濮囬崗锟�

娴f粈璐熼崗顒€鍙℃禍褍鎼ч敍姘舵付鐟曚浇鍤滈悽杈ㄧウ閸斻劋绺炬潻娑氱叀鐠囧棜鍑禒锟�

濠曟柨瀵查幃鏍啈閿涳拷
鐠у嫭婀版稉璁崇疅濡€崇础閸︺劎鐓張鐔峰敶閹绘劕宕屾稉顏冪秼閺佸牏宸奸敍灞肩稻闂€鎸庢埂鐎佃壈鍤х€涳附婀抽梼璺虹湴閸ュ搫瀵查敍娑氥仦娴兼矮瀵屾稊澶嬆佸蹇庣箽闂呮粌鍙曢獮铏偓褝绱濇担鍡楀讲閼宠棄澧涘杈╃翱閼诲崬鍨遍弬鏉垮З閸旀稏鈧倸缍嬮崜宥咁劅閺堫垯缍嬬化缁橆劀闂堫澀澶�"闂囧秴绔烽弬顖炴闂冿拷"閳ユ柡鈧梻鐖虹粚鎯扳偓鍛瑝瀵版ぞ绗夐崥灞炬閸欏倷绗屾稉銈勯嚋濞撳憡鍨欑憴鍕灟閻╁憡鍊撮惃鍕彽娴滃鈧拷

4. 濞e嘲鎮庡Ο鈥崇础閹恒垻鍌�
閸撳秵閮ㄦ0鍡楃厵瀹告彃鍤悳鎵儑娑撳娼柆鎾圭熅閻ㄥ嫯鎮撻懞鏂ょ窗

閸栧搫娼¢柧鍓р€橀弶锟�+瀵偓閺€鎯у彙娴滎偓绱欐俊渚稰DB閻儴鐦戞惔鎿勭礆

鐠愶紕灏為崐鑹扮槈閺勫海閮寸紒鐕傜礄閺囧じ鍞导鐘电埠瀵洜鏁ら幐鍥ㄧ垼閿涳拷

閻儴鐦戦懕鏃堝亰閸掕绱欓弽绋跨妇娑撴挸鍩勫鈧弨锟�+鐞涘秶鏁撻弨鍓佹抄閸忓彉闊╅敍锟�

鐎涳附婀砃FT閿涘牏鈥橀弶鍐ㄧ摠鐠囦椒绗屽ù浣芥祮閺€鍓佹抄缂佹挸鎮庨敍锟�

娓氬顩ч敍瀛婨RN閻ㄥ嫬銇囬崹瀣繁鐎涙劕顕幘鐐存簚妞ゅ湱娲伴柌鍥╂暏"閺嶇ǹ绺鹃弫鐗堝祦瀵偓閺€锟�+鐞涘秶鏁撻幎鈧張顖欓獓娑撴艾瀵�"閻ㄥ嫬寮荤仦鍌涚仸閺嬪嫸绱濋弮顫箽闂呮粌鐔€绾偓閻梻鈹掗惃鍕彆閸忚鲸鈧嶇礉閸欏牓鈧俺绻冮幎鈧張顖濇祮缁夎寮介崫鐑樺瘮缂侇厽濮囬崗銉b偓锟�

5. 閹电懓鍨介幀褍寮介幀锟�
闂団偓鐟曚浇顒熼幆鏇氳⒈缁夊秴绱撻崠鏍箛鐠炩槄绱�

鐠у嫭婀版稉璁崇疅瀵倸瀵查敍姘殺鐎涳附婀虫导姘愁唴瀵倸瀵叉稉锟�"鐎涳附婀崇仦鏇㈡敘娴硷拷"閿涘瞼鐖虹粚鎯扳偓鍛嫧娑撹櫣鐓$拠鍡楀瘶瀹搞儱銇�

缁€鍙ョ窗娑撹绠熷鍌氬閿涙艾閽╅崸鍥﹀瘜娑斿顕遍懛锟�"鐎涳附婀虫径褔鏀ㄦ锟�"閿涘本绉风憴锝堝窛闁插繑鐖i弶锟�

閸嬨儱鎮嶉惃鍕劅閺堫垳鏁撻幀浣洪兇缂佺喎绨插铏圭彌閸斻劍鈧礁閽╃悰鈩冩簚閸掕绱伴崷銊ョ唨绾偓閻梻鈹掓0鍡楃厵瀵搫瀵茬粈鍙ョ窗娑撹绠熺仦鐐粹偓褝绱濋崷銊ョ安閻€劌绱戦崣鎴︻暙閸╃喎鍘戠拋姝岀カ閺堫兛瀵屾稊澶庣殶閼哄偊绱濋崥灞炬闁俺绻冮弫鏉跨摟閹垛偓閺堫垰缂撶粩瀣煀閸ㄥ涓嶉悶鍡樼仸閺嬪嫨鈧倽绻栫粔锟�"濞e嘲鎮庣€涳附婀崇紒蹇旂ス"閸欘垵鍏橀幋鎰礋閻袙瑜版挸澧犵€涳附婀抽崡杈ㄦ簚閻ㄥ嫬鍙� ...

1/1 | 閹槒顓�:2 | 妫f牠銆� | 娑撳﹣绔存い锟� | 娑撳绔存い锟� | 閺堫偊銆� | 鐠哄疇娴�

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2025-4-10 18:54

Powered by ScienceNet.cn

Copyright © 2007-2025 中国科学报社

返回顶部