跳转至

Don't Let the Video Speak: Audio-Contrastive Preference Optimization for Audio-visual Language Models

会议: ECCV 2026
论文: ECCV 2026 · 项目页
领域: 对齐/RLHF
关键词: 音视频语言模型、跨模态幻觉、直接偏好优化、视觉主导、音频归因

一句话总结

针对音视频语言模型(AVLM)"看着画面编声音"的跨模态幻觉,本文提出 ACPO:沿输出与输入两条正交轴构造偏好对——用音轨被替换的输入惩罚"用视觉字幕回答听觉问题",并要求同一句回答在音轨被换掉后必须变得不再可信——只微调音频投影层,就把 AVHBench 音频幻觉 F1 从 79.0 提到 80.4、单模态音频字幕 CIDEr 从 33.0 提到 43.6。

研究背景与动机

音视频语言模型(AVLM)在视觉语言模型的基础上接入音频流,让视频、声音、文本一起进入 LLM 做问答与描述,在自动驾驶、辅助技术这类需要可靠理解周遭环境的应用里被寄予厚望。但这类模型的可靠性被一类特有的失败卡住:跨模态幻觉。它不同于单模态幻觉——模型说的话在某一路模态下看似合理,却没有被完整上下文支持。典型的例子是"视频主导的音频幻觉":画面里有一辆警车驶过,音轨里其实只有鸟叫,模型却自信地说"警车鸣着警笛驶过"。这类错误读起来极其流畅、也完全符合现实世界的共现常识,暴露的却是模型的模态归因(modality attribution)出了错——它把看到的当成了听到的。

更棘手的是,这种幻觉是不对称的。已有工作观察到音频 token 在解码时获得远低于其应有的注意力权重,模型在音频侧任务上比视觉侧任务更容易幻觉。本文先用一个干净的分析坐实了这一点:在 AVHBench 的视频主导音频幻觉任务(V→A)上,输入帧数从 0 帧(纯音频)的 76.8 加到 4 帧的 76.4,再到 10 帧的 74.0,视觉信息越多,音频问答反而越差;反过来在音频主导视频幻觉任务(A→V)上,从无音频的 61.5 补上音频后升到 77.2,说明模型对音频干扰相当稳健。也就是说,问题不是"两路模态互相打扰",而是视觉先验单方面压制了听觉证据。作者进一步把根源归结为两层互相叠加的因素:一是大规模音视频数据里"所见即所闻"的强相关,让模型可以直接吃共现捷径、根本不必学真正的模态归因;二是架构层面的不平衡,视觉编码器在数据规模与监督强度上都远胜音频编码器。

既然如此,把偏好学习直接套到静态的音视频输入上并不能解决问题:由于视听高度相关,模型完全可以只靠画面就"猜"出偏好的那条音频描述,偏好信号被视觉捷径架空。核心 idea:把偏好对沿两条正交的轴来构造——输出对比轴用音轨替换后的输入,明确惩罚"对听觉问题给出视觉描述";输入对比轴互换音轨,惩罚"支撑证据被换掉后预测依然不变"的音频不敏感行为,两条轴联合优化、且只微调音频投影层,从而在不破坏原有视觉语言能力的前提下把听觉 grounding 补上。

方法详解

整体框架

ACPO 要解决的是:如何让 AVLM 在视觉先验很有诱惑力时,仍然忠实地以音轨为准。它的做法是把"对齐"从单纯的偏好学习改造成一项数据构造任务——先从已有的音视频片段里造出模态可分的监督目标与可控失配的输入,再沿两条轴把这些素材拼成偏好对,最后用一个标准的 DPO 目标在偏好对的并集上训练,训练时只动音频投影层这一小块参数。

整条链路是串行且带双路分支的:输入的 VALOR 片段先被拆解成模态级字幕、同时被配上一条陌生音轨,形成"音频替换输入";这两份素材分别注入两类偏好对(输出对比的音频归因对、输入对比的音频敏感性对),两类对最后汇入同一个 DPO 优化;训练完的模型在推理时不需要任何额外开销,也不改推理流程。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["VALOR 片段<br/>视频 + 音轨 + 联合字幕"] --> B["模态解耦的数据构造<br/>字幕拆成 y_vis / y_aud<br/>音轨替换 + 相似度分层"]
    B --> C["音频归因对(输出对比)<br/>偏好听到的,惩罚看到的"]
    B --> D["音频敏感性对(输入对比)<br/>换掉音轨,答案必须变"]
    C --> E["DPO 联合优化<br/>只微调音频投影层"]
    D --> E
    E --> F["推理:无额外开销<br/>不改解码流程"]

