【RT-DETR涨点改进】05 注意力头剪枝:揪出RT-DETR里的“摸鱼头”,白捡10%推理速度
05 注意力头剪枝:揪出RT-DETR里的“摸鱼头”,白捡10%推理速度上篇我们聊了让Decoder学会“早退”,省掉了好几层计算。你回去试了吗?是不是发现模型依然跑得不够快?别急,今天我们来动动交叉注意力里的“人头”问题。开篇故事:一张图暴露的“摸鱼现场”上个月我在调试一个工业质检模型,RT-DETR-l在1080Ti上推理一张图要42ms。我心想:这离30ms的实时要求还差一截。于是我把交叉注意力的8个头分别可视化——结果让我哭笑不得。你看下面这张图(我手绘的,别嫌弃):注意力头1: [0.92, 0.88, 0.91, 0.03, 0.02, ...] → 聚焦目标区域 注意力头2: [0.01, 0.02, 0.01, 0.89, 0.93, ...] → 聚焦背景区域 注意力头3: [0.91, 0.87, 0.90, 0.02, 0.01, ...] → 和头1几乎一模一样! 注意力头4: [0.02, 0.01, 0.02, 0.88, 0.92, ...] → 和头2几乎一模一样! ...头3和头4,分明就是头1和头2的“克隆体”。它们学到的注意力模式高度相似,却白白占用了计算资源。这就是我们今天要解决的“废头”问题。痛点拆解:你的“多头注意力”可能只是在“头多”很多同学以为“多头”就是越多越好,默认用8个头。但RT-DETR的交叉注意力(Decoder中的Cross-Attention)有一个反直觉的现象:随着训练进行,多个头