掩码补丁两两合并,AST 训练吞吐涨 13.9%、mAP 几乎不动

From Masking to Merging: Rethinking SpecAugment for Efficient Audio Spectrogram Transformer

Minhee Park, Hyowon Ahn, Chanwoo Kim

cs.SD, cs.LG, eess.AS

2026-09-06

韩国大学把 SpecAugment 切出的全零补丁两两做 max 合并再送进 AST,AudioSet 上合并 100 对时 mAP 从 34.07 到 34.08 几乎不动,训练吞吐从 43.3 提到 49.3 samples/sec,相对提升 13.9%。

这篇在解决什么

Audio Spectrogram Transformer(AST)把梅尔频谱图切成 16×16 的补丁当 token,自注意力对 token 数是平方级。训练时几乎都会开 SpecAugment:在时间和频率轴上随机挖掉一条条,强迫模型靠上下文补全。挖掉的区域几乎没有频谱信息,对应的 embedding 却照样过完整套 Transformer,算力白花。

已有的 token 削减要么随机丢掉补丁(PaSST 的 Patchout),要么按表示相似度两两合并(ToMe、FastAST),都要额外模块或相似度计算。这篇的问题更具体:SpecAugment 已经把「没信息」的位置标出来了,为什么不直接拿来当合并线索。

方法

两步都发生在 Transformer encoder 之前。

先加位置编码再合并,是为了让留下来的 token 还带着时间和频率位置。r=0 时 mAP 是 34.07±0.18,对照原版 SpecAugment 的 34.11±0.35,说明改成按补丁挖洞本身几乎不伤增强效果。合并算子试过 max、mean、sum 和随机 drop,r=90 时 max 的 mAP 为 34.10±0.31,略稳,后面实验都用它。吞吐几乎一样,随机 drop 是 48.5 samples/sec,max 是 48.63。

候选只来自全零补丁,最大 r 受掩码数量卡住:AudioSet 大约 212 个全零补丁,ESC-50 约 110,Speech Commands V2 约 34。频率掩码至少两行,就是为了保证有足够的合并候选。原版 SpecAugment 挖的是连续帧,切补丁时一条边会压到半掩码补丁;对齐网格之后,半掩码补丁消失,合并候选才干净。

结果

骨干是 ImageNet 预训练的 DeiT-Base distilled(87M 参数),单卡 RTX 4090。AudioSet 用的是约 22k 条的 balanced 子集,不是 200 万条的全量,训 25 个 epoch,学习率 5e-5,第 6 到 25 个 epoch 做权值平均。AudioSet 和 Speech Commands V2 额外开了 Mixup,比例分别是 0.5 和 0.6。吞吐按完整训练步的墙钟算。

设置mAP / Acc吞吐 (samples/sec)显存
AudioSet r=034.07±0.1843.324.64 GB
AudioSet r=100(16.5%)34.08±0.2449.3(+13.9%)21.50 GB(少 3.14)
PaSST-U 同等 16.5%29.58±0.2746.721.00 GB
ESC-50 r=0 到 5089.20 到 88.67127.3 到 142.9未报
Speech Commands V2 r=0 到 1598.13 到 98.06411.1 到 429.4未报

PaSST-U 在同一套优化器、16 kHz、balanced AudioSet 下重训。原论文用 32 kHz 全量 AudioSet,绝对 mAP 不可比,对照只看效率:同等 16.5% 削减下,这篇 49.3 samples/sec,PaSST-U 是 46.7。FastAST 没有公开实现,没做受控对比。ESC-50 精度掉了 0.53 个点,换来吞吐从 127.3 到 142.9;关键词 spotting 几乎持平。

为什么重要

这是渐进改进,不是新架构。给已经在用 AST 加 SpecAugment 的训练流水线,几乎零改动就能换吞吐:掩码对齐到补丁、合并前加上位置编码。不需要相似度模块,也不改推理图。

适用面很窄。加速发生在训练阶段、并且开了 SpecAugment 的 patch Transformer 上。推理时通常关增强,这条加速用不上。想把同样思路搬到别的音频 ViT,前提是训练时本来就在挖时间和频率条带。

局限与存疑

作者自己写了:候选只限全零补丁,削减比例有上限,AudioSet 最多大约 16.5%。没有报全量 AudioSet,也没有报推理延迟。PaSST-U 的 mAP 比 AST 低大约 4.5 个点,部分来自实现和数据设定差异,不能据此说合并比 Patchout 更准。吞吐是单卡 4090 墙钟,换硬件数字会变。合并只在 encoder 入口做一次,没有层间逐步削减,跟 ToMe 那种分层合并不是同一档机制。

术语

原文与代码

社区讨论

相关论文

全部论文解读