关键设计

1. 模态解耦的数据构造:把"看到什么"和"听到什么"拆成两份可比的监督目标

标准音视频字幕把视觉证据与听觉证据缠在同一句话里("警车驶过,同时有鸟在叫"),这种联合字幕对模态级 grounding 不提供任何梯度信号——模型只写前半句也不会被罚。ACPO 的第一步是用一个 LLM(文中用 GPT-5)把每条联合字幕分解成只描述视觉可验证内容的视觉字幕 \(y_{\text{vis}}\) 和只描述听觉可验证内容的音频字幕 \(y_{\text{aud}}\),这两份模态字幕就是后面所有偏好对的监督目标。

第二步是造"音频替换输入":保留原视频 \(v_A\)、把音轨换成一个陌生片段 B 的音轨 \(a_B\),得到 \((v_A, a_B)\)。为了让失配程度可控,作者用多模态嵌入模型(ImageBind)度量原视频与候选音轨之间的相似度,按经验分位数把替换分成高相似与低相似两档:低相似替换制造更强的视听冲突,高相似替换则是更隐蔽的错配。这一步是整套方法的地基——没有它,后面的偏好对就只能落在原始片段上,而原始片段里画面和声音本来就一致,模型可以靠视觉捷径蒙对答案(消融里"不换音轨"的配置分数最低,正说明了这一点)。

2. 音频归因对(输出对比):惩罚"对听觉问题给出视觉描述"

这类对针对的正是论文开篇那个失败模式:用户问的是听到什么,模型答的是看到什么。构造方式是取替换后的输入 \((v_A, a_B)\),配一条聚焦听觉的指令 \(x_{\text{aud}}\)(如"Describe what you hear.");偏好回答是当前音轨 \(a_B\) 对应的音频字幕 \(y^{B}_{\text{aud}}\),被惩罚的回答是画面 \(v_A\) 对应的视觉字幕 \(y^{A}_{\text{vis}}\)

\[p_\theta\big(y^{B}_{\text{aud}} \mid v_A, a_B, x_{\text{aud}}\big) > p_\theta\big(y^{A}_{\text{vis}} \mid v_A, a_B, x_{\text{aud}}\big)\]

值得注意的是被惩罚的那条字幕本身可能很流畅、也很贴合画面,它唯一的"错"在于来源是视觉而非听觉。这条对把"归因错误"直接变成了可优化的对比信号:模型要保持高似然,就必须真的去读 \(a_B\) 而不是看 \(v_A\)。实验上它主要抬高精确率(少把不存在的音确认下来),消融中去掉它精确率从 78.2 掉到 76.2。

3. 音频敏感性对(输入对比):惩罚"换掉音轨答案照旧"

归因对管的是"答对来源",但如果模型对音轨本身不敏感——无论听什么都说同一句——它在归因对上仍可能蒙混过关。第二类对从输入侧堵这个漏洞:固定视频 \(v_A\),取对齐输入 \((v_A, a_A)\) 与替换输入 \((v_A, a_B)\),让同一条原始联合字幕 \(y^{A}_{\text{av}}\) 在前者下被偏好、在后者下被惩罚:

\[p_\theta\big(y^{A}_{\text{av}} \mid v_A, a_A, x\big) > p_\theta\big(y^{A}_{\text{av}} \mid v_A, a_B, x\big)\]

逻辑很直接:\(a_B\) 并不支持 \(y^{A}_{\text{av}}\) 里那些听觉细节,模型若在替换音轨后仍给这句字幕同样高的概率,就说明它的预测与真实听觉证据无关。这类对不指定"该说什么",只要求"回答要随听到的东西变",因此主要提升召回率(召回 82.8,去掉它掉到 81.0),并在相似度消融上呈现与归因对相反的偏好:高相似(更隐蔽)的替换反而更好,因为它构成的负例更难、更能暴露音频不敏感行为。

