笔记日期: 2026 年 9 月 25 日
作者: Zhongzhu Zhou
Paper reviewed: Mind the Approximation: Fisher-Weighted SVD Compression for ViTs
Paper authors: Moritz Thoma、Maximilian Groezinger、Maximilian Forstenhäusler、Emad Aghajanzadeh、Ryan Pegoud、Manoj Rohit Vemparala、Pierpaolo Mori、Alexander Frickenstein、Daniel Mueller-Gritschneder、Ulf Schlichtmann
arXiv: 2609.07155v1,2026 年 9 月 7 日提交
1. 我为什么想读这篇论文
低秩压缩通常有一个很自然的思路:先找一个能够反映模型损失的误差指标,再用 SVD 尽量减小这个指标。如果指标来自 Fisher 信息矩阵,我们还会顺势推断,Fisher 近似得越准确,压缩效果就应该越好。FACTS 恰好在这个推断中间停下来问了一句:我们真正关心的是近似矩阵的相似程度,还是被压缩模型的预测质量?
论文的经验观察是,在测试的视觉模型和 Fisher 加权 SVD 流程里,与经验 Fisher 更相似的近似,不一定产生更高的压缩后准确率。这不是否定曲率信息,也不是说相关性总该删除。它提醒我,中间目标与最终决策之间还有一层距离:一个矩阵可以在整体上拟合得很好,却没有把有限的保留秩用在最值得保留的方向上。
作者把问题分成两个部分。第一部分是 FACTS:给定某层要保留的秩,怎样构造用于加权 SVD 的几何度量?它偏向 token 局部统计,并通过能量加权保留同一 token 的激活与梯度之间的一部分联系。第二部分是 CoRS:全模型给定一个计算预算,各层分别应该保留多少秩?它测量单层压缩对最终输出的影响,再求解一个离散预算分配问题。
把这两部分拆开,是读实验结果的第一步。论文 Table 1 中,Swin-B 的较强均匀 SVD 基线是 60.1%,均匀 FACTS 是 65.9%,加上 CoRS 后是 74.9%。分解方法贡献 5.8 个百分点,秩搜索在 FACTS 上再增加 9.0 个百分点,合起来相对 60.1% 是 14.8 个百分点。三者不是同一个增益,不能在转述时混用。

