跳转至

Stabilizing the Dynamic Low-Rank Training

会议: NeurIPS2026
arXiv: 2609.32615
领域: 模型压缩
关键词: 动态低秩训练、曲率耦合、补偿缓冲、秩自适应、参数高效微调

一句话总结

SDLRT 在动态低秩训练中保留上一轮刚被截断的主要奇异方向,用补偿基扩展和截断容差负反馈缓解高压缩下的秩坍缩,并在六项 SuperGLUE 验证任务上取得 85.15% 的平均准确率。

研究背景与动机

直接训练低秩权重与先训练完整模型、再剪枝或分解不同:每层从一开始就由两个窄基矩阵和一个小核矩阵表示,训练和推理都可以沿用这种紧凑结构。DLRT 用动态低秩近似的流形投影更新这些因子,还能在训练中决定各层的秩,因此不必反复执行完整模型训练与事后压缩。不过,低秩表示能存下多少信息,与它能否在优化过程中找到合适的方向,是两个不同的问题。原文的 VGG-19/CIFAR-100 诊断显示,初始压缩约 69.6% 时,DLRT 的测试准确率落后完整模型 25.9 个百分点,且训练准确率也较低;这不是单纯的过拟合,而是紧凑网络已经失去足够的可训练表达能力。

困难在于,截断奇异值不仅删除当前权重中的小成分,还改变之后的子空间运动。一个方向在当前时刻较弱,不代表它不会影响保留方向下一步怎样旋转。作者比较“完整参数训练轨迹每个时刻的最佳低秩近似”与“始终留在低秩流形上的训练轨迹”,发现后者同时存在梯度取值位置不同和曲率耦合被省略两种偏差。高压缩下,保留与舍弃奇异值的间隙可能很小,耦合项便不能再当作微小误差;秩下降使表达能力变弱,又推动进一步截断,形成恶性循环。

如果直接长期提高各层的秩,可能恢复容量,却会削弱压缩收益。本文转而给训练过程留一点短期的谱记忆,并在秩下降时降低截断力度,让已经舍弃但仍可能有用的方向重新参与下一轮更新。核心 idea:最终权重仍保持低秩,但不要把一次截断当作永久遗忘,而是在临时扩展空间中重新利用近期被舍弃的方向,并用容差反馈抑制持续秩坍缩。

方法详解

整体框架

SDLRT 以每层的低秩因子和上一轮的补偿缓冲为训练状态,输出更新后的低秩因子及新的缓冲。一个迭代先执行补偿基扩展,再进行小核 Galerkin 更新,最后做谱截断与秩反馈;缓冲只辅助训练,不作为最终推理权重的额外分支。

对一个矩阵层,权重表示为 \(W=USV^{\top}\),其中两个基矩阵各有 \(r\) 列,小核为 \(r\times r\)。算法先分别沿梯度流更新左右因子的辅助矩阵,再将这些更新、旧基以及补偿方向合并正交化。随后在扩展空间中更新小核,对小核做 SVD,留下新秩对应的主方向,同时把紧随其后的舍弃方向保存到下一轮。

因此,“不提高最终秩”不能理解成“训练中从不扩大空间”。临时 QR 基和小核可以更大,最终保留秩也仍由容差自适应决定。推理只使用最后保留的三个因子;分析中出现的完整参数轨迹是理论参照,稳定性实验中的完整模型是测量参照,二者都不是 SDLRT 每步实际维护的全参数影子模型。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["训练批次与低秩因子"] --> B["补偿基扩展"]
    P["上一轮训练缓冲"] --> B
    B --> C["小核 Galerkin 更新"]
    A -.->|任务损失的梯度监督| C
    C --> D["谱截断与秩反馈"]
    D -->|新舍弃方向,仅训练| P
    D -->|低秩因子与容差,下一轮| A
    D -->|训练结束,仅保留因子| E["最终因子化推理"]

关键设计

