跳转至

PPCL: Pluggable Pruning with Contiguous Layer Distillation for Diffusion Transformers

会议: CVPR 2026
arXiv: 2511.16156
代码: GitHub
领域: 模型压缩 / 扩散模型
关键词: diffusion transformer, structured pruning, contiguous layer redundancy, knowledge distillation, MMDiT

一句话总结

提出 PPCL 框架,针对超大规模 Multi-Modal Diffusion Transformer (MMDiT, 8–20B 参数) 设计结构化剪枝方案:通过线性探针 (Linear Probe) 学习每层的可替代性,结合 CKA 一阶差分自动定位连续冗余层区间,再以非顺序交替蒸馏实现深度+宽度双轴剪枝,最终在 Qwen-Image 20B 上实现 50% 参数缩减、1.8× 推理加速,平均性能仅下降 2.61%。

研究背景与动机

领域现状: 最新的文本到图像 (T2I) 扩散模型已从 UNet 架构全面转向 Multi-Modal Diffusion Transformer (MMDiT)。SDXL 为 2.6B 参数,而 FLUX.1 达 12B、Qwen-Image 达 20B (60 层 MMDiT block),生成质量大幅提升,但推理成本急剧增加。

现有痛点: (a) 已有的结构化剪枝方法 (如 TinyFusion、SnapFusion) 主要面向 UNet 架构,难以直接迁移到 MMDiT 的双流结构;(b) 现有方法逐层独立评估冗余度 (如敏感度分析),忽略了 DiT 中相邻层之间的功能耦合关系;(c) 传统顺序蒸馏中,早期层的压缩误差沿网络传播并累积,导致学生模型的表示严重偏离教师模型。

核心矛盾: 作者通过实验发现 DiT 的冗余呈现深度连续性——移除连续的层比移除等量的非连续层对性能的影响更小。现有剪枝方法未利用这一特性。

本文目标: 如何系统性识别 MMDiT 中的连续冗余层区间,并设计不累积误差的蒸馏方案实现高压缩比下的质量保持。

切入角度: 以"层的可替代性"(substitutability) 替代传统的层重要性评估——若一层的输入-输出映射可被线性变换近似,则该层对其相邻层是功能冗余的。

核心 idea: 在 MMDiT 中,冗余层沿深度方向连续分布,可通过线性探针+CKA 差分自动定位并整段移除,配合非顺序蒸馏消除误差累积。

方法详解

整体框架

PPCL 把超大 MMDiT 的压缩拆成深度、宽度两条正交的剪枝轴,再用一套非顺序蒸馏把误差累积按住。深度轴先回答"该删哪些层":为教师模型逐层训练线性探针,用 CKA 一阶差分自动框出连续冗余层区间 \(\mathcal{I} = \{[u_i, v_i]\}\)(设计 1),再对每个区间用单层学生独立蒸馏替换(设计 2)。宽度轴在保留下来的层内部继续瘦身:把跨层高度相似的文本流(text stream)和过参数化的 FFN 替换为轻量线性投影(设计 3)。三者都跑完后,做一次短时全参数 fine-tuning 收尾,得到 50% 参数、1.8× 加速的压缩模型;又因每个深度区间独立训练,推理时可自由启用/跳过区间,无需重训即可得到不同参数量的"即插即用"变体。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400, 'subGraphTitleMargin': {'top': 8, 'bottom': 16}}}}%%
flowchart TD
    A["教师模型 MMDiT<br/>(如 Qwen-Image 60 层 / 20B)"] --> S1
    subgraph S1["连续冗余层检测(设计 1)"]
        direction TB
        B["逐层线性探针<br/>带残差 + 最小二乘初始化"] --> C["CKA 一阶差分拐点检测<br/>自动划分连续冗余区间 𝓘"]
    end
    S1 --> D["非顺序深度剪枝蒸馏(设计 2)<br/>每区间 [u,v] → 单层学生,切断误差累积"]
    D --> S3
    subgraph S3["宽度剪枝(设计 3)"]
        direction TB
        E["文本流剪枝<br/>替换为轻量线性投影"]
        F["FFN 剪枝<br/>替换为线性投影"]
    end
    S3 --> G["短时全参数 fine-tuning"]
    G --> H["压缩模型<br/>50% 参数 / 1.8× 加速 + 即插即用变体"]

