Fine-grained Adaptive Visual Prompt for Generative Medical Visual Question Answering精度
AAAI 2025 论文精读:FAVP——面向生成式医学视觉问答的细粒度自适应视觉提示方法
- 1. 论文信息
- 2. 研究背景:什么是 MedVQA?
- 3. 现有方法的问题
- 4. 论文核心思想
- 5. 重点术语解释
- 6. FAVP 整体框架
- 7. 模块一:Adaptive Visual Prompt Creator
- 8. 模块二:Hierarchical Answer Generator
- 9. 为什么要使用 PEFT 和 LoRA?
- 10. 三阶段训练策略
- 10.1 Stage 1:医学图文对齐
- 10.2 Stage 2:大规模医学 VQA 训练
- 10.3 Stage 3:下游数据集微调
- 11. 实验数据集
- 12. 实验结果分析
- 13. 消融实验分析
- 13.1 不同 Visual Prompt 的影响
- 13.2 LoRA Rank 的影响
- 13.3 不同训练阶段的影响
- 14. 论文创新点总结
- 14.1 提出 Fine-grained Adaptive Visual Prompt
- 14.2 设计 Adaptive Visual Prompt Creator
- 14.3 提出 Hierarchical Answer Generator
- 15. 论文不足
- 15.1 依赖分割质量
- 15.2 Prompt 类型仍需选择
- 15.3 复杂医学推理仍然困难
- 15.4 泛化能力仍需进一步验证
- 16. 我的理解与启发
- 17. 总结
1. 论文信息
论文标题:Fine-grained Adaptive Visual Prompt for Generative Medical Visual Question Answering
中文翻译:面向生成式医学视觉问答的细粒度自适应视觉提示方法
论文提出了一个名为FAVP的方法,全称是Fine-grained Adaptive Visual Prompt,中文意思是细粒度自适应视觉提示。它主要用于Generative Medical Visual Question Answering,也就是生成式医学视觉问答。
这篇论文的核心目标是:
让大模型在回答医学图像相关问题时,不只是粗略地看整张图,而是能够更准确地关注图像中的器官、病灶或局部区域,从而提升医学问答的准确性。
2. 研究背景:什么是 MedVQA?
MedVQA的全称是Medical Visual Question Answering,中文是医学视觉问答。
它的输入通常包括两部分:
- 一张医学图像,例如X-ray(X 光片)、CT(计算机断层扫描)、MRI(磁共振成像)、眼底图像等;
- 一个自然语言问题,例如“病灶在哪里?”、“图像中是否存在异常?”、“该图像的糖尿病黄斑水肿等级是多少?”
模型需要根据医学图像内容回答问题。
例如:
Input: 医学图像 + 问题:Where is the lesion located? Output: Right cerebellopontine angle也就是说,MedVQA 不只是普通的图像问答,它要求模型同时具备:
- 医学图像理解能力;
- 语言理解能力;
- 图像与文本之间的跨模态对齐能力;
- 医学知识推理能力。
3. 现有方法的问题
传统 MedVQA 方法大多把任务看成一个分类问题,也就是从固定答案集合中选择答案。
这种方法叫:
Discriminative Method:判别式方法
它的优点是训练和评估相对简单,但缺点也很明显:答案空间被限制住了。
例如,如果候选答案集合中没有正确答案,模型就不可能回答正确。因此,这类方法并不适合真实医疗场景中的开放式问题。
后来,研究者开始使用大语言模型,也就是:
LLM:Large Language Model,大语言模型
结合 LLM 的方法通常被称为:
Generative Method:生成式方法
生成式方法不再从固定答案表中选择,而是直接生成自然语言答案。这种方式更接近真实医疗问答场景。
但是,生成式 MedVQA 仍然存在一个核心问题:
医学图像中有大量背景噪声,而真正有用的病灶或器官区域往往很小,模型很容易看错地方。
这就是论文强调的:
Fine-grained organ-level precise localization:细粒度器官级精确定位
简单来说,就是模型不仅要看懂图,还要知道“应该看哪里”。
4. 论文核心思想
这篇论文的核心思想可以概括为一句话:
在医学图像上加入视觉提示,让大模型在回答问题之前先学会关注关键区域。
这里的关键概念是:
Visual Prompt:视觉提示
它不是文本提示词,而是在图像中加入一些视觉标记,例如:
- Circle:圆圈
- Box:边界框
- Mask:掩码
- Contour:轮廓
- Keypoint:关键点
这些视觉提示可以帮助模型定位医学图像中的重要区域。
举个简单例子:
如果问题是:
Where is the lesion located?模型直接看整张图可能会受到背景干扰。
但如果图像中病灶区域被圆圈或轮廓标出来,模型就更容易关注正确区域,从而生成更准确的答案。
5. 重点术语解释
| English Term | 中文意思 | 解释 |
|---|---|---|
| FAVP | 细粒度自适应视觉提示 | 论文提出的核心方法,用视觉提示增强医学视觉问答。 |
| MedVQA | 医学视觉问答 | 根据医学图像和问题生成答案的任务。 |
| Generative MedVQA | 生成式医学视觉问答 | 模型直接生成自然语言答案,而不是从固定答案中分类选择。 |
| Discriminative Method | 判别式方法 | 从预定义答案集合中选择答案,本质上更接近分类任务。 |
| Generative Method | 生成式方法 | 直接生成自然语言答案,更适合开放式医学问答。 |
| Visual Prompt | 视觉提示 | 在图像中加入圆圈、框、掩码、轮廓等提示,引导模型关注关键区域。 |
| Language Prompt | 语言提示 | 通过文本指令引导模型回答问题。 |
| Fine-grained | 细粒度 | 关注器官、病灶、局部组织等更小尺度的信息。 |
| Adaptive | 自适应 | 根据不同图像或数据集选择更合适的提示方式。 |
| Cross-modal Localization | 跨模态定位 | 根据文本问题,在图像中找到对应的视觉区域。 |
| LLM | 大语言模型 | 用于理解问题并生成答案的语言模型。 |
| PEFT | 参数高效微调 | 只训练少量参数,降低大模型微调成本。 |
| LoRA | 低秩适配 | 一种常用的 PEFT 方法,通过低秩矩阵实现高效微调。 |
6. FAVP 整体框架
论文提出的 FAVP 框架主要包含两个模块:
- Adaptive Visual Prompt Creator, AVPC:自适应视觉提示生成器
- Hierarchical Answer Generator, HAG:层次化答案生成器
整体流程如下:
医学图像 + 问题 ↓ AVPC 生成局部视觉提示 ↓ 得到 mask / circle / box / contour 等候选提示 ↓ HAG 提取局部特征和全局特征 ↓ 映射到语言空间 ↓ LLM 生成医学答案这个框架的关键在于:
模型不是盲目地看整张图,而是在视觉提示的帮助下重点关注医学相关区域。
7. 模块一:Adaptive Visual Prompt Creator
Adaptive Visual Prompt Creator,简称AVPC,中文是自适应视觉提示生成器。
这个模块的作用是:
自动从医学图像中生成可能有用的局部区域提示。
医学 VQA 数据集通常没有提供病灶或器官的精确标注,所以论文不能直接使用人工标注的框或 mask。
为了解决这个问题,作者使用了:
Grid-wise Keypoints:网格关键点
也就是在图像上均匀生成一组关键点,然后利用这些关键点引导医学图像分割模型生成 mask。
论文中使用的分割模型是:
SAM-Med2D:医学图像版本的 Segment Anything Model
AVPC 的大致步骤如下:
原始医学图像 ↓ 生成网格关键点 ↓ 输入 Image Encoder 和 Prompt Encoder ↓ 使用 SAM-Med2D 生成 Global Mask ↓ 将 Global Mask 分割为多个 Local Mask ↓ 生成不同类型的 Visual Prompt其中:
Global Mask:全局掩码
表示覆盖相关器官或区域的大范围 mask。Local Mask:局部掩码
表示单个器官、病灶或局部区域。NMS Threshold:非极大值抑制阈值
用于筛选候选区域。如果阈值设置不合适,可能会漏掉重要区域。
AVPC 的意义在于:
即使没有人工标注,模型也可以自动构造“应该看哪里”的视觉线索。
8. 模块二:Hierarchical Answer Generator
第二个模块是:
Hierarchical Answer Generator, HAG:层次化答案生成器
它的作用是根据 AVPC 生成的视觉提示和原始图像,提取图像特征并生成答案。
HAG 主要包含:
- Shared ViT:共享视觉 Transformer
- Hierarchical Extractor:层次化特征提取器
- LLM:大语言模型
这里的ViT指的是:
Vision Transformer:视觉 Transformer
它负责提取图像特征。
HAG 会同时提取两类信息:
Local Representation:局部表示 Global Representation:全局表示其中:
Local Representation:局部表示
表示病灶、器官等局部区域的视觉特征。Global Representation:全局表示
表示整张医学图像的整体语义信息。
随后,模型会将局部特征和全局特征融合,并通过Q-Former和线性层映射到语言空间,形成可以输入给 LLM 的视觉 token。
Visual Token:视觉 token
指的是把图像信息转换成类似文本 token 的表示,使大语言模型可以理解图像内容。
最后,LLM 根据视觉 token 和问题文本生成医学答案。
9. 为什么要使用 PEFT 和 LoRA?
医学大模型通常参数量很大,如果直接全参数微调,会带来几个问题:
- 训练成本高;
- 显存占用大;
- 容易破坏原模型已有能力;
- 对数据规模要求更高。
因此,论文采用了:
PEFT:Parameter-Efficient Fine-Tuning,参数高效微调
其中具体使用的是:
LoRA:Low-Rank Adaptation,低秩适配
LoRA 的核心思想是:
冻结原模型的大部分参数,只训练少量新增的低秩矩阵。
这样可以在较低训练成本下,让模型适配医学场景。
论文中,FAVP 只需要约0.1B可训练参数,相比 LLaVA-Med 这类 7B 规模模型,训练成本更低,但性能仍然很强。
10. 三阶段训练策略
论文采用了三阶段训练策略,让模型逐步从通用多模态能力过渡到医学视觉问答能力。
10.1 Stage 1:医学图文对齐
第一阶段使用ROCO数据集。
目标是让模型学习医学图像和医学文本描述之间的对应关系。
可以理解为:
让模型先学会:医学图像和医学文本如何对应10.2 Stage 2:大规模医学 VQA 训练
第二阶段使用PMC-VQA数据集。
目标是让模型进一步学习医学视觉问答任务。
可以理解为:
让模型学会:如何根据医学图像回答问题10.3 Stage 3:下游数据集微调
第三阶段在三个下游数据集上进行训练和评估:
- VQA-RAD
- SLAKE
- DME
可以理解为:
让模型适配具体医学 VQA 数据集三阶段训练整体如下:
Stage 1:医学图文对齐 Stage 2:医学问答能力学习 Stage 3:下游任务微调与评估11. 实验数据集
论文主要在三个数据集上进行实验。
| Dataset | 中文说明 | 特点 |
|---|---|---|
| VQA-RAD | 放射学视觉问答数据集 | 包含 X-ray、CT、MRI 等图像问题。 |
| SLAKE | 医学视觉问答数据集 | 包含语义标注和医学知识信息。 |
| DME | 糖尿病黄斑水肿数据集 | 偏眼科图像,关注准确率和一致性。 |
12. 实验结果分析
在VQA-RAD数据集上,FAVP 的表现明显优于已有生成式方法。
其中,FAVP from Vicuna 在 open-set 问题上达到71.9,closed-set 问题上达到88.2。
相比之下,LLaVA-Med 的 open-set 为64.8,closed-set 为83.1。
这说明 FAVP 在开放式医学问答中有明显优势。
在SLAKE数据集上,FAVP from Vicuna 的 open-set 为87.2,closed-set 为88.1,同样超过已有生成式方法。
在DME数据集上,FAVP 达到:
Accuracy:84.73 Consistency:97.82其中:
- Accuracy:准确率
- Consistency:一致性
医学问答中的一致性非常重要。因为同一张医学图像可能会被问多个相关问题,如果模型前后回答矛盾,就会降低临床可信度。
13. 消融实验分析
13.1 不同 Visual Prompt 的影响
论文比较了多种视觉提示方式:
| Prompt Type | 中文意思 | 解释 |
|---|---|---|
| Mask | 掩码 | 直接突出目标区域。 |
| Circle | 圆圈 | 用圆形标记目标区域。 |
| Box | 边界框 | 用矩形框住目标区域。 |
| Contour | 轮廓 | 标出目标边界。 |
| Keypoint | 关键点 | 用点提示目标位置。 |
| Blur Mask | 模糊掩码 | 通过模糊方式突出目标区域。 |
| Blur Circle Mask | 模糊圆形掩码 | 结合圆形提示和模糊处理。 |
| Blur Box Mask | 模糊框形掩码 | 结合边界框和模糊处理。 |
实验结果表明,大多数视觉提示都能提升模型性能。
其中:
- 在VQA-RAD上,Circle在 open-set 问题上表现最好;
- 在SLAKE上,Contour在 open-set 问题上表现最好;
- 不使用视觉提示,即w/o Prompt,整体表现更弱。
这说明视觉提示不是简单的图像装饰,而是真的帮助模型完成区域定位和答案生成。
13.2 LoRA Rank 的影响
论文还分析了不同LoRA Rank对性能的影响。
LoRA Rank:LoRA 秩
它可以理解为 LoRA 适配层的容量。
如果 rank 太小,模型适应医学领域的能力不足;
如果 rank 太大,又可能引入过多可训练参数,影响原模型已有知识。
论文发现:
ViT 的 LoRA rank 设置为 4 时较优 LLM 的 LoRA rank 设置为 8 时较优这说明 PEFT 并不是参数越多越好,而是需要在领域适配能力和模型稳定性之间取得平衡。
13.3 不同训练阶段的影响
论文还验证了 Stage 1 和 Stage 2 是否必要。
结果表明:
- 只使用 Stage 1 效果不好;
- 只使用 Stage 2 也不是最优;
- Stage 1 + Stage 2 + Stage 3 同时使用时效果最好。
这说明医学多模态模型不能只依赖最后一个数据集微调,而需要先学习医学图文对齐,再学习医学问答,最后适配具体任务。
14. 论文创新点总结
我认为这篇论文的主要创新点有三个。
14.1 提出 Fine-grained Adaptive Visual Prompt
论文提出了Fine-grained Adaptive Visual Prompt,也就是细粒度自适应视觉提示。
它的作用是帮助模型在医学图像中关注局部关键区域,从而提升生成式医学视觉问答的准确性。
14.2 设计 Adaptive Visual Prompt Creator
论文提出了Adaptive Visual Prompt Creator, AVPC。
它可以在没有人工标注的情况下,自动生成器官级或病灶级的视觉提示。
这对于医学任务很重要,因为医学数据的精细标注成本通常非常高。
14.3 提出 Hierarchical Answer Generator
论文提出了Hierarchical Answer Generator, HAG。
它同时利用局部区域特征和全局图像特征,再将这些视觉信息映射到语言空间,让 LLM 生成答案。
这使得模型既能关注局部病灶,又不会丢失整张图像的上下文信息。
15. 论文不足
虽然 FAVP 的效果不错,但它也存在一些不足。
15.1 依赖分割质量
FAVP 的视觉提示依赖 SAM-Med2D 生成的 mask。
如果初始 mask 生成不准确,后续视觉提示可能会误导模型。
15.2 Prompt 类型仍需选择
虽然论文强调 adaptive,但不同数据集最优的 visual prompt 类型并不完全相同。
例如:
VQA-RAD 更适合 Circle SLAKE 更适合 Contour这说明在实际应用中,仍然可能需要根据数据集特点选择合适的视觉提示形式。
15.3 复杂医学推理仍然困难
论文中的定性实验显示,在 DME 等需要复杂医学知识推理的任务上,FAVP 仍然可能出错。
这说明当前多模态大模型虽然可以借助视觉提示改善定位能力,但在专业医学推理方面仍有提升空间。
15.4 泛化能力仍需进一步验证
论文主要在 X-ray、CT、MRI、眼底图像等常见医学模态上验证。
未来还需要在更多医学模态上测试,例如:
- PET scans:PET 扫描
- Mammography:乳腺影像
- Histopathological images:病理图像
16. 我的理解与启发
这篇论文的价值不只是提出了一个新的 MedVQA 模型,而是提出了一个很重要的方向:
在医学多模态任务中,视觉提示可能比单纯的文本提示更加关键。
对于普通图像,大模型可能只靠文本 prompt 就能较好理解图像内容。
但是医学图像具有特殊性:
病灶小 背景噪声大 器官结构复杂 图像模态多样 问题往往指向局部区域 答案需要医学知识因此,如果模型只是看整张图,很容易受到无关区域干扰。
FAVP 的思路是:
先通过视觉提示帮助模型定位关键区域,再利用大语言模型的生成能力回答问题。
这个思想对后续医学多模态研究很有启发。
例如,在以下任务中都可以考虑引入 visual prompt:
- 医学图像报告生成;
- 病灶定位问答;
- 超声图像解释;
- CT/MRI 辅助诊断;
- 眼底图像病变分析;
- 医学多模态大模型微调。
17. 总结
FAVP 的核心贡献可以总结为:
通过自动生成细粒度视觉提示,让生成式医学视觉问答模型在回答问题之前先学会“看准哪里”,从而提升开放式医学问答中的定位能力和答案质量。
简单来说,这篇论文解决的不是“怎么让模型说得更多”,而是:
怎么让模型先看对地方,再生成答案。
这也是医学多模态任务中非常关键的一点。
