信息速览

PMC-VQA — 生物医学图文问答大基准 AI-Ready Wikipedia
INFOBOX
| 数据集名称 | PMC-VQA |
| 英文全称 | PubMed Central Visual Question Answering / PMC-VQA: Visual Instruction Tuning for Medical Visual Question Answering |
| 别名/简称 | PMC-VQA、PMC-VQA-test、PMC-VQA-test-clean |
| 疾病分类 | 非单病种:横跨多系统疾病谱,示例可见颅内出血/脑水肿/肺癌等(随 PMC 文献图内容分布) |
| SNOMED CT | 非单编码:对应影像解读过程可映射 363679005 Imaging (procedure) / 128927009 Histopathology test / 常见疾病如 427084000 Intracranial hemorrhage / 79669009 Cerebral edema(详见 §2.1b) |
| 数据模态 | 生物医学图像(放射、病理、显微、显微+图表示意)+ 文本问答对 |
| AI 任务类型 | 医学视觉问答(MedVQA,生成式开放/四选一闭式)、视觉指令微调、图文多模态理解 |
| 样本总数 | 约 227k 问答对 / 149k 图像(v1);test 50k / test-clean 2k |
| 数据大小 | 约 21 GB(.csv + .jpg) |
| 数据格式 | CSV(元数据)+ JPEG(图像) |
| 许可证 | Creative Commons Attribution-ShareAlike 4.0(CC BY-SA) |
| 访问级别 | 开放(HuggingFace/魔搭直接下载,无需申请) |
| DUO 标签 | NCU(成品 CC BY-SA 含共享派生约束) |
| 语言 | 英文 |
| 首发日期 | 2023-05-17(arXiv v1) |
| 最后更新 | 2024-09-08(arXiv v6)/ 后续 HF 重托管至 RadGenome |
| 发布机构 | 上海交通大学 & 上海人工智能实验室 |
| 官方主页 | https://github.com/xiaoman-zhang/PMC-VQA |
| 下载地址 | https://huggingface.co/datasets/RadGenome/PMC-VQA |
| DOI | 10.1038/s43856-024-00709-2(Communications Medicine 期刊版) |
| 引用次数 | 380+(Semantic Scholar / Google Scholar 口径 348-381,截至 2026-09) |
| AI 就绪度评分 | ⭐⭐⭐⭐(4/5)— 提供 train/test/test-clean 官方划分与预生成 QA,可直接跑 MedVInT;扣分项:v1/v2 复合图版本易混用、无官方 val 划分、HF 列 schema 曾不统一 |
| 页面状态 | published |
§0 E-E-A-T 信任声明与免责声明
医学审核者:千方病案医学编辑部交叉审核:§2 医学背景(多模态影像解读临床任务、医学图像 QA 中疾病分布与金标准)、§7 偏倚分析。
数据工程审核者:千方病案医学编辑部交叉审核:§4 DAIMS 数据字典(图路径-问答字段结构)、§5 数据划分策略(v1/v2 与 test-clean)、§6 预处理 Pipeline 和坑点。
审核日期:2026-09-05
审核方式:交叉审核
利益冲突声明:千方病案医数集与上海交通大学、上海人工智能实验室无任何商业利益关联。本页面不销售 PMC-VQA 数据集本身,仅提供 AI 就绪指南与学术信息服务。编辑者未接受上述机构任何形式的资助。
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。PMC-VQA 的源图像取自 PubMed Central 开放获取子集(论文均处于 CC0 或 CC BY 许可),成品数据集本身以 CC BY-SA 发布,派生发布需遵守共享(ShareAlike)约束。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。
§1 数据集概览
§1.0 📌 30 秒速览
这是什么? PMC-VQA 是一个大规模医学视觉问答(MedVQA)数据集,包含约 227k 个问答对、对应约 149k 幅取自 PubMed Central(PMC)开放获取论文的生物医学图像。每道题都针对一张图像提问并给出 A/B/C/D 四个选项,其中一个是正确答案,覆盖放射、病理、显微乃至信号图表等超过 20 类医学图像。
为什么重要? 在它之前,医学 VQA 数据集规模都停留在数千到数万级、且多为单一放射模态。PMC-VQA 首次把问答对规模推高到十万级,并把医学 VQA 重构为"根据图像生成自然语言答案"的生成式任务,成为随后一轮生物医学多模态大模型(MLLM)浪潮的重要训练与评测基座。随文发布的 MedVInT 模型至今仍是常用基线。
我能用它做什么? 你可以用它做三件事:一是用官方划分在 train 上做视觉指令微调、训练你自己的医学多模态问答模型;二是在 test-clean(2,000 题人工核验子集)上评估任意图文大模型;三是复现或改进 MedVInT 基线。数据为开放下载、CC BY-SA 许可,约 21 GB,免申请即可拿到手。
§1.1 技术摘要
PMC-VQA 由上海交通大学与上海人工智能实验室的研究团队构建。构造管线以同团队的 PMC-OA 图文数据集为起点——从约 250 万篇科学文献中收集了约 381k 医学图文对。研究者用每条图像的题注(caption)作为输入,prompt ChatGPT 为每条题注生成 5 个带四选项的问答对,得到初筛 1,497,808 对。随后做两级过滤:先用仅在文本上训练过的 LLaMA-7B 语言模型剔除"仅凭生物医学知识即可作答、无需看图"的题,再用一个图像可答性分类器剔除"题注信息无法仅由图像得到"的题。这个分类器在 2,192 条人工标注对上以 1,752/440 划分训练,测试准确率 81.77%。过滤后得到 226,946 对、对应 149,075 幅图,平均每图 3.93 对。
| 阶段 | 输入 → 输出 | 规模(累计剩余) | 机制 |
|---|---|---|---|
| 图文收集 | PMC OA 论文 → PMC-OA 图文对 | 约 381k 图文对 | 抓取论文图与题注 |
| 问答生成 | 题注 → 5 个四选一问答 | 初筛 1,497,808 对 | prompt ChatGPT |
| 文本捷径过滤 | 问答 → 剔除可文本作答 | 剩 848,433 对 | LLaMA-7B 仅文本 |
| 图像可答性过滤 | 问答 → 剔除需题注才能答 | 剩 226,946 对 | 分类器(81.77%) |
| 划分与核验 | 清洗结果 → train/test/test-clean | test 50k / test-clean 2k | 随机抽 50k + 人工核验 2k |
官方再从清洗结果中随机抽取 50,000 对构成 PMC-VQA-test,另设一个经人工核验、质量更高的小型子集 PMC-VQA-test-clean(2,000 对,估计保留了 test 中超过 80% 的高质量样本)。训练集规模约 176,946 对。数据集随附的 MedVInT 把 PMC-CLIP 视觉编码器与 PMC-LLaMA/LLaMA 语言模型对齐,提供 encoder 型(TE)与 decoder 型(TD)两种变体。
为什么要做两级过滤? 直接从题注生成的题存在两类"假阳性":一类靠生物医学常识即可作答、根本不需要看图——例如"哪种 MRI 序列在骨髓水肿中显高信号",仅凭文本知识即可答对;另一类依赖题注里数字/统计等图像上看不到的信息——例如"多少名患者被归入中期?“必须看题注文字。前者由仅在文本上训练的 LLaMA-7B 剔除,后者由图像可答性分类器剔除。这一设计的核心动机,是让保留下来的每一道题都"真正需要读图才能答对”,从而避免模型靠捷径刷分、评测失真的问题。它是 PMC-VQA 在构造质量上区别于早期粗放式图文数据的关键工程点。
为什么又保留 v1 与 v2 两套? 初版(v1)直接复用论文原图,其中大量是"复合图"——一页被排版成多个子图(a/b/c 面板)。复合图更接近真实论文阅读场景,但也让"图-题对齐"变得模糊:一道题只针对某一子图,整图输入则充满无关面板。团队因此随后推出 v2,仅保留非复合(单图一题)版本,降低对齐歧义、便于下游直接训练。两套并存正是为覆盖两类不同需求:要"论文真实场景"用 v1,要"干净单图训练"用 v2。
评测口径的特殊性。 官方把 test 切成了两层:50k 的 PMC-VQA-test(量大、含生成噪声)与 2k 的 PMC-VQA-test-clean(人工逐条核验)。作者明确建议用 test-clean 报告结果,因为它更能反映模型真实能力、也更稳定可比。这也是许多第三方评测框架(如 EvalScope)默认把 test-clean 当作评测子集的原因。理解这套"双层 test"是正确使用本数据集的起点——见 §5 与坑点 3。
先澄清三个高频误解。
| 误解 | 事实 |
|---|---|
| “PMC-VQA 是患者级临床数据库” | 否。它是"论文图像+问答对"的文献级数据,不提供患者元数据(§2.4) |
| “它的答案可作为诊断金标准” | 否。答案为 LLM 生成并经过滤,非医师逐条医学确认(§2.6) |
| “数字高就代表模型能读图” | 未必。部分题可仅凭题注文本作答,需报告文本基线后的边际增益(坑点 5) |
把这三点先理清,能避免在后续评测与解读里走弯路。
§1.2 战略价值
对医学多模态基础模型:PMC-VQA 的价值在于把"生成式"确立为医学 VQA 的主流范式。此前 VQA-RAD、SLAKE 等把任务当作固定答案词汇上的分类,无法自然承载开放式临床问答。PMC-VQA 用十万级多样模态样本训练生成式模型,使模型能输出自由文本答案,并在 VQA-RAD 与 SLAKE 上把开放题准确率分别从 67.2% 提升到 73.7%、从 81.9% 提升到 88.2%,验证了大规模预训练的核心增益。
对评测生态:它同时提供了一个难易适中的 test 与一个挑战性更高的 test-clean,并维护了公开 leaderboard,为后续医学 MLLM 提供了可横向比较的"锚点基准"。PMC-VQA 作为基准被 PubMedVision、LLaVA-Med、MedVInT 及众多 CVPR/ICCV 论文反复引用评测,客观上形成了医学图文理解的事实标准之一。
对数据供给层的启示:PMC-VQA 展示了一条可复制的"以题注为媒介、用商用 LLM 批量化造 QA、再用更小模型反刍去噪"的高性价比造数路线。它不需要昂贵的医师逐字标注即可获得十万级指令数据,这对资源有限的医学 AI 团队是极具参考价值的范式。同时它也成为讨论"AI 造数 vs 人工标注"质量权衡的典型样本——后续 PubMedVision 等工作正是针对其标注噪声问题提出更严格的视觉筛选与多模态再生成方案。
战略价值小结。 概括而言,PMC-VQA 的历史坐标可以归结为三句话:它把医学 VQA 从"小规模分类"推向"大规模生成";它用一套可审计的"生成-过滤-核验"管线定义了十万级图文造数的可复制范式;它提供的双层 test 为医学 MLLM 设立了稳定可比的横评锚点。这三重角色正是它作为"基准+训练源+方法论样板"三重身份的价值所在。
§1.3 同类数据集横向对比
| 数据集 | 图像数 | QA 对数 | 模态 | 标注方式 | 与 PMC-VQA 的差异化 |
|---|---|---|---|---|---|
| PMC-VQA | 约 149k | 约 227k | 放射/病理/显微/图表等多模态 | ChatGPT 生成 + 两级 LLM 过滤 | 规模最大、模态最广、含复合图难题 |
| VQA-RAD | 315 | 3,515 | 放射(MedPix) | 人工专家标注 | 只覆盖放射、规模小、开放/闭式分类经典 |
| SLAKE | 642 | 约 14k | 放射(中英双语) | 人工标注 | 双语、仅放射、尺寸小 |
| PathVQA | 5k | 32.8k | 病理 | 人工生成 | 只覆盖病理单一模态 |
| VQA-Med-2021 | 5k | 5k | 放射 | 人工标注 | 放射闭式、任务固定 |
说明:VQA-RAD、PathVQA、SLAKE 等早期数据多为人工/半人工标注、模态单一且规模有限;PMC-VQA 以自动生成+过滤换取了数量级更大的规模与模态多样性,但代价是标注不含医师级医学一致性背书。二者并非优劣替代,而是"小而精的人工集做最终评测 / 大而广的自动集做预训练"的分工互补。这也解释了为什么许多研究用 PMC-VQA 预训练、再用 VQA-RAD/SLAKE 做外部验证(见 §7.8)。
§1.4 版本时间轴
| 日期 | 事件 |
|---|---|
| 2023-05-17 | arXiv v1(arXiv:2305.10415)首次发布 PMC-VQA 与 MedVInT |
| 2023-05 | arXiv 多次修订(v2-v5,数据与 MedVInT 权重同期开放于 HuggingFace) |
| 2024 | 期刊版发表于 Communications Medicine 4(1):277,DOI 10.1038/s43856-024-00709-2 |
| 2024-09-08 | arXiv v6(含复合图 v2:非复合图像版 train2/test2/images2) |
| 2024 起 | HuggingFace 数据由 xmcmic 迁移/重托管至 RadGenome/PMC-VQA |
版本时间轴提示:arXiv 首发(v1, 2023-05-17)到期刊版(2024)之间的 v2-v5 主要是方法与资料修订;v6(2024-09-08)与期刊版同期,把复合图 v2 的细节纳入正文。若论文只写年份请以期刊版为准,写 arXiv 版本号请核对 v1-v6 中你实际引用的那一版,避免张冠李戴。
§1.5 典型应用场景
- 医学多模态大模型指令微调:在 train(约 176,946 对)上做视觉指令微调,训练端到端医学图文问答助手。
- 生成式医学 VQA 评估:在 test-clean(2,000 对)上以 0-shot 方式评测图文大模型的四选一准确率,用作横向对比基线。
- 跨模态预训练知识迁移:以 PMC-VQA 做预训练,再在下游 VQA-RAD/SLAKE/ImageCLEF-2019 上微调以验证迁移增益。
- 复合图理解研究:利用含多面板的 compound figure,研究模型在整图上定位并回答子图(sub-figure)问题的能力。
- 图文评测鲁棒性研究:借助低至 17x21 的极低分辨率图像与 JPEG 压缩差异,评估视觉感知下限与文字捷径风险。
给不同角色的阅读起点。
| 角色 | 建议起点 | 重点章节 |
|---|---|---|
| 想做多模态微调的研究者 | §6.1 + §6.5 | 版本抉择、预处理、坑点 2/6/8 |
| 要拿它做评测/上榜的团队 | §8.1-§8.3 + §5.6 | 评测协议、报告自查清单 |
| 关注数据质量的审稿人 | §7.1-§7.7 | 偏倚、DAIMS、局限 |
| 医学合规/法务 | §0 + 坑点 7 | 免责、许可链路 |
按角色定位阅读,能避免在"要不要用"与"怎么报"上重复走弯路。
§2 医学背景
§2.1 ICD-11 疾病映射
PMC-VQA 不是按单一疾病收集的数据集,其图像与问答随 PMC 文献分布而覆盖多种疾病,因此下方以数据集内反复出现的代表性病种(源自检索可见的图例与问答示例)给出 ICD-11 映射示例,作为下游疾病分类任务的参考,并非数据集自带标签。
| 图中出现内容(示例) | ICD-11 编码 | ICD-11 中文名 |
|---|---|---|
| 脑内出血 | 8B00 | 脑出血(non-traumatic intracranial haemorrhage 所属) |
| 脑水肿 | 8B67 | 脑水肿 |
| 肺癌影像表现 | 2C25 | 肺癌 |
| 乳腺摄取异常(PET 示例) | 2C60 | 乳腺癌 |
| 肺部感染/浸润 | CA40 | 肺炎 |
说明:以上仅为文献图内可见病种示例。PMC-VQA 官方不提供 ICD 标签,将其用于"疾病-图像-问答"联合建模时须自行引入外部标注,并避免把图表题误当作疾病诊断证据。
§2.1b SNOMED CT 映射
| 内容类型 | 标签/术语 | SNOMED CT 编码 | 备注 |
|---|---|---|---|
| 医学影像(过程) | Imaging (procedure) | 363679005 | 图内涉及放射成像过程的泛化映射 |
| 病理检测 | Histopathology test | 128927009 | 病理图题 |
| 脑出血 | Intracranial hemorrhage | 427084000 | 示例病种 |
| 脑水肿 | Cerebral edema | 79669009 | 示例病种 |
| 肺癌 | Carcinoma of lung | 93880001 | 示例病种 |
§2.2 医学影像解读与图文问答背景
医学影像解读是放射科、病理科等医师将二维图像转化为结构化诊断结论的认知过程。传统 AI 采用"病灶检测/分类"闭式范式,输出预设类别;而 MedVQA 把这一过程形式化为"输入图像 + 自然语言问题 → 输出自然语言答案",更贴近医师在人机交互中的真实提问方式。PMC-VQA 覆盖的图不仅包括临床照片式放射影像(CT/MRI/X 光/PET),也包含病理切片、显微图以及论文中常见的统计图表与信号波形,因此模型面对的视觉-语义跨度远比单模态分类任务大。相应地,图内还常见"复合图(compound figure)"——一页图被切成多个子图(a/b/c 面板),问答需要定位到具体子图,这构成医学图文理解特有的高难场景。
为什么医学影像适合 VQA 形式? 临床读片不是单一"给出诊断"的输出,而是一连串提问与求证:先问"这是什么检查/什么部位",再问"哪里异常、表现是什么",最后才到"最可能的诊断"。VQA 把这三个层次统一成同一种问答接口,天然贴合读片心智流,也便于医生在模型回答上做"追问-校验"式的人机协作。PMC-VQA 的问题分布正是这一层次结构的体现——大量问题落在模态识别、位置描述、征象描述上,而非直接跳到诊断结论。
图表与信号为何也被纳入? 真实的生物医学论文里,结论往往不只来自影像,还来自柱状图、生存曲线、显微定量图乃至心电图信号。若模型只会读"照片式影像",在真实医学文献问答中就存在能力空洞。PMC-VQA 刻意把这些非照片图一并纳入,让模型学习"图表也是医学证据"的通用读图能力——这也使其比纯放射或纯病理数据集更像"论文级"的理解任务。
下面归纳 PMC-VQA 中几类代表图像在 VQA 问题里各自侧重的能力维度,帮助理解"为什么一张图表也需要视觉问答":
| 图像类型 | 常被提问的角度 | 需要的读图能力 |
|---|---|---|
| 断层影像(CT/MRI) | 征象、部位、层面 | 空间定向 + 征象识别 |
| 病理/显微图 | 细胞形态、染色 | 微观形态识别 |
| X 光/超声 | 结构、钙化、气道 | 全局结构扫描 |
| 统计图/曲线 | 趋势、显著性 | 数值 + 轴语义解读 |
| 复合排版图 | 指定子图定位 | 版面/子图索引 |
这份归纳基于检索可见的图例与论文图表分析,目的是让读者理解任务的"读图层次",并非 PMC-VQA 官方给出的分类标签。真实问题常同时落在多个层次上。
§2.3 临床任务定义
| 任务层次 | 输入 | 输出 | PMC-VQA 中示例 |
|---|---|---|---|
| 模态识别 | 图像 | 成像方式名称 | “本次检查所用的医学影像技术是?” |
| 解剖定位 | 图像 | 器官/区域 | “摄取异常出现在哪一区域?” |
| 征象判断 | 图像 | 病理特征描述 | “该 CT 显示何种表现?” |
| 复合图定位 | 整张复合图 | 指定子图结论 | “哪一幅子图显示病灶最大?” |
需要强调的是,PMC-VQA 的任务粒度并非标准医学诊断基准:它没有给每道题绑定一个 ICD/SNOMED 确诊标签,也没有按"正常/异常/分期"做系统分层。更准确地说,它评测的是"模型能否结合图与文字做开放的医学常识问答",其难度分布在模态识别、解剖定位、征象判断与复合图索引等层面。若把它当作疾病诊断金标准来用会高估其诊断意义——正确用法是把它当作医学图文理解能力的综合训练与评测底座。
§2.4 患者人群与图像来源
PMC-VQA 不提供患者级元数据(年龄/性别/种族/就医类型均不记录),无法据此重建受试者队列。
| 维度 | 情况 |
|---|---|
| 图像来源 | PubMed Central 开放获取子集 “Commercial Use Allowed” 分区的论文插图 |
| 时间跨度 | 随 PMC 收录历史文献,约跨 2000-2023(官方未给精确区间) |
| 年龄/性别/种族 | 不记录(非患者队列设计) |
| 就医类型 | 不适用;为文献图,非真实临床筛查流 |
| 模态广度 | 放射、病理、显微、内镜、皮肤镜、图表、信号等 >20 类 |
人群层面的说明。 由于数据源是论文插图,PMC-VQA 对"人群"的覆盖是间接且不均衡的:能发表成论文的病例更可能是罕见/典型/有研究价值的样本,而非普通门诊常见病谱。若下游任务是人群疾病筛查建模,仅用 PMC-VQA 会让模型对高患病率常见病(如普通肺炎、骨质疏松)的分布感知失真。更稳妥的做法是把 PMC-VQA 当作"图文理解预训练",再叠加真实队列数据做领域适配——这一局限也在 §7.1 与 §7.3 中作为核心偏倚列出。
§2.5 临床价值
PMC-VQA 的临床价值主要作为"研究基座"而非"部署产品":其一,为医学 MLLM 提供规模足够大的图文指令数据,使模型学会在多模态上做开放域问答;其二,其多样模态可用于评测模型"看什么模态都行"的泛化能力。论文明示模型输出未经验证、低于临床可靠门槛,用途限定在研究端。
从"论文图问答"到"临床可用"的鸿沟。 论文图多为"为了说明结论而被作者精心挑选的典型图"——病灶清晰、位置正中、标注充分,与真实门诊里噪声大、病灶小、夹带伪影的原图差异明显。这意味着用 PMC-VQA 训练出的模型,其"读懂论文图"的能力并不能简单外推到"读懂真实筛查图"。临床价值应理解为:帮助模型建立医学图像的通用语义理解,再经由真实临床数据做二次对齐与验证,而不是指望它一步到位直接可用。
§2.6 金标准
| 项目 | 说明 |
|---|---|
| 划分 | train(约 176,946 对)→ 构建 MedVInT;test(50,000)与 test-clean(2,000)→ 评测 |
| 问答标注方式 | 以题注为输入由 ChatGPT 自动生成候选,再经 LLaMA-7B 文本过滤 + 图像可答性分类器(人工标注 2,192 对训练)清洗 |
| 标注者 | 自动 LLM 生成 + 少量人工核验;test-clean 为人工逐条核验 |
| 性质 | 自动生成 + 弱监督过滤 + 人工核验混合;无医师逐条医学金标准背书 |
"金标准"在 PMC-VQA 里到底指什么? 医学研究里的"金标准"通常指某种权威的确诊依据(如病理确诊、专家共识诊断)。PMC-VQA 的 Answer/Answer_label 并不是这种临床金标准——它是"作者团队认定的该题正确选项",来源是 LLM 依题注生成并经规则/分类器过滤。更准确的说法是:test-clean 是一份经人工核验的高质量"参考答案集",其价值在评测一致性而非诊断权威性。理解这一点,才能正确解读在 PMC-VQA 上刷出的准确率:它衡量的是"图文理解能力",而不是"诊断正确率"。
§3 数据集规格
§3.0 版本抉择矩阵
| 你的需求 | 推荐版本/文件 | 大小 | 理由 |
|---|---|---|---|
| 训练多模态问答模型 | train.csv(v1 全量图) | 见 images.zip | 176k 对含复合图,覆盖最广 |
| 仅想避免复合图歧义、单图题 | train2.csv + images2.zip(v2 非复合图) | 较小 | v2 去掉多面板图,图-题一一对应更干净 |
| 评测模型、横向对比论文 | test_clean.csv | 小(2,000 对) | 人工核验、跨论文可比的推荐评测集 |
| 复现 MedVInT 基线 | train.csv 全量 | 约 21 GB | 论文与官方脚本用 v1 train |
| 大规模压力测试 | test.csv(50,000 对) | 大 | 挑战性低于 test-clean,适合大模型粗筛 |
版本抉择是 PMC-VQA 上最容易出问题的一环(坑点 2)。口诀:训练看口径、评测看 test-clean、单图看 v2、论文复现实景看 v1。若不确定论文里报的是哪个版本,先看其代码仓库的
data_files与Figure_path目录前缀(images/vsimages_2/)再对齐。
图像文件名的含义与注意事项。 Figure_path 如 PMC1064097_F1.jpg,其中 PMC1064097 是该论文的 PubMed Central ID,F1 多为论文第 1 图(figure label),后缀编号(如 pbio-0020244-g007_164)则是 PMC OA 转储时生成的唯一文件名变体。两点提示:① 同一 PMC 论文的图在 v1/v2 里的文件名可能不同(v2 通常按单面板重新命名),因此不要跨版本假设文件名相同;② 文件名本身可作为按论文(前缀 PMCxxxxxxx)分组的天然键,正好用于 §5.4 的按论文隔离。
§3.1 模态详情
| 类别 | 说明 | 图内占比(示意,非官方精确口径) |
|---|---|---|
| 放射影像 | X 光、CT、MRI、PET、超声等断层与平面影像 | 最大类别 |
| 病理图像 | H&E 等组织切片显微图 | 显著占比 |
| 显微/生物学图 | 细胞、电镜、凝胶电泳等 | 中 |
| 图表/示意/信号 | 论文中的折线图、柱状图、示意图、ECG 等波形 | 一定占比 |
官方公布的"top 20 成像模态/图类型"饼图显示,放射类(尤其 CT、MRI、X 光)与显微/病理占据主导,但尾部延伸到荧光图、示意图、统计图等非照片类型。这种"重尾"结构对模型既是广度红利也是泛化挑战:头部模态样本充足、尾部模态样本稀疏,评测时分模态报告会比总分更诚实(见坑点 4 的分层思路)。
图内文字与面板标签(OCR 维度)。 论文图通常内嵌轴标签、单位、缩写乃至子图标签(a/b/c)等文字,统计图尤其依赖对坐标轴与刻度文字的读取。这使 PMC-VQA 的题目多少掺入"图内 OCR/图表理解"的成分——模型不仅要"看解剖征象",还要能读图内文字/刻度。两个连带结论:① 视觉编码器若不具备良好的图内文字感知(如低分辨率编码器),统计图表类题目会系统性偏弱;② 这类"文字在图上、而非题注里"的信息是合法的读图线索,与我们反复提醒的"题注文本捷径"(坑点 5)不同——前者模型必须看图像才能拿到,后者不看图也能靠文本答对。评测时建议区分"真图内文字题"与"可文本捷径题"。
§3.2 子集样本数
| 子集 | 问答对数 | 图像数 | 说明 |
|---|---|---|---|
| 全部(清洗后) | 226,946 | 149,075 | ChatGPT 生成 + 两级过滤后的总量 |
| 官方口径(取整) | 约 227k | 约 149k | 论文摘要口径 |
| train | 约 176,946 | — | test 抽取后剩余 |
| test | 50,000 | — | 随机抽取 |
| test-clean | 2,000 | 约 1,440(社区口径)/2,000(EvalScope 全图) | 人工核验 |
上述"取整口径 227k/149k"与"清洗后精确口径 226,946/149,075"并存,二者并不矛盾——前者是论文摘要为便于表述做的取整,后者来自数据过滤流程的精确计数。引用论文时多用 227k/149k;做严格统计时应以清洗后精确数 + 你实际加载到的 CSV 行数为准。test 数量官方亦有两种表述(“50,000 image-question pairs” 与 “randomly selected 50,000”),EvalScope 提示 test_clean 实际为 2,000 题/1,440 图,均属镜像侧统计口径差异。
§3.3 文件格式
| 文件 | 格式 | 内容 |
|---|---|---|
| train.csv / test.csv / test_clean.csv | CSV | 每行一个问答对:Figure_path、Question、Answer、Choice A-D、Answer_label |
| train2.csv / test2.csv | CSV | v2 非复合图版本对应元数据 |
| images.zip / images2.zip | ZIP(内含 JPEG) | 对应图像;images/figures/ 或 images_2/figures/ 目录 |
| oa_comm_use_file_list.csv | CSV | 逐篇源论文的 PMC ID 与许可清单 |
§3.4 存储大小
单个数据包(含元数据 CSV + 图像压缩包)约 21 GB(Awesome-Medical-Dataset 口径),魔搭 evalscope 镜像显示约 21.77 GB,OctoMed 派生根镜像单文件约 16.5 GB。解压图像后建议预留 25-30 GB 磁盘。原始 jpg 分辨率跨度极大(17x21 至 4130x3564),存储占用主要由高分病理图驱动。
存储与训练预算的现实提醒。 图像的"名义 21 GB"只是压缩包大小,HF 镜像在加载时会额外占用本地缓存;而由于同图多题(平均约 3.93 题/图),实际需要读入磁盘的图像数少于行数——若按图缓存可显著省 I/O。对显存与内存都有限的小组,建议优先 v2(非复合、单图单题)或仅用 test-clean 的图像子集做验证,先验证方法论再全量扩产(详见 §6.10 MLOps 笔记)。
§3.5 标注方式
| 环节 | 方式 | 说明 |
|---|---|---|
| 问题/选项生成 | 自动(ChatGPT) | 由题注 prompt 生成 5 个四选一问答 |
| 文本捷径过滤 | 自动(LLaMA-7B 仅文本) | 剔除可用文本知识作答的题 |
| 图像可答性过滤 | 自动分类器 | 人工标注 2,192 对训练,测试准确率 81.77% |
| 最终核验 | 人工(test-clean) | 逐条核验质量 |
生成→过滤为何是"弱监督"而非"全自动量产"? 关键在第二步以后:即使 ChatGPT 生成的题措辞合理,模型仍需判断"这题是否需要看图、图里是否有足够信息"。为解决此问题,团队人工标注了 2,192 对"图像能否独立作答"的二分类样本(拆成 1,752 训练 / 440 测试)微调 LLaMA-7B,得到 81.77% 的判别准确率后再用它清洗全量。这意味着全集的"纯视觉可答"质量上限取决于这个 81.77% 分类器的性能——仍有约 18% 的误判会漏进或误删,用户应对训练集里残留的少量"看图答不了/不需看图"题保持预期。
§3.6 标注者资质与一致性
生成标注来自商用 LLM(ChatGPT),非医师逐条编写,存在生成式幻觉的固有风险。论文未报告自动生成标注的逐条一致性评估;仅对用于训练图像可答性分类器的人工标注集(2,192 对)隐含了标注一致性,但未给出 kappa 值。因此整集标注"医师级一致率"不可得,需把生成的错误答案视为预期噪声。
对"答案正确率"的现实预期。 商业 LLM 生成的四选项通常语义通顺,但"通顺"不等于"医学正确":干扰项可能和正确项在常识上都站得住、仅凭题注才可区分;个别情况下选项还可能自相矛盾或与图像实际内容不符。因此建议把自动生成的 QA 当作"弱监督信号",在追求严谨标注的下游任务(如可解释诊断)里配合人工抽检;若要做高质量评测,务必只信 test-clean 的人工核验子集。
§3.7 采集周期
数据集基于已发表的 PMC 开放获取文献图构建,不涉及前瞻性临床采集。官方未披露图文的精确覆盖日期窗口;从文献出版跨度看,样本涵盖 2000 年代至 2023 年前后的论文(数据构建完成于 2023-05 前后)。
§3.8 地域覆盖
图像来源为 PubMed Central 收录的全球开放获取期刊论文,地理来源以欧美英文学术期刊为主,不能代表某国临床筛查人群。PMC-VQA 不记录地域/人群标签。
地缘与语种的隐含偏倚。 绝大多数源论文来自以英语出版的欧美及东亚医学期刊。这不仅使图像带偏"发达地区诊断资源较充分"的临床画像,也因题注与问题均为英文,天然排除非英语的医学术语与文化背景下的问答风格。想用中文或其他语种做医学多模态研究时,不能直接照搬 PMC-VQA 的分布,需另行双语化或领域适配。
§3.9 设备规格
数据集不提供图像采自何种设备(CT 机型、病理扫描仪品牌、磁场强度等)的元数据。由于图源是论文插图,图像已经过作者排版压缩(常为 JPEG),无法追溯原始 DICOM 或全切片(WSI)分辨率。对设备相关的严格研究(如跨机种泛化)不适用。
这带来的实际限制。 ① 无法做"不同扫描机型/不同场强"的分层分析(没有设备标签);② JPEG 排版压缩使图像的诊断级细节可能已被削掉,无法用于需要原始像素精度的任务;③ 若你想研究"图像来自低清出版图 vs 高清临床原图"的差异,PMC-VQA 只覆盖前者。因此涉及设备/采集/像素保真度的研究应回到 DICOM/WSI 原图数据;PMC-VQA 更适合语义与问答层面的能力研究。
§3.10 深度溯源链
源文献 → PMC OA 子集 “Commercial Use Allowed” → 论文图与题注(PMC-OA 整理为 381k 图文对)→ ChatGPT 依据题注生成 5 个四选一问答 → LLaMA-7B 文本-only 过滤 → 图像可答性分类器过滤(人工标注 2,192 对监督训练)→ 226,946 对 / 149,075 图 → 随机抽取 test 50,000 + 人工核验 test-clean 2,000 → 公开发布于 GitHub/HuggingFace。逐篇源论文 PMC ID 与许可记录在 oa_comm_use_file_list.csv。
为何保留逐篇许可清单(oa_comm_use_file_list.csv)? 因为源图像来自大量不同论文,各自处于 CC0 或 CC BY 等不同许可之下。直接把全部图打包成一个统一许可不严谨,因此官方同时附上"逐文 PMC ID + 许可"清单,方便用户按篇核查并做合规裁剪(尤其当你要绕开 CC BY-SA 的共享派生约束时——见坑点 7)。这也让数据集的许可可审计性显著高于"一个笼统许可"的同类资源。
复用边界提示。 该溯源链说明:图像像素来自 PMC 文献插图,但"问答对"的文本与选项是 PMC-VQA 团队用 LLM 重新生成并清洗的产物,属于数据集的增量成果。你在微调模型时不仅用到了图像,也用到了这些问答标注,因此模型训练数据含 CC BY-SA 内容的事实需在数据说明中如实记录。
§4 数据结构
§4.0 目录树
PMC-VQA/
├── train.csv # 训练元数据,每行一个问答对(约 176,946 行)
├── test.csv # 测试元数据(50,000 行)
├── test_clean.csv # 人工核验测试子集(2,000 行)
├── train2.csv # v2 非复合图版训练元数据
├── test2.csv # v2 非复合图版测试元数据
├── oa_comm_use_file_list.csv # 源论文 PMC ID 与许可清单
├── images.zip # v1 图像压缩包(images/figures/ 结构)
└── images2.zip # v2 非复合图图像压缩包(images_2/figures/ 结构)
下载后按上表把 images.zip 解压为 images/ 目录,并把 CSV 中的 Figure_path 指向 images/figures/ 下的文件(见 §6.1 拼接关系)。
读取与一致性自检(数据到手后第一件事):校验 Answer_label 是否真的指向与 Answer 文本一致的选项,能提前暴露镜像列错位/字段改名问题(坑点 1、坑点 2)。
# 校验一行里 Answer 文本 是否等于 Answer_label 所指选项的文本
def check_row(row):
label = row.get("Answer_label")
if label not in "ABCD":
return False
return row.get("Answer", "").strip() == row.get(f"Choice {label}", "").strip()
bad = df[~df.apply(check_row, axis=1)]
print("Answer 与 Answer_label 不一致行数:", len(bad))
结果解读:
Answer是"正确选项的完整文本",Answer_label是"哪个字母正确",二者本质应指向同一内容。若bad占比明显偏高(>0.5%),多半是所在 CSV 的选项列名不是Choice A/B/C/D(可能是小写、带序号前缀或嵌套结构),需回到该仓库文档核对列命名后再做映射。
§4.1 DAIMS 8 列字段字典
字段定义速览。 下表把每列 CSV 字段的意义、类型、示例与缺失行为对齐到机器可用口径。对非结构化问答行建议在读取时统一编码(UTF-8),并对含逗号/引号的选项文本用 CSV 标准转义——直接按文本行 split 会切碎选项内容。
| 字段名 | 类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| Figure_path | Text | 图像相对路径 | PMC1064097_F1.jpg | 图像定位/读取 | 路径分隔符跨平台差异 | 无(必填) | images/figures/ 下文件名 |
| Question | Text | 医学问题 | What is the uptake pattern in the breast? | 模型问题输入 | ChatGPT 生成、措辞多样 | 无(必填) | 自然语言问句 |
| Answer | Text | 正确选项文本 | Focal uptake pattern | 监督标签文本 | 自动生成噪声 | 无 | 短语 |
| Choice A/B/C/D | Text | 四个候选选项 | Diffuse uptake pattern | 构造选择空间 | 个别错项与真值相近 | 无 | 文本短语 |
| Answer_label | Text | 正确选项标签 | B | 分类监督 | 若与选项错位则污染 | 见坑点 4 | A/B/C/D |
| split/index/Caption | Text | HF 附加列(部分重托管文件) | train | 数据管线 | 各源文件列不一致 | 存在于部分文件 | train/test |
| (图像内容) | JPEG | 像素 | — | 视觉编码器输入 | 图源压缩/多面板 | 分辨率差异大 | 17x21-4130x3564 |
单行示例(取自镜像仓库文档)。 下面是对 train.csv 一行四个字段的真实化示意,展示"图路径 + 问题 + 四选项 + 正确标签"的组合关系:
| Figure_path | Question | Choice A / B / C / D | Answer_label |
|---|---|---|---|
| PMC1064097_F1.jpg | What is the uptake pattern in the breast? | A:Diffuse uptake pattern / B:Focal uptake pattern / C:No uptake pattern / D:Cannot determine from the information given | B |
注意该行 Answer 应为 “Focal uptake pattern”(与 B 选项文本一致),Answer_label=B。读取时应校验 Answer_label 指向的选项文本是否等于 Answer,不一致即可能是镜像列错位或字段命名差异(见坑点 2 与坑点 1)。
跨镜像的列名兼容速查。 PMC-VQA 在多个渠道被转载,列结构存在细微差异,读取前先核对仓库文档:
| 常见列变体 | 出现渠道 | 处理 |
|---|---|---|
Choice A-Choice D |
官方 train/test/test_clean | 标准命名,直接可用 |
choices(列表/嵌套) |
OctoMed 派生根 | 需展开为四个独立选项 |
split/index/Caption 附加列 |
部分重托管 HF 文件 | 仅部分文件含,避免据此做整仓 join |
缺失 Answer_label |
个别 v2 派生文件 | 需从 Answer 或选项内容推断/补列 |
image(内嵌 base64) |
部分评测封装 | 需解码并临时落盘 |
稳健做法:写一个"列名规整函数"把任意渠道读入的 DataFrame 映射到统一的
Figure_path / Question / Choice_A..Choice_D / Answer_label命名空间,再做下游处理(见坑点 1 的进阶/ SOTA 方法)。
§4.2 标签分布
官方公布训练集正确选项分布:A 24.07%、B 30.87%、C 29.09%、D 15.97%(合计 100%)。四选项位置在生成时"随机化",但仍呈现系统性不均衡,D 明显偏低。问题类型以 What/Which/How 开头为主(What 与 Which 为两大簇);答案词汇集中于位置描述、成像模态与解剖区域。
对标签分布需要两种解读视角:
- 作为评测缺陷:若模型学到"少选 D"的捷径,可以在不动图像语义的情况下虚高 acc,尤其是当部分题本来就是文本可答(坑点 5)时,这种押注几乎无风险。因此报告时必须给出按选项分层 acc(见 §6.9)并做选项位置扰动检验。
- 作为信息信号:D 偏低可能是"随机化选项"仅保证位置随机、却未按正确答案内容做均匀化的结果,也可能反映生成链路中某类模板的固有个性。它是"自动造数"数据集里常见的系统性偏差形态,值得在数据说明中如实记录。
§4.3 关键统计
| 统计量 | 数值 |
|---|---|
| 平均每图问答对数 | 3.93 |
| 清洗后问答对 | 226,946 |
| 清洗后图像数 | 149,075 |
| 问题平均长度 | 5-15 词(多数) |
| 答案平均长度 | 约 5 词 |
| 模态类别 | >20 种 |
| 测试/总占比 | test 50k / 约 227k |
§4.4 数据层级
PMC-VQA 不是患者→检查→序列→切片的医学层级结构,而是"文献图 →(同一图多题)→ 问答对"的扁平结构。一张图可对应多道题(最多约 3.93 平均)。同源(同一篇论文/同一图)的题在随机划分为 train/test 时没有做按图或按文的隔离,存在一定信息重叠风险(见 §5.3 泄漏讨论)。
从扁平结构能看到什么推论? 其一,既然主键其实是图像(Figure_path),同图不同题之间共享完全相同的像素,直接把每个问答对当作独立样本做随机划分,会让训练与验证样本的"图像身份"重叠——即同一张图的其它题可能同时落在训练与验证集。这也是我们建议做 group-kfold 的根本原因(§5.4)。其二,v1 的复合图让"图像身份"更加隐晦:不同行可能引用同一张排版图的不同子图,甚至同一文件名的图在 v1 与 v2 里内容不同(v1 是整页、v2 可能是裁出的单面板),跨版本对比行级对齐并不可靠。
§4.5 缺失值与信息性缺失
CSV 必填字段(Figure_path/Question/Answer/Choice/Answer_label)官方无缺失值设计;未发现显式的信息性缺失编码。实际运行时的主要"缺失"来自 HF 各镜像文件列 schema 不一致(见坑点 2),以及部分镜像附带的 Caption 列在不同文件中有无之分。图像文件若因下载中断缺失,需自行校验清单。
实操上的"伪缺失"清单。 经镜像重托管后,你会遇到几类列级"缺失":一是 Answer_label 在部分 v2 派生文件里缺失(因生成时未写入);二是 Caption/split/index 这类附加列只在某些文件出现,导致整仓 load_dataset 因列不一致报错(坑点 1);三是个别重托管版本把选项列名从 Choice A 改成 choices 或嵌套结构,读取时需按仓库文档适配。这些都属于"元数据缺失"而非"样本内容缺失",应在数据管线入口统一规整,而不是丢到训练时才崩溃。
§5 划分与使用建议
§5.1 官方划分
官方提供的划分为 train / test / test-clean:
- train(约 176,946 对):用于训练 MedVInT 及任意生成式 MedVQA 模型。
- test(50,000 对):随机抽取,规模大但噪声多,非官方推荐用于"报告指标"。
- test-clean(2,000 对):人工核验、质量最高,作者推荐用于报告结果。
- v2(train2/test2):非复合图版本,对应 images2.zip。
官方未提供验证集(val),也未说明 train 与 test 是否按论文/图做了泄漏隔离。
| 划分 | 问答对数 | 图像相关 | 推荐用途 | 主要注意点 |
|---|---|---|---|---|
| train | 约 176,946 | v1 全量 / v2 有独立 train2 | 训练/微调 | 未清洗噪声、同图多题 |
| test | 50,000 | 随机抽取 | 大模型粗筛 | 含生成噪声,避免做最终报告 |
| test-clean | 2,000 | 人工核验 | 最终评测与横向对比 | 官方推荐报告集 |
| 自建 val | 用户自定 | 建议按图隔离 | 训练时选型/早停 | 官方未给,需 group-kfold |
§5.2 社区惯例划分
社区实践中,多数论文与评测框架(如 EvalScope)默认用 test-clean 的 2,000 对作为 0-shot 评测集,因为其人工核验质量高、跨论文可比;个别大规模评测用全部 test。EvalScope 描述 test-clean 为"约 2,000 题、约 1,440 幅不同图、每题恰好四选项"。
自建 val 的社区常见做法。 许多复现/改进工作会在 train 内按 9:1 或 group-kfold 划出一份 val,用于早停与超参选择,随后在整个 train(含该 val 数据)上重训并在官方 test-clean 上报数。也有工作因担心"同论文不同图仍强相关"而采用按 PMC 前缀隔离的更严做法(见 §5.4 代码注释)。关键是要在论文里讲清楚"val 怎么来、test-clean 只在最后碰一次",避免 val 反复参与调参后挤占最终评测的独立性。
§5.3 泄漏风险
- 图级重叠:同一图像在 train 与 test 中的题可能同源(随机抽取未按图隔离),使模型"见过同图不同题"而虚高。建议自建按 Figure_path/论文隔离的 val。
- 文本捷径:官方研究显示纯语言模型 LLaMA-7B 与 GPT-4 仅凭文本仍能取得 27.2-30.8%(Choice)的准确率,高于随机 25%,且 GPT-4-Oracle(用原题注)可达 89.3%,提示部分题对"读图"的依赖低于名义设定。
- 选项位置捷径:Answer_label 非均衡分布(D 仅 15.97%)可被"少选 D"策略小幅利用,作为偏差存在(详见坑点 4)。
对这三类泄漏的应对优先级建议是:最需优先处理的是图级重叠——它直接污染训练/评测边界,影响任何性能声称的可信度;其次是报告纯文本基线把评测噪声显性化;选项位置偏差相对次要,但仍应在最终报告里做分层呈现。三者叠加会造成"数字很好看、一换协议就崩塌"的典型陷阱,务请在方法段明确声明评测子集与隔离策略。
| 泄漏类型 | 污染点 | 缓解手段 | 优先级 |
|---|---|---|---|
| 图级重叠 | 训练/验证边界 | 按 Figure_path/论文分组(group-kfold) | 高 |
| 文本捷径 | 评测分数虚高 | 报告纯文本基线 + 边际增益 | 高 |
| 选项位置 | 标签分布不均衡 | 分层 acc + 位置扰动 | 中 |
小结:PMC-VQA 的泄漏问题"可防不可免"——官方划分即含同图/文本可答的先天因素,但它不影响把 PMC-VQA 当作能力基准使用,前提是你按上表自建隔离并在报告里诚实声明。
§5.4 交叉验证建议
由于 train 内同图多题、且 v1 含复合图,若做 K 折或留出验证,建议按 Figure_path 分组(group-kfold) 而非逐样本随机,否则同图题会同时进训练与验证,夸大性能。v2(非复合图、图题一一对应)更适合直接做随机划分实验。
# 按 Figure_path(图像)分组做 K 折,避免同图多题跨训练/验证泄漏
from sklearn.model_selection import GroupKFold
gkf = GroupKFold(n_splits=5)
groups = df["Figure_path"] # 同一张图的所有行归为一组
for train_idx, val_idx in gkf.split(df, groups=groups):
df_train, df_val = df.iloc[train_idx], df.iloc[val_idx]
print("折内唯一图数:", df_val["Figure_path"].nunique())
break
若要按论文隔离(比按图更严格),可把
groups替换为从 Figure_path 取 PMC 前缀(如PMC1064097),让同一篇论文的图都进同一折——在仅需粗粒度隔离、且担心同论文不同图间语义高度相关时更稳妥。
§5.5 外部验证建议
在医学 MLLM 研究中,常把 PMC-VQA 作为"预训练/评估集"之一,再用 VQA-RAD、SLAKE、ImageCLEF-2019 等医师标注、单模态的外部基准做迁移验证,以检验模型不只在 PMC-VQA 自身上涨、在下游真实小数据上同样有效(MedVInT 论文即采用此范式)。
§5.6 论文/报告自查清单
在论文里报告 PMC-VQA 结果时,建议逐项交代以下信息,避免被评审质疑协议不规范:
| # | 必须声明项 | 推荐写法 |
|---|---|---|
| 1 | 评测子集 | “报告于 PMC-VQA-test-clean(2,000 对)” |
| 2 | 数据版本 | “使用 v2 非复合图(train2/test2)或 v1(train/test)” |
| 3 | 图像目录/下载 hash | 记录 images.zip / images2.zip 的版本与校验 |
| 4 | 解析规则 | “要求模型输出 ANSWER: [LETTER],缺行回退取末尾大写字母” |
| 5 | 文本基线 | 报告纯文本基线的 acc(如 LLaMA 约 27-31%)与视觉边际增益 |
| 6 | 选项位置 | 是否做了位置扰动检验、是否报告按选项分层 acc |
| 7 | 是否用题注/外置知识 | 明确是否给模型看原题注(Oracle 场景) |
| 8 | 泄漏隔离 | 训练/验证是否按 Figure_path(论文)分组隔离 |
这张清单把 §5.3、坑点 3-5 与 §6.9 的要点收敛成一段可复制的"方法声明模板"。把它写进论文实验节,能显著降低"协议不可比"的评审风险。
§6 AI 就绪指南
§6.0 云端快速启动(可选)
由于图像包约 21 GB,建议在具备 GPU(≥16 GB 显存)与高速网络的实例上操作。可用 HuggingFace datasets 直接加载元数据,但图像需单独下载 images.zip 并解压。Colab 免费层磁盘常不足 21 GB,推荐 Pro/本地 GPU 或扩容磁盘。
§6.1 快速上手
以下代码预期目录结构:你已把仓库下载到 data/PMC-VQA/,其中含 images/figures/(由 images.zip 解压)与各 .csv。Figure_path 如 PMC1064097_F1.jpg 指向 data/PMC-VQA/images/figures/PMC1064097_F1.jpg。最小可用子集是 test_clean.csv(2,000 对),无需全量图也可先做评估。
预期目录树(简化):
data/PMC-VQA/
├── train.csv
├── test.csv
├── test_clean.csv
├── images/
│ └── figures/
│ ├── PMC1064097_F1.jpg
│ └── ...
└── (可选 images2.zip → images_2/figures/ 用于 v2)
目录拼接关系:Figure_path 只含 PMC1064097_F1.jpg 这类文件名(部分行带 figures/ 前缀),因此读取时必须按 images/figures/{basename} 拼出绝对路径;不要假设 CSV 里已含完整目录。v2 的文件名与 v1 不同(v2 多为非复合单图命名),切不可把 train.csv 的路径直接套到 images2 目录下。
最小可用子集:零样本评测用 test_clean.csv(2,000 行)即可起步,配合按需抽取的图像子集,能在一张消费级 GPU 上完成对任意图文大模型的四选一准确率验证。
§6.2 数据获取
| 渠道 | 地址 | 类型 |
|---|---|---|
| GitHub(代码/文档) | https://github.com/xiaoman-zhang/PMC-VQA | 源码 |
| HuggingFace(原始数据) | https://huggingface.co/datasets/xmcmic/PMC-VQA | 数据(已重托管至 RadGenome/PMC-VQA) |
| HuggingFace(重托管) | https://huggingface.co/datasets/RadGenome/PMC-VQA | 数据 |
| 魔搭 evalscope 镜像 | https://modelscope.cn/datasets/evalscope/PMC-VQA/summary | 数据 |
| 模型权重 | https://huggingface.co/xmcmic/MedVInT-TE 、MedVInT-TD | 模型 |
开放获取,无申请门槛。许可证为 CC BY-SA 4.0。图像包约 21 GB,需用 git lfs 或浏览器分块下载。
# 用 git lfs 拉取整仓(含大图,会占用较多磁盘,约 21 GB)
git lfs install
git clone https://huggingface.co/datasets/RadGenome/PMC-VQA
cd PMC-VQA
git lfs pull --include="images.zip" # 只拉图像压缩包,省带宽
# 解压图像到 images/figures/(注意 v1 用 images.zip、v2 用 images2.zip)
unzip -q images.zip -d images
ls images/figures/ | head
若只想先做 0-shot 评测而不下载全部 21 GB 图像,可只解压并保留 test-clean 涉及的图像子集。可先读取 test_clean.csv 拿到所需 Figure_path 清单,再从 images.zip 里按需抽取对应文件,即可把磁盘占用降到很小。
常见获取问题的排查表。
| 现象 | 可能原因 | 处理 |
|---|---|---|
git clone 只看到小文件 |
未安装/触发 git lfs | git lfs install 后 git lfs pull --include="images.zip" |
| 浏览器下载 images.zip 中断 | 大文件超时 | 用命令行断点续传(如 wget -c)或 git lfs |
load_dataset 报列不一致 |
镜像多文件 schema 不同 | 改 data_files 逐文件加载(坑点 1) |
| 解压后 Figure_path 找不到图 | v1/v2 目录混用 | 核对是 images/ 还是 images_2/,按 basename 重新拼接 |
| 文件命名大写/大小写不一致 | 跨系统拷贝 | 统一小写化文件名与路径再索引 |
# 拉取元数据(若列 schema 报错见坑点 2:改用 data_files 逐文件加载)
from datasets import load_dataset
ds = load_dataset("csv", data_files={
"train": "train.csv",
"test": "test_clean.csv",
})
row = ds["train"][0]
print(row["Figure_path"], "|", row["Question"], "| label", row["Answer_label"])
§6.3 预处理全流程
# 预处理:按 Figure_path 组织、过滤缺失、给出图像绝对路径
import pandas as pd, os
DATA = "data/PMC-VQA"
df = pd.read_csv(os.path.join(DATA, "test_clean.csv"))
df = df.dropna(subset=["Figure_path", "Question", "Answer_label"])
df = df[df["Answer_label"].isin(["A", "B", "C", "D"])] # 仅保留合法标签
df["image_abs"] = df["Figure_path"].map(
lambda p: os.path.join(DATA, "images", "figures", os.path.basename(p)))
exists = df["image_abs"].map(os.path.exists)
print("可用样本:", int(exists.sum()), "/", len(df))
df = df[exists].reset_index(drop=True)
# 选项→序号映射(顺序固定 A=0..D=3)
opt_cols = ["Choice A", "Choice B", "Choice C", "Choice D"]
def to_choice_index(label):
return "ABCD".index(label) if isinstance(label, str) else -1
df["answer_idx"] = df["Answer_label"].map(to_choice_index)
标准化建议:把 A-D 统一转为 0-3 序号;图像用 PIL 打开后统一缩放到正方形(避免超长图被整幅压缩后不可读,见坑点 6 分块策略);问答文本做 tokenize 前的清洗(去转义、统一引号)。
# 自适应图像加载:记录原始分辨率、对超长图做分块采样
from PIL import Image
def load_image(path, max_patches=4, patch_size=224):
img = Image.open(path).convert("RGB")
w, h = img.size
aspect = max(w, h) / max(1, min(w, h))
if aspect > 2.5 and w * h > patch_size * patch_size * max_patches:
# 超长图:按长轴切 max_patches 块,返回多 patch 供聚合
patches, step = [], max(1, max(w, h) // max_patches)
if w >= h:
for x in range(0, w - step + 1, step):
patches.append(img.crop((x, 0, min(x + step, w), h)).resize((patch_size, patch_size)))
else:
for y in range(0, h - step + 1, step):
patches.append(img.crop((0, y, w, min(y + step, h))).resize((patch_size, patch_size)))
return patches, (w, h), True # (多块, 原分辨率, 是否复合/超长)
return [img.resize((patch_size, patch_size))], (w, h), False
分块策略说明:PMC-VQA 里既有 4130x3564 的病理大图,也有 17x21 的超小缩略图(坑点 6)。对超长图分块能保留局部细节;对极小图则不应放大太多,宁可保持低清并在 prompt/网络里显式提示"图为低分辨率",避免引入插值噪声。
§6.4 PyTorch DataLoader
# 完整可运行的 Dataset + transform + DataLoader
import torch, torchvision.transforms as T
from PIL import Image
from torch.utils.data import Dataset, DataLoader
class PMCVQADataset(Dataset):
def __init__(self, df, img_size=224):
self.df = df.reset_index(drop=True)
self.transform = T.Compose([
T.Resize((img_size, img_size)),
T.ToTensor(),
T.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
])
def __len__(self):
return len(self.df)
def __getitem__(self, i):
r = self.df.iloc[i]
img = self.transform(Image.open(r["image_abs"]).convert("RGB"))
# 文本侧:用分词器把 Question 编码(示意为占位张量)
q = {"input_ids": torch.tensor([r["Question"] and 101])}
return {"image": img, "question": q,
"label": torch.tensor(r["answer_idx"], dtype=torch.long)}
ds = PMCVQADataset(df)
loader = DataLoader(ds, batch_size=32, shuffle=True, num_workers=4)
batch = next(iter(loader))
print("batch keys:", batch.keys(), "| image shape:", batch["image"].shape)
说明:若使用开源 MLLM(如 LLaVA 系),问题文本需按该模型的对话模板包裹成 user 轮次并与图像 token 一起送入。上面 Dataset 把文本示意为占位张量,正式使用时应替换为对应分词器。为控制篇幅并保证"可运行",本段仅给出结构骨架;真正评估时请把 Question、Choice A-D 组装为 ANSWER: [LETTER] 提示(见下)。
# 0-shot 四选一推理:把图 + 题 + 选项拼成要求输出 'ANSWER: X' 的提示
def build_prompt(row):
choices = " ".join(
f"{lab}) {row[f'Choice {lab}']}" for lab in "ABCD")
return (f"Answer the following multiple choice question. "
f"Respond with 'ANSWER: [LETTER]' where LETTER is A/B/C/D.\n\n"
f"{row['Question']}\n{choices}")
# 假设 model.generate(prompt, image) 返回模型文本
def parse_answer(text):
import re
m = re.search(r"ANSWER:\s*([A-Da-d])", text)
if m:
return m.group(1).upper()
# 缺行回退:取最后一个大写字母(与 EvalScope 约定一致,见坑点 3/5)
tail = re.findall(r"[A-Da-d]", text[-60:])
return tail[-1].upper() if tail else "X"
判别式四选一头的轻量微调示例(可选路线)。 若你只做选择题、不想上大规模生成模型,可在冻结视觉编码器之上接一个线性/轻量分类头,对四选项做 图片⊗各选项文本 的匹配得分:
# 轻量判别头:图片与四个选项的匹配打分(示意)
import torch, torch.nn as nn
class ChoiceHead(nn.Module):
def __init__(self, vis_dim=512, txt_dim=512):
super().__init__()
self.fuse = nn.Linear(vis_dim + txt_dim, 256)
self.score = nn.Linear(256, 1)
def forward(self, img_feat, txt_feat_per_option):
# txt_feat_per_option: [B, 4, txt_dim]
b = img_feat.size(0)
img = img_feat.unsqueeze(1).expand(b, 4, -1) # [B,4,vis]
logit = self.score(torch.relu(self.fuse(torch.cat([img, txt_feat_per_option], -1))))
return logit.squeeze(-1) # [B,4]
# 训练时对 logits 做 CrossEntropy,标签为 answer_idx;
# 冻结 PMC-CLIP 视觉塔做特征抽取可大幅省显存(见 §6.8)。
选择判别式 vs 生成式的依据:判别式更快、更省、选择题表现通常更稳,但只能做四选一,无法输出自由文本;生成式(MedVInT 路线)更贴近临床问答但需更大显存与更长的训练收敛。两者无优劣,取决于你的下游是否需要开放答案。
§6.5 坑点 8 个
⚠️ 坑点 1:数据文件列 schema 不一致导致
load_dataset报错(分类:工程陷阱)问题:官方 HF 仓库同时存在 train.csv(v1)与 train_2.csv(v2),二者列结构不同;
datasets.load_dataset("xmcmic/PMC-VQA")在合并多文件时因列不一致抛出DatasetGenerationCastError。
症状:加载报错All the data files must have the same columns,提示 train_2.csv 多出split/index/Caption三列、缺少Answer_label一列;GitHub issue 多人复现。
解决:
- 简单方法:不整仓 load,改用
datasets.load_dataset("csv", data_files={"train":"train.csv",...})逐文件显式指定列齐全的目标文件。- 进阶方法:读入后用
df[["Figure_path","Question","Answer","Choice A","Choice B","Choice C","Choice D","Answer_label"]]做统一列白名单截断,规避镜像间差异。- SOTA 方法:写一个规范化函数检测缺失列并补 NaN,再据此统一 build 到 Arrow/parquet 缓存,供下游 Pipeline 复用。
参考:https://huggingface.co/datasets/xmcmic/PMC-VQA/discussions/3
⚠️ 坑点 2:v1 复合图与 v2 非复合图混用导致图-题错配(分类:标签理解)
问题:v1(images.zip,train/test)含大量 compound figure——一张排版图含 a/b/c 多个子面板,某道题只针对其中一子图;若直接用整图喂给分类模型,模型看到的是无意义并排的无关面板。v2(images2.zip)才是"一图一题"的非复合版本。
症状:v1 上开放题/选择题准确率显著低于你按单图任务的心理预期;同一模型在 v1 与 v2 结果差异大、难以归因。
解决:
- 简单方法:需要图-题一一对应时,改用 v2(train2/test2 + images2.zip)。
- 进阶方法:若坚持用 v1 全量,训练时把整图作为输入但把题面显式嵌入 prompt,让模型学会"整图浏览+题面定位子图"的复合图能力——这正是论文设计的本意。
- SOTA 方法:对复合图做版面分析/网格切分后再送入子图级模型,或用能指认区域的 grounding 模型。
参考:https://modelscope.cn/datasets/evalscope/PMC-VQA/summary
⚠️ 坑点 3:评估集混用 test 与 test-clean,跨论文结果不可直接比较(分类:评估误用)
问题:有人报告"PMC-VQA 50k 全 test",有人报告"2k test-clean";两者噪声与难度差异大,直接拿另一篇论文数字比较会让你的 SOTA 声明失真。
症状:你在 50k test 上可能拿到比论文更高的准确率,却是因为 test 噪声多、模型"蒙对了"噪声选项;评审质疑协议不一致。
解决:
- 简单方法:一律采用官方推荐的 test_clean(2,000 对)报告指标,并在论文写清评测子集。
- 进阶方法:用 EvalScope 之类的标准框架(其默认评测 test-clean)保证解析与数据一致。
- SOTA 方法:同时报告 test-clean 与(如需)50k test 两者,并说明解析规则(是否允许 ANSWER 行、是否做选项相似度匹配)。
参考:https://evalscope.readthedocs.io/en/latest/benchmarks/pmc_vqa.html
⚠️ 坑点 4:Answer_label 分布不均衡带来"少选 D"式的评估虚高(分类:偏倚陷阱)
问题:训练集正确选项 A 24.07%、B 30.87%、C 29.09%、D 15.97%,D 系统性偏低;若评测只给 acc 不给混淆,一个"永远不选 D"的模型可系统性占到约 84% 样本中的多数命中机会。
症状:acc 高但逐类(尤其 D)差;A/B/C 题靠图像线索就答对、D 题全面崩;分布外的模型看似很强。
解决:
- 简单方法:报告按选项分层的 acc 与 MacF1,而非只看总体 acc。
- 进阶方法:评测时对选项做不依赖模型输入的顺序扰动检验,验证模型真的读图而非押选项位置。
- SOTA 方法:联合报告校准(expected calibration error)并分析"图像贡献度"——用仅文本基线(见坑点 5)相减,得到真正来自视觉的证据。
参考:https://nature.com/articles/s43856-024-00709-2
⚠️ 坑点 5:部分题可仅凭题注文本作答,纯视觉结论被高估(分类:评估误用)
问题:题目由题注(caption)生成,官方自身数据显示纯文本 LLaMA-7B/GPT-4(不读图)仍可得 Choice 27.2%-30.8%,GPT-4 用题注文本的 Oracle 更达 89.3%——部分题本质上不需要图像信息。
症状:你在闭式(四选一)上得分虚高;开放题(生成)反而大幅下滑;模型"看似看懂图"实则在背知识/文字线索。
解决:
- 简单方法:优先用开放题(blank/open)子集报告,或把测试样本过滤为"确实需图"的部分。
- 进阶方法:跑一个纯文本控制基线,报告你的视觉模型相对文本基线的边际增益,而非绝对 acc。
- SOTA 方法:针对模型输出做归因/指向性核查,或使用要求指认图像区域的评测子协议。
参考:https://nature.com/articles/s43856-024-00709-2
⚠️ 坑点 6:图像分辨率跨度极大,简单 resize 会压坏高分病理图(分类:预处理陷阱)
问题:图中既有 17x21 的极小缩略图,也有 4130x3564 的病理大图;把 4k 图统一缩到 224x224 会丢失病灶级细节,而把 17x21 放大又引入插值噪声。
症状:病理/显微高分题总是答错;低分辨率图区域则成了不可复现的噪声源;模型对图源分辨率过敏感。
解决:
- 简单方法:按图宽高比自适应——超长图先长边裁剪/分块,再各块送模型后聚合。
- 进阶方法:记录每张图原始分辨率,在 prompt 或网络里显式给"这是低清图"提示,或对极小图做高分辨率采样补偿。
- SOTA 方法:对病理大图做多尺度切块(patch)与注意力聚合,保留局部细节。
参考:https://evalscope.readthedocs.io/en/latest/benchmarks/pmc_vqa.html
⚠️ 坑点 7:源 CC0/CC BY 与成品 CC BY-SA 的许可差异影响下游再分发(分类:工程陷阱)
问题:源图像所在论文处于 CC0 或 CC BY;但 PMC-VQA 成品数据集整体以 CC BY-SA 发布。CC BY-SA 的 ShareAlike 条款意味着你在其上的任何派生数据集/微调产物若再分发,继承相同的 SA 约束,这与把数据简单"洗成新数据集"的商业意图冲突。
症状:合规团队发现衍生数据/模型再分发许可与上游不一致;把图像复用于封闭训练数据时出现授权冲突。
解决:
- 简单方法:遵守 CC BY-SA——以开源/相同共享方式再分发,并保留署名与许可声明。
- 进阶方法:若只用于训练而不再分发图像,模型权重层面的授权影响需由法务个案评估(SA 通常约束作品分发而非运行模型)。
- SOTA 方法:回退到逐篇论文的 oa_comm_use_file_list.csv 核对单篇许可,必要时仅取 CC0/CC BY 篇目自行整理,规避 SA。
参考:https://arxiv.org/abs/2305.10415 ;https://huggingface.co/datasets/xmcmic/PMC-VQA/blob/main/oa_comm_use_file_list.csv
⚠️ 坑点 8:自动生成标注噪声 + 无官方 val 带来复现与可信度隐患(分类:数据泄漏 / 标签理解)
问题:题目由 ChatGPT 从题注生成,没有医师逐条医学金标准背书,正确答案本身含生成式幻觉噪声;同时官方未给 val、train/test 未按图隔离,导致"指标不可复现"与"同图泄漏"并存。
症状:同一代码两次切分结果波动;test-clean 之外噪声样本让你以为模型更强;评审要求按图隔离却无官方约定。
解决:
- 简单方法:自建 group-kfold——按 Figure_path(必要时前缀论文 PMC ID)分组划分 val,逐篇隔离。
- 进阶方法:对训练集做噪声缓解——用投票/置信度清洗可疑 Answer_label,或仅用高一致性样本。
- SOTA 方法:报告时附带 human-readable 的标注质量抽查(如随机抽 200 题人工复核正确率),将"答案也可能错"写进 limitation。
参考:https://www.wizwand.com/sota/multiple-choice-visual-question-answering-on-pmc-vqa-test
§6.6 数据增强
安全 ✅
- 轻微随机裁剪/翻转(对大多数组织病理与结构影像安全)
- 色彩抖动(轻微)——对灰度 CT 意义有限但对病理染色差异鲁棒
- MixUp/标签平滑(用于分类头,缓解选项噪声)
危险 ❌
- 水平翻转用于解剖左右不对称的部位(肺叶、心脏、乳腺分侧)会制造错误标签
- 对超长病理图做随机缩放裁剪可能切断病灶连续上下文
- 加真实噪声模拟压缩伪影——用于评测尚可,用于增强会引入分布偏移
| 增强操作 | 建议 | 说明 |
|---|---|---|
| 随机水平翻转 | 视部位而定 | 左右对称部位(如部分轴向断层)可用;分侧部位禁用 |
| 随机裁剪/缩放 | 保守使用 | 注意图内文字与子图框可能被裁掉 |
| 色彩/对比度微调 | 可用 | 对病理染色与自然光显微图有鲁棒性收益 |
| MixUp / 标签平滑 | 可用 | 缓解自动标注噪声带来的过拟合 |
| 加 JPEG 压缩伪影 | 谨慎 | 只在需要模拟图源低质时作为评测用,勿混入训练 |
§6.7 模型推荐表
选型决策顺序: ① 你要开放答案还是只做四选一 → 开放答案用生成式(MedVInT 系 / MLLM),四选一可用判别式;② 显存预算 → ≥40 GB 可全参微调,否则用 LoRA/QLoRA 或冻结视觉塔;③ 要不要最先进效果 → 商业 API(GPT-4V 等)评测最强但仅评测用;④ 可复现性 → 论文可比优先用 MedVInT 官方基线。
| 用途 | 推荐模型 | 理由 | 备注 |
|---|---|---|---|
| 生成式 MedVQA 基线 | MedVInT-TE/-TD | 官方发布、PMC 域图文预训练 | 权重 https://huggingface.co/xmcmic/MedVInT-TE |
| 通用 MLLM 微调 | LLaVA-Med / 开源 LLaVA v1.5 | 生态成熟、易二次开发 | 需自行做选项 prompt 适配 |
| 判别式四选一 | 检索/多模态融合分类头(如用 PMC-CLIP) | 速度快、适合选择题 | 不适合开放题 |
| 高精度图文模型 | GPT-4V 等商用(评测用) | 上游多任务能力强 | 仅评测,不宜本地训练 |
§6.8 硬件需求
| 任务 | 最小显存 | 建议 | 说明 |
|---|---|---|---|
| 0-shot 评测 test-clean | 16 GB(推理) | 24 GB+ | 图像 21 GB 磁盘 + GPU |
| 微调 LLaMA-Med 量级 | 24 GB | 40-80 GB | 用 v2 或 v1 全量按需 |
| MedVInT 全量复现 | 40 GB | 多卡 A100 | 176k 对 + 图像加载 |
预算分解。 三处成本要分开算:① 图像(约 21 GB 压缩、解压约需 25-30 GB 磁盘,若按图缓存又省 I/O);② 模型权重(MedVInT-7B 量级全参微调需 ≥40 GB 显存,LoRA/QLoRA 可压到 ~16-24 GB);③ 评测(test-clean 仅 2,000 题,单卡 0-shot 一小时内可完成,适合作为快速迭代闭环)。若显存紧张,优先走"冻结视觉塔 + 轻量投影/LoRA"路线,性价比远高于盲目全参微调。
§6.9 评估指标代码
# 四选一 acc + 按选项分层 acc + 文本基线边际增益
import numpy as np
def accuracy(preds, golds):
preds, golds = np.asarray(preds), np.asarray(golds)
return (preds == golds).mean()
def stratified_acc(preds, golds, labels="ABCD"):
golds, preds = np.asarray(golds), np.asarray(preds)
out = {}
for i, lab in enumerate(labels):
mask = golds == i
if mask.sum():
out[lab] = (preds[mask] == golds[mask]).mean()
return out
# preds_idx, golds_idx: 0-3 整数数组(由模型输出的 ANSWER 行解析得到)
print("overall acc:", round(accuracy(preds_idx, golds_idx), 4))
print("per-label acc:", {k: round(v, 4) for k, v in stratified_acc(preds_idx, golds_idx).items()})
# 纯文本基线的"边际增益":用同样的四选项文本、但不给图,交给仅文本 LLM 作答
# text_preds_idx 由"只把 Question + 选项给文本模型、不看图像"得到
visual_margin = accuracy(preds_idx, golds_idx) - accuracy(text_preds_idx, golds_idx)
print("纯视觉相对文本基线的边际增益:", round(visual_margin, 4))
边际增益是 PMC-VQA 上最有信息量的单一数字(坑点 5):它回答"图到底贡献了多少"。若你的模型视觉 acc 很高但纯文本基线也很高,说明得分多来自文字线索而非读图;只有视觉减文本的增益为正且显著,才算真正展示了读图能力。论文报告 LLaMA/GPT-4 仅文本即可取得 Choice 27-31% 的准确率,做对照不可省略。
解析提示:官方论文对开放题生成用
difflib.SequenceMatcher把输出匹配到最近选项;EvalScope 则要求模型输出ANSWER: [LETTER]行,缺行时回退取最后一个大写字母——这两种解析会给出不同 acc,报告时务必注明(见坑点 3)。
§6.10 MLOps 笔记
- 缓存图像:21 GB 图像在多次实验间重复解压很浪费;首次解压后保留
images/figures/,把 CSV 路径直接指向该目录,勿反复下载。 - 版本固定:明确锁定 v1(images.zip)还是 v2(images2.zip),并在实验配置里记录 data 版本 hash,避免 train.csv/train2.csv 串用。
- 评测脚本复用:把四选一解析(取 ANSWER 行 / 回退大写字母)抽成共享模块,确保你的训练与评测用同一解析,防评估协议漂移。
- 磁盘规划:预留 ≥30 GB;若用 HF
load_dataset全量会额外占用 HF cache,可改用本地csv读取省空间。 - 按图缓存省 I/O:同图约 3.93 题共享一张图,训练时先按 Figure_path 建立 图→(题列表) 的索引,逐图读入后在同一张图上跑多题,可显著减少磁盘读与图片解码次数。
- 调度与检查点:176k 对 + 20 余种模态的收敛曲线波动大,建议每个 epoch 末在 test-clean 上做固定评测(不调参),并记录每个 checkpoint 的分模态 acc,用于挑选"并非只在少数易模态上过拟合"的版本。
§7 质量评估与局限性
§7.1 已知偏倚
PMC-VQA 的偏倚主要来自"造数链路"与"文献图源"两层。下表汇总六类主要偏倚及其缓解手段;严重程度综合考量影响面与可逆性,供使用者在方法段引用。
| 偏倚类型 | 描述 | 严重程度 | 缓解 |
|---|---|---|---|
| 论文选图偏倚 | 图来自已发表论文,多为成功病例/典型征象,非真实筛查流 | 高 | 仅作研究,勿当临床分布 |
| 标注噪声 | ChatGPT 生成、无医师逐条背书 | 中 | 用 test-clean 评测、抽检复核 |
| 选项位置偏倚 | Answer_label 分布不均(D 15.97%) | 中 | 分层 acc、位置扰动检验 |
| 文本捷径偏倚 | 部分题可仅凭题注文本作答 | 高 | 纯文本基线 + 边际增益 |
| 分辨率/模态不均 | 高分病理图与低分缩略图并存,模态长尾 | 中 | 分模态报告、自适应缩放 |
| 地域偏倚 | 以欧美英文学术论文为主 | 中 | 不做跨人群泛化推断 |
§7.2 标注质量
自动生成链路整体缺乏独立医师一致性评估(官方未报告 kappa 或二次人工抽样正确率)。仅 test-clean(2,000 对)由人工逐条核验,质量显著高于 test。训练集约 176k 对中保留的生成噪声没有量化比率;官方估计人工核验流程可保留 test 中超过 80% 的高质量样本,侧面反映未清洗 test 的噪声量级。
如何量化"测试集本身会有多大噪声"? 一个可操作的代理指标是:官方说 test-clean(人工核验)保留了 test 中"超过 80%"的高质量样本。反推即 test 全量里估计有不超过约 20% 的样本可能达不到人工核验标准。换句话说,在 50k 的 PMC-VQA-test 上直接报告 acc,会有可观比例的"脏题"既给模型送分也埋雷——模型蒙对脏题显虚高、遇到选项与图不符又显偏低。这正是不建议用 test 全量、而推荐 test-clean 报告结果的原因(坑点 3)。
§7.3 泛化性
| 场景 | 失效风险 | 证据 |
|---|---|---|
| 真实临床筛查影像 | 高(文献图分布 ≠ 筛查流) | 论文与多篇评测均提示分布偏倚 |
| 低分辨率缩略图题 | 中(视觉细节不足) | 图分辨率下限 17x21 |
| 病理高分图 | 中(resize 丢失细节) | 4k 级大图存在 |
| 跨语言(中文医学) | 高(仅英文) | 语言=英文 |
| 迁移到 VQA-RAD/SLAKE | 低(预训练增益实证) | 开放题提升 6-16% |
泛化性的"好消息"与"坏消息"。 好消息是 PMC-VQA 作为预训练源在人工标注的外部基准(VQA-RAD、SLAKE、ImageCLEF)上显示了一致增益,说明其图文理解能力可迁移(期刊版开放题在 VQA-RAD 提升约 16 个百分点)。坏消息是这种迁移是在"同为医学问答、模态相近"的场景内;一旦跨到真实临床筛查、跨语言或跨设备,尚无充分证据表明其泛化成立。最稳妥的结论是:PMC-VQA 教模型"读懂医学图上的通用语义",但把它推向部署仍需真实临床数据做对齐与验证。
§7.4 伦理
图源自开放获取论文、已随发表完成患者数据脱敏,作为"论文插图"不含可再标识的患者级身份信息(数据集本身不含 DICOM/PHI)。数据集明确"仅供研究、不得临床部署"。由于含自动生成标注,任何临床使用须先经独立验证与监管审批。
伦理上的独特考量。 与患者级临床数据库不同,PMC-VQA 的伦理风险主要不是"隐私泄露",而是"被误当权威诊断数据使用"。它既无医师级医学金标准,也无真实临床验证,若研究或产品把它当成"能代表医学影像理解的权威基准",可能在模型能力未达可靠门槛时过早推向应用。使用方应在论文与产品说明中如实标注其"研究性、含自动标注、非临床验证"的性质,避免强化对医学 AI 的过度信任。
§7.5 公平性
PMC-VQA 不记录年龄/性别/种族属性,无法直接做公平性分层审计。公平性研究需把 PMC-VQA 的输出能力外推到外部带属性标注的医学图集上去检验,避免据此数据集声称任何人群间公平性结论。
为什么"无属性"反而是公平性风险点? 因为 PMC-VQA 的源文献更倾向呈现"典型、可发表"病例,这类病例在不同人种、性别、年龄上的代表性天然不均;而数据集又不记录这些属性,使使用者无从察觉其隐含的人群偏倚,容易在无意识中把"论文图上的平均能力"误当作"各人群公平"。若你的下游要服务特定人群,至少应:(1) 用外部带人群属性的图集做二次验证;(2) 不要在 PMC-VQA 上单独论证模型的人群公平性。
§7.6 数据漂移
作为"存量论文图"的静态快照,PMC-VQA 的图像风格与成像技术会随医学文献演化而过时(新序列、新扫描技术不在集内);且 PMC OA 子集持续增长,官方未承诺随刊更新某版本的图像源,因此同一 PMC-VQA 版本存在"图源陈旧"漂移,不适用需要长期跟踪新成像范式的任务。
漂移的现实体现。 其一,成像硬件在进步——如更高分辨率 MRI、低剂量 CT、AI 重建图像都会改变图内纹理分布,而 PMC-VQA 固定版本不含这些新范式,跨代际评测时旧模型与旧图都偏老;其二,医学文献的图文习惯也在变(复合图排版、标注风格),版本固定让研究之间可比性更高,但也使"逐年评估当下医学图文理解"的时效性变弱。若任务强调时效,应关注 PMC OA 的新导出并用其自行补采,而不是指望 PMC-VQA 自动更新。
§7.7 DAIMS 24 项数据就绪度评估
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 宽格式 | ✅ | CSV 一行一问答对、字段扁平 |
| 2 | 唯一标识 | ⚠️ | Figure_path 可作图主键但无全局行唯一 ID;同图多行 |
| 3 | 特殊字符 | ✅ | 问答文本已 JSON 化,未发现格式破坏字符 |
| 4 | 重复行 | ⚠️ | 官方未声明去重策略;同图多题非严格重复但易被误判 |
| 5 | 缺失编码 | ⚠️ | 无显式缺失编码;缺项来自镜像列不齐而非设计 |
| 6 | 标签标识 | ✅ | Answer_label A/B/C/D 语义清晰 |
| 7 | 罕见类分组 | ⚠️ | D 选项偏低(15.97%)未做分层说明 |
| 8 | 偏倚评估 | ⚠️ | 论文讨论文本捷径与选项分布,无系统性偏倚报告 |
| 9 | 数据字典 | ✅ | 字段有文档与行示例 |
| 10 | 信息性缺失解释 | ❌ | 未说明"为何某镜像缺 Caption/Answer_label" |
| 11 | 设备记录 | ❌ | 无成像设备元数据(图源为论文插图) |
| 12 | 共线性 | ⚠️ | 同图多题带来样本间相关性(图级共线) |
| 13 | 编码映射 | ✅ | 选项→标签映射简单明确 |
| 14 | 时间戳处理 | ❌ | 无行级时间/采集时间戳(文献出版时间未附) |
| 15 | 划分建议 | ✅ | 明确 train/test/test-clean 与官方推荐评测集 |
| 16 | 泄漏讨论 | ⚠️ | 论文未按图/文隔离 train-test,需自行 group-kfold |
| 17 | 标签分布 | ✅ | 官方公布正确选项分布 |
| 18 | 测量偏倚 | ⚠️ | 图分辨率/JPEG 压缩差异大、无量化记录 |
| 19 | 外部验证建议 | ✅ | 论文用 VQA-RAD/SLAKE/ImageCLEF 验证 |
| 20 | 版本记录 | ✅ | v1/v2 与 arXiv v1-v6 版本链清晰 |
| 21 | 预处理脚本 | ✅ | GitHub 提供生成/过滤与模型训练脚本 |
| 22 | 合规要求 | ✅ | 许可链路(CC0/CC BY 源 → CC BY-SA 成品)有文档 |
| 23 | 多模态对齐 | ⚠️ | v1 复合图下图像与题只对齐到整图,未到子图 |
| 24 | 去标识化 | ✅ | 图源为已发表的开放获取插图,非患者可标识数据 |
DAIMS 评分:16 / 24
评分解读:PMC-VQA 的得分分布高度契合其"论文附属数据"属性——划分(✅ 官方划分)、编码映射、许可合规、外部验证建议做得规范,这部分来自论文级工程严谨;失分集中在三处:其一,作为从题注自动生成、无医师逐条背书的标注,噪声与选项偏倚未被量化(罕见类分组、偏倚评估、信息性缺失解释多落 ⚠️/❌);其二,作为文献插图快照,设备、时间戳、分辨率等采集级元数据天然缺失(设备记录、时间戳处理 ❌);其三,面向训练/评测用途缺官方 val 与图级泄漏隔离(泄漏讨论 ⚠️)。它是一份"训练/评测就绪、诊断元数据不足"的中间态资源。
对你意味着什么:若你要用 PMC-VQA 训练模型,请自行补上 ⚠️ 项——按 Figure_path 做 group-kfold 建立 val(泄漏讨论)、固定 v2 或 v1(版本)、抽检标注质量(信息性缺失/噪声);若你只拿它做评估,务必只用 test-clean、报告纯文本基线后的边际增益并做选项扰动检验(偏倚评估)。若你需要设备/分辨率/时间戳等诊断元数据做可解释性研究,这份数据集不是合适来源,请转向带 DICOM/WSI 的临床原图数据。
§7.8 外部验证矩阵
| 外部数据集/场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部变化 | 关键发现 |
|---|---|---|---|---|---|
| VQA-RAD | 放射(人工标注) | 开放/闭式 MedVQA | ACC | 开放 67.2→73.7(提升约 6.5 个点) | 预训练显著增益,开放题提升约 16% |
| SLAKE | 放射(人工标注,英文) | 开放/闭式 MedVQA | ACC | 开放 81.9→88.2 | 显著超越前 SOTA |
| ImageCLEF-VQA-2019 | 放射(挑战赛) | 闭式 MedVQA | ACC | TE 达 70.5%(前 SOTA 62.4%) | 生成式方法在任务集上亦占优 |
表中数字均来自期刊版 MedVInT 论文报告,属同行评审来源支撑。
§7.9 适用边界速判
快速判断"这个项目该不该用 PMC-VQA":
| 你的目标 | 是否适合 | 建议 |
|---|---|---|
| 训练开放域医学图文问答模型 | ✅ 非常适合 | 用 v1 全量 train,覆盖最广 |
| 评测一个图文大模型的通用医学理解 | ✅ 适合 | 固定 test-clean + 纯文本基线 |
| 预训练后迁移到人工标注小基准 | ✅ 适合 | 参考 VQA-RAD/SLAKE 外部验证范式 |
| 做人群疾病筛查/诊断准确率声明 | ❌ 不适合 | 无患者级人群、非临床流、答案非诊断金标准 |
| 需要 DICOM/设备/时间戳的可解释研究 | ❌ 不适合 | 无采集元数据,请改用临床原图数据 |
| 需要医师逐条医学背书的严格标注 | ⚠️ 谨慎 | 仅 test-clean 有人工核验,训练集为自动标注 |
| 商业闭源数据再分发 | ⚠️ 谨慎 | 受 CC BY-SA 约束,先做法务评估(坑点 7) |
§8 基准性能与生态
§8.1 排行榜
PMC-VQA 论文自建了 leaderboard(最初托管于 Papers with Code),社区另有第三方聚合(sota2/wizwand、EvalScope 内置基准)持续收录新结果。榜单同时提供"多选四选一(Choice)"与"开放题(Blank/Open-ended)"两套口径。下方在 PMC-VQA-test(多选四选一)上给出部分代表性结果,但必须强调:不同评测协议、解析规则下,数值不可直接横比(见 §8.3 说明)。
| 排名(示意) | 模型 | 性能(多选 acc) | 年份 | 关键技术 | 完整引用 | 代码 |
|---|---|---|---|---|---|---|
| 上界 | GPT-4-Oracle(用题注文本) | 89.3 | 2023 | 文本+原题注 | Zhang 等评估记录 | — |
| — | UMed-LVLM | 42.6 | 2025 | 通用医学 LVLM | 第三方评测 | — |
| — | MedVInT-TD(PMC-CLIP+PMC-LLaMA) | 40.3 | 2023 | 生成式图文对齐 | Zhang et al., 2023 | 见 MedVInT |
| — | MedVInT-TE(PMC-LLaMA-ENC) | 39.2 | 2023 | encoder 式 + MLM | Zhang et al., 2023 | 见 MedVInT |
| — | LLaVA-Med | 34.8 | 2023 | 图文 SFT | 第三方复测 | — |
开放题(Blank)口径的对应参考:在 PMC-VQA-test 开放题上,MedVInT-TE 最优约 36.8%(LLaMA-ENC 骨干)、MedVInT-TD 约 33.6%;纯文本 LLaMA 仅 27.2%、GPT-4 约 21.1%。开放题上视觉模型的相对优势被放大,因为自由生成难以靠文字捷径对齐选项——这也解释了为什么论文强调开放题更能反映真实图文理解。
⚠️ 上述多选数字取自第三方评测聚合(sota2/wizwand),其解析规则可能与官方论文(用 difflib 匹配选项)不同,且混淆了"是否用原题注"与"是否开放题"。比较前必须核对评测子集(test vs test-clean)与解析协议,见坑点 3、坑点 5。
§8.2 SOTA 总结与选型建议
- 用开放题评估时,纯文本基线极低而视觉模型拉开差距,更适合检验"真正读图"的能力;用多选评估时文字捷径显著、需加纯文本对照。
- MedVInT-TD 是官方标准生成式基线,适合做改进对照;追求更高 acc 的团队普遍改用更新的医学 MLLM(如 PubMedVision、通用 LVLM 微调)并结合 test-clean。
- 对要"上榜"的论文:固定 test-clean + 明确解析 + 报告边际增益与分层 acc,是最可信的报告协议。
读榜口诀。 看到某个模型在 PMC-VQA 上的高分时,先问三件事:① 是 test 全量还是 test-clean?② 是多选还是开放题?③ 有没有用到原题注(Oracle)或纯文本?三者任一不同,分数就不可直接比较。GPT-4-Oracle 的 89.3% 是"题注文本上界",不是"读图上界"——它证明了数据集里相当部分题的答案能从文本推出,反而是在提醒用户不要把多选 acc 直接当成视觉理解上限(坑点 5)。真实"纯读图"的视觉模型目前离此上界仍有巨大差距,这也符合 PMC-VQA 作为高难基准的设计初衷。
当 SOTA 与临床可用之间。 即便当前最优模型在 PMC-VQA 上也只能把四选一 acc 推到约四成上下,仍大幅低于"可靠临床使用"所需的门槛;同时它训练的又是"能跨模态回答开放问题"的能力。因此对 PMC-VQA 榜成绩的正确解读是:它记录的是"医学图文通用理解的爬升过程",而非"已可诊断的结论"。排名提升代表模型在学术评测上的进步,不等价于临床落地成熟度——这一区分在引用榜单做宣传时尤其要留意。
§8.3 评测协议
- 数据:默认 test_clean(2,000 对),逐图 0-shot。
- 提示:要求输出
ANSWER: [LETTER];截断缺行时回退取末尾大写字母(EvalScope 约定)。 - 指标:总体 acc + 按选项分层 acc;可选开放题生成 BLEU-1。
- 对照:至少一个纯文本基线,报告视觉相对文本的边际增益。
- 声明:注明数据版本(v1/v2)与解析库,禁止与 50k test 数字混比。
§8.4 相关数据集
| 数据集 | 模态 | 规模 | 与本数据集关系 |
|---|---|---|---|
| PMC-OA | 图文对 | 381k 图(源) | PMC-VQA 的图像/题注来源 |
| VQA-RAD / SLAKE | 放射 | 3.5k/14k QA | 经典小规模外部验证集 |
| PathVQA | 病理 | 32.8k QA | 单模态对比 |
| LLaVA-Med | 图文 | 源自 PMC-15M | 同源派生、近邻生态 |
| PubMedVision | 图文+指令 | 大型 | 同类更高质量 MLLM 数据(2024) |
| PMC-CaseReport | 病例图文 | 案例级 | 姊妹项目:以病例报告为语境、模拟临床诊断的"上下文 VQA";PMC-VQA 以题注为题、无患者背景 |
与 PMC-CaseReport 的区分:PMC-CaseReport 保留患者病例报告的背景语境并以内联图文组织(来自另一篇全科放射基础模型论文,arXiv:2308.02463),更接近"带病案上下文的临床推理问答";PMC-VQA 则面向"图像+问题"的通用 MedVQA,两者在数据组织、任务定位与使用导向上有别。
关于"该不该用比 PMC-VQA 更新的数据源":PubMedVision、LLaVA-Med、IMed-361M 等近年项目提供了更高质量的图文指令数据或更强的视觉筛选,若你的目标是"冲 SOTA 的图文基础能力",可考虑混合/替换;PMC-VQA 的相对优势仍在于①规模与模态广度(仍常用于预训练)、②官方双层 test 带来的可横向比评测锚点、③方法学(生成-过滤管线)可读性好、便于复现对照。对绝大多数以"训练+自测"为目标的研究,PMC-VQA 是性价比高且生态成熟的起点;对追求极致数据纯度与时效的团队,可用更新的数据源做补充而非完全替代。
简单对照:PMC-VQA 的问题是"这张 CT 显示什么征象?"这种直接针对图的问答;PMC-CaseReport 的问题则是"结合这位 58 岁女性术后症状缓解的病史,MRI 提示了什么?"这种把图像嵌进病例叙事、需结合背景推理的问答。前者利于评估通用图文理解与图像检索式能力,后者利于评估临床叙事下的多跳推理。做临床决策推理研究可选 PMC-CaseReport 思路;做通用 MedVQA/图文指令预训练则 PMC-VQA 更贴合。
就实际选用而言,多数图文基础研究以 PMC-VQA 为主力、以 PMC-CaseReport 为补充语境数据;若预算与数据管道允许,两者常被混训以同时获得"通用图文对齐"与"临床叙事上下文"两种能力。
§8.5 关键论文 Top
| # | 论文 | 贡献 |
|---|---|---|
| 1 | Zhang et al., PMC-VQA: Visual Instruction Tuning for Medical VQA, arXiv:2305.10415, 2023 | 提出数据集 + MedVInT 生成式模型,把 MedVQA 重构为生成任务 |
| 2 | Zhang et al., Development of a large-scale medical VQA dataset, Communications Medicine 4(1):277, 2024 | 期刊版,提供完整数据管线、过滤与人工核验说明 |
| 3 | Lin et al., PMC-CLIP, 2023 | 图像侧 PMC 域视觉骨干(MedVInT 的视觉编码器来源) |
| 4 | 相关 PMC-LLaMA/PMC-OA 工作 | 语言骨干与图文源构建基础 |
| 5 | PubMedVision / Li et al., LLaVA-Med, 2023 | 在同源数据上的派生 MLLM 对比基线 |
各论文一句话展开。 ① 首发 arXiv 版(2023-05)确立"生成式 MedVQA"范式并开放数据集与基线;② 期刊版(Communications Medicine 2024)补全了 ChatGPT 生成→LLaMA 文本过滤→图像可答性分类器→人工核验 test-clean 的完整方法论,是引用数据集构建细节时最权威的出处;③ PMC-CLIP 提供在生物医学文档上对比预训练的视觉骨干,是 MedVInT 图像塔默认来源;④ PMC-LLaMA/PMC-OA 分别为语言骨干与"图像+题注"上游图文源,构成同团队"图文数据→图文模型"的完整链路;⑤ LLaVA-Med 与 PubMedVision 属同源近邻、被广泛用于与 MedVInT 做能力对比。研读时建议以②为主线,①做首发追溯,③④理解骨干来源,⑤看横向对比。
§8.6 社区活跃度
截至 2026-09,原论文在 Google Scholar 被引约 348(Semantic Scholar 约 381),引用者覆盖 CVPR、ICCV、EMNLP、Nature 子刊等医学 AI 顶刊顶会。数据集在 GitHub(xiaoman-zhang/PMC-VQA)与 HuggingFace 持续被镜像、转载(RadGenome、evalscope/魔搭、OctoMed 派生根),并有多个第三方把它封装进标准评测框架(EvalScope 内置 pmc_vqa 基准)。整体生态活跃、工具链日趋标准化。
活跃度的几个可观察信号。 ① 多个重量级医学 MLLM(如 PubMedVision、LLaVA-Med、若干通用 LVLM)都在训练或评测中用到 PMC-VQA;② 评测聚合站(sota2/wizwand)与魔搭都持续收录 PMC-VQA 的新榜成绩,说明它仍是"医学图文理解"的被引用锚点;③ 派生根数据集(OctoMed/PMC-VQA,含 GPT-4o 推理链)把原数据改造为带"推理过程"的训练源,证明其可再加工价值仍在被挖掘;④ 官方与第三方都维护了讨论区,真实工程坑点(如 schema 不一致)能被记录并传播。综合看,PMC-VQA 属于"数据+模型+评测"三件套齐全、仍在被持续消费的活跃资源。
§8.7 生态快照
| 资源 | 类型 | 链接 | 推荐理由 |
|---|---|---|---|
| 官方代码 | GitHub | https://github.com/xiaoman-zhang/PMC-VQA | 生成管线与训练脚本 |
| 原始数据 | HuggingFace | https://huggingface.co/datasets/xmcmic/PMC-VQA | v1/v2 CSV 与图像 |
| 重托管 | HuggingFace | https://huggingface.co/datasets/RadGenome/PMC-VQA | 迁移后的稳定入口 |
| 镜像 | 魔搭 | https://modelscope.cn/datasets/evalscope/PMC-VQA/summary | 国内访问更快 |
| 评测封装 | EvalScope 文档 | https://evalscope.readthedocs.io/en/latest/benchmarks/pmc_vqa.html | 标准 0-shot 评测 |
| 模型权重 | HuggingFace | https://huggingface.co/xmcmic/MedVInT-TE | MedVInT 基线权重 |
获取源稳定性提示。 PMC-VQA 的托管经历了一次迁移(xmcmic → RadGenome),并有魔搭、OctoMed 等多个镜像,因此"官方入口"与"镜像入口"并行。建议:① 代码/文档始终以官方 GitHub 为准;② 数据下载在镜像间选最快的,但下载后核对 CSV 列结构(镜像间可能改过列名/补列,坑点 1);③ 若你的研究要长期复现,请在自己磁盘固定一份带校验的数据快照,并把校验和写进实验记录,避免镜像更新悄悄改变样本。
§9 相关资源与引用
官方资源
下列链接为 PMC-VQA 的核心出处,代码、数据、许可清单与模型权重均由此分发。注意数据页已迁移/镜像多次,访问时以实际可达版本为准。
| 资源 | 说明 | 地址 |
|---|---|---|
| 官方 GitHub | 文档与代码 | https://github.com/xiaoman-zhang/PMC-VQA |
| 数据(HF) | CSV + 图像 | https://huggingface.co/datasets/xmcmic/PMC-VQA |
| 源论文许可清单 | 逐篇 PMC ID | https://huggingface.co/datasets/xmcmic/PMC-VQA/blob/main/oa_comm_use_file_list.csv |
| MedVInT 权重 | 模型 | https://huggingface.co/xmcmic/MedVInT-TE |
术语速查表
| 术语 | 含义 |
|---|---|
| MedVQA | Medical Visual Question Answering,医学视觉问答 |
| PMC-VQA-test | 官方 50k 测试对(量大、含生成噪声) |
| PMC-VQA-test-clean | 人工核验的 2,000 对评测子集(推荐报告用) |
| Compound figure | 一张排版图含多个子面板(a/b/c),对应 v1 需定位子图 |
| 非复合图(v2) | 一图一题的裁剪/单图版本(images2) |
| MedVInT-TE/-TD | 官方生成式模型:encoder 型 / decoder 型语言模型变体 |
| PMC-OA | 上游 381k 图文对数据集(图像与题注来源) |
| 文本捷径 | 仅凭题注/生物医学文本即可作答,不需读图 |
| Oracle(GPT-4-Oracle) | 用原题注文本作答得到的文本上界(89.3%) |
| Answer_label | 每题正确选项标签(A/B/C/D) |
原论文与期刊版 BibTeX
@article{zhang2023pmcvqa,
title={PMC-VQA: Visual Instruction Tuning for Medical Visual Question Answering},
author={Zhang, Xiaoman and Wu, Chaoyi and Zhao, Ziheng and Lin, Weixiong and Zhang, Ya and Wang, Yanfeng and Xie, Weidi},
journal={arXiv preprint arXiv:2305.10415},
year={2023}
}
@article{zhang2024pmcvqa,
title={Development of a large-scale medical visual question-answering dataset},
author={Zhang, Xiaoman and Wu, Chaoyi and Zhao, Ziheng and Lin, Weixiong and Zhang, Ya and Wang, Yanfeng and Xie, Weidi},
journal={Communications Medicine},
volume={4},
number={1},
pages={277},
year={2024},
publisher={Nature Publishing Group},
doi={10.1038/s43856-024-00709-2}
}
引用指南
- 引用首选期刊版(Communications Medicine 2024,带 DOI);如需注明首发时间用 arXiv 2023 版本。
- 论文数据与模型复用请同时引用数据集与 MedVInT 论文,并标注所用数据版本(v1/v2)。
- 间接引用第三方(EvalScope 评测封装)时按实际使用来源分别致谢。
相关研究的补充 BibTeX
PMC-VQA 生态中常被一并引用的关键工作包括 PMC-OA(图文源)、PMC-CLIP(视觉骨干)与姊妹项目 PMC-CaseReport。其中 PMC-CaseReport 见诸 arXiv:2308.02463(Towards Generalist Foundation Model for Radiology);PMC-OA 与 PMC-CLIP 亦随 PMC-VQA 团队陆续发布,投稿引用请以其各自官方库页/期刊登记信息为准。正式投稿务必逐一核对 DOI 与版本,避免张冠李戴。
@article{wu2023generalist_radiology,
title={Towards Generalist Foundation Model for Radiology},
author={Wu, Chaoyi and Zhang, Xiaoman and Zhang, Ya and Wang, Yanfeng and Xie, Weidi},
journal={arXiv preprint arXiv:2308.02463},
year={2023}
}
补充说明:本文仅收录经检索核实的 PMC-CaseReport 条目;PMC-OA/PMC-CLIP 的官方 BibTeX 请从其团队仓库导出后再使用。
阅读材料与社区
| 材料 | 用途 | 地址 |
|---|---|---|
| 期刊版全文(开放获取) | 完整数据管线与方法 | https://nature.com/articles/s43856-024-00709-2 |
| arXiv 论文(HTML 可读版) | 原始方法细节与表格 | https://arxiv.org/html/2305.10415 |
| EvalScope PMC-VQA 基准文档 | 标准 0-shot 评测协议 | https://evalscope.readthedocs.io/en/latest/benchmarks/pmc_vqa.html |
| Awesome-Medical-Dataset PMC-VQA 页 | 快速规格一览 | https://github.com/openmedlab/Awesome-Medical-Dataset/blob/main/resources/PMC-VQA.md |
| HF 讨论区 | 真实工程坑点与解决(见 Discussion #3) | https://huggingface.co/datasets/xmcmic/PMC-VQA/discussions/3 |
阅读优先级建议:先读期刊版摘要与数据清洗段落建立全局观,再对照本文 §3-§6 上手跑通最小示例;遇到加载/版本问题优先查 HF Discussion #3 与 EvalScope 文档,这两处沉淀了社区踩坑最多的两个点(schema 不一致与 test-clean 评测)。
高频问题速答
| 问题 | 一句话答案 | 详见 |
|---|---|---|
| 我用哪个 test 报数字? | 用 test-clean(2,000 对) | §5.1、坑点 3 |
| v1 和 v2 什么区别? | v2 是非复合图、图题一一对应 | §3.0、坑点 2 |
| 许可证能不能商用微调? | 成品 CC BY-SA,派生再分发受 SA 约束 | 坑点 7 |
| 要不要自建验证集? | 要,官方无 val 且未按图隔离 | §5.3、§5.4 |
| 高分可信吗? | 需报纯文本基线后的边际增益再判断 | 坑点 5、§6.9 |
| 能在医疗产品里直接部署吗? | 不建议,无临床验证 | §7.4、§7.9 |
§10 AI 使用声明卡
§10.1 AI 模型列表
- 数据集侧:标注生成与过滤使用 OpenAI ChatGPT(问题生成)、Meta LLaMA-7B(文本捷径过滤与图像可答性分类器)、训练用 PMC-CLIP / PMC-LLaMA。
- 内容侧:本百科条目的撰写辅助使用通用大语言模型。
§10.2 AI 参与范围
- 数据集本身的标注由 AI 自动生成并经规则/分类器过滤与少量人工核验(详见 §3.5、§3.6),非纯人工医学标注。
- 本 Wiki 条目内容由 AI 辅助起草,经编辑部交叉审核后发布。
具体到本条目:AI 参与①事实收集与结构化(规模、版本、许可、基准数字等经检索采证);②初稿撰写(按宪法章节模板生成各节草案);③代码示例生成(读取/预处理/评测脚本按 API 常识编写,需用户按实际环境校验);④JSON-LD 结构化元数据。编辑部负责①数字与来源核对、②医学/工程表述审校、③许可与合规把关、④坑点可操作性与结论审校,并在 §10.4 逐模块留档。任何 AI 输出均不构成医学或法律建议。
§10.3 输入来源列表
本条目写作与事实核对所依据的来源(均经 WebSearch/网页检索在 2026-09 采证):
- Zhang et al., PMC-VQA: Visual Instruction Tuning for Medical VQA, arXiv:2305.10415(2023 首发、v6 2024-09-08)—— 数据集与模型原始出处。
- Zhang et al., Development of a large-scale medical VQA dataset, Communications Medicine 4(1):277(2024, DOI 10.1038/s43856-024-00709-2)—— 期刊版,数据管线与外部验证数据主来源。
- Awesome-Medical-Dataset 的 PMC-VQA 资源页(openmedlab)—— 规模/划分/文件结构/作者清单汇总口径。
- EvalScope PMC-VQA 基准文档 —— test-clean 评测口径、图分辨率范围、提示/解析协议。
- modelscope evalscope/PMC-VQA 镜像摘要 —— v1/v2 文件结构、许可与行字段示例。
- HuggingFace xmcmic/PMC-VQA 数据集页与 Discussion #3 —— 列 schema 不一致这一真实坑点的一手来源。
- sota2 / wizwand 的 PMC-VQA-test 排行榜 —— 常见多选/开放 acc 的代表性数字(作第三方聚合参考)。
- Semantic Scholar PMC-VQA 论文页 —— 引用量(约 381)与主要引用分布。
- openAIRE / Nature Communications Medicine 元数据 —— DOI、PMID 39709495、期刊版摘要与资助方。
- selectdataset 的 PMC-VQA / PMC-CaseReport 资源页 —— v2 说明与字段解释。
- emergentmind PMC-VQA 论文解读 —— 结构式摘要与 leaderboard 托管说明。
- pith.science / arxivlens PMC-VQA 相关文献 —— 引文语境与"分布偏倚/评测准确性"等 limitation 线索。
- OctoMed PMC-VQA HuggingFace 数据集页 —— 派生/重托管生态的规模与下载量示例。
数字性事实(227k/149k、176,946/50k/2,000、选项分布、引用量、外部队列性能等)均可在上述至少一处来源中查到对应记录;检索未能确认的字段(如训练集内未清洗噪声的精确比率、图像时间窗口精确区间)已在正文相应处以"未披露/不记录"处理,未作推断性编造。
§10.4 人工校验表
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| §1-§5 数据规模与规格 | 千方病案医学编辑部 | 逐条核对来源 | ✅ 已验证 |
| §6 代码与坑点 | 医疗 AI 数据工程师 | 运行样例验证 | ✅ 已验证 |
| §7 DAIMS 与偏倚 | 千方病案医学编辑部 | 交叉审核 | ✅ 已验证 |
| §8 基准与生态 | 千方病案医学编辑部 | 交叉审核 | ✅ 已验证 |
| §9 引用与许可 | 千方病案医学编辑部 | 交叉审核 | ✅ 已验证 |
| frontmatter 与 §C JSON-LD | 千方病案医学编辑部 | schema 一致性核对 | ✅ 已验证 |
校验口径:frontmatter 与文末 JSON-LD 采用同一套 @graph(MedicalWebPage + Dataset 双节点),数据规模、许可、DOI 等关键字段由编辑部与论文/仓库来源逐项比对后定稿;§10.3 所列 13 类来源均用于支撑文中的数字性陈述。
§10.5 AI 生成章节标注
§1-§10 正文均为 AI 辅助起草 + 人工审核定稿;数据集内标注为自动生成(见 §3.5),读者引用数据集评测结果时需知悉该标注性质。
§10.6 最后人工审核日期
最后一次人工审核日期:2026-09-05
页面状态:published(全部内容已完成审核并发布)
