重序编码:利用自生成训练数据突破模型压缩的极限

Requential Coding: Pushing the Limits of Model Compression with Self-Generated Training Data

arXiv: 2607.11883v1

论文信息

标题: Requential Coding: Pushing the Limits of Model Compression with Self-Generated Training Data

作者: Shikai Qiu, Marc Finzi, Yujia Zheng, et al.

发布日期: 2026-07-13

arXiv ID: 2607.11883v1

PDF 链接: 下载 PDF

3 分钟速览

  • 研究问题:这篇论文要解决大型神经网络的模型压缩问题,现有方法(参数量化、前序编码)在压缩大模型时效率低下,无法揭示模型真正的学习信息量。
  • 核心方法:作者提出 “再序列编码”(requential coding),让学生模型自己生成训练数据,由教师模型挑选合适的样本,利用相对熵编码仅以约 KL(Qt∥Pt)\mathrm{KL}(Q_t\|P_t) 比特的成本传递选择信号,从而压缩整个训练过程。
  • 关键结果:再序列编码的代码长度与参数数量和数据熵无关,在同等损失下,更大的模型反而能压缩得更小;将其代入 PAC-Bayes 界限,给出了参数量达十亿级的计算最优大语言模型当前最紧的泛化保证,且间隙随规模幂律衰减(见第 4.2 节)。
  • 主要局限:编码器在传输时执行相对熵编码的候选采样数量随 KL 散度指数增长,导致实际编码时间极长;代码长度目前只增不减,未利用训练后期可能遗忘的早期信息来进一步缩短代码。
  • 适合读者:研究深度学习理论、信息论压缩、泛化界限、大规模模型效率的学者和工程师,以及对用信息论工具理解模型泛化感兴趣的从业者。

论文背景和研究动机

现代深度学习的一个核心信念是:模型通过压缩数据来发现规律,从而实现泛化。如果能测量模型压缩训练数据的好坏,就能直接衡量其泛化能力。这个直觉根植于奥卡姆剃刀原则——与观测一致的、最简单的解释最可能为真。

然而,为大规模神经网络找到足够好的压缩方案始终是一个难题。现有方法存在本质缺陷:

  • 参数压缩法(如训练后量化 PTQ):直接压缩模型参数,产生的代码长度与参数数量线性增加,完全忽略这些参数实际存储了多少信息。即使一个大型模型只训练了少量数据而高度可压缩,其参数既不会变得稀疏、低秩,也难以在不改变输出行为的情况下进一步量化到极限。
  • 前序编码(prequential coding):通过压缩训练数据来间接压缩模型,但必须无损编码整个训练数据序列,代码长度包含全部数据熵 ∑H(Xt)\sum H(X_t),即使模型早已停止从新增数据中学习,这部分开销仍持续线性增长。

这两种方法都无法捕捉信息从数据到模型的实际传递过程,也无法解释为何扩大模型和数据规模反而能提升泛化能力。

核心方法和技术细节

再序列编码的核心思想是让学生模型用自己生成的数据进行训练,并用一个更强的教师模型来指导这些自生成样本的选择。具体流程(见图 2):

  1. 生成候选样本:在每一步 tt,学生模型 PtP_t 利用伪随机数生成器(密钥为已知种子)从自己的分布中独立生成候选样本序列 Yt(0),Yt(1),…Y_t^{(0)}, Y_t^{(1)}, \ldots。
  2. 教师选择:编码器(拥有教师模型 QtQ_t)使用相对熵编码(REC)选择一个候选样本 Yt(it⋆)Y_t^{(i_t^\star)},使其边缘分布恰好等于 QtQ_t。这个选择的索引 it⋆i_t^\star 以近似 KL(Qt∥Pt)\mathrm{KL}(Q_t\|P_t) 比特的成本进行前缀编码。
  3. 同步训练:双方都用选中的样本 Xt=Yt(it⋆)X_t = Y_t^{(i_t^\star)} 对各自的学生模型副本执行相同的更新 Pt+1=G(Pt,Xt)P_{t+1} = G(P_t, X_t),保持同步。

核心优势在于,当学生分布与教师分布完全一致时,只需 O(1)O(1) 比特的恒定消息;当两者接近时,消息长度远小于样本本身的信息熵 H(Qt)\mathrm{H}(Q_t)。最终代码是全部消息 (m0,…,mT−1)(m_0, \ldots, m_{T-1}) 的串联,其总期望长度满足:

Lˉreq≤∑t=0T−1[KL(Qt∥Pt)+2log⁡(1+KL(Qt∥Pt))+κ],κ<5.21\bar{L}_{\mathrm{req}} \leq \sum_{t=0}^{T-1}\left[\mathrm{KL}(Q_t\|P_t) + 2\log(1+\mathrm{KL}(Q_t\|P_t)) + \kappa\right], \quad \kappa<5.21