1. 补偿基扩展:让近期舍弃方向重新参与子空间更新

本文首先解释为什么“保留最大奇异值”不能自动保证低秩训练跟随完整模型。设完整权重沿其梯度流演化,在某个时刻取最佳秩 \(r\) 近似;对这个近似的左右奇异子空间求导,会出现保留方向与舍弃方向之间的耦合。原文给出的两个耦合系数为:

\[ \mathcal{P}_{ij}=\frac{\sigma_{r+j}^{2}}{\sigma_i^{2}-\sigma_{r+j}^{2}},\qquad \mathcal{Q}_{ij}=\frac{\sigma_i\sigma_{r+j}}{\sigma_i^{2}-\sigma_{r+j}^{2}}. \]

这里 \(\sigma_i\) 属于保留部分,\(\sigma_{r+j}\) 属于舍弃部分。系数乘的是完整轨迹上的梯度在不同奇异方向之间的投影;它们不是简单的“尾部能量罚项”。分母说明,真正危险的不仅是舍弃奇异值有多大,还包括截断边界两侧的谱间隙有多小。推导要求截断边界没有重复奇异值交叉,因此不能把分母为零的情况也直接代入这组公式。

标准 DLRA 只投影低秩点处的梯度,既不在完整参数点上求梯度,也不保留上述耦合修正。SDLRT 并不逐项计算这些系数,而是用一个可实施的近似:保留上一轮刚截掉的主要左右奇异方向,使扩展空间允许这些方向再次参与权重变化。这恢复的是部分方向信息,并不等价于精确追踪完整梯度或精确补回所有曲率项。

具体而言,算法从旧因子初始化 \(K_0=US\) 和 \(L_0=VS^{\top}\),分别执行梯度流更新得到 \(K_1\) 和 \(L_1\)。左侧把更新矩阵、旧左基和左补偿缓冲拼接,右侧做对称操作,再通过 QR 获得正交扩展基。保留旧基确保新空间仍能表示上一步的权重;加入新更新提供当前下降方向;加入补偿基则避免每轮都把近期谱尾部彻底遗忘。这三类列承担不同作用,不能把缓冲误写为一个独立训练的完整权重副本。

2. 小核 Galerkin 更新:扩展表示空间,但不先改变旧权重

获得扩展基后,不能直接随意初始化更大的小核,否则稳定性改进可能混入一次无依据的权重扰动。SDLRT 将旧权重投影到扩展基坐标中作为初值,然后只在该坐标空间内更新小核。用 \(\bar U,\bar V\) 表示本节的扩展基,核心过程可以写成:

\[ \bar S(0)=\bar U^{\top}W_{\mathrm{prev}}\bar V,\qquad \dot{\bar S}=-\bar U^{\top}\nabla_W\mathcal{L}(\bar U\bar S\bar V^{\top})\bar V. \]

由于扩展基包含旧左右基,初始扩展表示重建出的仍是旧权重;新增缓冲列只提供后续运动的自由度,而不是一开始就往网络里加上舍弃权重。因此补偿的价值在于“下一步允许向哪里更新”,并非“把所有被删掉的值直接加回来”。梯度仍在当前扩展的低秩表示处求取,不需要额外训练完整模型。

完成小核更新后,SVD 也作用于这个小矩阵,而不是对一个全尺寸稠密权重每步重新分解。作者在 \(r\ll\min(m,n)\) 的条件下给出每层更新的复杂度量级 \(O(r^2(m+n))\)。这说明它沿用低秩计算路径,但不能因此断言实际开销只取决于小核:缓冲和扩展基都占存储,QR 与基旋转也要计算;实际增量仍应看硬件测量。

3. 谱截断与秩反馈:保存有限尾部,并在秩下降时减少删减

