笔记日期: 2026 年 9 月 26 日
作者: Zhongzhu Zhou
Paper reviewed: Scalable Kronecker-Fisher Approximation: Efficient Hessian Analysis for Billion-Parameter Language Models Compression
Paper authors: Viacheslav Yusupov, Daria Cherniuk, Evgeny Frolov
arXiv: 2609.02451v1,2026 年 9 月 2 日提交
本文依据完整 12 页 v1 及附录 A—C。
1. 从逐层压缩走到跨层关系
做模型压缩时,我们常给每一层算一个分数:这一层能压多少、损失有多大、应该保留多少秩。再把这些分数放进预算分配器,选择一个整模型方案。这套思路很清楚,但里面藏着一个假设:几层一起修改时,逐层测出来的分数仍然有用。
问题在于,层与层并不独立。注意力的 value 投影改变了传递给后续模块的内容,MLP 又依赖这些表示。单独压缩两个模块可能都能接受,合起来却损失明显;反过来,适当调整另一层,也可能补偿已发生的压缩误差。因此,逐层分数之间的关系有时与分数本身一样重要。
这篇论文试图让这些关系变得可观察,同时避免构造一个“每个参数对应一行一列”的巨大矩阵。它用少量 Kronecker 积表示梯度二阶统计,再单独保存对角线。由于表示不限定在每层内部,它能够保留不同参数组之间的条目。
我把论文分成三件事来读。第一件是数学与数值方法:怎样表示并估计这个大矩阵。第二件是经验观察:哪些投影在量化、稀疏化时更脆弱。第三件是用途:能不能根据这些关系决定在哪里微调,以修复别处的损伤。第一件成立,并不自动保证后两件在所有模型上成立。

接着昨天读过的逐层 Fisher 加权 SVD,这篇文章很自然地追问:我们把每一层分开处理时,丢掉的是什么?它提供的是诊断方法与一组用途证据,没有给出一个经过完整比较的联合秩分配系统。因此,下文会始终区分“知道哪些关系值得关注”和“已经解决预算分配”。
我最在意的一个细节在实验指标里。论文用联合压缩后的困惑度增长,减去两次单独压缩的增长,解释“额外交互”。但困惑度是平均负对数似然的指数,即使后者严格相加,前者的差也可以为正。这个问题并不否定作者测到的质量下降,却会改变我们能从中推出多强的因果结论。后面会把推导写完整。
2. 前置知识:损失不仅有陡峭程度,还有方向
2.1 压缩误差为什么会相互影响
把选中的模型参数展平成向量 ,压缩造成的变化记作 。对可微损失做局部二阶展开,有
是损失对参数的 Hessian,即二阶导数组成的矩阵。它描述在当前点附近,沿不同方向走动时损失如何弯曲。模型接近驻点时,一阶项可能很小,但这不意味着任意大的压缩误差都可以用二阶项准确描述。“梯度小”和“扰动足够小”是两个条件。
如果只改变两组参数 和 ,把 Hessian 按组切成四块,二次型就能展开成
这里用了 。前两项是两组各自的局部代价,最后一项是交叉项。只保留块对角矩阵的做法,相当于直接删掉最后一项。它的影响既可能是放大,也可能是抵消,取决于实际误差方向。
考虑一个完全人为构造、方便看清机制的例子:
若两组变化为 ,二阶损失是 ;若变化为 ,则是 。只看对角线,两种情况都会被预测为 。它们的扰动范数相同,差别全部来自方向与交叉项的配合。