这份笔记会先补齐加权 SVD 的前置知识,再推导 token 局部统计和秩分配,最后回到实验与局限。这里的模型结果均来自作者报告;小矩阵和数字例子用于解释公式,不是新做的模型实验。阅读范围包括完整 v1 正文和附录 A–C,尤其注意附录中对校准、搜索和下游任务的补充说明。
2. 前置知识:保留一半的秩,不等于压缩一半
2.1 两个小矩阵什么时候比一个大矩阵划算
设线性层的权重为 ,输入 。秩为 的近似可以写成两个矩阵的乘积: 和 。推理变成先计算 ,再计算 。这两步之间不能随意插入非线性,否则就不是原来的低秩线性近似了。
暂时忽略偏置,原矩阵需要 个参数,两个因子需要 个。真正节省参数的条件是
以 方阵为例,秩 384 只是两个因子的参数量与原矩阵一样多,尚未带来节省。要让这个线性映射只保留一半参数,秩应该是 192。对于 的矩形矩阵,参数量的盈亏平衡点则是 614.4。相同的秩比例,放到不同形状的层里,不能直接解释成相同的压缩比例。
如果一次处理 个 token,主要乘加工作量从 变成 。有的统计把一次乘加算作两次 FLOP,有的按一次 MAC 记录,这会改变数字尺度,但不会改变这两个表达式的相对关系。真正需要额外注意的是,没有被分解的运算仍然存在:注意力矩阵乘法、归一化、卷积、分类头等,并不会因为线性权重减半而自动消失。
所以我会把三个量分开看:符合压缩条件的线性层占比、这些线性层压缩后的 FLOPs 占比,以及整个模型实际剩余的 FLOPs。论文的“50% linear layers FLOPs remaining”主要描述第二个量,不代表全模型已经减半,更不代表延迟会减半。
2.2 普通 SVD 最优,但它最小化的是哪一种误差
对 做奇异值分解,并保留最大的 个奇异值,能解决
这个结论没有问题,但它衡量的是权重矩阵本身的平方误差。模型真正处理的是有分布的输入。如果某个输入方向几乎从不出现,在那个方向上保持高精度未必有多大作用;如果某个输出方向紧贴分类边界,即使权重变化不大,也可能改变预测。
先考虑输入分布。令 ,则输出重建误差为
右边的 告诉我们输入方向的重要性。如果还引入左侧的度量 ,就可以区分哪些输出方向对最终损失更加敏感。FACTS 的核心并不是换一种奇异值分解算法,而是换一种送进 SVD 的加权坐标系。
我习惯把这一步理解为“先决定尺子,再决定保留哪些方向”。普通 SVD 使用各向同性的尺子,激活感知方法引入输入分布,Fisher 加权方法进一步尝试引入损失敏感性。每换一把尺子,都应该问它在哪些数据和假设下成立。
2.3 Fisher 只是局部代理,并不等于实际准确率
对参数扰动 做二阶展开,得到
忽略一次项,需要驻点附近的近似。再把 Hessian 换成 Fisher,又需要模型、损失及期望分布方面的条件。用真实标签构成的经验 Fisher,不会对任意训练完成的网络自动等于真实期望 Hessian。原论文附录 C 也给出了相应假设,包括层间分块、期望 Hessian 与 Fisher 的关系,以及因子的正定性。
还有一个容易被形式推导遮住的事实:大幅截断秩,未必是小扰动。即便原权重附近的二阶展开非常准确,也不保证同时修改几十层之后仍然准确。因而我会把 Fisher 加权看成“有理论动机、值得验证的局部设计”,不会直接把它当成准确率的替代指标。
3. 加权 SVD 的推导:为什么白化之后就能截断
3.1 把巨大的曲率矩阵缩成两个因子
令 ,按照列优先顺序把矩阵向量化。该层完整 Fisher 的形状为 。一个 的权重已经会对应约 3480 亿个曲率条目,直接储存显然很昂贵。Kronecker 近似把它写成
存储复杂度由 量级变为 。这是一种很大的缩减,但并不意味着剩下的统计矩阵很小,宽层仍然需要储存和分解稠密因子。后面的校准成本讨论不能因为这个近似而省略。
利用向量化与迹的恒等式,有
为了避免三角矩阵左右约定不清,这里使用对称正定平方根。定义白化后的权重 。左右两侧变换可逆,因此不会改变矩阵秩;在 上寻找秩 的加权最优近似,等价于在 上寻找普通 Frobenius 范数下的秩 最优近似。
如果 ,那么变换回去就是
为了在推理时用两个线性层表示,可将奇异值平方根分到两边:
两个因子相乘就得到式 7。白化只参与构造最终权重,推理时不需要再额外运行整套统计过程。若使用 Cholesky 分解,必须明确 还是 ,并相应调整转置与逆的位置。论文附录的证明比紧凑伪代码更明确;读公式时把维度写出来,比仅凭变量名判断左右关系可靠。
3.2 一个二维例子:较小的奇异值也可能更重要
考虑 ,目标秩为 1。普通 SVD 会保留第一个坐标方向,因为 4 大于 2。现在令 ,,则白化后的矩阵为 。加权 SVD 转而保留第二个方向。
这不是违反 SVD 的最优性,而是目标变了:丢掉第二个方向的代价是 ,丢掉第一个方向的代价只有 。原始权重里较大的方向,不一定是任务加权后较重要的方向。这个例子用于理解机制,不表示某个实际模型有这样的统计量。
也可以反过来思考这个例子的失败条件。如果 来自不相关的校准分布,给第二个方向赋予九倍重要性本身就是错的,那么加权 SVD 会非常准确地优化一个不合适的目标。这也是为什么公式正确与方法在目标数据上有效必须分别判断。
再补一个尺度问题:给整个 乘同一个正数,不改变精确加权最小化的解。重要的是相对方向和相对特征值。但实际数值计算涉及正则化和极小特征值,不能把这种数学尺度不变性等同于任意数值处理下结果都不变。归一化与收缩的顺序、方式仍需说明。
4. 权重共享带来了两种不同的相关性
4.1 跨 token 项不是人为加入的,而是平方展开产生的
设第 个 token 的输入为 ,对该线性层输出的梯度为 。同一个 在所有位置共享,因此一个样本对权重的梯度是所有位置贡献之和:
接着对这个梯度取外积,就自然出现所有 token 对:
其中 是同一位置内的敏感性, 是不同位置之间的混合项。为了看清两者差异,给定权重误差 ,记位置 的一阶误差为 ,那么
左边先在 token 之间求和,再平方;第一项则是每个 token 先平方,再求和。它们并不是两种写法的同一个数,差别就在交叉项。
用两个 token 的说明性例子最容易看懂。若误差是 ,求和后平方为 0,局部平方和为 2;若误差是 ,求和后平方为 4,而局部平方和仍然是 2。因此跨 token 项既可能抵消,也可能放大局部误差。删掉交叉项会改变优化目标,不能只说成“把同一个目标估计得更省”。