一个完整示例

以图 1 的场景为例。片段 A 的画面是一辆警车驶过,音轨里其实只有鸟叫,联合字幕为"警车驶过,同时有鸟在叫"。分解得到 \(y^{A}_{\text{vis}}\) = "警车驶过"、\(y^{A}_{\text{aud}}\) = "有鸟在叫"。给它配一段陌生音轨 B(低相似档,音轨里是警笛声),\(y^{B}_{\text{aud}}\) = "有警笛声",于是得到替换输入 \((v_A, a_B)\)

  • 归因对:输入 \((v_A, a_B)\) + "Describe what you hear.",偏好"有警笛声"、惩罚"警车驶过"。模型若想省事照画面答,就会被这条对明确罚到;这正是基座模型答"警车鸣着警笛驶过"的那条捷径。
  • 敏感性对:对齐输入 \((v_A, a_A)\)(警车画面 + 鸟叫音轨)下偏好 "警车驶过,同时有鸟在叫",而在替换输入 \((v_A, a_B)\)(警车画面 + 警笛音轨)下惩罚同一句。模型不能靠"画面里有警车"就把这句话说得理直气壮。

两类对连同 OmniDPO 的噪声对与纯文本对混合后进入同一个 DPO 目标,训练完的模型在同样的"警车 + 鸟叫"片段上会回答"警车驶过,同时能听到鸟叫"。

损失函数 / 训练策略

训练目标就是标准 DPO 损失在全部分配对并集上的形式:以冻结的参考模型为锚,抬高偏好回答、压低被惩罚回答的相对似然,\(\beta\) 控制偏离参考分布的程度。

\[\mathcal{L}_{\text{DPO}} = -\log\sigma\Big(\beta\log\tfrac{p_\theta(y^+\mid c)}{p_{\text{ref}}(y^+\mid c)} - \beta\log\tfrac{p_\theta(y^-\mid c)}{p_{\text{ref}}(y^-\mid c)}\Big)\]

(⚠️ 原文该式在缓存 PDF 抽取时损坏,此处按 DPO 原始形式给出,符号约定与原文一致。)这里 \(c\) 不再是固定的联合音视频上下文,而是随偏好对类型在 \((v_A, a_B, x_{\text{aud}})\)\((v_A, a_A, x)\)\((v_A, a_B, x)\) 之间变化——这正是 ACPO 与"把 DPO 直接用在静态音视频输入上"的关键差别。

训练数据来自 VALOR 的 5,000 个带联合字幕的片段,字幕分解用 GPT-5,音轨替换按 3.2 节流程构造。作者把自己的音频对比对与 OmniDPO 的噪声对、纯文本对混在一起,按 60/40 的比例在每个 batch 内随机采样。参数上:Video-LLaMA2 骨干下冻结视频编码器、音频编码器与 LLM,只微调音频投影层;AdamW,学习率 2e-5,cosine schedule + warmup,DPO 的 \(\beta=0.1\),全局 batch size 8,1 个 epoch,单张 NVIDIA GH200 120GB 上约 3 小时。多训一个 epoch 没有额外收益。换到 video-SALMONN-2 与 Qwen2.5-Omni 时,除音频投影层外再对 LLM 加 LoRA,ACPO 目标与 5,000 条偏好对保持不变。

实验关键数据

主实验

评测覆盖两个公开基准:AVHBench 用"真值只依赖单一模态、另一模态可能误导"的是非题考查跨模态幻觉,本文报告其中视频主导音频(V→A)幻觉任务;CMM 把幻觉拆成单模态主导与模态间伪相关,本文报告音频-语言(Aud-Lang)与过度依赖视觉(Overrely Vis)两个子项及总体成绩(视觉语言任务不在报告范围内,因为本文只改音频投影层)。所有受控基线都在同一 Video-LLaMA2 骨干、同一训练范式下复现。