这说明热力图只是第一步。一个跨层块的数值大,不代表所有压缩方法都会在它上面造成同样损失。均匀量化、剪枝、低秩截断会产生不同形状与符号的误差,最终相关的是它们与曲率块的收缩结果。
2.2 Hessian、经验 Fisher 与模型 Fisher
论文实际估计的是梯度外积的平均:
对任何向量 ,都有 ,因此经验 Fisher 是半正定的。真实 Hessian 在一般位置不一定半正定。模型 Fisher 则还涉及按模型分布生成标签,与直接使用数据里已有标签计算的经验统计不是同一回事。
原论文以预训练模型接近局部最优为理由,将经验 Fisher 当作 Hessian 的近似。我会把它当成需要验证的建模选择,而不是由“已经收敛”自动保证的等式。一个简单反例是平方误差模型:如果每个样本都恰好拟合,样本梯度可以全部为零,经验 Fisher 也为零;但损失的二阶曲率仍然可以非零。
这个区别影响后面的实验解释。增加 Kronecker 项数,可以改善对所选梯度统计的拟合,却不能自动修复该统计与真实 Hessian 之间的差距。小模型上能直接比较真实 Hessian,是有价值的;它仍不能替代大语言模型上的用途验证。
3. 矩阵重排:不是直接给 Fisher 做低秩截断
3.1 从元素下标一步步推导
先固定参数顺序,再把梯度改排成 ,其中 。为了避开向量化约定带来的歧义,下面使用按行展平的成对下标:参数坐标 对应 。换用按列展平也可以,但所有置换都必须跟着一致地改变。
原二阶统计的一项为
现在不改变这个数值,只改变它存放的位置:把 作为新的行下标,把 作为新的列下标,得到
的形状是 。在上述约定下,它就是 。这个操作保留了所有元素,因此保留 Frobenius 范数;但它通常不是相似变换,不保留通常意义的特征值。矩阵形状甚至可以从方形变成长方形。
对重排后的矩阵做 SVD:
把左奇异向量还原成 ,右奇异向量还原成 。每个外积的元素恰好是 ,所以按原来的位置放回去,就有
保留所有项时是精确分解;只保留前 项才是近似。这一步最容易混淆的是“秩”的含义: 是 Kronecker 项数,不是 的普通矩阵秩。因为 ,一个 Kronecker 积本身就可能在参数空间满秩。