视觉 token 往往对应图像中的空间位置。位置关系在不同图像间比较稳定,局部 patch 的激活和梯度也可能相关。论文在 DeiT、Swin、ConvNeXt、MambaVision 的诊断图里展示了跨 token 的结构。这个观察说明关系确实存在,却还不能直接说明,为有限秩的压缩去拟合这些关系一定值得。
我会把这里的逻辑拆成三步:发现某种统计结构;设计能表示它的估计器;证明或验证这种估计器对当前决策有帮助。论文最有价值的提醒,就是第二步不能自动推出第三步。Fisher 的余弦相似度属于第二步的衡量,压缩后的准确率才直接触及第三步。
4.2 另一个问题:同一 token 的激活和梯度要不要分开统计
除了 token 之间的联系,还存在同一 token 内 与 的依赖关系。它们对应不同的设计轴:选择 token 局部统计,不意味着一定要把激活和梯度拆成独立的边缘统计;保留激活—梯度关系,也不意味着必须保留跨 token 的所有混合项。
KFAC-expand 的选择是 token 局部、激活和梯度分开统计;KFAC-reduce 先在 token 维度聚合,但仍采用激活—梯度解耦。Shampoo2 与 GFWSVD 从全局 Fisher 的主要结构出发,可以反映激活—梯度依赖,也可能把大量跨 token 结构包含进来。FACTS 希望填补的是“token 局部,同时保留一部分同位置依赖”的组合。
这里的“一部分”很重要。一个 Kronecker 乘积容纳不了完整的联合高阶统计,FACTS 也并未声称还原了联合分布。它通过能量权重,让某个 token 的激活矩阵贡献取决于同一 token 的梯度强度,反之亦然。这是具体而可解释的依赖,不是“所有重要相关性”的笼统集合。
论文还区分了两种诊断:激活—梯度关系使用 distance correlation,而跨 token 热图来自激活与梯度 Gram 矩阵乘积的归一化量。附录 A.1 明确说,热图本身不是最终 Fisher 近似。读者可以借它理解结构存在,不能把它直接当作 FACTS 使用的曲率矩阵。
5. FACTS 的核心:用同一 token 的能量给统计加权
5.1 从完整收缩到局部收缩
把 token 输入和梯度按行堆成 与 。从单位阵出发的一次全局收缩会包含
论文提出 Zero Cross-Moment,简称 ZCM,把相关的 收缩项在期望中置零。作者将其作为面向压缩的结构先验,而非声称真实 token 全都独立。右侧因子因而变成
对应的对称 token 局部收缩为
其中 表示只保留对角元素的矩阵,也就是各行的平方范数。公式写成 并不意味着数学上必须先储存完整的 矩阵;直接计算每个 token 的范数就能得到所需量。这是从表达式本身得到的计算解释,不是对作者程序的运行描述。
最终近似写成
这个归一化可以从迹来理解。 与 的迹都是 ,所以 的迹也是 ,与局部 Fisher 和的迹一致。前提是 。如果某层在校准数据上梯度完全为零,就需要明确的退化处理,不能把除以零得到的对象解释成有效曲率。
5.2 为什么先加权再求期望,与先求期望不同
观察 ,每个激活外积 都被同一个 token 的 加权。这意味着对损失更敏感的 token,会对输入度量产生更大的贡献。观察 ,每个梯度外积又被对应输入能量加权。二者都保留了样本内的联系。
用标量例子说明:假设等概率遇到 和 。先保留配对关系,再计算联合能量,得到
如果先分别求均值,再相乘,则是
这两个值的差别来自“大的激活恰好与大的梯度在同一份样本中出现”。对于矩阵情形,变化不仅是一个标量,还可能改变不同方向的相对重要程度。这个例子是人为构造的解释,不是对论文实验的复现。

另一方面,能量加权仍然是一种有损压缩。它不能完整表示所有激活方向与所有梯度方向之间的四阶联系。论文的一次幂迭代式构造,也不应被读成一般情况下已经求到了重排 Fisher 的最佳 rank-one Kronecker 近似。必须区分“选定度量后的 SVD 最优”与“度量本身最优”这两个问题。
5.3 正则化不仅防止数值问题,也改变了目标
论文伪代码对行、列因子分别使用 0.7 和 0.1 的收缩强度。对维度为 的因子 ,形式为
如果 半正定且迹为正,正的 会把零特征值抬起来。特征向量不变,特征值向平均值收缩。这有利于稳定逆平方根,但也让度量不那么各向异性。换句话说,正则化的作用不仅是“让计算顺利完成”,还可能影响保留哪个子空间。
因此,当某个基线发生严重病态而 FACTS 没有时,不能把全部性能差距都归给 token 局部结构。结构选择、校准统计与收缩策略需要共同解释。更稳健的因子本身当然有实践价值,但要识别主要机制,还需要控制这些因素的消融。
5.4 算法 1:把 FACTS 的处理步骤连起来
以下按数学流程重新整理原论文 Algorithms 1–2,显式区分行列因子,并补充评估时需要明确的条件。
- 固定预训练模型、校准样本与标签、可压缩线性层及每层目标秩。主实验不压缩分类头。
- 对校准批次做前向和交叉熵反向,取得各层每个 token 的输入 与输出梯度 ,按设定处理梯度稳定性。
- 累积式 13–14 的局部能量加权矩,保持样本归一化口径一致,并在正迹条件下处理尺度归一化。
- 将列因子对应到 ,行因子对应到 ,进行收缩;明确平方根或 Cholesky 的方向约定。
- 形成白化权重 ,做 SVD,保留目标秩 。
- 按式 8 形成两个反白化因子,原有偏置放在因子对的输出端。
- 用连续两个线性映射替代原层;所有层替换完成后,评估整模型质量和实际资源开销。
把步骤写全后,边界也更清楚:校准分布不合适,会把重要性赋给错误方向;秩删得太多,会超出二阶局部近似;因子奇异会使反白化不稳定;多层误差相互作用,又会超出逐层处理的假设。收缩主要缓解第三个问题,并不能一次解决其余问题。
下面用编号伪代码浓缩循环关系,矩阵平方根采用前述对称约定;它对应上面的数学步骤。
01 对每个可压缩层 i,初始化 A0[i], B0[i] = 0
02 对每个校准样本:
03 前向与反向,取得每层各 token 的 (x, g)
04 对每个可压缩层 i 和 token t:
05 A0[i] += norm(g[t])^2 * outer(x[t], x[t])
06 B0[i] += norm(x[t])^2 * outer(g[t], g[t])
07 对每个可压缩层 i:
08 归一化统计,处理零迹情况,施加收缩
09 Z = sqrt(B[i]) * W[i] * sqrt(A[i])
10 U, S, Vt = truncated_SVD(Z, rank[i])
11 Left = invsqrt(B[i]) * U * sqrt(S)
12 Right = sqrt(S) * Vt * invsqrt(A[i])
13 用 Left * Right 替代原层,保留输出偏置
6. CoRS:不同的层,为什么不应该平均压缩
6.1 用模型输出,而不是原始谱能量,测量敏感性
假设分解方法已经固定,接下来的问题仍然很大:同样的预算,是给每一层相同压缩率,还是保护其中几层、让另一些层多压一点?CoRS 先测量单层压缩对最终输出的影响。对层 的候选配置 ,保存误差 和计算成本 。主分类实验的误差,是原模型与仅压缩该层后的模型输出之间的 KL 散度。
这样做的好处是,所有层的误差都落在相同输出空间,较容易比较。某个中间层的激活范数很大,不一定代表它对最终分类很敏感;另一层看起来只改变一点,却可能经过后面的网络放大。直接观察最终输出,能够把这些下游影响的一部分纳入单层测量。
论文使用 512 张训练图像进行敏感性测量,先对每层测试剩余成本比例 0.1、0.3、0.5、0.7、0.9,再插值增加候选点。还有一个很重要的候选:完全不压缩的原始层,误差为零。如果没有这个选择,即使某一层非常敏感,求解器也被迫修改它;有了它,预算可以从其他层节省出来。
可以用两个虚构层理解这个过程。两层都有成本 2、4、6 三个选项;A 层误差分别是 9、5、0,B 层分别是 3、1、0。预算为 8 时,平均分成 4+4,误差为 6;把 6 留给 A、2 留给 B,误差为 3;反过来是 2+6,误差为 9。全局预算相同,结果取决于各层误差曲线的形状。

