← 返回 2026-02-18

COMPOT:基于校准优化的矩阵Procrustes正交化Transformer压缩方法 COMPOT: Calibration-Optimized Matrix Procrustes Orthogonalization for Transformers Compression

Denis Makhov, Dmitriy Shopkhoev, Magauiya Zhussip, Ammar Ali, Baher Mohammad, Stamatios Lefkimmiatis 📅 2026-02-16 👍 8 2026-07-13 08:35
低秩分解 后训练压缩 大语言模型 字典学习 模型压缩

利用正交字典学习和闭式Procrustes更新实现训练后Transformer压缩

前置知识

截断奇异值分解(Truncated SVD)

奇异值分解(SVD)将任意矩阵 W 分解为三个矩阵的乘积,其中包含对角矩阵存储奇异值。截断SVD保留前r个最大奇异值及其对应的奇异向量,得到秩为r的近似矩阵,这是最常见的低秩压缩方法。在模型压缩中,它用两个较小矩阵的乘积替代原始大矩阵,从而减少存储和计算量。

SVD是本文方法的主要对比基线,理解其原理才能理解COMPOT为何能超越它。SVD强制所有列共享同一个子空间,这是其核心局限。

字典学习与稀疏编码(Dictionary Learning & Sparse Coding)

字典学习将数据表示为一个字典矩阵D和稀疏系数矩阵S的乘积,其中S是列稀疏的(每列最多s个非零元素)。不同于SVD的单一子空间,字典学习允许不同列选择不同的原子子集,形成联合子空间表示。经典方法如K-SVD通过迭代更新字典原子和稀疏编码。

字典学习是COMPOT的理论基础,但传统K-SVD方法计算开销大,本文通过正交约束实现了闭式求解,这是核心创新。

正交Procrustes问题(Orthogonal Procrustes Problem)

正交Procrustes问题是:给定两个矩阵A和B,找到最优正交矩阵Q使得重构误差最小。该问题有闭式解:计算M=AB^T的SVD分解,最优解为Q*=PQ^T。这一经典结果来自1966年的Schönemann论文。

COMPOT的关键创新在于将字典更新问题转化为正交Procrustes问题,从而获得闭式解,避免了K-SVD的迭代计算开销。

数据感知白化(Data-aware Whitening)

白化是一种数据预处理技术,将数据变换为协方差矩阵为单位矩阵的形式。在本文中,给定校准输入X,计算Gram矩阵G=X^T X,通过Cholesky分解G=LL^T得到白化因子L。白化后的权重矩阵为W'=L^T W,使得优化功能误差等价于优化白化空间中的重构误差。

白化将数据感知的目标函数转化为标准的矩阵逼近问题,使得闭式求解成为可能,是连接功能误差和重构误差的桥梁。

后训练量化(Post-Training Quantization, PTQ)

后训练量化是在模型训练完成后,将权重从高精度(如FP16)转换为低精度(如INT4/INT8)的技术。主流方法包括SmoothQuant(W8A8)、GPTQ(基于二阶信息的权重量化)、AWQ(激活感知权重量化)等。PTQ不需要重新训练,只需少量校准数据。

COMPOT与PTQ完全兼容,实验表明COMPOT+GPTQ-4bit的组合在相同内存预算下优于单独使用GPTQ,展示了两种压缩范式的互补性。

研究动机

现有Transformer压缩方法存在根本性的表示能力与计算效率的矛盾。截断SVD是主流的后训练压缩方法,它将权重矩阵投影到一个固定的低维子空间,但这种单一共享子空间的假设过于刚性。当权重矩阵的不同列实际上分布在不同的局部子空间时,SVD的近似质量会急剧下降。例如,在Llama3-8B上,使用0.2压缩率的SVD-LLM方法,平均准确率从70.4%骤降至54.1%,WikiText困惑度从7.3飙升至41.0。另一方面,稀疏字典学习(如CoSpaDi)提供了更灵活的联合子空间表示,允许不同列选择不同的原子子集,但传统K-SVD/OMP迭代优化在十亿参数规模模型上计算开销极大——压缩Llama3.2-1B的单层MLP投影需要约500秒,而SVD仅需2-4秒。