关键设计

1. 连续冗余层检测:用线性探针量化"可替代性",CKA 差分自动框区间

深度剪枝的第一步是判断"哪些层可以整段删掉"。PPCL 不沿用传统的逐层重要性/敏感度评估,而是把"可替代性"(substitutability) 当作冗余度的核心标准——如果一层的输入→输出映射能被一个线性变换近似,它对相邻层就是功能冗余的。为此作者给教师模型每层 \(T_i\) 配一个带残差结构的线性探针 \(l_i\):先用最小二乘闭合解 \(W_i^* = (T_i(T_{i-1}^D) - T_{i-1}^D)(T_{i-1}^D)^\top(T_{i-1}^D(T_{i-1}^D)^\top)^{-1}\) 初始化,再用对齐损失 \(\mathcal{L}_{fit}(i) = \|l_i(T_{i-1}^D) + T_{i-1}^D - T_i(T_{i-1}^D)\|_2^2\) 微调。这样每个探针的训练输入都和对应层的真实输入一致,层与层之间评估互不干扰,且一次训练就覆盖所有层。

光知道单层能否被线性近似还不够,关键是连续多层能否被一并替换。作者利用"有限个线性变换叠加仍是线性"这一性质,在校准集上用线性探针替换连续层构造代理模型,计算其输出与教师层输出的 CKA 相似度,并定义一阶差分 \(\Delta(u,k) = -(\text{cka}(u,k) - \text{cka}(u,k-1))\)。从起点 \(u\) 不断向后吞并层,\(\Delta\) 会先减后增——这个拐点 \(v\) 就标志着该连续冗余区间的右端点。用差分拐点而非固定阈值,能让每段区间的长度自适应地由数据决定,而不是人为拍一个分界。

2. 非顺序深度剪枝蒸馏:切断误差累积链

框出区间后,每个连续冗余区间 \([u,v]\) 都用一个单层学生 \(S^u\) 来替代。难点在于传统顺序蒸馏会累积误差:学生第 \(k\) 层吃的是学生自己第 \(k-1\) 层的输出,早期层的压缩偏差会沿网络一路放大,越往后偏离教师越严重。PPCL 的"非顺序"(teacher-student alternating) 做法是让每个区间直接从教师取输入——学生层 \(S^u\) 接收教师第 \(u-1\) 层的输出 \(T_{u-1}^D\),去对齐教师第 \(v\) 层的输出 \(T_v^D\),损失 \(\mathcal{L}_{depth}^{[u,v]} = \|\text{Norm}(S^u(T_{u-1}^D)) - \text{Norm}(T_v^D)\|_2^2\)(Norm 为 L2 归一化,强调方向对齐)。这样每个区间在干净的教师输入上独立优化,误差不再跨区间传播。消融显示,仅这一项就把性能下降从 14.5% 砍到 5.22%,比冗余检测本身贡献还大。区间独立训练还带来即插即用特性:推理时把某些学生层换回原教师层,就能从一个 10B 模型直接派生出 12B / 14B 变体,无需任何重训。

3. 宽度剪枝:压缩文本流与 FFN