当然,这个例子也说明非均匀分配不是先验结论。如果 A 层中间成本的误差从 5 改成 2,那么 4+4 与 6+2 的总误差都变成 3。真正需要的是可比较的曲线,而不是简单地相信“分配越复杂越好”。
6.2 从曲线到混合整数规划
令 表示是否为层 选择候选 。CoRS 的离散优化可写为
目标是选中配置的误差和,第一条约束限制总预算,第二条保证每层恰好选一个配置。它本质上是带多组选项的离散预算分配,用混合整数线性规划表达。目标与约束对于二进制选择变量都是线性的,非连续性来自选择本身。
这里“全局最优”需要加上范围:如果求解器给出了最优性证书,那么它在现有候选表和可加误差代理上达到最优。它没有证明最终分类准确率最优,也没有证明未测过的连续秩空间里不存在更好选择,更没有证明实际延迟最优。
尤其值得注意的是可加误差的假设。对多个层一起扰动,二阶展开里存在 这样的跨层项。单层 KL 测量的和不会自动包含它们。早期层一旦压缩,后续层看到的输入也变了,其校准度量和敏感性曲线都可能发生偏移。所以 CoRS 给出的是一个强而可求解的分配代理,最终还要由联合压缩后的整模型评估来验证。
6.3 插值不是装饰,它会改变优化器的选择
稀疏测量点之间如果使用全局三次样条,可能产生不存在的局部低谷。优化器并不知道那个低谷是拟合假象,它会认真地利用它,从而选出一个被错误估计为便宜又可靠的秩。
论文提出在相邻三个点构成的窗口内做局部三次拟合,并以分段线性插值作为参考,尽量减少不合理弯曲。但附录的文字和 Algorithm 3 有一些细节不完全一致:文字提到依据查询点的偏差选值,伪代码则先计算整个窗口偏离线性基线的绝对误差和;文字还提到只保留单调样条,伪代码没有显式写出这一步筛选。
这些是书面方法的歧义,我不会自行替作者确定唯一版本。更稳妥的技术阅读方式,是把原文确定的三阶段结构讲清,并保留这个需要澄清的细节。作者也承认,相比简单线性插值,这种局部插值带来的额外性能收益很小。因此线性版本是一个值得认真比较的简单替代方案,不应该因为形式不复杂就被忽视。
6.4 算法 2:CoRS 的完整决策过程
- 固定原始模型作为输出参考,明确哪些层可压缩,以及总 FLOP 预算是否包含固定不变的计算部分。
- 对每个可压缩层,单独评估五个稀疏候选,记录模型输出散度与相应计算成本。
- 加入误差为零的原始层选项;按明确记录的插值规则建立更密的候选表。
- 把候选转换成合法整数秩,重算真实成本,并合并舍入后相同的配置。
- 求解式 19,检查预算可行性、每层单选约束及求解器达到的 gap,而不是把任何“程序结束”都解释为最优性证明。
- 同时替换所有选中的层,测量整模型质量和成本,再比较代理预测与实际结果。
其中关于整数秩、可行性与最终整模型评估的说明,是为了让数学目标成为可解释的评估流程,不代表本次运行了作者的模型实验。分解因子与敏感性曲线建立后,可以供多个目标预算复用,昂贵的测量因此能够摊销;但“能够复用”也以校准分布和被评估的模型没有变化为前提。
01 Reference = 原模型在敏感性样本上的输出
02 对每个可压缩层 i:
03 Profile[i] = {(原层成本, 0, 保留原层)}
04 对每个稀疏候选秩 k:
05 Candidate = 仅压缩层 i 的原模型副本
06 e = 原输出与 Candidate 输出之间的散度
07 将 (实际成本(i,k), e, k) 加入 Profile[i]
08 插值形成候选,取合法整数秩,合并重复配置
09 求解:选中误差之和最小,且选中成本之和 <= B
10 每层恰好选一个配置,记录求解器达到的 gap
11 对所有选中层同时压缩后的模型做独立评估
7. 实验阅读:先把比较口径固定下来
7.1 Fisher 更像,压缩准确率是否更高
原论文 Table 2 在各模型内部固定 FLOPs 与分解流程,比较不同估计器。下面直接抄录表中的关键数据,cosine 指与经验 Fisher 的算子相似度,Top-1 是分类准确率。
| 估计器 | DeiT cosine | DeiT Top-1 | Swin cosine | Swin Top-1 |
|---|---|---|---|---|
| GFWSVD | 0.174 | 71.0 | 0.117 | 52.2 |
| Shampoo2 | 0.166 | 77.2 | 0.177 | 75.9 |
| KFAC-reduce | 0.129 | 67.0 | 0.138 | 56.5 |
| KFAC-expand | 0.119 | 75.9 | 0.103 | 75.3 |
| FACTS | 0.128 | 77.5 | 0.127 | 76.6 |
DeiT-B 的压缩预算是 17.1 GFLOPs,Swin-B 是 18.4 GFLOPs。它们分别在模型内部匹配,不是在两个模型间使用相同成本。FACTS 相对 Shampoo2 的准确率增益是 0.3 和 0.7 个百分点,而 cosine 并不是最高。这支持了论文的核心观察:近似矩阵的整体对齐程度,不能单独决定压缩后的性能。