小核 SVD 完成后,算法按相对容差保留主奇异方向。附录明确以舍弃尾部的 Frobenius 范数受容差控制来分析截断误差;正文设定绝对容差为 \(\vartheta=\tau\|\hat S\|\)。留下的左右奇异向量经扩展基映射回原坐标,成为新的网络因子;从新秩之后开始,最多再取相当于新秩数量的主要舍弃方向,作为下一轮补偿缓冲。更远的尾部仍然删除,因此这是有限、短期的方向记忆,不是保存完整谱。

秩坍缩还需要一个主动制动器。如果本次新秩低于该层的初始秩,算法将相对容差因子乘以小于一的反馈系数:

\[ \tau\leftarrow\omega\tau\quad\text{if }r_1<r_0,\qquad 0<\omega<1. \]

容差越小,下一次允许丢弃的尾部越少,所以这个操作会抑制进一步秩下降。它不是把秩硬性锁在初始值,也不是每轮强制恢复所有已经删除的列;反馈改变的是之后的截断规则。因而讨论不同方法时,必须同时区分初始秩、训练临时维度和最终保留秩,不能把三者混成“完全固定的相同秩预算”。

原文截断更新式复用了 \(U_1,V_1\) 记号:同一组式子先把它们改写为保留基,后面又用它们映射尾部奇异向量。按矩阵维度理解,尾部方向需要用截断前的扩展基映射。本笔记区分扩展基与保留基解释流程,不将原文的记号复用照抄成可直接执行的赋值代码。

一个完整示例

考虑一层正在训练的低秩权重:当前保留方向已经能解释大部分当前权重,但上一轮边界附近的某个方向被截掉了。普通 DLRT 下一轮只能依靠旧保留基和新的因子更新寻找方向;SDLRT 则把那个尾部方向带进临时 QR 空间,让小核更新判断它是否值得重新占据保留位置。

如果小核更新后该方向的重要性提高,它可能进入新的主奇异方向集合;如果仍不重要,就再次落入缓冲或被进一步舍弃。若这次保留秩仍低于初始秩,容差因子会缩小,下一轮截断更谨慎。训练结束后,不论缓冲中曾经记过哪些方向,预测只通过最终保留的左右基和小核完成。这是机制示例,不对应原文的某条数值训练曲线。

损失函数 / 训练策略

SDLRT 改变的是优化与截断过程,不引入新的任务损失。视觉实验训练 120 个 epoch,batch size 为 128,初始学习率 0.05,在第 60、100 个 epoch 各乘 0.1,动量 0.1;相对容差取 \(\tau\in\{0.1,0.2,0.25,0.3,0.4\}\),反馈系数为 \(\omega=0.8\)。

PEFT 实验把低秩适配放在每层自注意力的 query、key、value 投影上。各方法初始秩为 10;DLRT 与 SDLRT 使用 \(\tau=0.02\)。六项任务按正文列出的顺序 BoolQ、CB、COPA、RTE、WiC、WSC,分别训练 30、20、20、20、30、30 个 epoch,batch size 为 16,学习率 \(6\times10^{-4}\),前 6% 步数线性 warm-up,weight decay 为 0.01。LoRA+ 的学习率为 \(2\times10^{-4}\),因子学习率比为 8。

理论保证需要分开阅读。附录 B 的精确性证明针对整段轨迹恰好保持秩 \(r\)、相关子空间重叠矩阵可逆、子步骤精确积分且截断保留全部非零成分的情况;它说明补偿扩展不会破坏这一特殊情形的重建,并不证明实际深网离散训练能复现任意完整轨迹。

附录 C 的全局误差界为:

\[ \|\hat U_t\hat S_t\hat V_t^{\top}-W_f(n\eta)\|_F \le c_0\delta+c_1\gamma\varepsilon+c_2\eta+c_3\vartheta/\eta. \]

