跳转至

Quick ViTs: Speeding up Vision Transformers through Equivariance

会议: ECCV2026
论文: ECCV 原文
代码: https://github.com/davnords/octic-vits
领域: 模型压缩
关键词: 视觉Transformer、八元素二面体群、等变性、傅里叶分解、算术强度

一句话总结

Quick ViTs 将旋转与反射等变性变成傅里叶域线性层的结构化稀疏和权重共享,使 H8(ViT-H/14) 在 ImageNet-1K 监督分类中以 102.3G 而非 167.8G FLOPs 达到 85.0% 而非 84.6% Top-1,同时说明理论 FLOPs 节省为何不等于同倍率实际加速。

研究背景与动机

ViT 将图像切成方形 patch,再对各 token 共享相同的网络计算。 这种共享天然保证 token 置换等变性,却没有规定 patch 内部旋转或镜像后,特征通道应该如何变化。 边缘、角点和纹理通常会以不同朝向重复出现,模型若能共享这些几何模式的计算,就不必为每一种朝向分别学习完全独立的映射。 问题是,传统等变网络经常引入额外方向通道和复杂算子,在获得几何约束的同时增加运行开销。 因此,仅证明网络具有更强对称性,并不足以说明它适合大规模视觉骨干。

本文直接继承 Flopping for FLOPs 的思路:选对表示基,等变约束可以减少计算,而不是增加计算。 先前方法只利用反射对称性,Quick ViTs 将其扩展到方形 patch 的旋转与反射,即含八个元素的二面体群 \(D_8\)。 这个群包括四种直角旋转,以及它们与镜像操作的组合,不意味着任意角度旋转等变。 在对应的群傅里叶域,不同类型的不可约表示不能随意混合,原本稠密的通道映射于是变成多个小矩阵乘法。 这里真正值得检验的是:这种约束会不会损害 ImageNet 表达能力,以及更少的运算能否在 GPU 上换来更高吞吐。

两个问题又彼此关联:全部层保持对称性可能丢掉自然图像的朝向线索,小矩阵计算则可能受到内存带宽限制。 作者因此同时研究后段打破对称性的混合架构,以及将 FLOPs 与数据搬运量联系起来的算术强度。 这使论文不只是提出一个等变模块,而是在实际训练配方和硬件条件下检验它的使用边界。 核心 idea:把早期视觉计算放进 \(D_8\) 的傅里叶表示中以减少通道混合成本,再按任务需要保留或打破后期对称性,并用算术强度解释计算节省何时真正转化为加速。

方法详解

整体框架

输入是一张方形图像,输出是供分类或稠密预测使用的视觉特征。 网络先进行“等变输入构造”,让 patch 嵌入、位置编码和分类 token 遵守同一几何变换规则。 随后“傅里叶域等变计算”在前 \(k\) 个 Transformer 块中维持这一规则,同时用小矩阵替代稠密线性层。 最后“任务相关对称性转换”决定走 I8 还是 H8 路径,剩余 \(l-k\) 个块使用普通 Transformer 算子。 主训练实验令 \(k=l/2\);全部块替换的吞吐基准是另一种配置,不能直接套用其速度到主实验。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
        input["方形图像"] --> embedding["等变输入构造"]
        embedding --> blocks["傅里叶域等变计算<br/>前 k 个块"]
        blocks --> transition["任务相关对称性转换"]
        transition -->|I8:逐 token 不变化| invariant["普通块处理不变通道"]
        transition -->|H8:打破等变约束| hybrid["普通块处理原通道"]
        invariant --> output["分类或稠密预测特征"]
        hybrid --> output

I8 的“通道不变”不等于把整幅特征图压成一个向量:图像旋转时,空间 token 仍然会相应置换。 因此它可以保留稠密预测所需的空间结构,而分类时提取的 CLS 表示最终给出不变预测。 H8 则允许后段重新利用方向信息,其最终输出没有同样的旋转不变保证。

关键设计

1. 等变输入构造:同时处理 token 位置与 patch 内部方向

旋转图像时发生两件事:patch 的位置被置换,每个 patch 内的像素也发生旋转。 普通 Transformer 只自动处理前者,Quick ViTs 还给通道指定群表示,用来描述后者。 令 \(x\) 为通道乘 token 的特征矩阵,\(b\) 为一个网络块,论文式 (9) 的约束可写为:

\[ b\!\left(\rho_{\mathrm{chan}}(g)x\rho_{\mathrm{token}}(g)^T\right) =\rho_{\mathrm{chan}}(g)b(x)\rho_{\mathrm{token}}(g)^T, \qquad g\in D_8. \]

它要求“先变换再算特征”与“先算特征再按指定规则变换”一致,而不是让每个中间向量都保持不变。 PatchEmbed 使用核大小和步幅都等于 patch 大小的卷积,卷积核通过权重共享约束输出相应表示类型。 当嵌入维度 \(C\) 可被 8 整除时,通道组织为多份八维傅里叶表示。 其中包含四种一维类型 \(A_1,A_2,B_1,B_2\),以及两份二维类型 \(E\)。 这些标签描述特征如何随几何变换变化,不是八个独立网络,也不是把图像运行八遍。

位置编码也不能任意学习,否则会立即破坏刚建立的等变性。 作者约束对称位置上的编码,使它们经过相同的通道变换后彼此对应。 编码仍随位置变化,因此方法不保证平移等变性;旋转反射与平移是不同的约束。 CLS token 没有图像平面中的普通 patch 位置,作者只允许其 \(A_1\) 分量非零。 这样它以不变类型进入网络,不会在输入端引入与预定群表示冲突的方向信息。

2. 傅里叶域等变计算:让表示约束直接减少矩阵乘法

Schur 引理限制了等变线性映射:不同不可约表示类型之间不能任意交换信息。 于是一个 \(C\) 到 \(C\) 的映射只需要四个 \(C/8\) 方阵和一个 \(C/4\) 方阵。 后一个矩阵在二维 \(E\) 表示的两个坐标方向上共享权重,但仍要执行两份乘法。 这正是“参数缩减 8 倍”和“运算缩减 5.33 倍”不相同的原因。 依据第 3.3 节的乘法计数,同宽线性层有以下关系;完整乘加 FLOPs 的比例相同:

\[ \frac{N_{\mathrm{param,eq}}}{N_{\mathrm{param,dense}}} =\frac{4(C/8)^2+(C/4)^2}{C^2}=\frac18, \qquad \frac{N_{\mathrm{mult,eq}}}{N_{\mathrm{mult,dense}}} =\frac{4(C/8)^2+2(C/4)^2}{C^2}=\frac3{16}. \]

这类映射用于注意力投影和 MLP 线性层,而不是删除 token 或近似注意力矩阵。 MLP 仍采用通道扩展、GELU、通道收缩的基本结构,残差连接也保留。 但 GELU 不能直接逐点作用在任意傅里叶分量上,因为一般的表示变换不会与逐点非线性交换。 作者先把特征变回正则表示域,该域的群作用只是置换;执行 GELU 后再变回傅里叶域。 这里的“域”是八元素群上的表示空间,不是图像平面的二维频谱。

实现把上述往返变换和 GELU 融合进一个 Triton kernel,以减少中间写回和 kernel 调用。 其余主要实现使用 PyTorch 与 torch.compile,没有要求把整个骨干改成专用推理系统。 LayerNorm 也经过等变化处理,正文描述为按不可约类型中心化、再使用跨类型范数归一化。 注意力得以沿用点积结构,是因为 query 和 key 按相同正交表示变换时,二者内积不变。 注意力权重对对应 token 对保持一致,随后对 value 的加权求和就能保留等变性。

更少 FLOPs 并不自动意味着更高硬件利用率。 算术强度是每搬运一个字节所执行的 FLOPs;小块矩阵可能减少运算,却仍要读写大量激活。 在特征维度较小时,等变层可能从计算受限转为带宽受限,因而无法兑现 5.33 倍理论加速。 第 4.1 节还区分小 token 批次和大批次:权重读取被摊薄后,输入输出激活的搬运会更重要。 随着通道足够宽,两类线性层都进入计算受限区间,运算量差异才更直接决定速度。 这也是作者同时报告精度、FLOPs、吞吐和显存,而不只报告参数量的原因。

3. 任务相关对称性转换:决定后段是否保留方向线索