但我不会从图中直接推出更强的因果结论。附录说明 GFWSVD 的视觉适配因为内存限制使用 64 个样本平均梯度作为样本,其因子还存在病态问题。它与 FACTS 的大差距,可能同时涉及估计结构、统计粒度和数值稳定性。对 Shampoo2 的小幅领先更接近结构选择的证据,但仍应报告不确定性,而不只是点估计。
测量 cosine 的流程也与主准确率实验不同。附录 A.1 使用来自验证集的 16,000 张类别平衡图像建立诊断因子,再用互不重叠的 2,000 张图像测相似度与其他诊断;主分解设置则使用训练集的 16,384 张图像。这两个校准口径不能合并成一句“所有结果都用了同一份训练校准集”。相似度通过随机矩阵探针和 Fisher 向量乘积估计,不需要显式形成完整 Fisher。
7.2 分解改进与搜索改进分别有多大
Table 1 在保留 50% 可压缩线性层 FLOPs 的条件下报告:
| 模型 | 原模型 | FLAR-SVD | 均匀 FACTS | FACTS + CoRS |
|---|---|---|---|---|
| DeiT-B | 83.3 | 75.0 | 77.5 | 81.3 |
| Swin-B | 85.1 | 60.1 | 65.9 | 74.9 |
| ConvNeXt-B | 85.8 | 72.2 | 75.8 | 79.4 |
| MambaVision-B | 83.9 | 71.3 | 72.3 | 79.7 |
以上均为 Top-1 百分比。四个压缩模型的整模型成本依次为 17.1、15.5、15.9、21.5 GFLOPs。MambaVision 原模型为 29.9 GFLOPs,因而整模型计算量实际只下降约 28.1%。这就是前面强调分母的原因:它并不与“线性部分减半”矛盾,只是网络中还存在大量固定开销。

CoRS 在均匀压缩破坏较大的架构上尤其重要。进一步把线性层剩余 FLOPs 压到 40%,Table 8 中 Swin-B 从均匀 FACTS 的 41.2% 提高到 57.5%,MambaVision 从 60.7% 提高到 74.6%。这些结果说明层间敏感性差异很大,也提醒我不要只看“相对压缩基线领先”:Swin-B 即使领先,距离 85.1% 的原模型仍然很远。

实际部署时,这种绝对质量差距可能比压缩算法排名更重要。如果业务要求准确率损失不超过某个阈值,应该先找到满足质量门槛的预算,再谈谁在该预算下最快。一个方法在极端压缩时明显优于其他方法,不意味着那个极端设置已经具有应用价值。
7.3 搜索耗时要把测量与求解分开
Table 3 固定底层分解为 FACTS,比较不同秩分配策略。CoRS 在 DeiT-B 上达到 79.8%,搜索时间 6.6 分钟;Swin-B 上达到 81.3%,时间 15.0 分钟。MemViT 只需要 0.1 分钟,但准确率分别为 78.1% 和 79.0%。ASVD 搜索分别为 79.1%/19.9 分钟与 80.2%/26.5 分钟。
论文说 MILP 求解本身只需要几秒,与这些分钟级时间并不冲突:前面还要收集敏感性曲线。真正使用方法时,校准、分解、单层前向测量、插值和求解应该分别计时。仅报告求解器快,无法说明整个模型转换过程便宜;同样,仅看首次准备时间,也可能低估曲线能够复用到多个预算的价值。