方法 AVHBench 音频幻觉 Prec↑ Rec↑ F1↑ Acc↑ CMM 过度依赖视觉 Acc↑ CMM 总体 Acc↑
Gemini-Flash-1.5 † 57.9 94.7 71.9 63.0 57.8 76.3
Qwen2.5-Omni † 60.8 98.8 75.3 67.6 75.8 81.0
MiniCPM-o † 70.4 78.6 74.4 72.8 73.8 76.0
Base(Video-LLaMA2-7B-AV) 68.6 88.5 77.3 74.0 73.3 82.5
SFT 72.8 83.5 77.8 76.2 76.0 82.5
DPO 70.6 88.9 78.7 76.0 77.3 82.9
OmniDPO 76.6 81.6 79.0 78.4 77.3 82.4
ACPO(本文) 78.2 82.8 80.4 79.9 81.3 83.4

† 这三个模型是零样本参考成绩(引自原文所引工作),并非在同一训练范式下复现,只用于定位水平,不能与上面的受控基线直接比大小。

作者另外自建了一套单模态字幕评测来测自由生成下的模态 grounding:从 AVHBench 字幕任务里筛出 400 个音频事件丰富且互不相同的片段,另造 400 个音轨替换版本,用 AVLM 分别以"原字幕 + 原始音轨"和"原字幕 + 原始视频帧"生成音频/视觉真值字幕(人工抽查 10%,95% 在事实与模态归因上都正确)。评测时所有模型仍同时看到视频与音频,考的正是"画面可能误导时能否照样听清"。

方法 音频(原配) 音频(替换) 视频(原配) 视频(替换) 平均
Base 18.8/27.9 15.0/13.1 22.7/28.5 23.2/29.7 19.9/24.8
SFT 22.4/31.3 17.3/16.9 19.9/33.6 20.9/40.4 20.1/30.5
DPO 22.4/27.6 18.0/16.5 22.9/23.3 23.2/27.1 21.6/23.6
OmniDPO 23.1/33.0 18.9/18.9 21.9/25.1 21.4/26.1 21.3/25.8
ACPO(本文) 27.0/43.6 23.3/30.6 20.4/27.6 20.2/29.7 22.7/32.9

单元格为 METEOR/CIDEr(×100),越高越好;各列使用模态专属参考字幕,因此指标反映的是对目标模态的忠实度。

消融实验

设置 Acc↑ Prec↑ Rec↑ 说明
完整 ACPO(两类对联合) 79.9 78.2 82.8 精确率与召回率最均衡,F1 80.4 最高
w/o 归因对 79.1 76.2 84.6 精确率明显下滑,模型更愿意确认不存在的音
w/o 敏感性对 79.3 78.3 81.0 召回率下滑,对真实音轨的注意力变弱
仅归因对(低相似替换) 77.7 76.0 81.1 归因对的最佳单类型配置
仅归因对(高相似替换) 77.0 74.9 81.1 错配越隐蔽,信号越弱
仅归因对(不换音轨) 76.9 77.6 75.7 最低分:视听仍对齐时可走视觉捷径,训练信号被架空
仅敏感性对(低相似替换)† 79.4 78.9 80.1 视频幻觉任务低于基座,属过度矫正
仅敏感性对(高相似替换)† 79.8 78.9 81.3 音频幻觉任务上单类型最好,但同样过度矫正到音频

† 该配置下视频幻觉任务准确率跌破基座模型,说明只用输入对比训练会把模型推向另一个极端。

跨骨干泛化(同一目标、同一批 5,000 条偏好对,仅调整参数高效微调范围):

骨干 音频幻觉 Acc↑ / F1↑ 总体 Acc↑ / F1↑
video-SALMONN-2 63.2 / 54.0 → 68.8 / 71.6 71.6 / 67.0 → 75.0 / 76.5
Qwen2.5-Omni 66.7 / 74.8 → 69.3 / 76.2 68.4 / 74.8 → 71.0 / 76.1