为使这条上界更紧,论文引入了两项改进:教师平滑(对原始教师采用指数移动平均,减少噪声,避免学生为追踪抖动而多付比特)和等损失投影(定期将教师重置为学生状态,然后用真实数据加速训练至恢复先前性能,实现同样表现下更低的教师-学生 KL 散度,见图 3)。

在评估代码长度时,不需要真正执行 REC 的高昂采样过程,只需用等效的随机过程模拟(直接从 QtQ_t 采样 XtX_t),总计算开销约为普通训练的 2.33 倍(若已有教师检查点则仅 0.33 倍)。

创新点和贡献

  1. 代码长度三重解耦:再序列代码成功与参数数量、数据熵、以及与训练目标无关的随机信息解耦,三位一体的解耦使得它能揭示先前压缩方法不可及的深层规律。

  2. 极端可压缩性的发现:论文展示了一个反直觉的现象:在保持损失固定的前提下,越大的模型和集成反而能压缩到更少的比特(图 5、图 6)。这是因为更大的模型样本效率更高,能用更少的信息达成同等性能,而再序列代码恰好将这种样本效率直接转化为编码效率。

  3. 最先进泛化保证:将再序列代码长度代入 PAC-Bayes 框架(定理 D.1),在十亿参数级计算最优大语言模型上,得到的泛化界限不仅优于任何既有非平凡界限,甚至还优于假设无精度损失的 4 比特 PTQ 理想化界限(图 7 中)。更重要的是,泛化间隙(bound gap)随模型规模呈幂律衰减,暗示只要继续按计算最优比例扩张,泛化误差理论上可趋向于零。

  4. 过拟合与数据集信息诊断:

    • 在多轮训练数据的场景下,该代码长度预测训练损失和测试损失之间会逐渐分化,且最佳泛化发生在约一个 epoch 处(图 8),可检测模型开始记忆训练数据的转折点。
    • 通过比较模型在不同类型数据集上的压缩长度,该代码能分离数据集中模型可学习的结构与无法预测的随机信息(即 epiplexity),揭示出低熵文本比高熵图像包含更多可学习结构(图 9)。

实验结果分析

压缩效率对比(第 3.2 节):在 OpenWebText(字符级)、CIFAR-5M(像素级)和 FineWeb(GPT-2 分词器)上训练 1 亿参数模型至 20 亿词元。再序列编码的每词元代码成本(教师-学生 KL)比前序编码的成本(教师交叉熵损失)低一到两个数量级。添加教师平滑和等损失投影后可进一步缩短代码,其在损失-代码长 Pareto 前沿上大幅度优于前序编码,且压缩后模型大小停在了 4 比特/参数参考线的左侧,而前序编码甚至超出 FP32 参数大小线,成为无效的模型压缩器(图 4)。

规模行为(第 4.1、4.2 节):固定数据量(20 亿词元)或按计算最优比例(D=20ND=20N)扩大模型,再序列代码长度虽总体上增加,但增加速度远低于参数数量;这直接反映在泛化界限上:模型愈大,复杂项 CC 愈小,认证的泛化间隙愈紧。在 FineWeb 上,计算最优配置下,再序列界限从 7.7 亿参数模型开始就优于 4 比特 PTQ 的强基准(图 7 中),这是先前所有非平凡泛化界限的可观进步。

局限与待解决问题

再序列编码虽极大推进了模型压缩和泛化理解,但存在几个重要局限:

  1. 编码时间指数增长:实际执行 REC 编码时,有序随机编码(ORC)需要抽取约 2KL(Qt∥Pt)2^{\mathrm{KL}(Q_t\|P_t)} 量级的候选样本,编译时间随散度指数增加。虽然可通过分块减少每步 KL 来换取更短编码时间(图 10),但这会牺牲一部分压缩效率。

  2. 代码单调不减:目前的代码仅记录训练过程,不考虑模型在后续训练中可能遗忘的早期信息。理想情况下,这些早前学得又被覆盖的信息应从代码中移除,使代码有可能随训练减少。作者将此列为 “特别令人兴奋的开放问题”。

  3. 仅压缩学生而非教师:再序列编码给出的是学生模型自身的无损压缩,不是教师模型的无损压缩(尽管在蒸馏意义上,学生可视为教师的失真压缩)。当目标是压缩一个非蒸馏训练的模型时,需要先将原始模型作为教师,用该方法蒸馏出一个学生,并承受原始模型与学生之间的附加失真。

  4. 训练过程依赖性:该方法要求运行完整的教师-学生联合训练过程才能评估代码长度,无法像量化、剪枝那样直接对训练好的最终参数进行操作。这在某些事后压缩(post-hoc compression)场景下使用不便。