深度剪枝减的是层数,但保留下来的层内部仍有大量宽度冗余,PPCL 从两处下手。其一是文本流剪枝:CKA 热力图显示 MMDiT 的文本流 token 跨层相似度高、层间变化小,于是把冗余层文本流(除 QKV 投影外)整体替换为两个轻量线性投影 \(l_p^z\)\(l_p^h\)。其二是FFN 剪枝:FFN 普遍过参数化,作者测量"用线性投影替代 FFN"的 MSE,对那些误差极小的层把 FFN 换成线性投影 \(l_q^{img}\)\(l_q^{txt}\)。宽度蒸馏损失同样分两部分——与深度蒸馏格式一致的层级对齐损失 \(\mathcal{L}_{width}^j\),加上约束投影输出逼近教师中间表示的线性投影对齐损失 \(\mathcal{L}_{linear}^j\)。有意思的是,这一步在减参数的同时反而能提点(+WP-text 减 1B 参数、平均性能从 0.848 升到 0.860),因为新引入的可训练线性层补上了部分层原本对齐不足的缺口。

训练策略

  • 数据: 从 LAION-2B-en 采样 10 万张图,用 Qwen2.5-VL 生成精细描述
  • 训练三阶段: 深度剪枝 6k steps → 宽度剪枝 2k steps → 全参数 fine-tuning 1k steps (8 × H20 GPU)
  • 优化器: AdamW (\(\beta_1\)=0.9, \(\beta_2\)=0.95, weight decay=0.02),BF16 混合精度 + 梯度检查点

实验关键数据

主实验:FLUX.1-dev 上的对比

方法 参数(B) 显存(%) 延迟(ms) DPG↑ GenEval↑ B-VQA↑ UniDet↑ 平均下降(%)↓
Base model 12 100 715 83.8 0.665 0.640 0.426 0
TinyFusion 8 74.4 534 77.2 0.511 0.584 0.369 13.80
HierarchicalPrune 8 74.4 543 75.7 0.503 0.579 0.371 13.38
Dense2MoE 12 100 312 73.6 0.403 0.473 0.311 21.52
FLUX.1 Lite 8 78.8 572 82.1 0.623 0.547 0.379 6.09
Chroma1-HD 8.9 82.5 1714 84.0 0.593 0.621 0.339 1.02
PPCL(8B) 8 74.4 535 80.0 0.605 0.615 0.391 4.03
PPCL(6.5B) 6.5 69.2 428 81.2 0.593 0.581 0.398 0.07

主实验:Qwen-Image 上的对比

方法 参数(B) 显存(%) 延迟(ms) DPG↑ GenEval↑ LongText-EN↑ LongText-ZH↑ 平均下降(%)↓
Base model 20 100 2625 88.9 0.870 0.943 0.946 0
TinyFusion(14B) 14 79.4 1789 80.7 0.739 0.859 0.857 8.75
HierarchicalPrune(14B) 14 79.4 1786 83.3 0.766 0.884 0.881 6.49
PPCL(14B) 14 79.4 1792 87.9 0.847 0.929 0.946 0.42
PPCL(12B) 12 71.4 1514 83.6 0.801 0.893 0.917 3.03
PPCL(10B+FT) 10 66.9 1462 86.7 0.828 0.902 0.931 3.29

消融实验 (Qwen-Image, 均剪枝至 ~10-12B)

配置 LongText↑ DPG↑ GenEval↑ 平均 参数(B) 平均下降(%)↓
Original (20B) 0.942 0.885 0.854 0.894 20 0
Baseline (CKA+顺序蒸馏) 0.625 0.763 0.728 0.706 12 18.2
+LP (线性探针) 0.712 0.795 0.776 0.761 12 14.5
+LP-a (CKA 阈值替代差分) 0.664 0.778 0.712 0.718 12 19.7
+LP-b (扩大区间上界) 0.678 0.769 0.731 0.726 12 18.8
+DP (非顺序蒸馏) 0.905 0.836 0.801 0.848 12 5.22
+WP-text (文本流剪枝) 0.915 0.846 0.819 0.860 11 3.79
+WP-ffn (FFN 剪枝) 0.906 0.835 0.809 0.850 10 4.91
+Fine-tuning 0.916 0.867 0.828 0.870 10 2.61