在 I8 路径,网络先将每个 token 的可转向通道转为不变通道,再送入普通块。 正文采用功率谱不变化,其核心用途是移除通道对群变换的响应,而保留可用于识别的量。 由于空间 token 仍按图像变换置换,普通块的 token 置换等变性足以维持后续空间对应关系。 最终读取 CLS 时,这一路给出 \(D_8\) 不变分类结果。 正文将具体功率谱构造和其他不变量的比较放在附录 E;当前提供的全文不含该附录,因此这里不猜写其精确公式或维度扩展。

H8 不执行同样的不变化,而是把已有通道直接当作普通特征交给后续块。 这一步主动撤去几何约束,因而能学习“图像通常朝上”等对 ImageNet 有用的数据分布规律。 它不是在推理时检测旋转再选择分支;I8 与 H8 是分别训练的架构选择。 作者发现 H8 往往精度更好,而 I8 在未经旋转增强训练的旋转验证集上更稳定。 等变块数量也因此不是越多越好:过早不变化会提前丢掉任务可能需要的方向信息。

一个完整示例

以监督实验中的 ViT-L/16 为例,其总深度为 24,主配置先执行 12 个等变块,再执行 12 个普通块。 一张包含斜向边缘的图像先通过受约束 patch 核得到带有明确表示类型的通道。 将整张图像旋转 90 度时,既要移动 token 位置,也要按这些类型变换通道,而不是只重排 token。 前 12 个块通过结构约束保持这种对应,无需分别计算多个旋转视图再求平均。 选择 I8 后,不变化消去通道方向响应,最终分类对该群内旋转保持一致。 选择 H8 后,后 12 个块可以根据方向重新组合特征,因此可能提高正常图像精度,但不再承诺旋转后输出相同。 这个例子解释的是架构流程,不是论文额外报告的一项单图实验。

损失函数 / 训练策略

Quick ViTs 的主要改动是骨干结构,不是新增几何一致性损失。 监督实验沿用 DeiT III 配方,自监督实验沿用 DINOv2 配方,作者明确表示没有重新调节超参数。 两组模型均在 ImageNet-1K 上训练;DINOv2 对比使用作者自行训练的基线,而非直接比较不同预训练规模的公开权重。 自监督评测冻结特征,分别使用线性和 k-NN 方式评价分类及语义分割。 训练使用 bf16;线性层硬件分析还额外比较 fp16 与 fp32,以暴露精度格式对瓶颈的影响。 推理时沿用选定的 I8 或 H8 架构,不需要额外教师分支或多朝向集成。

实验关键数据

主实验

下表摘自原文表 3,第 13 页:DeiT III、ImageNet-1K Top-1,吞吐列为 bf16;旋转列是未用该旋转增强训练时的准确率变化,单位为百分点。

模型 参数 (M) FLOPs (G) 吞吐 (图/秒) 峰值显存 (MB) Top-1 (%) 旋转后变化 (百分点)
ViT-H/14 632.1 167.8 569 3285 84.6 -12.6
I8(ViT-H/14) 362.3 104.0 657 2249 84.7 0.0
H8(ViT-H/14) 355.8 102.3 660 2223 85.0 -13.4

H8 的 FLOPs 约减少 39%,Top-1 提高 0.4 个百分点,但吞吐仅约为基线的 1.16 倍。 I8 的标准分类精度略低于 H8,却避免了这项旋转测试中的准确率下降,体现了明确的功能取舍。

下表摘自原文表 4,第 13 页:ImageNet-1K 上按 DINOv2 配方预训练,冻结特征后评测;IN1K 为准确率,ADE20K 和 VOC2012 为 mIoU,均按百分数报告。

模型 FLOPs (G) IN1K 线性 IN1K k-NN ADE20K 线性 ADE20K k-NN VOC2012 线性 VOC2012 k-NN
ViT-H/16 127.7 81.7 81.0 34.7 30.6 70.7 60.9
I8(ViT-H/16) 77.7 81.9 80.9 33.9 29.2 70.6 61.2
H8(ViT-H/16) 77.5 82.2 81.4 35.1 31.1 70.8 61.7