3.2 截断最优究竟最优在哪里
根据截断 SVD 的性质,在普通矩阵秩至多为 的候选中, 最小化 。换回原坐标,可以说:在固定重排约定、至多 个不受额外约束的 Kronecker 项中,它取得对应的 Frobenius 误差最优。
“不受额外约束”很重要。如果还要求因子半正定、满足某种层结构、占用特定硬件内存,问题就变了。同样,拟合经验 Fisher 最优,也不是实际压缩准确率最优,更不是拟合真实 Hessian 最优。
为什么这个拟合仍然有意义?因为对一个具体扰动,可以写出
这给了一个整体控制:拟合误差小,对任意固定范数扰动的最坏二次型误差也受限。但这个界通常比较松,而压缩真正关心的是少数候选方向。某些平均意义上不起眼的元素,恰好可能决定两个接近方案的排序。
因此,我更希望看到“候选压缩方向的预测质量”随 如何变化,而不只是整幅矩阵图越来越像。参数顺序也应固定并报告,因为改变重排方式会改变一个矩阵在少量 Kronecker 项下的可表示程度。
4. 不存大矩阵,如何求出它的主方向
4.1 把矩阵换成一个可调用的乘法
重排解决了表达方式,却没有消灭维度: 仍然包含 个元素。作者进一步利用一个事实:迭代奇异值求解器不一定需要读到整个矩阵,只要能反复计算它乘一个向量,以及转置乘一个向量,就有机会提取少量主方向。
把输入向量还原成 ,直接展开第 个输出:
右边只涉及梯度矩阵与一个较小矩阵的乘法。对应的伴随算子为
可以用迹内积检查这两式是否配对:。两侧应该相同。这既是推导里的必要条件,也解释了为什么不能随意混用不同向量化约定。
论文使用隐式重启 Arnoldi 方法求所需的奇异方向。“不显式构造矩阵”省掉的是巨大的存储,不是所有乘法成本。求解器要多次调用这些乘法,梯度矩阵如何取得、是否缓存,仍然影响实际运行时间。
这里还有一个容易被“矩阵自由”这个名字遮住的条件:各次调用原则上应该对应同一个算子。如果每次乘法都重新随机采样一批不同数据,求解器看到的就不再是固定的 ,除非另有专门处理随机算子的设计。缓存固定梯度、确定性地重放相同校准数据,都可以让统计量保持一致;前者用内存换时间,后者反过来。论文没有充分展开这项工程权衡,不能把它当成零成本。
4.2 “精确对角线”到底精确到什么程度
记梯度逐元素平方的均值为 。先求出截断表示 ,再把它的对角线换成 ,可以写成
这个写法把两个部分分得很清楚:Kronecker 项负责结构,单独的向量负责坐标级的方差或二阶矩信息。对固定的 ,替换会消除它相对于所选梯度统计的对角线误差,非对角误差则原样保留。
但此时表示类已经变成“若干 Kronecker 项加一条对角线”,不能继续不加限定地称其为纯粹的 项截断最优解。它也没有得到真实 Hessian 的精确对角线;精确只针对当前估计的梯度二阶统计。
若只想给一个扰动方向打分,不需要把校正向量展开成矩阵:
这就是对角校正很有吸引力的原因:只增加 个数,得分时再增加一次逐元素求和,就能保留坐标级信息。
更细的统计问题在“一个梯度样本”的定义里。论文先用逐样本梯度介绍 Fisher,后面又描述了按批次累计的梯度。如果批梯度是 个独立样本梯度的平均,设单样本梯度均值为 ,则有
可以从 展开外积推导: 个同样本项包含二阶矩, 个跨样本项在独立假设下只有 。合并以后,协方差前面就多了一个 。因此,“先平均再平方”和“先平方再平均”不同。
只有在 且独立采样等条件成立时,两者才简化为整体尺度差异。若均值不为零,均值方向和波动方向的相对权重也会改变。语言序列里的 token 又往往相关,不能随手把 token 数当成独立样本数。因此,所谓精确对角线,必须连同样本单位、损失的求和或平均方式一起说明。
4.3 算法 1:构造可用于诊断的表示
下面是对原文第 3 节的解释性伪代码,补出了理解算法必需的记账条件。它不表示原文已经给出了所有这些运行细节。
01 固定模型权重、参数顺序、重排形状和损失归约方式。
02 收集选定的梯度样本,或确定性重放同一批样本。
03 累积 d_J = 梯度逐元素平方的平均。
04 定义 M(V) = mean_b(G_b V G_b^T)。
05 定义 Mt(U) = mean_b(G_b^T U G_b)。
06 用两个算子运行奇异值求解器,保留 r 个奇异三元组。
07 把左右奇异向量分别还原为 U_s 和 V_s。
08 保存奇异值及因子,不展开 Kronecker 积。
09 保存 d_J 与该表示对角线的差,作为校正向量。
10 记录求解残差、校准统计约定和参数范围。
11 用留出数据及实际压缩结果检验得分是否有用。
最后两步不能省略。数值求解收敛,是“确实算到了想要的统计表示”;留出实验有效,才是“这个表示值得拿来做压缩决策”。一幅结构清楚的热力图无法替代其中任何一个条件。
5. 这张图和这份表示应该怎样读
5.1 小网络验证:对角线有帮助,整体误差仍不小
为了能直接构造真实 Hessian,论文使用输入与输出维度均为 500、隐藏维度为 8 的两层感知机,参数约 8,000 个,在含 500 个高斯簇的合成数据上训练,损失为二元交叉熵,优化器为 AdamW。这是一个能够做真值比较的小规模环境。
表 1 使用的拟合分数是
分母是 自身的平方范数,没有减去元素均值,所以不要直接套用普通回归里“中心化决定系数”的解释。16 项时,带对角校正的分数是 42.3%,不带校正是 29.9%,差了 12.4 个百分点;前者仍有相当于 的 57.7% 平方残差。

