<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>离群值 on Lorn</title><link>https://july-h5kf3.github.io/tags/%E7%A6%BB%E7%BE%A4%E5%80%BC/</link><description>Recent content in 离群值 on Lorn</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Wed, 26 Aug 2026 08:42:00 +0800</lastBuildDate><atom:link href="https://july-h5kf3.github.io/tags/%E7%A6%BB%E7%BE%A4%E5%80%BC/index.xml" rel="self" type="application/rss+xml"/><item><title>[2026 ICML] OSAQ: Outlier Self-Absorption for Accurate Low-bit LLM Quantization</title><link>https://july-h5kf3.github.io/p/osaq/</link><pubDate>Wed, 26 Aug 2026 08:42:00 +0800</pubDate><guid>https://july-h5kf3.github.io/p/osaq/</guid><description>&lt;p&gt;目前针对大语言模型中存在的系统性异常值问题，现有方法主要依赖层内乘法变换来抑制异常值，包括:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;缩放:如AWQ，SmoothQuant等方法通过激活分布特征对权重进行缩放&lt;/li&gt;&#10;&lt;li&gt;旋转:如QuIP等方法通过正交矩阵旋转权重矩阵&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;然而这些方法在极低比特量化时，性能仍远未达到理想水平，表明单一乘法策略在根本上不足以充分处理异常值问题。&lt;/p&gt;&#10;&lt;p&gt;本方法基于如下发现:&lt;/p&gt;&#10;&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="749px" data-flex-grow="312" height="412" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://july-h5kf3.github.io/p/osaq/OSAQ_fig1.png" srcset="https://july-h5kf3.github.io/p/osaq/OSAQ_fig1_hu_fb257bb2ca2760d2.png 800w, https://july-h5kf3.github.io/p/osaq/OSAQ_fig1.png 1286w" width="1286"&gt;&lt;/p&gt;&#10;&lt;p&gt;即任务损失关于权重的Hessian矩阵具有低秩一致性，即&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;特征值沿特定方向趋于0零&lt;/li&gt;&#10;&lt;li&gt;对应的特征向量构成稳定的零空间&lt;/li&gt;&#10;&lt;li&gt;该零空间在不同输入样本间保持高度一致&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;而我们知道，通过泰勒展开，我们可以知道权重收到扰动时，任务损失L关于权重的二阶泰勒展开可以写作:&#10;&lt;/p&gt;&#10;$$&#10;\mathbb{E}[L(w+\Delta w)-L(w)]\approx\frac{1}{2}\Delta w^\top H_w \Delta w&#10;$$&lt;p&gt;&#10;而我们又发现$H_w$具有低秩一致性，因此根据零空间的定义，用$H_w$乘以零空间中的任意向量都会得到零。因此，通过对这些零空间向量进行加权组合，我们可以构造出$\Delta w$。这使得一种加性变换成为可能，并且保证损失保持不变:&#10;&lt;/p&gt;&#10;$$&#10;W' = W +\Delta W\quad s.t. \quad \Delta w^\top H_w \Delta w = 0&#10;$$&lt;p&gt;&#10;基于这个发现，我们旨在构建一个由低秩结构引导的$\Delta w$，对权重执行加性变换，从而实现异常值的子吸收，同时保持模型的性能。&lt;/p&gt;&#10;&lt;p&gt;给定一个权重矩阵$W\in \mathbb{R}^{M\times N}$,其中M表示输出通道维度，N表示输入通道维度，$\Delta W$的构造过程如下所述:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;零空间提取: 首先我们对Hessian矩阵$H_w$进行特征分解，并按照特征值幅度的非递减顺序进行排序，如下所示:&lt;/li&gt;&#10;&lt;/ol&gt;&#10;$$&#10;H_w = V \text{diag}(\lambda_1,\dots,\lambda_N)V^\top,\quad 0\leq \abs{\lambda_1}\leq \abs{\lambda_2}\leq \dots \leq \abs{\lambda_N}&#10;$$&lt;p&gt;其中$V\in \mathbb{R}^{N\times N}$是特征矩阵,$\lambda_1 ,\dots,\lambda_N$是矩阵的特征值。我们采取尾部能量累积的策略，从最小的特征值开始累加，得到前缀能量，并将零空间维度确定为满足累积尾部能量达到预设阈值时的最小K:&#10;&lt;/p&gt;&#10;$$&#10;\mathcal{N}=V^\top_{[:,0:K-1]},\text{where}\quad K=\min_k \{\sum_{i=1}^k \abs{\lambda_i} \geq \gamma \sum_{i=1}^N\}&#10;$$&lt;p&gt;&#10;其中$\gamma \in (0,1)$是尾部能量阈值，$\mathcal{N}\in \mathbb{R}^{N\times K}$表示矩阵$H_w$的零空间，其中每一行对应一个特征方向，在该方向上$H_w$表现出近似消失的曲率。&lt;/p&gt;&#10;&lt;ol start="2"&gt;&#10;&lt;li&gt;$\text{softmax}-\infty$目标近似：在获取了Hessian矩阵的零空间后，我们引入了一个权重系数矩阵$\beta \in \mathbb{R}^{N\times K}$,用于为每个零空间中的每个向量分配权重，从而构造$\Delta w$：&lt;/li&gt;&#10;&lt;/ol&gt;&#10;$$&#10;\Delta W = \beta \mathcal{N}&#10;$$&lt;p&gt;​&#9;我们希望构造出来的$\Delta W$能够最小化施加加性扰动后权重的数值范围，我们可以通过最小化下式达到目标:&#10;&lt;/p&gt;&#10;$$&#10;\min_{\beta}||W+\Delta W||_{\infty} = \min_{\beta}||W+\beta \mathcal{N}||_{\infty}&#10;$$&lt;p&gt;&#10;其中$x=[x_1,\dots,x_n]^\top,\quad ||x||_{\infty} = \max_{1\leq i \leq n}\abs{x_i}$.显然无穷范数不可微，为了解决这个问题，我们采用$\text{softmax}-\infty$近似:&lt;/p&gt;&#10;&lt;p&gt;我们沿着输出通道维度应用softmax操作:&#10;&lt;/p&gt;&#10;$$&#10;s_{ij} = \frac{\exp{(\abs{W_{ij}}/\tau)}}{\sum_{t=1}^N \exp(\abs{W_{it}}/\tau)}&#10;$$&lt;p&gt;&#10;其中,$i=1,\dots,M,\quad \tau &gt; 0$是温度系数。当它较大时，它能够捕捉所有分量的平均行为；而当$\tau \to 0^+$时，它会越来越强调极端峰值。&lt;/p&gt;&#10;&lt;p&gt;在这种情况下，对这些被“峰值强调”的参数施加$\mathcal{l}_2$范数，便可以作为$l_{\infty}$的一种近似，从而有效地识别并抑制异常值。&lt;/p&gt;&#10;&lt;ol start="3"&gt;&#10;&lt;li&gt;$\beta$的显式解: 接下来我们来显式解决上述优化问题。经过$\text{softmax}-\infty$近似后我们可以把优化目标写作如下形式，特别地，由于量化的scale和zero-point都是沿着输出通道维度计算的，因此我们给出每个输出通道对应的$\mathcal{l}_2$范数优化目标:&lt;/li&gt;&#10;&lt;/ol&gt;&#10;$$&#10;\min_{b_i}\frac{1}{2}\sum_{j=1}^{N}s_{ij}(W_{ij}+b_i^\top \mathcal{n}_j)^2 + \frac{\mu_1}{2}||b_i||_2 + \frac{\mu_2}{2}(b_i^\top v)^2&#10;$$&lt;p&gt;​&#9;其中:&#10;&lt;/p&gt;&#10;$$&#10;b_i = \beta[i,:] \in \mathbb{R}^{K},\\&#10;n_j = \mathcal{N}[:,j] \in \mathbb{R}^{K},\\&#10;v = \mathcal{N}1_{N} \in \mathbb{R}^{K}&#10;$$&lt;p&gt;&#10;上式中第一项是主要的优化目标，作用是最小化施加加性扰动后权重的数值范围；第二项是关于$b_i$的正则化项，防止过大的修正；第三项施加了一个反平移约束，用于惩罚整个通道沿同一方向发生一致平移。&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Remark&lt;/strong&gt;：这个第三项约束是为了避免第 i 个输出通道的整行权重整体发生同方向平移。它希望$\sum_{j=1}^N \Delta w_{ij} \approx 0$&lt;/p&gt;&#10;&lt;p&gt;求解上述最优化方程（对$b_i$求导，并令一阶最优性条件为零），可以得到:&#10;&lt;/p&gt;&#10;$$&#10;A_ib_i = -\rho_i&#10;$$&lt;p&gt;&#10;其中&#10;&lt;/p&gt;&#10;$$&#10;A_i^* = \sum_{j=1}^N s_{ij}n_j n_j^\top + \mu_1 I_K +\mu_2 v v^\top,\quad \rho_i = \sum_{j=1}^N s_{ij}W_{ij}n_j&#10;$$&lt;p&gt;&#10;因此，我们可以得到最优的系数矩阵$\beta$：&#10;&lt;/p&gt;&#10;$$&#10;\beta^* = [b_1^*,\dots,b_M^*]^\top,\quad b_i = -A_i^{-1}\rho_i,i = 1,\dots,M&#10;$$</description></item><item><title>[2024 AAAI] OWQ: Outlier-Aware Weight Quantization for Efficient Fine-Tuning and Inference of Large Language Models</title><link>https://july-h5kf3.github.io/p/owq/</link><pubDate>Wed, 26 Aug 2026 08:09:00 +0800</pubDate><guid>https://july-h5kf3.github.io/p/owq/</guid><description>&lt;p&gt;&lt;strong&gt;总结&lt;/strong&gt;：本文提出了一个异常感知的权重量化方法OWQ，利用LLMs中的异常激活值挑选出Weak Column，对其采用全精度的方式在牺牲很小的性能的情况下提升了巨大的精度。此外为进一步提升其性能做了一定的硬件适配并提出了一个基于OWQ的WTC方案，简单来说就是在OWQ量化模型上微调只更新Weak Column的参数。&lt;/p&gt;&#10;&lt;div style="background-color:#f9f9f9; padding:8px; border-radius:6px;"&gt;&#10;&lt;b&gt;评价:&lt;/b&gt; 这篇文章思路很新颖，从大模型中间激活值的异常出发，结合Hessian矩阵分析，提出了一个简单但高校的方法，似乎可以进一步提升？&#10;&lt;/div&gt;&#10;&lt;p&gt;本文基于这样一个发现，LLMs在中间激活中表现出一些异常值，其值显著大于其他值，并且这些异常值集中在特定的特征维度上。保留这些异常值的值已知对于在激活量化之后保持准确性至关重要。此外，作者团队还发现激活异常值仍然会影响权重量化的敏感性。基于此，作者提出了一种称为异常值感知权重量化的概念(OWQ).&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="OWQ 方法示意" class="gallery-image" data-flex-basis="832px" data-flex-grow="346" height="682" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://july-h5kf3.github.io/p/owq/owq_figure.png" srcset="https://july-h5kf3.github.io/p/owq/owq_figure_hu_93a2f22b2489b93.png 800w, https://july-h5kf3.github.io/p/owq/owq_figure_hu_4e6346948cfee795.png 1600w, https://july-h5kf3.github.io/p/owq/owq_figure.png 2365w" width="2365"&gt;&lt;/p&gt;&#10;&lt;p&gt;我们知道逐层权重量化的过程，实际上进行如下优化过程:&lt;/p&gt;&#10;&lt;p&gt;给定输入特征$X\in R^{C_{i,n} \times N}$,其中$C_{i,n}$表示输入的通道数，N是输入的序列长度，用于$C_{out}$输出特征的完整精度权重矩阵$W \in R^{c_{out}\times C_{i,n}}$被映射到低精度。&#10;&lt;/p&gt;&#10;$$&#10;\arg \min_{W} E= \arg \min_{\hat W}||WX - \hat W\hat x||^2_2 &#10;$$&lt;p&gt;&#10;在量化时我们从输入到输出逐层量化。此外大模型的量化中，Embedding层以及LM Head的权重通常不被量化，因为前者的权重量化误差会随着网络的传播不断放大，且Token向量较为稀疏而LM Head层直接决定logits，而Top-k词之间的分数差往往较小，低比特改写会对排序以及argmax产生显著影响。&lt;/p&gt;&#10;&lt;p&gt;接下来阐释权重敏感性和激活异常值之间的关系。&lt;/p&gt;&#10;&lt;p&gt;（这里与原论文中的证明方式不一致，原论文只考虑了对量化误差&lt;/p&gt;&#10;$$||WX - \hat W\hat X||$$&lt;p&gt;的论证，这是单层量化误差，但是忽略了误差随着网络的放大的影响）&lt;/p&gt;&#10;&lt;p&gt;在AdaRound文章中有提到，对于权重的量化产生的误差我们有如下基于泰勒展开的近似:&#10;&lt;/p&gt;&#10;$$&#10;\mathbb{E}[L(x,y,w+\Delta w) - L(x,y,w)] =\Delta L \approx \nabla L^{\top}\Delta w + \frac{1}{2}\Delta w^\top H\Delta w \approx \Delta W^\top H\Delta W&#10;$$&lt;p&gt;&#10;由此我们知道，输出误差可以直接与海森矩阵和权重扰动的幅度相关。&lt;/p&gt;&#10;&lt;p&gt;将Hessian矩阵写作Kronecker积的矩阵形式，我们得到&#10;&lt;/p&gt;&#10;$$&#10;H(w^{(l)}) = \mathbb{E}[x^{(l-1)} x^{(l-1)\top}⊗ \nabla^2_{z^{(l)}}L]&#10;$$&lt;p&gt;&#10;由此我们可以从全局的视角看到，异常激活值(激活值的激增)使Hessian矩阵H的某些元素具有异常大的值。Hessian矩阵的这种异常激增增加了相应权重通道对量化的敏感性。具体来说，即使在相同的权重扰动下，由于一些H的一些大元素，输出的变化也会相当大。我们可以将这些易受量化影响的权重称为Weak Column，特别是那些与特定输入通道中的激活值异常值相关联的权重。&lt;/p&gt;&#10;&lt;p&gt;OWQ为了解决这个问题，实现了如下技术：首先，识别Weak Column并将他们从量化中排除。随后使用精心调整的量化参数将剩余的权重量化为极低的bit。&lt;/p&gt;&#10;&lt;p&gt;对于Weak Column的检索，OWQ遵循如下方法:&lt;/p&gt;&#10;&lt;p&gt;我们定义j-th权重列的敏感性为:&#10;&lt;/p&gt;&#10;$$&#10;sensitivity_j = \lambda_j||\Delta W_{:,j}||_2^2&#10;$$&lt;p&gt;&#10;其中$\lambda_j$是Hessian矩阵的第j个对角元素。&lt;/p&gt;&#10;&lt;p&gt;(若考虑的Hessian矩阵是层内重构误差的，那么这里$\lambda_j = (X^\top X)_{j,j} = 2\sum_{n}x_{j,n}^2$)&lt;/p&gt;&#10;&lt;p&gt;可以注意到在我们写的Hessian矩阵是针对全局损失而言的，那么这个场景下的$\lambda_j$就有所改变。虽然在这个场景下我们无法像论文里一样因为layer-wise量化误差输出通道之间没有Hessian交互，从而Hessian是对角矩阵。&lt;/p&gt;&#10;&lt;p&gt;但是将其作对角近似是合理的。因为在这样一个大的模型下，进行Hessian矩阵的精确计算是不可行的。&lt;/p&gt;&#10;&lt;p&gt;在此场景下我们有:&lt;/p&gt;&#10;&lt;p&gt;对于神经网络中的第j个神经元的输入$a_j$对应权重为$w_{ji}$:&#10;&lt;/p&gt;&#10;$$&#10;\frac{\partial^2 E_n}{\partial w_{ji}^2} = \frac{\partial^2 E_n}{\partial a_j^2}z_i^2&#10;$$&lt;p&gt;&#10;其中$z_i$是上一层神经元的输出。&lt;/p&gt;&#10;&lt;p&gt;而$\frac{\partial^2 E_n}{\partial a_j^2}$可以通过链式法则递归计算(类似于反向传播):&#10;&lt;/p&gt;&#10;$$&#10;\frac{\partial^2 E_n}{\partial a_j^2} = \underbrace{\frac{\partial}{\partial a_j}[h'(a_j)\sum_{k}w_{kj}\frac{\partial E_n}{\partial a_k}]}_{链式法则}=h'(a_j)^2 \sum_{k,k'}w_{kj}w_{k'j}\frac{\partial^2 E_n}{\partial w_k\partial w_{k'}} + h''(a_j)\sum_k w_{kj}\frac{\partial E_n}{\partial a_n}&#10;$$&lt;p&gt;忽略二阶导中的非对角线项$k\neq k'$:&#10;&lt;/p&gt;&#10;$$&#10;\frac{\partial^2 E_n}{\partial a_j^2}\approx \underbrace{h'(a_j)^2\sum_k w_{kj}^2 \frac{\partial^2 E_n}{\partial a_k^2}}_{链式法则} + \underbrace{h''(a_j)\sum_{k}w_{kj}\frac{\partial E_n}{\partial a_k}}_{链式法则}&#10;$$&lt;p&gt;&#10;从而一次反向传播便可以计算出来，时间复杂度为$O(W)$&lt;/p&gt;&#10;&lt;p&gt;由此我们可以计算出在全局损失下的$\lambda_j$&lt;/p&gt;&#10;&lt;p&gt;在实际的计算中，同样也是只需要一个小批量的校验集，但是坏处是要多进行一次反向传播得到曲率。这样的Trade off得到的性能提升应该不小，因为它会真正识别出在全局下的 Real Weak Column&lt;/p&gt;&#10;&lt;p&gt;我们根据权重列的敏感性挑选出top-k个作为weak column。然后其余权重被量化为低精度。（这里可以采用任何的量化方法）论文中采用了OPTQ的方法。&lt;/p&gt;&#10;&lt;p&gt;作者团队对OPTQ进行了重要修改，使用二维网格搜索来搜索量化配置，包括步长以及零点。通过四舍五入到最接近的截断来搜索使量化前后差异最小的参数的最优值。&lt;/p&gt;&#10;&lt;p&gt;文章指出了一个利用Weak Column进一步减轻误差的方法:将高精度的Weak Column重新排列到权重的末尾，OPTQ过程中其他列的量化误差可以主要由Weak Column得到补偿&lt;/p&gt;&#10;&lt;p&gt;在此之后，我们将Weak Column存储为fp16，并为每一列使用一个额外的整数，该整数用于索引Weak Column。此外存储一个低精度矩阵，其中Weak Column的位置采用0填充。&lt;/p&gt;&#10;&lt;p&gt;此外，作者还对OWQ格式在真实GPU上提供了专门的加速以及WTC微调方案。&lt;/p&gt;&#10;&lt;p&gt;具体而言，这个微调方案会将OWQ的量化模型进行微调但只对Weak Column进行参数更新。因为weak column的数量很少，所以总体微调参数量很少，同时又因为weak column的权重使用fp16进行存储，因此微调空间较大，能够实现较好的微调效果。&lt;/p&gt;&#10;</description></item></channel></rss>