这里确实存在预算差异。FLAR-SVD 的 DeiT-B 是 17.5 GFLOPs、79.2%,Swin-B 是 19.4 GFLOPs、80.8%;CoRS 则是 17.0 和 18.4 GFLOPs。CoRS 在表中以更小预算取得更高质量,是有利结果,但不能因此反过来把表述改成“所有方法预算完全相同”。ComCat 的 DeiT 预算也是 17.2,而不是 17.0。
更重要的是,Table 3 的 DeiT 原模型基线为 81.8%,Table 1 则为 83.3%,均匀压缩行也不同。我会优先在每张表内部比较方法,避免把两表拼成一条看似严格控制变量的改进链。附录 Table 12 给出了分解、搜索和插值的耗时拆分,但它自身的比例标签也需要谨慎解读,后面会单独讨论。
7.4 实际吞吐量有提升,但不是普遍加速承诺
原论文 Figure 2 的 DeiT-B 相对吞吐量标注为:V100 上 1.6 倍,A100 上 1.7 倍,H100 上 1.6 倍,所测 Intel Xeon CPU 上 1.6 倍。下图仅重绘这些明确标注的相对值,没有从柱子高度推算精确的 images/s,更不是本次运行的新硬件测量。

机制上,低秩分解仍使用稠密矩阵乘法,避免了稀疏索引和不规则访问,这在常见硬件上有吸引力。但一个矩阵乘法变成两个,也增加了调度和中间结果开销。是否更快,取决于矩阵形状、batch、精度、算子库、内存流量,以及模型其他部分占用多少时间。
用一个简单时间分解就能解释为什么“减半 FLOPs”通常不会变成“两倍速度”。设可压缩部分占原始延迟比例为 ,这部分压缩后成本比例为 ,新增开销相对原总延迟为 ,则说明性估计为
如果 、、,得到约 1.67 倍。这只是用来说明分母构成的例子,不是对作者数据做拟合。它还表明,当原网络中可压缩部分很小,或者新增开销很大时,理论线性层节省可能很难转化为显著的端到端收益。
论文附录还比较了半结构化稀疏和带低秩残差的方案。这些测量有参考价值,但评价对象是文中的具体硬件、软件与模型路径。不能把某一条稀疏部署路径不理想,扩展成硬件稀疏在所有工作负载上都没有价值;也不能仅凭少量额外参数,断言残差模块对运行时间没有影响。
8. 下游任务、校准数据与 LLM 边界
8.1 下游结果证明了什么
分类之外的实验更能说明这种压缩是否有迁移价值。Table 6 在 COCO 上使用 Swin-B 骨干的 Mask R-CNN。压缩后整模型成本为 290.3 GFLOPs:FACTS 的 box mAP 为 45.3、mask mAP 为 41.6;SVD-LLM 是 42.9 和 39.5。原模型在 358.5 GFLOPs 下为 46.6 和 42.6。FACTS 再微调一个 epoch 后达到 45.9 和 42.1。
PELA 的 box mAP 也是 45.3,mask mAP 为 41.3,但采用了不同的多阶段重训练流程。因此可以比较质量与投入,却不能把它当成完全同一训练配方下、仅改变分解公式的消融。
论文的 zero-shot 压缩,是对已经训练收敛的下游模型直接施加压缩,之后不再优化,并不是下游任务从来没有训练过。这个词如果脱离上下文,很容易被理解成模型无需任何任务训练。附录 A.5 还指出,检测任务的敏感性指标改成 FPN 特征图的 MSE,只使用十张图像做测量;分割则沿用 KL。可迁移的思想是“以任务输出或相关特征测敏感性”,不是所有任务必须使用同一种分类 KL。
在 ADE20K 的 Table 7 中,DeiT-B 的 FACTS 为 43.5 mIoU,SVD-LLM 为 38.1,原模型为 44.9;Swin-B 对应为 46.2、37.7 和 49.4。骨干压缩后,下游头部仍然存在,所以整系统 FLOPs 的下降幅度远低于 50%。不同任务的参数、FLOPs 和指标都应该使用各自的完整模型口径。
8.2 校准数据少的时候,并非处处领先
主实验采用 16,384 张图像,并需要反向传播来收集梯度统计。这并不是没有成本的训练后处理。Table 10 给出了校准集缩小后的情况,也提供了对方法边界很有用的信息。
例如只有 1,024 张校准图像时,DeiT-B 的均匀 FACTS 为 73.7%,低于 FLAR-SVD 的 74.4%;MambaVision 的 FACTS 为 71.8%,而 GFWSVD 为 77.8%。加入 CoRS 后整体效果会改善,但不能用搜索后的好结果抹去分解估计器本身在少样本条件下的敏感性。
这也提醒我,“所有方法都用了相同数量的校准样本”并不等于它们获得了相同质量的统计估计。某些方法需要更高阶的联合信息,对样本量和离群点可能更敏感;收缩则通过牺牲部分细节换稳定性。一个很值得补充的实验,是在固定样本数下重复抽取多份校准集,观察方法排序是否稳定,而不只增加一条单次曲线。
8.3 LLM 部分应当按探索性实验来读
论文对 Qwen3-1.7B 做了一个小规模语言模型实验:统一压缩到 0.7 的剩余参数比例,使用 WikiText2 训练集的 256 个、长度 2048 的序列校准。Table 11 给出:
| 方法 | WikiText 困惑度 ↓ | 平均零样本准确率 ↑ |
|---|---|---|
| SVD-LLM | 57.7 | 35.4 |
| GFWSVD | >1,000 | 31.3 |
| Shampoo2 | 44.6 | 34.4 |
| FACTS | 40.8 | 36.5 |
相对 Shampoo2,困惑度下降约 8.5%,计算是 ;准确率提高 2.1 个百分点。这个结果说明思路可能不限于视觉领域,但它不足以证明大规模 LLM、长上下文、复杂推理或指令遵循场景下都稳健有效。
还应注意,这张表没有列出未压缩模型结果,所以不能据此编造“恢复了多少原模型能力”。平均准确率覆盖多个零样本基准,但仍然是一个小模型、一个压缩比例和一种校准设置。作者在正文中也把更大 LLM 的复杂性留给其他工作,我会保留这种范围限制。
视觉位置往往具有固定空间意义,而语言 token 的关系更依赖具体序列与上下文。跨 token 结构的形态不同,并不意味着其中一个模态没有相关性。FACTS 在两类数据上出现有利结果,说明其先验值得进一步研究,不意味着可以跳过模态差异的分析。
9. 局限:在哪些地方可能失效
第一类风险来自目标不匹配。FACTS 主动抑制跨 token 混合项,这是一个有经验支持的压缩先验,不是对真实数据独立性的证明。如果任务本身需要跨位置误差抵消、特殊的聚合方式或不同的空间统计,这个先验未必合适。论文观察到跨 token 项存在,随后选择不让这些项主导近似,并不是逻辑矛盾,而是在明确改变代理目标。
第二类风险来自校准分布。能量权重会让高梯度或高激活的少数样本拥有较大影响。梯度稳定化与收缩可以缓和问题,但类别不平衡、离群样本、领域迁移和输入分辨率变化,仍可能让统计偏离真实部署需求。在 ImageNet 上成立的结论,需要经过新的验证才能用于医学图像、非常规视觉输入或完全不同的标签分布。
第三类风险来自多层联合变化。加权 SVD 的推导逐层处理曲率,CoRS 又把隔离压缩的输出误差相加。早期层改变后,后面的输入分布和局部敏感性可能同步变化。在温和压缩下代理可以很好用,但预算越激进,对这种相互作用的忽略越值得担心。
第四类风险是统计不确定性。主要表格一般给出单个点估计,而不是重复校准的方差或置信区间。FACTS 比 Shampoo2 高 0.3 个百分点与比严重退化基线高十几个百分点,是不同强度的证据。跨多种架构评估是优点,但覆盖面不能替代对小差距稳定性的量化。
第五类风险在实际投入。收集梯度、处理大因子、逐层测敏感性,都发生在推理收益之前。如果模型会长期大规模服务,这些准备成本可能容易摊销;如果模型频繁更新、推理量很小、可用标签很少,较便宜的近似即使质量略低,也可能是更合理的选择。
最后,FLOPs 只是资源代理。实际系统可能受小矩阵效率、内存访问、批量大小、算子启动或未压缩模块限制。用某一批硬件上的稳定加速说明方法有部署潜力是合理的,把它写成对任何设备和模型都成立的固定加速倍数则超出了证据。
10. 批判性分析:我希望下一步澄清什么
10.1 把三种“最优”彻底分开
我认为最需要讲清的是三层不同的最优性。第一层,在给定正定加权度量后,截断 SVD 对那个 Frobenius 目标有严格最优性。第二层,FACTS 用一次能量加权构造来选择 Kronecker 度量;一般情况下,一次构造不等于已经找到重排 Fisher 的最佳 rank-one 近似。第三层,MILP 在有限候选、可加误差和预算约束下达到最优;它并未直接优化真实准确率。
这不是削弱论文,反而能更准确地呈现贡献。真正有意思的是:作者没有把 Fisher 矩阵重建当成最终目的,而是尝试设计更适合压缩决策的代理。与其继续问哪个矩阵最像,我更想问哪个代理最会排列实际压缩方案的好坏。
一个可以直接验证这种观点的实验,是固定一批真实的低秩扰动候选,让不同曲率代理分别预测损伤,再比较预测排序与实际输出变化、准确率变化的排序一致性。Fisher 余弦衡量整个算子的平均对齐,候选扰动上的排序相关性则更接近实际要做的决策。这个实验应当在独立数据上评估,避免用同一批候选反复挑选代理后再报告最好结果。
10.2 结构收益与数值稳定收益应该拆开
Table 2 既包含有启发的结构比较,也包含严重病态导致的性能崩溃。更干净的消融应当统一校准样本、梯度处理和收缩搜索范围,然后同时报告因子条件数、Fisher 相似度以及压缩后的质量。若在这些条件对齐后,token 局部且保留耦合的方案仍然稳定占优,结构机制的论证就更强。
还可以在 token 局部目标与保留跨 token 项的目标之间设置一个可调系数,用独立校准集选择。这样不必把问题限制在“全部保留”与“全部删除”两个端点。它有机会揭示什么架构、什么预算、什么数据分布更依赖局部先验,哪些情况适合保留一定程度的混合结构。
这里提出的是后续研究设计,不是论文已做出的结果。系数选择本身也会增加准备成本和过拟合机会,必须计入比较。一个额外旋钮只有在带来稳定收益时才值得加入,不能因为解释上更灵活就默认更实用。
10.3 先统一表格口径,再讨论接近原模型
论文存在几处需要明确保留的不一致。Table 1 的 DeiT 原模型准确率是 83.3%,Table 3 则是 81.8%。Table 4 中,FACTS 微调一个 epoch 后为 81.4%,同表原模型写 83.3%,相差 1.9 个百分点;附近文字却说距离基线 0.4 个百分点,这个差值对应的应该是另一处 81.8 的基线。
仅凭印出的论文,我无法确定是哪种 checkpoint 或表格描述造成了差异。因此这份笔记采用表内数值,不直接转述“只差 0.4 个百分点”。同样,Table 12 的 Swin 均匀 FACTS 值 76.6,与其他表中保留 60% 线性 FLOPs 的结果一致,但该表标题写的是压缩到 50%。这需要澄清比例分母或对应模型设置。
这些问题不会让所有表内比较失效,却会妨碍读者把不同表组织成同一条严密的因果链。最直接的改进,是给每张表补齐 checkpoint、输入分辨率、预算分母、微调设置,以及分解/测量/求解分别耗时。然后再用统一设置汇总关键结论。
另外,Table 3 中 FLAR-SVD 的 GFLOPs 与 CoRS 并不完全相同。这种差异可以诚实地呈现,甚至对 CoRS 有利,但不能用“固定预算”四个字一笔带过。资源受限研究的读者很可能正是根据这些细节决定是否尝试,口径可核对与最好的数字一样重要。
10.4 让优化器选中的点得到额外测量
CoRS 依赖插值后的误差表,优化器又特别擅长利用表中被低估的候选。因此我会尝试一种自适应测量:先求解一次,再直接测量被选中秩的真实单层误差;如果与插值预测偏差较大,就更新该位置的曲线后重求。这样把额外成本集中到最终决策实际使用的点,而不是均匀加密所有层、所有秩。
随后,可以只对少量最敏感的层对测联合扰动,观察单层误差相加是否低估真实损伤。如果相互作用集中在某些层组,也许不需要完整跨层 Hessian,就能为分配提供更可靠的修正。这个方向与今天新增候选中的跨层 Kronecker-Fisher 分析形成互补,但尚不能据此宣称两套方法已经结合成功。
若目标是延迟,可以把候选表中的 FLOP 成本替换为目标设备上的测量值,再做一次全模型验证。不过层延迟也不一定严格可加:融合、内存流量和并行执行会改变组合后的行为。因此“换一列成本”是起点,不是端到端延迟保证。
11. 如果以后做实验,我会怎样安排
我会先固定一个模型、一组可压缩层和一个没有歧义的预算定义。数据分成三个角色:建立曲率统计的校准集、选择秩配置的敏感性集、最终评估集。附录用于诊断 Fisher 的验证样本,不应在没有说明的情况下与最终性能评估混用。
第一阶段只比较分解,不做秩搜索。在相同的均匀压缩条件下,对照普通 SVD、激活感知 SVD、KFAC-expand、Shampoo2 与 FACTS,并记录不同校准抽样下的波动。这样可以判断收益主要来自度量、稳定化,还是偶然的统计样本。
第二阶段固定分解方式,再比较均匀秩、简单贪心、线性插值 CoRS 和论文局部三次插值版本。每种方法都保留原始层选项,采用一致的整数秩舍入与实际成本计算。对于求解器,要区分已证明最优、达到时间限制的可行解和无可行解,不能把它们都记录为“完成”。
第三阶段才看部署收益。至少同时报告整模型参数、整模型 FLOPs、准确率及其不确定性、统计收集时间、分解时间、敏感性测量时间、求解时间和真实端到端吞吐量。若需要比较反复更新的模型,还应把准备成本和预计服务请求量结合起来,而不只报告单次推理收益。
在数学解释层面,小矩阵可以核对迹恒等式、因子形状、加权误差与参数盈亏平衡点,也可以枚举一个很小的预算例子核对分配目标。这类计算用于检验本文推导是否自洽,不会产生 ImageNet 准确率,也不能证明作者的 GPU 加速结果。
这份笔记没有报告新训练、压缩模型跑分或作者实验复现。官方资源链接保留给后续读者,技术解释以论文和附录为依据。将这两种证据分开,可以避免把“公式能够解释”误写成“实验已经重现”。
12. 结论
FACTS 最值得记住的地方,是它重新审视了近似应该服务什么目标。经验 Fisher 重建得更相似,与有限秩压缩后预测更可靠,是两个不同的问题。它通过 token 局部、能量加权的因子,保留部分同位置激活—梯度联系,同时避免把所有跨 token 结构都当作需要拟合的目标。
CoRS 则补上了另一半:即使分解方法相同,不同层如何分配预算,也可能决定很大的质量差距。对层间敏感性差异明显的模型,搜索秩分配不是可有可无的修饰,而是与分解度量互补的核心步骤。
我对论文的最终理解是“面向压缩决策设计曲率代理,再在明确预算下分配秩”。这比笼统的“更准 Fisher”或“全局最优压缩”更接近实际贡献。剩下的边界也很具体:局部近似、校准质量、跨层相互作用、插值误差,以及真实硬件成本,都需要分别验证。
参考资料
- Thoma 等,Mind the Approximation: Fisher-Weighted SVD Compression for ViTs,2026。本文主要依据正文第 3–6 节、Tables 1–12、Figures 1–7 和附录 A–C。
- FACTS 官方资源入口,由 arXiv 摘要页提供;此处作为资源链接。
- Thoma 等,Advancing SVD-based LLM Compression via Layer-Wise Error Model Search,ICML 2026。由 FACTS 参考文献确认的相关论文;本次全文入口不可用,因此不据其摘要扩展额外技术结论。
图 1–4 是为解释概念而自绘的示意与代数例子;图 5–8 重绘注明来源的原论文表格;图 9 重绘原图明确标出的速度比。本文公式编号独立于原论文编号。