关键发现

  • 两类对是互补而非冗余。 归因对负责精确率、敏感性对负责召回率:去掉归因对精确率掉到 76.2(降 2.0),去掉敏感性对召回率掉到 81.0(降 1.8),只有两者联合才拿到最高 F1 80.4。这与它们各自盯住的失败模式一致——一个是"答错了来源",一个是"根本没在听"。
  • 音轨替换是归因对有效的前提。 换成"不替换音轨"的版本后,Acc 从 77.7 掉到 76.9、F1 从 78.4 掉到 76.6,是所有单类型配置里最差的:音视频仍然对齐时,模型靠视觉共现就能拿到偏好答案,偏好信号退化成一条无用的视觉捷径。
  • 相似度方向在两类对上正好相反。 归因对要低相似替换(强冲突,77.7/78.4 优于高相似的 77.0/77.9),敏感性对要高相似替换(更难的负例,79.8/80.1 优于低相似的 79.4/79.5)。两类对若共用一套替换档位,就会各损失一部分收益。
  • 单用敏感性对会过度矫正。 两个敏感性单独配置的视频幻觉准确率都跌破基座(表中 †),说明"惩罚音频不敏感"这一侧推得太狠会把模型推向另一个极端;完整 ACPO 联合优化避免了这一取舍。
  • 字幕侧是"以视觉换听觉"的正向交换。 音频 CIDEr 在原配片段上从 27.9 升到 43.6、在替换片段上从 13.1 升到 30.6,这是本文最大的单项提升;视频侧则小幅下降(如视觉原配 CIDEr 28.5 → 27.6)。作者的解释是基座本身高度视觉主导,其视频字幕高分里有相当一部分来自"只描述画面",正好与纯视觉参考字幕平凡匹配;ACPO 用这一点视觉偏置换来了实质的音频 grounding,在 METEOR 与 CIDEr 上的平均分反而是所有方法里最好的(22.7/32.9)。
  • 跨三个骨干一致有效,说明这不是某个特定模型的伪影,而是音视频 grounding 的通用失败模式。
  • 推理零开销:与对比解码这类推理时改 logits 的方案不同,ACPO 改的是参数,推理流程与原来完全相同。

亮点与洞察

  • 把"归因错误"改写成"可对比的偏好对",而不是去教模型该说什么。 音频敏感性对只要求"换掉音轨后这句话不再成立",不需要额外标注该说哪句正确的听觉内容,监督成本极低却直接打中"预测与听觉无关"这个病根。这个"用不变性做负例"的思路可以迁移到任何多模态归因问题(如时序视频里"换掉未来帧答案是否改变")。
  • 被惩罚的那条回答是"流畅且合理"的,这是全篇最锋利的一刀。 归因对里 \(y^{A}_{\text{vis}}\) 本身没错,它只是答错了模态。把这种"看似正确"的样本显式作为负例,比用噪声/损坏输入构造负例(如 OmniDPO)更贴近视觉主导的真实失败模式——后者构造出的输入整体仍与原视频对齐,并不直接制造跨模态冲突。
  • 替换档位按相似度分层,并且两类对用不同档位。 这是一个容易被忽略但实验证明有效的细节:比对难度要匹配该对想塑造的行为,"强冲突"与"难负例"是两种不同的数据需求,不该用同一套采样策略。
  • 只调音频投影层。 在 5,000 条偏好对上 3 小时、单卡即可完成,且几乎不扰动已有的视觉语言能力。对于"补短板"型的对齐任务,把可训练参数限制在瓶颈模块(这里是与音频语言对齐直接相关的投影层)比全参微调更划算,也更不容易 catastrophic forgetting。
  • 自建单模态字幕评测是一份可复用的评测设计。 用"原字幕 + 单一模态原始输入"让强 AVLM 反向生成模态真值字幕,再用模态专属参考算 METEOR/CIDEr,绕开了现有数据集音频标注过于笼统("someone is speaking")的问题。做多模态 grounding 评测时这套"单模态参考 + 替换输入"的协议可以直接借用。