H8 在这些 ViT-H 冻结特征指标上均略高于基线,但不能据此声称所有等变变体都全面提高下游质量。 例如 I8 的 ADE20K 线性 mIoU 从 34.7 降为 33.9,k-NN mIoU 从 30.6 降为 29.2。

消融实验

下表来自第 5.3 节、第 14 页的正文消融,原文未给它单独编号:ViT-B、DeiT III 配方、ImageNet-1K 分类,除 patch 嵌入约束外保持 H8 架构不变。

配置 Top-1 (%) 检验因素
无约束线性 patch 嵌入 82.4 保留后续块结构,但输入不保证等变
H8(ViT-B) 的等变 patch 嵌入 83.0 从输入建立一致的几何表示

差异为 0.6 个百分点,支持“几何一致的表示”比仅使用相同块对角结构更有效;它不是严格参数量匹配的完整因果分解。 图 4b、第 11 页还改变 ViT-L 的等变块数量,正文据此选取一半块为等变块;缓存图形不足以可靠逐点读数,因此不补造曲线表格。

关键发现

  • 原文表 2、第 12 页:A100-80GB、token 批量为 \(64\times196\)、fp16、1024 到 4096 通道时,标准层为 0.47 ms,等变层为 0.19 ms;表中报告加速 2.6 倍,时间数值已经舍入。
  • 同表在 fp32、8192 到 32768 通道时报告等变层加速 5.33 倍。这是线性层微基准,不是训练好的 ViT 整网速度。
  • 原文表 1、第 10 页的 ViT-22B 全等变块吞吐为 3.54 倍,但该大模型只参与效率基准,没有在本文中训练并验证精度。

亮点与洞察

  • 等变性不是额外附加的正则项,而是直接限制合法参数连接。选择合适表示基后,几何知识成为可以跳过的矩阵运算。
  • H8 把“早期共享几何模式”和“后期使用数据朝向偏好”放在同一骨干里。这比要求所有层都严格不变更贴近自然图像分类的条件。
  • 算术强度分析解释了为何 FLOPs 很漂亮、吞吐却只小幅提高。它让架构收益可以结合通道宽度、数值精度与硬件带宽判断。

局限与展望

  • 作者只系统研究 \(D_8\),没有验证任意旋转、平移或更大变换群;不能将离散对称性结果推广为一般几何鲁棒性。
  • 实际训练规模止于 ViT-H,未充分消融不同不可约表示的通道配额,也未重新调参。更大模型效率基准不能替代其任务质量证据。
  • 严格不变化可能损失语义分割所需的方向信息,表 4 中 I8 的 ADE20K 下降值得重视;H8 则失去严格旋转鲁棒性。
  • 当前全文缓存只含正文及参考文献,不含附录 A 至 F;功率谱实现、白细胞实验和更多不变化消融无法据此逐项复核。
  • 读者推测:可进一步测试按任务调整等变深度,并与剪枝或量化组合,但本文没有提供这些组合方案的实验结论。

相关工作与启发

  • 对比 Flopping for FLOPs:前作利用反射等变性降低计算,本文扩展到旋转与反射,并增加算术强度分析与自监督下游评测;其创新不是首次发现等变性能够节省计算。
  • 对比 Steerable CNNs:两者都使用群表示约束通道变换,Quick ViTs 将其用于 Transformer 的高成本线性层,不继承卷积式平移等变保证。
  • 对比 DeiT III 与 DINOv2:二者是本文采用的训练配方,不是被替换的新损失;Quick ViTs 试图证明骨干改造能够兼容成熟训练流程。
  • 研究启发:图像匹配与多视图重建可能更重视几何一致性。作者将其列为后续方向,现有分类和分割结果尚不能证明这些任务同样获益。

评分

  • 新颖性: 4/5。将反射扩展至八元素群的实现具有清晰结构收益,但建立在已有高效等变网络路线之上。
  • 实验充分度: 4/5。覆盖监督、自监督、分割、旋转测试和硬件微基准,超大规模训练与附录细节仍有核验边界。
  • 写作质量: 4/5。表示理论、实现和硬件瓶颈衔接明确,但功率谱细节依赖附录,文本提取中的公式排版有损坏。
  • 价值: 4/5。为高效视觉骨干提供了可复用的结构约束思路,部署收益仍须在实际宽度、精度和硬件上测量。