其中 \(\delta\) 是初始化投影误差,\(\varepsilon\) 控制梯度流离开低秩切空间的分量,\(\eta\) 是积分步长,\(\gamma\) 表示补偿带来的投影收缩。条件包括梯度向量场有界且 Lipschitz、轨迹邻域接近低秩流形,以及补偿实际产生收缩。扩展子空间只能直接保证投影误差不增,不能单凭包含关系保证所有步骤都有统一的严格 \(\gamma<1\);因此严格改进应作为条件性结论,不是所有深网全局收敛的证明。界中的 \(\vartheta/\eta\) 也提醒,缩小步长而不同时控制截断误差,未必改善总误差。

实验关键数据

主实验

表 1 摘录六项 SuperGLUE 任务的验证准确率均值,单位均为百分比;原表单任务还报告六个随机种子的离散程度,此处为便于横向阅读仅列均值。Avg. 是这六项的平均值,不是 SuperGLUE 官方全部任务的综合分数。

方法 CB COPA WSC RTE WiC BoolQ Avg.
SDLRT 83.63 91.00 91.51 86.52 73.93 84.29 85.15
DLRT 81.85 91.17 90.06 86.28 73.41 84.33 84.52
LoRA 85.72 90.50 84.93 87.30 73.07 84.14 84.28
AdaLoRA 82.74 90.67 63.46 85.92 73.49 83.92 80.03
LoRA+ 85.12 89.83 89.58 87.24 73.27 83.80 84.81

SDLRT 的平均值比 LoRA+ 高 0.34 个百分点,比 DLRT 高 0.63 个百分点,比 LoRA 高 0.87 个百分点,但仅在 WSC、WiC 两列取得最高均值。CB、RTE 的最高值来自 LoRA,COPA、BoolQ 的最高值来自 DLRT,不能把平均领先写成逐项领先。WSC 上 SDLRT 为 \(91.51\pm1.13\),LoRA 为 \(84.93\pm10.53\),也提示稳定性差异是平均成绩之外值得关注的现象。

可训练参数约为:LoRA、LoRA+、AdaLoRA 各 1.145M,DLRT 1.159M,SDLRT 1.177M。约 2.8% 的增量是相对 LoRA 适配器参数量的比较,不是整个 DeBERTa 模型多出 2.8%,也不是严格同参数预算比较。表题写 DeBERTa-base,正文和附录图 5 写 DeBERTa-v3-base,笔记保留这一原文命名差异。

消融实验

SDLRT 的方向补偿对照为 \(\mathrm{SDLRT}_{\mathrm{2dim}}\):将补偿直接施加到原始 \(K,L\) 因子,分别使用更新因子与补偿基组合。正文利用这一变体与相应维度设置的 DLRT 比较,支持收益不只来自较大的临时空间;不过本地文本未给曲线逐点数值,也没有单独去掉负反馈的数值表,不能据此编造精确消融降幅。

第二张表采用附录 D.2 的实测开销分析:VGG-19/CIFAR-100、RTX3080、seed=30、\(\tau=0.45\)、batch size 128。这是单种子特定配置,不是主实验五次运行的均值。

方法 显存 每 epoch 平均训练时间 测试准确率
DLRT 2680 MB 56.88 s 53.87%
SDLRT 2710 MB 57.53 s 61.86%

在这一配置中,SDLRT 多用 30 MB 显存、每 epoch 多用 0.65 s,准确率提高 7.99 个百分点。这支持“实测额外开销较小”,但不能外推为任意架构、秩或设备都只增加相同开销。