更完整地看,项数为 1、2、4、8、16 时,不带校正分别是 3.2%、9.8%、15.6%、24.5%、29.9%;加上校正则为 17.8%、26.3%、32.7%、36.1%、42.3%。小项数时单独保留对角线很划算,这是表里相当直接的结论。
但这个实验把几类误差合在了一起:经验 Fisher 代替 Hessian 的偏差,有限数据的统计误差,Kronecker 截断误差,还有迭代求解误差。如果想知道增加项数到底改善了哪一部分,最好同时画两条基准:相对于同一批样本 Fisher 的拟合,以及相对于真实 Hessian 的拟合。否则,一条越来越好的曲线仍然不告诉我们最终瓶颈在哪里。
5.2 热力图里的一个像素,不是一个统一的块范数
对由 指定的块,表示是 。把这个块所有元素平均,得到
但可视化的对角位置,使用的是相应组里真实统计对角元素的平均,而不是整个块的平均。也就是说,对角像素和非对角像素汇总的元素集合不同。不能看到它们使用同一个色条,就默认两个像素具有同一种“强度”意义。
此外,有正有负的均值可能抵消。矩阵 的元素均值是零,Frobenius 范数却是 2,对方向 的作用也不为零。因此,一个暗块不等于没有重要关系,一个亮块也不能直接推出具体压缩误差的交互强弱。
原论文附录 A 展示 OPT-350M 的第 4–6、8–10、20–22 组 block,后面一组的数值较弱,还给出了 OPT-125M 全模型视图。这些图说明所展示模型存在值得研究的深度结构。它们尚不足以推出“所有模型后层都可以更大胆压缩”的普遍规则。
我会把热力图定位成帮助提出假设的工具:它告诉我们下一步值得测哪几组。真正用于预算分配的分数,最好再补上块范数、绝对值统计,或直接对实际误差方向做收缩。
5.3 线性存储不等于只多存一份参数
表示需要 个因子元素,加上 个对角元素。如果两个维度尽量平衡,
平衡形状为何合算,可以从 看出来:固定乘积 时,两边越接近,平方和越小。这里的“线性”是随 的增长阶数,不是一个可以忽略的常数。
举例说,、每个元素 4 字节时,单是表示本身, 大约需要 12 GB, 大约需要 132 GB,采用十进制单位。这些是公式推算,不是论文测得的显存峰值。模型权重、激活、梯度缓存和求解器工作区都还没算进去。

时间也需要单独看。每次算子调用遍历 个梯度样本,大约需要 的乘法成本。若求解迭代次数为 ,每批 token 数为 ,原文的简化模型为
所以平衡重排下,时间并不随 线性增长。若缓存全部梯度,还会多出 存储;若每次重新生成,节省的缓存又会变成额外计算。把 或工作区当常数,足以讨论渐近复杂度,却不足以决定一台具体 GPU 是否装得下。
6. 论文真正测了什么工作负载
6.1 构造曲率的时间,不是推理加速比
表 2 测的是在单张 H100 上,对所有 Transformer block 构造单项近似,使用 20 批、每批 10 条 WikiText2 序列。OPT-125M、OPT-350M、Qwen2-0.5B、OLMo2-1B 的总耗时分别是 157.64、1563.07、1090.61、2428.25 秒;其中梯度部分是 50.73、272.94、200.09、218.64 秒。

