ModaLens:度量报告条件化医学视觉语言模型的图像敏感度 ModaLens: Measuring Image Sensitivity in Report-Conditioned Medical VLMs
用成对图像替换审计,量化放射报告可用性对医学VLM图像敏感度的影响
前置知识
视觉语言模型(VLM)
以大语言模型为骨干、通过投影层接收视觉编码器特征的多模态模型,如 MedGemma(基于 Gemma 3)、Qwen3.5-VL、LLaVA-NeXT。图像被切成 patch 后映射为若干视觉 token,与文本 token 拼进同一上下文一起解码,因此文本提示的内容会强烈影响模型对视觉信息的取舍。
本文审计的对象就是这类模型:当提示里已有报告文本时,VLM 是否还依赖图像 token,直接决定其临床可用性。
语言先验与文本捷径
VQA 模型不看图、仅凭问题措辞和数据集统计规律就能答对相当比例的现象,自 Goyal et al. (2017) 和 Agrawal et al. (2018) 起被系统研究。医学版本更隐蔽:报告本身就是问题的答案文本,模型可以完全绕过图像。
ModaLens 度量的正是这种捷径在放射报告在场时是否被抑制——报告效应的大小就是捷径依赖的量化。
CheXpert 标签
用 NLP 规则从放射报告文本自动抽取的 14 类胸部影像发现标签(阳性/阴性/不确定/无提及)。MIMIC-CXR 每份报告都带这套标签,本文 13 个发现专项问题和 1 个综合问题均由它构造,阳性集差异用于挑选替换图。
必须理解标签源自报告而非图像,才能领会论文最大的局限:所有以标签为准的指标度量的是与报告的一致性,不是视觉正确性。
配对反事实干预
同一试验构造两个输入,除被操纵的变量外逐 token 完全相同,输出差异即可归因于该变量。本文中 concordant 输入用病例自己的图,discordant 输入只换图像,报告与问题保持字面一致,答案是否改变(翻转)即图像敏感度。
整篇论文的估计量——配对翻转率差——都建立在这个设计上,它把相关性的语言偏置研究改造成因果干预审计。
首 token logit 读出与 logit lens
贪心解码下取第一个生成位置上小写 yes/no token 的 logit 差 $m=\log p(\text{yes})-\log p(\text{no})$ 作为答案的连续读出,符号即预测、绝对值即置信度。logit lens 则把中间层残差流直接投影到输出词表,观察答案沿深度的形成过程。
这是把二值翻转率扩展为连续 margin 分析、以及第 4.4 节逐层机制分析的基础工具;论文也诚实地讨论了其未校准的缺陷。
患者聚类 bootstrap
重抽样以患者(而非试验)为单位,每次抽 293 名患者并保留其全部试验,在每次抽样内部计算配对差与比值,最后取百分位区间。同一患者多个病例共享病历特征,按试验抽样会严重低估方差。
论文所有 95% 区间(如 +16.7 [15.6, 17.7])都是这样算的,不理解聚类就无法判断哪些差异真正显著。
研究动机
在通用视觉问答中,模型不看图、仅凭语言先验答题的现象早已被反复证实(Goyal et al. 2017、Agrawal et al. 2018 的语言偏置研究),多模态大模型依然会漏看显眼视觉细节、幻觉出不存在的物体(Tong et al. 2024;Rohrbach et al. 2018;Li et al. 2023b),医学 VQA 也把去偏置列为明确目标(Wan et al. 2025)。放射科场景把这个问题推向极端:报告本身就是对影像的专家解读,问题的答案往往已经写在报告里。若模型只是照抄报告,那么当报告描述的是既往检查、书写有误、或所提病灶已经消退时,其答案就可能与当前图像矛盾;而在强制二选一的输出下,报告与图像一致时这种抄写行为完全不可见。最接近的已有工作 Lotfinia et al.(2026)用目标/对照遮挡和同标签图像替换跨九个系统度量图像依赖,但其提问协议根本不提供报告,无法回答临床部署中更真实也更关键的问题:报告在场时,模型究竟还看不看图。
本文的目标是本文要定量回答:报告的可用性是否、以及在多大程度上改变模型对图像的敏感度。具体做法是构建 ModaLens 成对图像替换审计:在 MIMIC-CXR 测试划分上取 293 名患者的 3,199 个病例,每个病例渲染两次——concordant 输入用自己的正位胸片,discordant 输入换成另一研究的图像(通常来自同一患者),问题与报告文本保持逐字不变,然后对比两种输入下模型答案是否翻转。实验在 MedGemma-27B 上进行,对每个病例问 14 个问题(13 个 CheXpert 发现专项问题加 1 个综合问题),共 44,786 对试验,以患者聚类的成对翻转率差作为报告效应的估计量;并用连续答案 margin、模态消融、逐层投影读取和报告 token 注意力敲除,进一步刻画该效应的机制与边界。
与已有工作不同的是,本文的独特切入角度有三点。第一,把报告是否在场作为被操纵的实验因子,而不是像以往工作那样只在无报告提示下测图像依赖;同一病例在同一张替换图上跑两遍,报告效应以配对差形式估计,患者内和病例内的变异被天然控制住。第二,把测量目标严格定义为对图像干预的答案敏感度,而非对所问病灶的视觉定位——整图替换,除图像外所有 token 完全相同,翻转率的语义因此非常干净。第三,不止于行为层面:论文同时验证了三种读出方式、替换种子、模板顺序、答案选项顺序、警告措辞等十余个鲁棒性维度,用逐层 logit-lens 投影与累积注意力敲除把行为效应与报告信息在何处直接进入回答的机制问题区分开,并如实报告了转向向量与线性探针两个负结果,这种审计式的严谨在同类工作中少见。
核心方法
直觉上,ModaLens 是一次配对对照实验:把报告是否在场以外的所有因素都固定住,只让图像改变,看模型的答案动不动。技术路线上,每个试验由四个元素构成:一例(某研究的一张正位图加上分配好的替身图)、14 个固定问题、同一份报告文本、模型自带的 chat 模板。提示词为一个用户轮:图像块在前,随后是文本块 Report: 、一个空行和 Question: ;text-first 变体交换两个块的顺序。解码为贪心,读出取首个生成位置上小写 yes/no token 的 logit 差,即 margin $m=\log p(\text{yes})-\log p(\text{no})$,符号在替换后改变即记一次翻转。主估计量是无报告减有报告的成对翻转率差,95% 区间用 293 名患者聚类的百分位 bootstrap(全 14 问题主分析 10,000 次抽样,其余 2,000 次),并在抽样内同时计算配对差与比值。
核心创新是把报告锚定从一句定性批评变成一个可测的反事实量。与 Lotfinia et al. 的图像依赖分数(遮挡加同标签替换、无报告提示)本质不同,ModaLens 的关键控制是:同一病例、同一张替换图、同一问题与报告逐字不变,只有图像被换掉——因此任何输出变化都只能归因于图像干预本身。报告在场时翻转率低,说明输出被报告锚定;报告不在场时翻转率高,说明模型此时才真正读图。这一配对结构还支持进一步分解:把试验按替换是否改变所问发现的 CheXpert 标签分层(9,347 对 label-changed),用连续 margin 的绝对变化 $|m_d-m_c|$ 度量未越过判定边界的漂移,并用从第 $l$ 层起向上累积屏蔽文本对报告 token 的注意力作为因果干预,同时设置问题加指令 span 与等长图像 span 两个对照,把何时需要直接访问报告与报告信息在何处被复用这两类问题区分开。
方法步骤详情
第一步,构建队列:从 MIMIC-CXR 测试划分取 293 名患者、2,816 个源研究,得到 3,199 个病例(3,180 患者内替换、19 跨患者)。替身图优先从同一患者其它正位研究、且 CheXpert 阳性集与源不同的研究中均匀抽取,失败则取同患者任一研究,单研究患者改为跨患者;不匹配体位与时序,SSIM 一律低于 0.9。第二步,提问:每例 13 个发现专项问题加 1 个综合问题(目标为 13 项任一阳性即 yes),共 44,786 对试验(9,347 对标签改变);次级设计每例只问主标注发现。第三步,运行模型:MedGemma-27B(62 层、bfloat16、单卡 H200/H100),图像 896×896、256 token、关闭 pan-and-scan,贪心解码。第四步,读出与验证:原始提示用小写首 token 读出 $m=\log p(\text{yes})-\log p(\text{no})$;另设显式回答指令协议,交叉验证 token 家族与生成答案读出。第五步,对照与消融:交换文本块顺序、替换文本内容(中性散文、模板句、删除相关句、给答案句、反向标签)、分别删除图像块或 Report 行。第六步,统计与机制:患者聚类百分位 bootstrap(主分析 10,000 次)给出区间;逐层投影 margin 变化;400 例单问题上做从第 $l$ 层向上的累积报告 token 注意力敲除。
技术新颖性
技术新颖性体现在测量协议与对机制结论的诚实约束两方面。协议层面:显式答案指令与原始提示两条协议并行报告,并验证三种读出在指令下互相吻合(差不超过 0.6 点),从而明确读出选择只影响无报告率的绝对值、不影响效应方向;作者还主动发现综合问题措辞与目标不匹配(措辞问是否显示任何急性心肺发现,目标却含支持设备和骨折),随即用去掉它的 13 问题子集重估(小写读出 13.36 点、生成答案 15.5 点),并把主分析声明为 13 问题。机制层面:作者刻意区分投影可见与因果必需——tuned lens 打分更差所以只用未校准 logit lens 且声明深度结论仅为界;注意力敲除回答的是何时需要直接访问报告 token(因果边界约在 62 层中的第 24 层),而跨条件残差 patching 对错误供体对照无分离,因此声明不了何地;差值均值转向与线性探针两个尝试均为阴性也原样发表。这种把负结果和适用边界写进正文结论的审计范式,比单纯刷出一个大效应数字更有方法学价值。
实验结果
主结果(全 14 问题,44,786 对试验):显式回答指令下,生成答案随图像翻转的比例为有报告 4.26% 对无报告 20.94%,配对差 +16.7 点 [15.6, 17.7],比值 4.9;三种读出吻合在 0.6 点内。原始提示加小写首 token 读出给出 4.70% 对 17.07%,+12.37 点 [11.19, 13.57];单问题设计同向(1.41% 对 10.28%,+8.9 点)。连续 margin:有报告时平均绝对变化 0.690,32.2% 的试验变动超 0.5 而只有 4.7% 翻转;无报告时均值 2.307,82.9% 的试验变动更大,胸腔积液变动最大(0.86 对 3.96)。去掉综合问题后效应不掉(4.78% 对 18.14%,13.36 点)。鲁棒性:MedGemma-4B 多翻 2.7 点;指令下 Qwen3.5-9B +13.3、Qwen3.5-27B +19.60、LLaVA-NeXT (Mistral-7B) +12.75 点,6 个预注册发现上 13.1–20.9 点;调整图像距离与标签改变后报告在场 OR=0.12 [0.09, 0.17];800 对人工标注上一致率 0.378 对 0.519。消融:仅报告平衡准确率 0.770 最高,加图反降到 0.717,仅图+问题 0.665,仅问题恒答 yes;图像在无报告时 +0.165、有报告时 −0.053,交互 −0.218。异质性:14 个发现中 5 个无报告翻转率 ≤4.1%(模型近乎恒答 yes,yes 率 97.8%–100%,肺不张与支持设备零翻转),其余 9 个在 16.8%–32.0%。机制:投影 margin 变化自第 46 层起无报告轨迹持续在上(0.05→4.54 对 0.04→1.31);报告 token 注意力敲除从第 0 层起把单问题翻转率从 1.50% 抬到 7.75%(基线 12.00%),第 22 层过冲到 14.00%,第 32 层起回基线,单层敲除不超 2.50%,因果边界约在第 24/62 层;无报告的 VQA-RAD 上翻转率 61.5%。转向向量与线性探针两个机制尝试均为阴性。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 全 14 问题图像替换翻转率(原始提示,小写首 token 读出) | 配对翻转率差(无报告 − 有报告),患者聚类 95% bootstrap | 有报告 4.70% [4.35, 5.06],无报告 17.07% [15.78, 18.39] | 有报告行作为参照 | +12.37 点 [11.19, 13.57],比值 3.6 [3.4, 3.9] |
| 全 14 问题图像替换翻转率(显式回答指令,生成答案读出,主估计) | 配对翻转率差 | 有报告 4.26%,无报告 20.94% | 有报告行作为参照 | +16.7 点 [15.6, 17.7],比值 4.9 |
| 跨模型家族复制(显式指令下的报告效应) | 配对翻转率差 | Qwen3.5-9B +13.3、Qwen3.5-27B +19.60、LLaVA-NeXT (Mistral-7B) +12.75 点 | MedGemma-27B +16.7 点 | 三个家族全部同向且区间不含零;6 个预注册发现上 13.1–20.9 点 |
| 模态消融:报告与图像对判读的贡献(对报告标签评分) | 平衡准确率 | 仅报告 0.770,报告+图像 0.717,仅图+问题 0.665,仅问题为机会 | 仅报告为最优单元(14 个发现中 9 个) | 图像交互 −0.218(无报告时 +0.165,有报告时 −0.053) |
局限与改进
作者承认的边界:所有标签源自报告文本,审计只说明读出是否随图像移动,无法判断跟随报告何时在视觉上是错的——报告是专家解读,服从准确报告可能理性;无独立图像标注,唯一的图像级标签只是 TorchXRayVision 分类器代理。headline 读出是小写首 token,其概率质量可忽略只是代理;无报告的单问题率依赖读出选择(10.3% 对 17.4%),好在方向不依赖。每例只换一张图、不匹配体位/时序/其余 13 个标签,估计偏保守。翻转率对文本块顺序敏感(无报告时 text-first 降 4.3 点,有报告时顺序效应跨设计不可复现),不应读作顺序无关的模型属性。全部报告效应来自单一数据集——MIMIC-CXR 测试划分、293 名患者、单机构、英文正位胸片,无报告配对场景可外推;headline 只在 MedGemma 一个家族一个快照上(指令协议下才跨三家族复制)。我的补充观察:label-changed 无分离近乎注定,因两组标签同源于报告;61.3% 对 34.4% 的正确到错误迁移更像标签噪声镜像;五个恒答 yes 的发现对翻转率指标完全不敏感,汇总 17.07% 主要由九个发现驱动。
独立分析的弱点
独立分析的弱点:其一,全图替换使解释停留在图像干预敏感度层面,无法定位到所问病灶区域;用区域级替换(只涂改肺野局部或心缘)可把报告锚定拆成全局惰性与局部忽视两种成分。其二,翻转率把模型先验与图像信息混在一起——对恒答 yes 的发现(肺不张、支持设备零翻转)翻转率几乎无信息量,逐发现分析应改用 margin 分布或校准概率位移;论文自己的 Cohen's $\kappa$ 分析(支持设备一致率 0.946 而 $\kappa$ 仅 0.370)已暗示这点。其三,标签来自报告使 label-changed 分层与正确率迁移解释力有限,应引入多名放射科医生独立图像标注作金标准。其四,顺序效应(无报告时 text-first 降 4.3 点;单问题设计下有报告率从 1.41% 翻倍到 2.84%)说明单次提示的绝对数不稳定,下游部署应对目标模型重跑顺序对照,这会推高审计成本。其五,机制结论外推面很窄:注意力敲除只在 MIMIC-CXR 上与对照分离,图像 token 敲除在 VQA-RAD 与 OmniMedVQA 无差异、SLAKE 上无法运行对照,机制部分实际只是单数据集结论。
未来方向
可延伸方向:作者提出的首要后续是独立图像标注,用以判定这种报告锚定何时产生视觉错误答案;在此基础上应做报告与图像的时序一致性研究——给模型提供检查日期并构造真正过时的报告序列,而不是目前只改措辞的警告(警告仅 +0.28 点 [−0.13, 0.74],且模型与替身标签一致率仍只有 8.49%)。方法上,可把 ModaLens 配对审计改造成训练信号:用图像替换一致性损失或 DPO 式偏好对(concordant 回答优先于 discordant 回答)压缩无报告时的翻转率,并检验训练后报告效应是否按预期反向变化。机制侧,注意力敲除已把直接访问边界约束在第 24/62 层附近,但残差 patching、差值均值转向和线性探针全部失败,值得用路径级修补、跨层移码或 SAE 特征级分析定位报告信息在浅层被复制到哪些位置。应用侧,可把翻转率纳入医疗 VLM 部署前检查单;在 6 个按患病率规则预注册的发现上(三家族 13.1–20.9 点)扩展为跨模型系统基准;并推广到纵向多研究、多文本源(EHR、实验室数值、既往影像结论)条件下的模态敏感度审计。
复现评估
复现条件较好,门槛在数据侧。代码、确切提示词与每个数字对应一条运行记录的运行档案都在 github.com/criticaldata/MODALENS 开源,运行记录内含各包精确版本(Python 3.11、PyTorch 2.10、Transformers 5.3),模型权重公开(MedGemma-27B/4B、Qwen3.5-9B/27B、LLaVA-NeXT、TorchXRayVision),算力为单张 H200/H100、bfloat16。主要成本来自 44,786 对试验乘以多个协议(读出验证、顺序交换、文本对照、消融)加 62 层逐层投影与敲除,单模型全流程估计数十 GPU 小时,普通研究组数天内可复现主表。主要障碍是 MIMIC-CXR:需 PhysioNet 凭证、签署数据使用协议、数据不得再分发且图像与报告不得离开机构硬件;替换图清单与 800 试验人工标注是否随仓库发布论文未明说,但替换种子实验(重抽两次最大改变 0.34 点)表明自行重抽安全。VQA-RAD(CC0)、SLAKE(CC BY 4.0)、OmniMedVQA(公开)与 ProbMed(gated)均可独立获取,便于复现无报告部分。
论文图表