本文的目标是本文提出COMPOT框架,目标是:(1)保留稀疏字典学习的联合子空间表示能力,同时实现闭式求解以大幅降低计算开销;(2)在多个模型架构(Llama、OPT、Qwen,0.6B-30B参数)和多个任务领域(语言、视觉-语言、音频)上,以0.2-0.6的压缩率实现优于现有SVD和字典学习方法的质量-压缩权衡;(3)与后训练量化(如GPTQ)无缝集成,在相同内存预算下进一步提升压缩效果。

与已有工作不同的是,COMPOT的独特切入角度在于正交约束下的字典学习。现有字典学习方法允许过完备字典(原子数大于维度),导致优化问题非凸且需迭代求解。COMPOT的关键洞察是:限制字典为完备或欠完备的正交矩阵,可以将两个子问题都转化为闭式解——稀疏编码变为硬阈值化操作,字典更新变为正交Procrustes问题。这种正交联合子空间模型在表达能力和计算效率之间找到了新的平衡点,既保留了不同列使用不同子空间的灵活性,又避免了迭代优化的高昂代价。

核心方法

COMPOT的核心思想可以用一个类比来理解:想象你要压缩一本百科全书。SVD方法是找一组通用的基础词条,所有条目都用这组词条的线性组合表示——这很高效但不够灵活。传统字典学习是允许每个条目从一个巨大的词条库中自由挑选相关词条——这很灵活但挑选过程很慢。COMPOT的方案是:准备几组正交的专题词典(如科学词典、历史词典、艺术词典),每个条目从某几组词典中挑选少量词条组合——既保留了灵活性,又因为词典内部正交,挑选过程可以一步到位。技术路线分为四步:首先通过校准数据进行数据感知白化,将功能误差最小化转化为标准矩阵逼近;然后在白化空间中进行正交字典分解,交替执行闭式稀疏编码和Procrustes字典更新;接着通过单次全局分配策略自适应确定各层压缩率;最后反白化得到最终压缩因子。

COMPOT的核心创新在于正交约束带来的闭式求解。传统稀疏字典学习中,字典更新需要逐原子迭代(K-SVD),稀疏编码需要迭代匹配追踪(OMP),两者都是计算密集型操作。COMPOT通过强制字典正交彻底改变了优化景观:稀疏编码子问题在正交条件下退化为简单的硬阈值化——计算z=D_O^T W后保留绝对值最大的s个元素,这与OMP理论上等价但计算速度快得多;字典更新子问题则变为经典的正交Procrustes问题——计算M=W S_O^T的SVD分解,最优字典为D_O=PQ^T。两个子问题都有精确闭式解,整个交替优化过程无需任何迭代搜索。实验表明,COMPOT压缩Llama3.2-1B的单层平均仅需9.92秒,比CoSpaDi的240.53秒快24.23倍。

方法步骤详情