OLMo2-1B 大约耗时 40.47 分钟,梯度部分约占 9.0%。这说明该设置有一定可操作性,但表里没有 7B 模型耗时,不能进一步写成“7B 全模型不到一小时”。单项的时间,也不能直接套到小模型验证里的 16 项配置。
OPT-350M 比 Qwen2-0.5B 更慢,还提醒我们不要仅用参数量拟合一个万能的时间曲线。矩阵形状、纳入哪些参数、序列长度、数值收敛,都可能影响结果。论文没有给出该时间测试里的完整序列长度与显存峰值,做实际资源预算时还需要这些信息。
最关键的概念区别是:这是一项准备成本。表示本身既没有减少部署权重,也没有缩短生成延迟。只有后续压缩策略真的利用了它,产生一个更小或更快、质量合格的模型,才能把这笔准备成本与推理收益放到同一张账上。
6.2 “一层”常常是一类投影跨多个 block
主要破坏实验使用 OPT-350M、Qwen2-0.5B、OLMo2-1B 和 Qwen2.5-7B。作者对中间 Transformer block 中某一类投影统一施加 4-bit 均匀量化或 50% 稀疏化,排除最前和最后三个 block,然后看 WikiText2 困惑度。
因此,这里的“一层”经常指很多 block 里同一类投影的集合,而不是一个具体权重矩阵。例如“压 V”可能同时改动所有被选中间 block 的 value 投影,里面既有 block 内关系,也可能有跨 block 关系。读实验时必须保留这个分组范围。
前后边界被排除,是因为论文观察到它们的行为不同、与诊断的对应较弱。这是合理的分析取舍,但也意味着实验里的排序不能直接覆盖一个必须压缩所有 block 的整模型策略。
原文还有一个命名不一致:图 2 的小 Qwen 标成 Qwen2.5-0.5B,而实验描述、后续图表使用 Qwen2-0.5B。我保留各结果的原始名称,不默认它们是完全相同的检查点,也不把这个差异自行修补成确定事实。
6.3 每参数敏感度与总损伤是两种问题
图 3 把困惑度增长除以被修改的参数数量。在这个归一化口径下,V 投影很敏感;OLMo2 的量化实验里 down 投影更突出,稀疏化时则是 V 更突出。作者也讨论了 V 相对较小,因此每参数得分可能更大的情况。
这相当于在看“损伤密度”。如果要在固定内存预算下分配压缩程度,还必须同时知道总损伤和省下的字节数。一个大模块总损伤更大,但每省一字节的代价可能更低;一个很小却脆弱的模块,完整保留反而很便宜。单看原始损伤或者单看归一化损伤,都没有直接解决这个预算问题。
后面的两组联合实验使用未经参数量归一化的困惑度增长,所以不能把配对热力图的亮度与图 3 的柱高直接比较。大层组合可能因为规模而造成大损伤,不一定意味着更强的统计耦合。这个口径差异需要一直带到结论里。
7. 联合压缩与定向修复
7.1 先把“额外损伤”的数算明白
论文用困惑度增长定义交互差:
附录 B 的图 11 给出了具体数字,比单看颜色更容易判断。以 OPT-350M 为例,单独破坏 V 的困惑度增长是 1.283,单独破坏 FC1 是 2.373,联合则是 4.743。依照定义相减,得到 。
同一模型的 O 与 FC1 给出 ;Q 与 K 给出 ;FC1 与 FC2 给出 。正负号并不统一。这些计算使用图中已经四舍五入的值,结果最后几位也不应该被赋予超过原图的精度。