关键发现

  • CIFAR-10 每配置独立运行五次。正文报告压缩超过约 80% 时,SDLRT 在 VGG-16 上保持超过 90% 的准确率、AlexNet 上超过 84%;低压缩时差异较小,补偿还可能轻微过拟合。这里保留正文阈值,不猜图中其他点的精确值。
  • VGG-19/CIFAR-100 在压缩超过 76.1% 时,DLRT 可能出现准确率坍缩和明显种子差异,SDLRT 更稳定。这是特定实验观察,不是普适的安全压缩阈值。
  • 稳定性指标是同初始化下,完整模型当前权重的最佳同秩 SVD 近似与低秩模型权重之间的 Frobenius 距离,定义为 \(d_t=\|\mathrm{SVD}(W_t,r_t)-U_tS_tV_t^{\top}\|_F\)。正文报告 \(\tau=0.4\) 时 SDLRT 的终点距离比 DLRT 约小 10%;它衡量权重轨迹接近程度,不直接等同于泛化误差。
  • 图 3、图 4 图注把五次运行误差条定义为最小值与最大值;第 4.2 节却说报告均值与标准差。原文存在统计说明冲突,本笔记不把图注的范围误写成标准差。

亮点与洞察

  • 重要性不仅取决于当前奇异值大小,还取决于该方向对未来子空间旋转的影响。保留少量近期舍弃方向,将“瞬时弱”与“永久无用”分开,是比机械提高秩更有针对性的改动。
  • 缓冲只扩展可更新方向,不改变扩展表示的初始权重。这让稳定性改进有清楚的机制解释,也避免把补偿误解成简单的尾部权重回加。
  • 截断策略本身可以是反馈控制对象。秩跌落时减小容差,为资源约束训练提供了一个可迁移的思路,但需要同时审查实际参数预算是否随反馈变化。

局限与展望

  • 作者承认反馈系数是启发式设置,大规模架构上的扩展仍待研究。现有证据主要来自 CIFAR 上的经典卷积网络和 DeBERTa 的小型适配器,不能直接推断大语言模型预训练表现。
  • 严格投影收缩不是仅由子空间扩展自动推出的;理论还依赖有界、Lipschitz 和流形接近条件。未来可研究缓冲何时确实覆盖缺失下降方向,而不是仅保存了更多列。
  • 没有完整拆开的“无缓冲/无反馈”数值消融,缓冲长度和反馈强度的独立贡献仍不充分。建议固定最终参数预算,再分别扫描两者并报告多种子分布。
  • 开销表只有单配置、单种子。需要更多秩、网络与硬件上的训练吞吐、峰值显存及最终因子化推理速度,才能判断算法复杂度优势能否稳定转化为部署收益。
  • 方法式的基矩阵记号复用、模型命名与误差条说明差异影响复现清晰度。正文称代码在补充材料中,但缓存没有可核实的仓库链接,因此不添加代码 URL。

相关工作与启发

  • vs DLRT / DLRA:两者都沿低秩表示优化;SDLRT 在原有基扩展中加入近期舍弃方向,并调整截断容差。区别是训练空间的记忆与反馈,不是另行训练完整模型再投影。
  • vs CondLR:CondLR 用近似正交约束改善因子训练;SDLRT 针对截断导致的方向信息丢失。高压缩对照支持后者的作用,但没有证明两种稳定机制不能结合。
  • vs LoRA / AdaLoRA / LoRA+:LoRA 使用固定秩适配,AdaLoRA 根据重要性分配秩预算,LoRA+ 调整因子学习率;SDLRT 将动态低秩更新与短期谱补偿用于适配器。其六任务平均优势需要连同略大的可训练参数量一起阅读。
  • vs 事后 SVD 与彩票假说:事后分解压缩已经训练好的权重,SDLRT 试图在训练中找到可训练低秩子网。本文所称 winning ticket 是低秩谱空间中的子网络,不等于经典稀疏掩码彩票的全部论断。

评分

  • 新颖性: 4/5。将保留/舍弃方向的曲率耦合分析转化为短期谱缓冲,机制有明确针对性。
  • 实验充分度: 3/5。包含视觉压缩、轨迹距离、六任务 PEFT 和开销分析,但独立模块消融与大规模验证不足。
  • 写作质量: 3/5。动机和算法衔接清楚,理论严格收缩与部分记号、统计说明仍需要澄清。
  • 价值: 4/5。适合关注高压缩可训练性与低秩优化的人参考,尚不能替代大型架构的系统评测。