局限与展望

  • 会牺牲视觉细节。 作者给出的第一个失败例子是"人物拆包装 + 塑料袋窸窣声":基座、SFT、DPO 都只写画面、完全忽略声音,OmniDPO 抓到了一部分声音却丢掉视觉细节,ACPO 两者都答对,但把"装三明治的包装"泛化成了"揉塑料"。也就是说 ACPO 在联合字幕任务上会以听觉优先,视觉内容被近似替换——这在需要精确视觉描述的场景里是有代价的。
  • 短暂、细微的音频事件仍然漏。 第二个失败例子里,语音之外另有一声很轻的硬币碰撞,所有方法(含 ACPO)都没听到。提升模态归因不等于提升音频事件的感知灵敏度,这提示后续可能需要显式的事件级监督或更细粒度的音频 token 建模。
  • 训练数据依赖 LLM 分解出的模态字幕,且分解质量没有单独评测。 \(y_{\text{vis}}\) / \(y_{\text{aud}}\) 的干净程度直接决定偏好对的上限;论文只报告了对自建评测集真值字幕的 10% 抽查(95% 正确),没有报告训练用 5,000 条字幕的分解质量。一个自然的改进是用多模型投票或人工校核来过滤噪声分解。
  • 音频替换的合理性靠相似度分位数控制,覆盖面有限。 替换音轨来自同一批数据分布,遇到训练分布之外的音类(如罕见器械声、非语音人声)时,低相似替换可能制造出物理上完全不可能的音视频组合,模型可能学到"音频优先"这一较粗的规则而非细粒度归因。替换池的多样性值得单独做消融。
  • 只改了音频投影层。 这既是效率优势也是天花板:如果视觉主导的一部分来自 LLM 内部的注意力分配(已有工作观察到音频 token 注意力权重偏低),仅训练投影层可能无法完全纠正。把 ACPO 的目标与注意力层面的干预结合,是一个直接的后续方向。

相关工作与启发

  • vs OmniDPO:最接近的先行工作是 OmniDPO,它给音频或视频流加噪,训练模型偏好干净输入下的回答。区别在于加噪后的输入整体仍与原视频对齐,因此并不直接制造跨模态冲突,对"视频主导音频幻觉"这一具体失败模式作用有限;ACPO 则是换成一段别人的真实音轨,让视听证据真正冲突,并要求模型对"听谁的"做出明确判断。实验上 ACPO 在音频幻觉 F1(80.4 vs 79.0)与 CMM 过度依赖视觉(81.3 vs 77.3)上都更好,而且本文把 OmniDPO 的噪声对与文本对按 40% 混进自己的训练,相当于把它的信号作为补充而非替代。
  • vs DPO(直接用在音视频对上):朴素 DPO 用固定的联合音视频上下文构造偏好对,但真实音视频高度相关,模型可以只靠视觉共现拿到"偏好"的音频字幕,对齐目标因此被架空。ACPO 的整套数据构造(模态分解 + 音轨替换)就是为了让偏好对无法被视觉捷径满足;消融中"不换音轨"的归因对分数最低,正是对这一点最直接的证明。
  • vs AVCD(音视频对比解码):AVCD 在推理时屏蔽部分模态并调整 logits,不改底层表示且带来额外推理开销;ACPO 属于训练侧方法,改的是音频投影层的参数,推理流程无额外成本,也不会在多轮生成时反复付出代价。
  • vs V-DPO:V-DPO 用分布外物体(如把蛋糕切成石头)构造视觉幻觉的偏好对,思路与本文同源,但只处理单一非文本模态、不考虑多路输入流之间的交互。ACPO 把"构造冲突输入"这个思路推广到模态之间,这也正是跨模态幻觉与单模态幻觉的本质差别。

评分

  • 新颖性: ⭐⭐⭐⭐ 双轴(输出对比 / 输入对比)偏好对是一个干净且对症的提法,把"模态归因"这一抽象问题落成了可构造的数据;相比已有的对比解码与噪声式 DPO 是实质推进,但仍在 DPO + 合成偏好对的成熟范式内。
  • 实验充分度: ⭐⭐⭐⭐ 两个公开基准 + 自建单模态字幕评测 + 三个骨干的泛化验证 + 成对的设计消融(对类型 / 替换相似度)覆盖得相当完整;不足是模态字幕分解质量、替换池多样性没有单独评测,音频侧评测集规模(400 条)也偏小。
  • 写作质量: ⭐⭐⭐⭐ 动机部分用"帧数增加反而变差 / 加音频不变差"的不对称证据把问题讲得很清楚,双轴设计与消融结果一一对应;局限一节坦诚给出两个反例。公式在缓存 PDF 抽取时损坏,给复现造成一点障碍。
  • 价值: ⭐⭐⭐⭐ 只训一个投影层、单卡 3 小时即可显著降低音频幻觉,而且换骨干依然有效,落地成本很低;自建的单模态评测协议对整个 AVLM 幻觉研究方向都有复用价值。