其他例子包括 OLMo2 的 V/down:;Qwen2 的 V/up 残差为 0.352;Qwen2.5-7B 的 V/up 为 0.017。它们说明联合损伤可以偏离两次单独损伤的算术和,但不能只凭这些数比较“哪个模型的层间耦合最强”。不同基线困惑度、不同参数规模和不同误差方向都混在其中。
O 投影尤其值得保留在讨论里。曲率图上的 O 区域相对较弱,可涉及 O 的联合破坏仍可能明显。作者猜测,有限幅度扰动可能破坏残差流里的异常通道,而局部梯度统计没有充分捕捉这种效应。这个解释有道理,但论文没有通过控制干预把它确立为唯一机制。遇到不吻合的案例时,合理做法是缩小结论范围,再提出可验证的解释。
7.2 为什么跨层关系也可能告诉我们去哪里修复
恢复实验先损伤 MLP 投影,再分别微调某一类注意力投影。图 7 和图 8 展示了 Qwen2-0.5B 与 OLMo2-1B 的全量微调及 LoRA 结果,V 的恢复通常优于 Q 或 K。这里不从柱形高度猜测没有标出的精确数值,也不把两组展示扩展成四种模型都有同等完整的恢复验证。
可以用一个局部二次模型解释这件事。设组 已产生固定压缩误差 ,允许组 做修复更新 。忽略原始一阶项后,目标写成
第一项已经发生,无法直接撤回;第二项让修复有机会抵消原损伤;第三项表示修复自身也有代价。如果 正定,对 求导并令其为零:
把最优更新代回去,二次模型允许的最大损失减少为
这是本文为了理解机制补充的推导,不是原论文已证明并测量的新结论。它比“找最大的跨层块”多了两个条件:修复组自己有多硬,也就是 ;当前损伤朝哪个方向,也就是 。两组耦合很强,却可能因为可更新方向不合适而难以恢复。
一个标量例子能看清代价:令 、、、,原代价为 1。最优更新为 ,代回得到 0.875,下降 0.125。如果修复方向更硬,同样的跨组关系也会带来更少收益。
LoRA 又增加了子空间约束:最优的完整更新不一定能用给定秩表示。比较候选修复位置时,不仅要匹配训练 token 和步数,还应控制可训练参数量与更新容量。否则,恢复得更好可能部分来自“给了更多可训练自由度”,未必全部来自选中了更恰当的耦合对象。
7.3 算法 2:我会怎样验证诊断是否真的有用
以下是建议的后续实验协议,不是本笔记已经运行过的模型实验:
01 固定模型、校准数据、留出数据和压缩规则。
02 定义参数组 P、Q,并明确包含哪些 block。
03 记录基线平均 NLL 和各下游任务准确率。
04 分别测试只压 P、只压 Q、同时压 P 与 Q。
05 同时计算 NLL 口径与困惑度口径的交互差。
06 用实际带符号的误差方向收缩近似曲率。
07 改变压缩强度,重复独立校准采样。
08 与对角、块对角、参数量等较便宜基线比较。
09 固定压缩损伤,在相同预算下比较修复位置。
10 同时报告留出收益、准备成本和不确定性。
这个协议把三件事分开:参数组实验与单个矩阵实验,指标残差与真实曲率交叉项,以及有效修复与固定预算下的最优修复。分开之后,结论会稍窄,却更容易被后续工作直接使用。
8. 附录改变了“最敏感层”的强表述
附录 C 把稀疏度提高到 90%,测试 PIQA、WinoGrande、HellaSwag、ARC-Easy、ARC-Challenge。它与主要实验的 50% 稀疏化不是同一个强度。表 3 的基线行是准确率百分数,投影行则是准确率下降的百分点数。两者若读反,会得到完全错误的解释。
按五项任务的简单平均,最大下降来自不同组件:
| 模型 | 稠密模型平均准确率(%) | 最大平均下降 | V 的下降(百分点) |
|---|---|---|---|
| OPT-350M | 43.44 | FC1:6.79 点 | 1.21 |
| Qwen2-0.5B | 51.04 | V:11.71 点 | 11.71 |
| OLMo2-1B | 63.77 | Up:16.20 点 | 5.34 |
| Qwen2.5-7B | 70.75 | Gate:34.12 点 | 3.18 |
这些数字来自原论文表 3。比如 Qwen2.5-7B 的 Gate 行意味着平均剩余准确率约为 ,允许原表舍入误差;34.12 不是剩余准确率,也不是相对下降 34.12%。

