先这样答
这个问题可以从评测发现、成因分析和策略解决三个层面回答。
发现阶段最直接的方法是做模态消融评测。把图像输入替换为空白图或噪声图——若输出几乎不变,说明模型没在使用图像。也可以对比纯文本与图文双输入的任务指标差,差距小说明视觉贡献低。在训练侧,可通过监控梯度与表示来发现,比如查看视觉分支的梯度范数占比,或观察连接器输出在语言模型各层的注意力占比,权重过低则存在文本主导倾向。
成因通常是预训练语言模型的文本先验太强,且数据存在偏差,大量样本不看图也能答(例如图文弱相关,或答案直接在文本里);或是连接器容量不足、训练阶段安排不当导致视觉部分没训够。解决时数据侧是核心,需清洗掉看图与否答案相同的样本,提高图文强相关样本比例,让答案必须依赖图。训练侧可分阶段先训连接器再解冻更多层,提高视觉分支学习率,或单独加视觉相关的辅助损失。评测侧要建模态依赖的回归指标防止复发。
面试官面前可以这样收束:处理这个问题的标准动作是,先证明模型真的在忽略图像,再从数据相关性与训练配比两头修。
面试官会怎么追问
- 「具体怎么清洗那些不看图也能答的样本?」 可以利用纯文本模型对训练集进行过滤。把多模态问答对的问题直接输入给纯文本模型,若能直接输出正确答案,说明该样本存在文本捷径。将这类样本剔除,保留纯文本模型答错但多模态模型答对的样本。
- 「加视觉辅助损失具体怎么做?」 可以在连接器输出端引入重建特征的损失。要求连接器输出的特征能够还原出原始图像的表达,强制模型在优化过程中保留并利用视觉信息,防止语言模型的交叉熵单方面主导梯度走向。
- 「为什么分阶段先训连接器能缓解这个问题?」 预训练语言模型已有很强的表达能力,若一开始就全量微调,模型会倾向直接用现成的文本能力拟合目标。先冻结语言模型只训连接器,能强制其学会把视觉特征映射到语言空间,之后再解冻更多层做联合优化。
回答的坑
- 直接把原因归结为视觉编码器参数量太小,或者模型结构设计不合理。正确的做法是先做空白图或噪声图替换评测,用消融实验的数据证明图像确实被忽略,再讨论模型容量和训练安排的问题。
- 只在训练超参数上反复调整,忽略了训练数据本身的图文相关性偏差。正确的方向是把数据清洗放在首位,确保任务本身必须依赖图像才能完成,否则模型永远会寻找纯文本捷径。
同系列的题
—— 本题完 ——