本周工作#
实验补充#
| 模型 | 最大显存占用(GB) | FLOPs(T) | 总体准确率 |
|---|
| 完整模型 | 24.99 | 100.77 | 41.80 |
| Dycoke | 15.24 | 81.97 | 39.04 |
| Omnizip | 13.99 | 72.20 | 41.30 |
| Ours | 15.94 | 70.34 | 41.42 |
| Ours⬇ | 14.90 | 65.76 | 41.17 |

自适应选择 LLM 内部剪枝层#
用少量样本统计相邻层音视频 token hidden state 的平均余弦相似度,将 1−cos 作为变化强度 Cℓ。通过阈值找到第一个波动区间,并在其后寻找 Cℓ 连续多层维持低值的平静区间 P。在平静区间内,选择音视频 token 作为 Key 接收注意力达到一定阈值的最早层作为 LLM 内部剪枝层。
变化强度#
对第 ℓ 层到 ℓ+1 层,相邻层变化强度定义为
Cℓ=1−N1i=1∑N∣TokAV∣1t∈TokAV∑cos(hℓ,t(i),hℓ+1,t(i))
- TokAV 表示音频+视频 token 的集合
- Cℓ 越大,说明这一层变化更剧烈。图里“余弦更低/低于阈值更多”的层就对应 Cℓ 的峰。
用 Cℓ 配合阈值来确定寻找发生显著变化的层,定义为波动区间
平静区间:波动区间之后,Cℓ 连续 K (=3)层都低于一个稳定阈值 τ:
ℓ∈P⟺ℓ>ℓpeak ∧ max0≤j≤K−1Cℓ+j≤τ
音视频 token 收到的注意力较高#
音视频 token 作为 K 被看得多
Aℓ=N1i=1∑N∣Q∣1q∈Q∑k∈TokAV∑aˉℓ(i)(q,k)
- Q 是所有 query token
- aˉ 是对 head 平均后的 attention。
最终选层#
先得到平静区间 P,选平静区间内最早满足注意力阈值的最早层
ℓ∗=min{ℓ∈P∣Aℓ≥Quantile0.7({Aj})}
在其他多模态模型上#
在其他多模态模型上试验自适应的选层方法,目前找了两个模型;测试了其完整模型的 worldsense 上的准确率
Ming-Omni ↗

| Model | Worldsense |
|---|
| Qwen2.5-omni7B(Omnizip) | 46.80 |
| Ming-Omni | 未报告 |
| 复现 | 46.44 |
OmniVinci ↗

9B
| Model | Worldsense |
|---|
| Qwen2.5-omni7B(Omnizip) | 46.80 |
| Qwen2.5-Omni7B(OmniVinci) | 45.40 |
| OmniVinci | 48.23 |
| 复现 | 47.56 |
复现是用的 OmniVinci 模型然后套用的 Omnizip 在 worldsense 上的评估的代码
这个还没提 issue 问,打算要一下评估代码
后续计划#


| layers | FLOPs(T) | overall_accuracy |
|---|
| 0 | 62.37 | 39.19 |
| 9 | 66.85 | 39.75 |
| 16 | 70.34 | 41.42 |
| 18 | 71.33 | 41.36 |
-
稳定度
对每一层 (ℓ,ℓ+1),分别在视频 token 与音频 token 上计算相邻层 hidden state 的平均余弦相似度:
cosℓ(v)=Et∈Tv[cos(hℓ,t(v),hℓ+1,t(v))],cosℓ(a)=Et∈Ta[cos(hℓ,t(a),hℓ+1,t(a))],
其中 Tv,Ta 分别为当前样本中的视频/音频 token 索引集合。定义融合变化强度:
Cℓ=1−21(cosℓ(v)+cosℓ(a)),ℓ=0,…,L−2.
设置窗口大小为 w,对每层定义局部变化均值:
Cℓ=∣Ωℓ∣1k∈Ωℓ∑Ck,Ωℓ={ℓ,ℓ+1,…,min(ℓ+w−1,L−2)}.
那稳定度就是:
Stabℓ=1−Cℓ.
对 Stabℓ 做 min-max 归一化得到 Stabℓ∈[0,1]。
-
注意力强度
第 ℓ 层注意力权重:统计音频/视频 token 作为 Key 被分配的注意力质量,并按 token 数归一化,将两者相加并做 min-max 归一化得到:
Attnℓ=Norm(Aℓ(v)+Aℓ(a)).
给定权重系数 α,β,基础分数定义为:
α,β 都是 1,没调整过
Bℓ=α⋅Attnℓ+β⋅Stabℓ.
-
其他
设阈值为 thr,thr 取 {Cℓ} 的分位数(p 取的 0.75)
thr=Quantile({Cℓ},p).
变化起点为第一个满足 Cℓ≥thr 的层:
ℓ0=min{ℓ∣Cℓ≥thr}.
抑制信息融合之前层的得分,并鼓励在融合后的稳定区域选层,引入分段权重
线性的,r 是步长(想要表示变化区间长度),这里实现还不是很完善,我这里是固定的一个步长大小,如果检测到稳定区间开始来设置动态步长应该更好点;或者最大值不给到 1,而是给到 0.5 这种,确保变化的时候不容易被选中
wℓ={wpre,wpre+(1−wpre)⋅min(1,rℓ−ℓ0+1),ℓ<ℓ0,ℓ≥ℓ0,
考虑到融合后越早剪枝越省 FLOPs,在开始融合后引入指数衰减的早期加成,倾向于选中更早的层:
eℓ={1,exp(−γ(ℓ−ℓ0)),ℓ<ℓ0,ℓ≥ℓ0,
最终分数为:
Sℓ=Bℓ⋅wℓ⋅eℓ,ℓ=0,…,L−2.
选择得分最高的层作为内部剪枝层:
ℓ =argℓmaxSℓ.