从一次深夜调试说起
上周三凌晨两点,我在部署RT-DETR到边缘设备时遇到一个诡异现象:
模型在测试集上mAP表现正常,但在真实场景的连续视频流中,某些帧会突然漏检几个明显目标。
用perf工具抓了热点,发现注意力模块在特定场景下计算开销激增,导致推理帧率骤降。这个问题让我重新审视了默认注意力机制的设计——是时候引入更高效的骨干注意力模块了。
注意力机制的瓶颈在哪里
传统Transformer的自注意力机制有个老毛病:计算复杂度随序列长度呈平方增长。在目标检测任务中,特征图展开成序列后长度可观,全局注意力虽然建模能力强,但计算代价太大。
之前很多改进方案试图通过局部窗口、稀疏注意力来降低计算量,但往往又牺牲了全局建模能力。直到看到BiFormer和VAN这类工作,才意识到注意力机制还能这样设计。
BiFormer:动态稀疏注意力实战
BiFormer的核心思想很聪明——让模型自己决定哪些token需要交互,而不是粗暴地限制窗口大小。它通过可学习路由机制动态选择相关区域建立注意力连接,既保持了全局感知能力,又大幅减少了计算量。
classBiLevelRoutingAttention(nn