关键发现

  • 连续 vs 非连续移除: 在 Qwen-Image 60 层模型上移除 1–3 层时,连续移除的生成质量一致优于非连续移除,证实了冗余的深度连续性假设
  • 非顺序蒸馏提升巨大: 从+LP 的 14.5% 下降降至 +DP 的 5.22%,仅引入非顺序蒸馏就带来 ~9 个百分点的改善
  • 宽度剪枝"减参数反而升指标": +WP-text 在减少 1B 参数的同时,平均性能反而从 0.848 提升至 0.860,原因是额外的可训练线性层改善了部分层对齐不足的问题
  • 即插即用性: PPCL(14B) 和 PPCL(12B) 无需额外训练,直接由 10B 模型替换部分学生层为教师层即可获得
  • 在已剪枝模型上再剪枝: 对 FLUX.1 Lite (8B) 再剪枝至 6.5B,平均性能下降仅 0.07%

亮点与洞察

  • 连续冗余是 DiT 的固有特性: 与 CNN 中冗余分散分布不同,MMDiT 的相邻层在表示空间中做平滑过渡,形成可整段移除的功能单元。这一发现为 DiT 的剪枝提供了全新范式
  • 线性探针作为可替代性度量: 相比直接移除层评估敏感度,线性探针能更稳定地量化层间的线性可近似程度,且仅需一次训练即可处理所有层
  • 非顺序蒸馏是关键: 消融实验显示,非顺序蒸馏比冗余层检测方法本身贡献更大 (9pp vs 3.7pp),证明切断误差累积链是高压缩比下保持质量的核心
  • 双轴压缩的互补性: 深度剪枝减少层数、宽度剪枝减少保留层内的参数,两者正交且可叠加,联合使用实现 50% 压缩

局限与展望

  • CKA 一阶差分的拐点检测缺乏严格理论基础,作者承认这主要是成功的工程启发式方法
  • INT4 量化在 PPCL 剪枝后效果不佳——剪枝降低了网络冗余度,收窄了量化容错空间,剪枝+量化的联合优化有待研究
  • 训练仍需 8 × H20 GPU,对于更大规模模型 (如 100B 级) 的可扩展性待验证
  • 宽度剪枝中哪些层属于 \(\mathcal{R}_{txt}\)\(\mathcal{R}_{ffn}\) 的选择策略细节在附录中,主文描述有限

相关工作与启发

  • vs TinyFusion: TinyFusion 使用可微分门控参数识别可移除层,但逐层独立评估忽视连续性,且采用标准(顺序)蒸馏导致误差累积。在 FLUX.1 和 Qwen-Image 上 PPCL 平均下降 4.03% / 0.42%,远优于 TinyFusion 的 13.80% / 8.75%
  • vs HierarchicalPrune: HPP 的层重要性评估偏粗糙,生成结果出现视觉 artifacts;PPCL 在相同压缩比下优势明显 (0.42% vs 6.49%)
  • vs Dense2MoE: Dense2MoE 用 MoE 替换 FFN 来降低激活成本但不减参数量,且平均下降达 21.52%,说明单纯替换子结构不如系统性剪枝+蒸馏
  • vs Chroma1-HD: Chroma1-HD 在 FLUX.1 上平均下降最低 (1.02%) 但推理延迟反增至 2.4 倍,不满足加速需求

评分

  • 新颖性: ⭐⭐⭐⭐ 连续冗余假设经实验充分验证,线性探针+CKA 差分的自动区间检测和非顺序蒸馏都是有效创新
  • 实验充分度: ⭐⭐⭐⭐ 在 FLUX.1 和 Qwen-Image 两个主流 MMDiT 上验证,消融实验细致地拆解了每个组件的贡献
  • 写作质量: ⭐⭐⭐⭐ 方法动机阐述清晰,从观察→假设→设计的逻辑链完整
  • 价值: ⭐⭐⭐⭐⭐ 直击 20B 级 DiT 部署瓶颈,50% 压缩+1.8× 加速的工程价值极高,即插即用特性进一步提升实用性