COMPOT方法包含以下完整步骤:(1)数据感知白化:收集校准输入X,计算Gram矩阵G=X^T X并进行Cholesky分解G=LL^T,将权重白化为W'=L^T W。(2)正交字典初始化:使用SVD初始化——对白化权重W'进行SVD,取前k个左奇异向量作为初始正交字典D_O。(3)交替最小化(默认20次迭代):固定D_O,稀疏编码S_O=H_s(D_O^T W'),其中H_s是硬阈值化算子;固定S_O,字典更新M=W' S_O^T,SVD分解M=P Lambda Q^T,设D_O=PQ^T。(4)反白化:计算A=L^{-T} D_O,推理时仅需存储(A, S_O)。(5)单次全局压缩分配:对每个权重矩阵按Frobenius范数归一化,计算SVD,将所有奇异值汇入全局多重集,按目标压缩率截断最小的奇异值,同时设置最小/最大压缩率保护机制防止病态分配。

技术新颖性

COMPOT相对于已有技术的新颖性体现在三个层面。首先,与SVD类方法(SVD-LLM、SVD-LLM V2、Dobi-SVD)相比,COMPOT不是将权重投影到单一共享子空间,而是使用联合正交子空间表示,不同列可以选择不同的原子子集,这在理论上能更好地逼近具有异构局部结构的权重矩阵。其次,与传统字典学习方法(CoSpaDi使用K-SVD)相比,COMPOT通过正交约束实现了完全闭式的优化,将单层压缩时间从数百秒降低到约10秒,同时保持甚至超越了压缩质量。第三,与需要梯度优化的训练型方法(Dobi-SVD)相比,COMPOT是纯训练后方法,不需要反向传播,但实验表明其性能可以匹配甚至超越训练型方法。此外,单次全局压缩分配策略不同于SVD-LLM V2的按投影类型分组分配,而是通过全局奇异值池化实现更优的层间压缩率分配。

低秩分解、字典学习与COMPOT的对比
Figure 1: 低秩分解、字典学习与COMPOT的对比
COMPOT框架总览
Figure 2: COMPOT框架总览
交替最小化迭代次数与平均准确率的关系
Figure 3: 交替最小化迭代次数与平均准确率的关系

实验结果

COMPOT在多个维度上展示了全面优于现有方法的压缩性能。在静态压缩率(无动态分配)设置下,Llama3-8B在0.2压缩率时,COMPOT的平均准确率为64.5%,显著高于SVD-LLM的54.1%和CoSpaDi的61.8%,WikiText困惑度为13.0,远低于SVD-LLM的41.0和CoSpaDi的20.0。在动态压缩率分配下,Llama2-7B在0.2压缩率时,COMPOT的WikiText困惑度为6.22,优于Dobi-SVD(需训练)的9.39;在0.4压缩率时,COMPOT困惑度为8.91,优于Dobi-SVD的17.50。特别值得注意的是,在与结构化剪枝方法的对比中,Llama3-8B在0.2压缩率下,COMPOT平均准确率65.3%,而ReplaceMe仅为58.0%,LLM-Pruner为55.1%,困惑度方面COMPOT的12.0也远优于ReplaceMe的34.0和LLM-Pruner的16.0。在与后训练量化的兼容性实验中,Llama-7B上COMPOT+GPTQ-4bit的WikiText困惑度为9.62,优于SVD-LLM V2+GPTQ-4bit的9.97和纯GPTQ-3bit的16.28,证明COMPOT提供的压缩增益与量化增益是互补的。在跨模态验证中,Qwen3-VL-8B在0.2压缩率下,COMPOT在MMMU、OCRBench、RealWorldQA、MMStar四个基准上的平均准确率为57%,而SVD-LLM仅为37%。Whisper Large V3在0.2压缩率下,COMPOT的test-clean WER为2.46%甚至略优于原始模型的2.74%,而SVD-LLM为4.12%。

静态压缩率下COMPOT与SVD-LLM、CoSpaDi的性能对比
Table 3: 静态压缩率下COMPOT与SVD-LLM、CoSpaDi的性能对比
动态压缩率下COMPOT与Dobi-SVD的对比(Llama2-7B)
Table 4: 动态压缩率下COMPOT与Dobi-SVD的对比(Llama2-7B)
COMPOT与结构化剪枝方法的对比(Llama3-8B)
Table 6: COMPOT与结构化剪枝方法的对比(Llama3-8B)
COMPOT与后训练量化的兼容性(Llama-7B)
Table 7: COMPOT与后训练量化的兼容性(Llama-7B)
压缩优化的墙钟时间对比
Table 13: 压缩优化的墙钟时间对比
查看结构化数据
任务指标本文基线提升
语言模型压缩(Llama3-8B) 平均准确率 64.5% SVD-LLM 54.1% +10.4%(0.2压缩率)
语言模型压缩(Llama3-8B) WikiText困惑度 13.0 SVD-LLM 41.0 降低68.3%
语言模型压缩(Llama2-7B) WikiText困惑度 6.22 Dobi-SVD 9.39 降低33.8%(无需训练)
结构化剪枝对比(Llama3-8B) 平均准确率 65.3% ReplaceMe 58.0% +7.3%(0.2压缩率)
量化兼容性(Llama-7B) WikiText困惑度 9.62 SVD-LLM V2+GPTQ 9.97 降低3.5%
视觉语言(Qwen3-VL-8B) 平均准确率 57% SVD-LLM 37% +20%(0.2压缩率)
语音识别(Whisper Large V3) test-clean WER 2.46% SVD-LLM 4.12% 降低40.3%(0.2压缩率)

局限与改进

作者在论文中坦诚地指出了COMPOT的几个局限性。首先,与大多数校准驱动的压缩方法一样,COMPOT的性能依赖于校准数据的代表性——如果校准数据多样性不足或与目标分布存在偏移,统计估计可能不可靠,导致更大的质量下降。其次,白化变换要求Gram矩阵G=X^T X是正定的以进行Cholesky分解,当校准集较小或激活病态时,这一假设可能不成立,需要使用SVD/特征分解替代方案(可能需要轻微正则化)。第三,当前实现使用固定的稀疏结构(固定的s-列稀疏性),未能自适应地学习最优稀疏模式。此外,从我的观察来看,COMPOT在极高压缩率(如0.6)下性能衰减仍然显著,Llama3-8B在0.4压缩率时平均准确率已降至46.7%,WikiText困惑度升至62.0,说明联合子空间表示的能力也有上限。同时,COMPOT的压缩时间虽然比CoSpaDi快24倍,但仍比纯SVD方法慢约3倍(9.92秒 vs 3.27秒每层),在需要快速压缩的场景下可能不够理想。

独立分析的弱点

基于对论文的深入分析,我识别出以下几个需要改进的弱点。首先,正交约束虽然带来了闭式解的计算优势,但也限制了字典的表达能力——过完备字典(原子数大于维度)在信号处理中已被证明能更好地捕捉数据的多尺度结构,而COMPOT的完备/欠完备约束可能损失了这部分表示能力。一个可能的改进方向是探索分块正交字典,即允许字典由多个正交子块组成,既保持闭式求解能力又增加灵活性。其次,单次全局压缩分配策略虽然高效,但它是基于Frobenius范数下的奇异值重要性,这与下游任务损失的关联并不完美——不同任务可能对不同层的敏感度不同。可以考虑引入轻量级的任务感知信号(如梯度或激活统计)来指导分配。第三,硬阈值化稀疏编码虽然计算高效,但它是一种赢者通吃的策略,可能会丢失一些细微但重要的信号,探索软阈值或top-k加权方案可能有助于提升压缩质量。最后,COMPOT目前只压缩了注意力和MLP投影,未涉及token嵌入和LM head,对于小模型这些部分占比不低,扩展压缩范围可能带来额外收益。

未来方向

论文作者和基于COMPOT成果可以延伸出多个有价值的未来研究方向。作者提出的一个直接扩展是添加轻量级的修复步骤——在固定稀疏模式下对分解因子进行精炼,可能在相同存储预算下进一步提升准确率。更广泛的方向是超越固定稀疏模式,学习稀疏结构本身,同时仍保持结构化约束(如s-列稀疏性),在训练后方法和更自适应但代价更高的学习型压缩方案之间架起桥梁。从COMPOT的框架出发,几个延伸方向值得探索:(1)将COMPOT与知识蒸馏结合,用压缩后的模型作为学生,原始模型作为教师进行轻量级微调;(2)探索COMPOT在更激进压缩场景下的应用,如2-bit量化或超低秩分解;(3)将正交字典学习的思想扩展到注意力机制的KV-cache压缩,这在长序列推理中至关重要;(4)研究COMPOT与其他压缩技术(如权重共享、通道剪枝)的组合策略,实现更全面的模型压缩。

复现评估

COMPOT的复现条件相对友好。代码已开源于GitHub,这大大降低了复现门槛。校准数据需求较低——仅需256个序列(来自RefinedWeb),上下文长度1024,这在标准硬件上可以快速准备。计算资源方面,压缩Llama3.2-1B的整个分配过程在单块GPU上不到1分钟,单层压缩约10秒,对于8B模型的全模型压缩预计在数十分钟内完成,完全在单卡A100的承受范围内。论文提供了详细的算法伪代码(Algorithm 1和Algorithm 2),以及所有超参数设置(k/s=2,20次迭代等)。不过,论文也指出了复现SVD-LLM V2基线时遇到的困难——官方仓库缺乏V2的独立实现,作者不得不自行实现V2的动态分配和损失优化截断策略,这说明基线方法的复现本身就存在挑战。总体而言,COMPOT方法本身复现难度中等偏低,主要挑战可能在于与各种基线方法的公平对比设置。