看任务细项,Qwen2.5-7B 的 Gate 稀疏化使 HellaSwag 下降 49.16 点、ARC-Easy 下降 47.01 点,WinoGrande 则下降 21.70 点。一个平均数很方便快速扫描,但会隐藏不同任务受损程度的差异。如果部署任务的权重不同,压缩预算的最优分配也可能不同。
OPT 的一些格子为负,例如 Q 行的 ARC-Challenge 为 -1.45 点。这表示该次结果略有改善,不能据此宣称稀疏化可靠地提升能力。没有多次运行或评估不确定性,小差值的符号不适合承担宽泛结论。
因此,我不会把文章概括成“V 永远最脆弱”。更准确的说法是:在一些主要实验口径下,V 的单位参数敏感性突出,也展示了修复价值;换成更强稀疏化、原始准确率下降、不同模型时,最敏感组件会改变。
这不一定是主文与附录互相矛盾,因为强度、指标、归一化都变了。但它清楚限制了排序的可迁移范围。一个可用的敏感度诊断应该同时带着模型、参数组、压缩算子、强度、校准分布和目标指标,而不是只留下一个组件名称。
9. 局限与失败边界
第一类边界来自代理链条。真实损失 Hessian 被替换成样本梯度二阶矩,再变成截断的重排表示,有时还继续变成一个块均值像素。每一步都丢掉了一部分信息。最后一张图看起来有道理,不意味着前面每个替换都已经得到独立证明。
第二类是有限扰动。二阶展开只是在参考点附近的近似。均匀量化或高比例稀疏化可以一次移得很远,进入局部曲率解释不了的区域。O 投影的不吻合正是有价值的边界案例。更好的分析是观察预测误差如何随扰动强度增长,而不是把最难解释的点略去。
第三类是参数组织方式。组大小、参数排列、重排形状、是否合并投影,以及带符号平均,都会影响最终图像。一个真正用于选层的策略,应当说明采用了什么分数,并检验合理组织变化下结论是否稳健,不能只凭颜色深浅做决定。
第四类是不确定性报告。本文读到的“强相关”证据主要是若干可视化对应和选择性的实验比较,没有形成跨多次校准抽样、带置信区间的完整留出排序研究。一个工具可能把最明显的几个案例分得很好,却在预算分配最困难的相邻候选之间不稳定。
第五类是成本口径还不完整。梯度归约与缓存方式、时间实验里的序列长度、求解容差、具体稀疏化规则、恢复训练预算,都关系到能否公平比较。原文未充分给出时,笔记不靠经验替作者补齐,也不把已报告的单一设置延伸成确定的部署承诺。
最后,不能默认近似经过截断和对角替换后仍半正定。一般截断 SVD 并没有施加因子半正定约束;即使一个候选原本半正定,直接换对角线也可能破坏这个性质。例如
左边的两个特征值均非负,右边则为 2.5 和 -0.5。这是反驳“自动保证”的通用例子,不是在声称论文某次运行得到了这个矩阵。如果后续优化器依赖一个非负曲率惩罚,就必须另外检查或约束该性质。
这些局限不会抹去方法的价值。它们更像使用说明:哪些东西是表示层面的数学结论,哪些是已测工作负载下的经验观察,哪些仍然需要用途验证。把这三类说清楚,才方便真正把方法接到压缩流程中。
10. 独立批判性分析:把交互放回损失坐标里
10.1 困惑度残差为正,不足以证明损失有交互
这是我认为最值得单独讨论的问题。设基线的平均负对数似然为 ,困惑度为 。两个破坏分别让 NLL 增加 和 ,并假设联合破坏恰好增加 。这个设定里,NLL 完全可加,没有额外交互。
但是把论文的差值放到困惑度口径,有
推导的第一行分别代入三次困惑度增长,第二行合并常数,最后一行因式分解。只要 都是正数,结果就严格大于零。取 、、,就得到约 0.233,尽管 NLL 上根本没有交互。

问题出在指标的曲率,而不是某个特殊神经网络结构。对可加变量做指数变换,再用原始差值检查可加性,天然会得到额外项。基线 还会直接放大这个项,这也是不能拿不同模型的残差绝对值直接排名的另一个原因。
这并不否定联合压缩的模型质量更差,也不证明原论文里的真实交互全部为零。它限制的是一种推论:仅靠困惑度增长相减,无法把所有正残差都归因于跨层 Hessian。残差中可能混有指标变换本身造成的部分。
如果要与 token 平均 NLL 的 Hessian 对应,更直接的量是
在相同评估 token、相同损失归约、足够小的固定扰动下,二阶展开给出 ,剩余差异再讨论高阶项和近似误差。
这里“相同归约”并不是形式细节。如果先算每条序列的困惑度再取平均,最后对这个均值取对数,一般不会恢复按 token 平均的 NLL。必须先明确原评估量,才能做相应变换。
我会先补算这个量,再把联合实验解释成直接的曲率证据。附录图给的是困惑度变化,没有在同一处为每个具体设置给出完整基线困惑度表;只凭那些变化值,不能可靠恢复全部 NLL 交互。因此,本笔记把这一点保留为待验证问题,不虚构基线值来得出一个看似完整的数表。
10.2 不只测块大小,还要测误差方向
即使某个 的范数很大,也可能恰好与当前两组压缩误差近乎正交。量化误差、剪枝误差和低秩截断误差的结构不同,用同一张块热力图指导三者,未必获得同样效果。
我会固定两条误差方向 ,令 、,然后逐渐增大或减小 。局部展开应给出
把观测结果除以 ,在局部有效范围内应逐渐靠近一个稳定值。如果只在较大 时偏离,很可能是有限扰动越过了局部近似范围;如果很小的 就对不上,则要检查代理曲率、统计估计或表示误差。
这项实验把两个经常混在一起的问题分开了:“曲率算得准不准”和“压缩走得太远以后曲率还有没有用”。也应包含预测为负或接近零的配对,不能只挑最亮的正例。安全组合恰恰可能是实际预算分配最想找的结果。
10.3 与更便宜的决策规则比,才能判断准备成本值不值
诊断表示最终应当服务于选择压缩方案。因此,公平比较的终点是同一保留资源预算下的模型质量,而不只是矩阵拟合或图像细节。
有意义的对照包括对角敏感度、逐层块近似、参数量、激活尺度、少量直接压缩试验,以及这些信息的组合。如果已有便宜分数足以选中同一组层,那么更精细的跨层表示未必为该次任务带来净收益。
举个决策上的例子:固定校准预算,可以花在增加 Kronecker 项数,也可以花在直接评估更多候选配对。哪一种更合算,取决于未来是否会反复使用这份统计。如果要搜索很多压缩率、很多恢复配置,一次昂贵准备可能被摊薄;如果只是做一次小改动,少量直接试验可能更经济。
论文已经给了小模型的项数扫描和大模型的单项时间。下一步最有帮助的是把两端接起来:在多个项数下,同时报告峰值内存、校准遍数、求解时间、方向预测质量和最终选中模型的质量。这样读者才能看到多一项究竟买到了多少决策收益。
10.4 修复实验需要相同机会,而不只是相同秩
前面的二次模型说明,可恢复损伤与 、 和实际误差共同有关。因此,可以尝试用“预计能恢复多少”来选位置,并与始终选 V 的经验规则,以及少量验证集试选比较。
对 LoRA,给不同形状矩阵相同的秩,不等于给相同可训练容量。对一个 矩阵,秩 的增量通常需要 个因子参数。总是选更大的矩阵,可能仅因为可训练参数更多而占优;反过来,小 V 投影也可能有很高的每参数恢复效率。两者都值得报告,而不是默认相同秩已完成公平控制。
作者关于异常通道的解释也可以变成一个可检验干预:先施加合适的异常值缓解变换,确认通道统计确实改变,再重复方向化的 NLL 测量和同预算修复。如果目标交互随之减弱,才更支持提出的机制。仅仅最终质量变好,还不能区分异常通道被修复和整体量化难度降低这两种解释。
以上都是建议的延伸实验。本笔记实际完成的是论文与附录阅读、公式推导、原表数值复算以及文档排版检查,没有报告新的语言模型训练或压缩跑分。
11. 结论
这篇论文最有价值的贡献,是把全组参数的梯度信息变成一个还能保留跨层结构的表示:重排带来少量 Kronecker 项的表达,矩阵自由乘法避免构造巨大矩阵,独立对角线改善小网络上的拟合。每一步的作用和成本都可以分开理解。
对压缩实践的启发是有条件的,却很有用:几组参数同时改动时,损伤未必能从独立分数相加得到;另一组参数的更新,也可能成为修复已发生损伤的通道。联合破坏与 V 投影恢复实验把这个想法变得具体。
需要保留的边界同样清楚:经验 Fisher 是代理,Kronecker 项数不是原矩阵普通秩,线性存储带有不小的常数,敏感层排序会随模型与实验口径改变。尤其是困惑度上的正残差,还不足以单独证明 NLL 上存在相应交互。
如果沿这项工作继续做,我会优先看实际误差方向上的 NLL 预测,以及相同准备预算、相同修复预算下,最终决策是否比便宜基线更好。这比单纯追求更精细的热力图,更接近压缩系统真正需要回答的问题。
参考资料与资源
- Yusupov, V., Cherniuk, D., Frolov, E. Scalable Kronecker-Fisher Approximation: Efficient Hessian Analysis for Billion-Parameter Language Models Compression,2026。本文依据第 3–5 节、表 1–3、图 2–11 及附录 A–C。
- 所读版本的全文 HTML。公式与图表读数同时对照了原 PDF。
- 所读 arXiv 条目与论文中没有确认到本论文的官方代码资源;相关 GFWSVD 仓库不应被当作本论文的资源入口。
图 1–3、5、9 是原创解释性图示;图 4、6、8 重绘明确标注的原论文表格;图 7 对原图 11 的显示值做算术复算。本文公式编号为本地编号,不代替原论文编号。