信息速览

SLAKE(双语医学视觉问答数据集)— 中英双语医学 VQA 基准 AI-Ready Wikipedia
INFOBOX
| 数据集名称 | SLAKE |
| 英文全称 | SLAKE: A Semantically-Labeled Knowledge-Enhanced Dataset for Medical Visual Question Answering |
| 别名/简称 | SLAKE 1.0、SLAKE-EN/SLAKE-ZH(按语言子集)、Semantic Linking Acquire Knowledge English-Chinese medical VQA |
| 疾病分类 | 全身多部位肿瘤与胸部病变(ICD-11:2A00 脑恶性肿瘤 / 2C12 肝恶性肿瘤 / 2C90 肾恶性肿瘤 / 2C25 支气管和肺恶性肿瘤 / CB32 胸腔积液等,共覆盖 12 种疾病) |
| SNOMED CT | 39607008 Lung structure / 10200004 Liver structure / 64033007 Kidney structure / 12738006 Brain structure / 399208008 Chest X-ray(详见 §2.1b) |
| 数据模态 | 医学影像(CT/MRI/X-Ray 轴位单层切片)、双语文本问答、语义分割掩码、边界框、知识图谱三元组 |
| AI 任务类型 | 医学视觉问答(开放/封闭式)、知识增强多模态推理、语义分割、器官/病灶检测、医学 VLM 评测 |
| 样本总数 | 642 幅影像;论文版 14,028 条 QA;清洗发布版(SLAKE 1.0)5,980 条 QA(train 3,690 / validation 1,061 / test 1,229) |
| 数据大小 | 约 217 MB(HuggingFace 打包:imgs.zip 212 MB + KG.zip 81.7 kB + 三个 JSON 约 4.2 MB) |
| 数据格式 | JSON(QA)、JPEG(影像)、PNG(掩码)、TXT(掩码映射)、ZIP(图像与知识图谱) |
| 许可证 | CC-BY-4.0 |
| 访问级别 | 开放(无需注册、无需申请) |
| DUO 标签 | NRES(无限制,CC-BY-4.0) |
| 语言 | 中英双语(每条 QA 含中文与英文两个版本) |
| 首发日期 | 2021-02-18(arXiv:2102.09542)/ 2021-04-13(ISBI 2021 正式发表,pp. 1650-1654) |
| 最后更新 | SLAKE 1.0 清洗版(官方声明与论文略有不同;HuggingFace 仓库最后提交早于 2024-09) |
| 发布机构 | 香港理工大学计算学系,联合四川大学华西医院、四川省医学科学院·四川省人民医院 |
| 官方主页 | https://www.med-vqa.com/slake/ |
| 下载地址 | https://huggingface.co/datasets/BoKelvin/SLAKE(官方页面同时提供 Google Drive 链接) |
| DOI | 10.48550/arXiv.2102.09542(arXiv 版);ISBI 2021 IEEE 会议论文(pp. 1650-1654) |
| 引用次数 | 675+(Google Scholar,截至 2026-09) |
| AI 就绪度评分 | ⭐⭐⭐⭐(4/5)— 官方图像级划分 + HuggingFace 一键加载 + 知识图谱齐备;扣分项:论文与发布版数字不一致、无官方预处理脚本、掩码需自行映射、开放题 exact match 严格 |
| 页面状态 | published |
§0 E-E-A-T 与审核声明
§0.1 医学审核:[千方病案医学编辑部] 交叉审核:§2 医学背景(ICD-11/SNOMED CT 映射、疾病简介与流行病学、临床任务定义)、§7 偏倚分析。
§0.2 数据工程审核:[千方病案医学编辑部交叉审核] 医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
§0.3 审核日期:2026-09-05。
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。SLAKE 以 CC-BY-4.0 许可发布,允许商业使用但须注明出处;影像源自 NIH ChestXray14、Medical Decathlon、CHAOS 三个公开库,二次分发时请一并核对上游许可条款。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。
§1 数据集概览
§1.0 📌 30 秒速览
这是什么? SLAKE 是全球首个中英双语的医学视觉问答(Med-VQA)公开数据集,2021 年由香港理工大学联合华西医院等机构的医生团队发布(ISBI 2021 口头报告)。它提供 642 幅覆盖脑、颈、胸、腹、盆腔的 CT/MRI/X-Ray 影像,每幅影像配有医生逐层标注的器官分割掩码和病灶边界框,并围绕影像生成了数千条中英双语问答,还额外附带一个 5,232 条三元组的医学知识图谱(官方主页)。
为什么重要? 在 SLAKE 之前,Med-VQA 数据集(如 VQA-RAD)只有几百幅图、单语言、无结构化标注。SLAKE 一次性补齐三块短板:双语(让中文医学多模态研究第一次有了可对齐的评测基准)、语义标注(分割/检测可作辅助监督与可解释性评估)、知识图谱(知识型问题无法靠"看图猜答案"作弊)。原始论文已被引用 675+ 次(Google Scholar,截至 2026-09),是 Med-VQA 与医学多模态大模型评测的事实基准之一。
我能用它做什么? 训练/评测医学 VQA 模型(含中文)、给医学 VLM 做双语幻觉与校准分析、用分割掩码做多任务联合训练、用知识图谱做检索增强问答。注意:它是二维单层切片数据,不能用于 3D 体数据研究的结论;论文统计数字与实际下载文件不一致(详见 §3.0 与坑点 1)。
§1.1 技术摘要
SLAKE 的构建分四步(Liu et al., 2021)。第一步选图:从 Medical Decathlon 与 CHAOS 的 3D 体数据中随机抽取 463 张轴位单层切片,从 NIH ChestXray14 随机抽取 179 张胸部 X 光片,共 642 幅(282 CT + 181 MRI + 179 X-Ray),覆盖头、颈、胸、腹、盆腔 5 个部位、8 个"部位-模态"类别。第二步语义标注:由有经验医生使用 ITK-SNAP 为每幅影像标注 12 种疾病和 39 个器官的分割掩码与边界框,构建耗时超过半年。第三步问答生成:围绕每幅影像生成中英双语问题,标注 10 种内容类型(Plane、Quality、Modality、Position、Organ、KG、Abnormality、Color、Shape、Size)与开放/封闭两种答案形式;发布版含 train 3,690 / validation 1,061 / test 1,229 条 QA(论文版报告 14,028 条)。第四步知识图谱:从 OwnThink 提取 52.6K 条三元组并按医学规则精炼为英文 2,603 条 + 中文 2,629 条共 5,232 条,用于回答知识型(KG)问题,实体嵌入用 TransE 训练。官方基线 VGG+SAN 在英文测试集达 72.73%,加入分割预训练提升 2.6 个百分点,KG 加入后知识题再提升约 2 个百分点。
§1.2 战略价值
维度一:双语对齐的稀缺性。 医学多模态研究长期被英文语料主导,中文医学影像问答语料几乎没有可评测的公开金标准。SLAKE 的每条 QA 均提供中英两版(question/question_en、answer/answer_en),且由同一标注流程对齐生成,使研究者可以在同一图像、同一语义类型上直接对比中英文理解能力差异。对国内医疗大模型团队而言,这是构建中文医学多模态评测集成本最低、可复现性最强的起点之一。
维度二:多任务一体的标注密度。 同一幅影像同时携带三类监督信号:QA 对(主任务)、语义分割掩码与边界框(辅助监督/可解释性)、知识图谱三元组(外部知识)。官方实验证明用分割标注做预训练可让 VQA 准确率从 72.73% 提升到 75.36%(+2.6 个百分点),这使 SLAKE 成为研究"多任务互益"与"可解释问答"的标准试验台——这是 VQA-RAD、PathVQA 等纯 QA 数据集不具备的。
维度三:社区评测枢纽地位。 SLAKE 被 OmniMedVQA、FedMEKI(NeurIPS 2024)等汇总基准收录为跨机构验证任务,也是 MedGemma、HealthGPT、Lingshu、Hulu-Med 等 2025-2026 年医学大模型报告中的常驻评测项(paperswithcode 收录页)。引用曲线持续上升(675+,截至 2026-09),生态稳定,复现论文时的基准对齐成本低。
§1.3 同类数据集横向对比
| 数据集 | 影像规模 | QA 规模 | 语言 | 语义标注 | 知识图谱 | 差异化定位 |
|---|---|---|---|---|---|---|
| SLAKE | 642 幅(CT/MRI/X-Ray,5 部位) | 论文版 14,028 / 发布版 5,980 | 中英双语 | 分割掩码 + 边界框(12 病种 / 39 器官) | 5,232 条三元组 | 双语 + 多任务标注 + 知识增强 |
| VQA-RAD | 315 幅(多为胸部 X-Ray) | 约 3.5K | 英文 | 无 | 无 | 首个临床医生构建的 Med-VQA 数据集 |
| PathVQA | 病理切片 | 30,000+ | 英文 | 无 | 无 | 病理专项、规模大 |
| VQA-Med(ImageCLEF) | 按年更新 | 竞赛制 | 英文 | 部分年份含定位标注 | 无 | 年度竞赛基准、任务逐年变化 |
| PMC-VQA | 多来源门诊影像 | 大规模(图-文对生成) | 英文 | 无 | 无 | 视觉指令微调风格 |
| OmniMedVQA | 汇总 11+ 开源集 | 汇总 | 英文 | 继承上游 | 无 | 大模型综合评测专用 |
| GEMeX(同团队后续) | 胸部 X-Ray | 大规模 | 多语言 | 含可解释性标注 | 无 | SLAKE 团队的可解释性续作 |
对比结论:SLAKE 的绝对规模在各 Med-VQA 数据集中不占优,其护城河是"双语 + 语义标注 + 知识图谱 + 官方划分"四项同时成立——追求纯规模选 PathVQA/PMC-VQA,追求中文或多任务可控实验选 SLAKE,追求大模型综合排名看 OmniMedVQA。表格中未注明处规模数字以各数据集官方发布为准。
§1.4 版本时间轴
| 时间 | 版本/事件 | 说明 |
|---|---|---|
| 2021-02-18 | arXiv:2102.09542 v1 | 论文预印本发布,报告 642 幅影像、14,028 条 QA |
| 2021-04-13 | ISBI 2021(oral)正式版 | IEEE 会议论文集 pp. 1650-1654 |
| 2021-2022 | SLAKE 1.0 清洗版 | 官方声明"再次清洗,与论文略有不同";发布版为 train 3,690 / validation 1,061 / test 1,229 |
| 2023-2024(HF 提交,早于 2024-09) | HuggingFace 托管 | validate.json 更名为 validation.json;repo 总计约 217 MB |
| 2024-2025 | 进入主流 VLM 评测矩阵 | 被 FedMEKI(NeurIPS 2024)、OmniMedVQA 等收录;MedGemma、HealthGPT 等报告引用 |
| 同团队后续 | GEMeX | 大规模胸部 X-Ray 多模态可解释 Med-VQA 数据集(官方主页 News 发布) |
读时间轴的两个要点:其一,"SLAKE 1.0"没有正式版本号与日期标注,社区默认以 HuggingFace 官方仓当前内容为准——这是引用时最大的版本陷阱;其二,时间轴上数据本身停更而评测生态持续演化,2024 年后大量"SLAKE 成绩"实际产生于各种再打包子集,引用时必须回到协议层核对(§8.3 检查清单)。
§1.5 典型应用场景
- 医学 VQA 模型训练与基准测试:官方划分齐全,可直接复现论文协议(总体/开放/封闭式三档准确率)。
- 中文医学多模态能力评测:用 SLAKE-ZH 子集评测中文医疗大模型,与英文结果对照分析语言差距。
- 多任务联合学习:VQA + 分割 + 检测联合训练,官方已验证分割预训练带来 +2.6 个百分点增益。
- 知识增强问答研究:KG 类问题(base_type=kvqa)必须依赖外部知识,适合检索增强生成(RAG)与图谱推理实验。
- 医学 VLM 幻觉与校准分析:封闭式题答案空间小(多为是/否),适合测量过度自信与选择偏差;第三方已基于 SLAKE 发布校准研究(ECE/ACE 指标,见 §7.8)。
- 医学教学与自测素材:双语问答天然构成"看图答题"题库,配合分割掩码可视化可做标注教学示例(CC-BY-4.0 允许改编,须署名)。
§2 医学背景
§2.1 ICD-11 编码映射
SLAKE 影像标注覆盖 12 种疾病与 39 个器官(论文明确提及脑/肝/肾/肺等部位癌症,以及肺不张、胸腔积液、肿块、气胸等胸部病变)。下表列出可核实的主要疾病类别映射:
| 疾病/标注对象 | ICD-11 编码 | ICD-11 中文名 | 在 SLAKE 中的角色 |
|---|---|---|---|
| 脑恶性肿瘤 | 2A00 | 脑恶性肿瘤 | 头部 CT/MRI 切片的异常标注对象 |
| 肝恶性肿瘤 | 2C12 | 肝或肝内胆管恶性肿瘤 | 腹部 CT/MRI 切片的异常标注对象 |
| 肾恶性肿瘤 | 2C90 | 肾恶性肿瘤(除外肾盂) | 腹部 CT/MRI 切片的异常标注对象 |
| 支气管和肺恶性肿瘤 | 2C25 | 支气管或肺恶性肿瘤 | 胸部 X-Ray/CT 的疾病标签来源之一 |
| 胸腔积液 | CB32 | 胸腔积液 | 胸部影像 Abnormality 类问题的典型阳性所见 |
其余胸部所见(肺不张、肿块、气胸等)与 39 个器官结构在 ICD-11 中分布于呼吸系统(第 12 章)相应细目,SLAKE 以自由文本答案形式标注,未绑定编码。
§2.1b SNOMED CT 映射
| 标签/概念 | ICD-11 关联 | SNOMED CT 码 | SNOMED 术语 |
|---|---|---|---|
| 肺(结构) | 2C25 相关 | 39607008 | Lung structure |
| 肝(结构) | 2C12 相关 | 10200004 | Liver structure |
| 肾(结构) | 2C90 相关 | 64033007 | Kidney structure |
| 脑(结构) | 2A00 相关 | 12738006 | Brain structure |
| 胸部 X 光检查 | — | 399208008 | Chest X-ray (procedure) |
§2.2 疾病与解剖简介
SLAKE 的 8 个影像类别横跨神经、头颈、胸、腹、盆五个解剖区。脑部 CT/MRI 切片涉及胶质瘤等脑肿瘤及正常脑室结构辨析;腹部切片以肝、肾、脾、胰等实质器官及肝细胞癌、肾癌为主要异常对象;胸部影像(X-Ray 与 CT)覆盖 NIH ChestXray14 原始疾病标签谱系,包括肺不张、胸腔积液、肿块、气胸等典型胸科所见;盆腔与颈部 CT 以器官识别与切面判断为主。流行病学上,肺癌是全球发病与死亡率最高的恶性肿瘤之一,肝细胞癌与肾癌亦属常见实体瘤,胸腔积液与肺不张则是住院患者常见的继发性胸部表现——SLAKE 的疾病谱与临床高频阅片场景高度重合,这是它作为阅片问答训练材料的价值基础。
值得注意的是 SLAKE 覆盖了三类典型临床读片认知负荷:第一层是"技术判读"(这张片是什么检查、什么切面、什么序列、质量是否合格),对应 Plane/Modality/Quality 类问题,是 AI 质控系统的直接训练素材;第二层是"解剖判读"(器官识别与定位),对应 Organ/Position 类问题,配合掩码标注可升级为定位任务;第三层是"诊断判读"(有无异常与异常性质),对应 Abnormality 类问题。需要强调:SLAKE 图像为从公开体数据随机抽取的单层切片,同一患者无连续层面,疾病构成不反映真实临床患病率分布。
§2.3 临床任务定义
| 临床任务 | 在 SLAKE 中的对应形式 | 说明 |
|---|---|---|
| 结构识别(筛查基础) | Organ / Position 类问答 | “这张图里有没有肝?”“肝在画面哪一侧?” |
| 检查理解(质控) | Plane / Modality / Quality 类问答 | 判断切面方向、CT/MRI 序列与加权(如 T2)、影像质量 |
| 异常检测(诊断雏形) | Abnormality 类问答 | "肺是否健康?"等封闭式病变判断 |
| 病变定位(报告要素) | Position + 边界框标注 | 结合 detection.json 可评估定位能力 |
| 知识推理(辅助诊断) | KG 类问答 | 病因/症状/治疗/功能等图像外医学知识 |
| 形态定量感知 | Size / Shape / Color 类问答 | 器官大小排序、形态与灰度描述 |
§2.4 数据人群/影像构成
SLAKE 是影像级数据集,不含患者人口学字段(年龄、性别、种族均未提供),下表按影像来源与构成描述。正因如此,任何需要人群分层(老年/儿童、性别特异性疾病)的评测设计都无法在 SLAKE 内完成,模型的人群公平性必须借助外部带人口学标注的数据集补测:
| 来源数据集 | 影像数 | 模态 | 部位 | 临床背景 |
|---|---|---|---|---|
| Medical Decathlon + CHAOS | 463(合计随机抽取) | CT/MRI(3D 体数据抽取的轴位单层切片) | 头、颈、腹、盆腔(含胸部 CT) | 肿瘤等病变与健康病例混合 |
| NIH ChestXray14 | 179(随机抽取) | X-Ray | 胸部 | 保留原始疾病标签(含肺不张、积液、肿块、气胸等) |
| 合计 | 642 | CT 282 / MRI 181 / X-Ray 179 | 5 部位 / 8 类别 | 训练 450 / 验证 96 / 测试 96 幅(图像级 70/15/15) |
§2.5 临床价值
SLAKE 训练出的模型能力对应阅片工作流的前半段:识别检查类型与切面、定位器官、判断有无异常、调取相关医学知识。这类"阅片问答"能力可直接迁移到教学(医学生自测)、报告草拟辅助与影像科检索场景。双语设计使同一模型可服务中英文临床环境,对中文医疗环境尤其稀缺——中文读片培训、中文电子病历场景下的影像问答助手,都可以 SLAKE-ZH 为第一评测站。同时必须指出边界:单层切片无法替代连续层面的三维判读,KG 题答案与影像无直接因果关系,因此 SLAKE 上的高分不等于临床诊断能力,进入临床流程前仍需在 3D 原始数据与前瞻性队列上验证。
§2.6 金标准性质
| 维度 | 内容 |
|---|---|
| 标注划分 | 图像级 70/15/15(450/96/96),按 8 个"部位-模态"类别分层 |
| 标注方式 | 人工标注:ITK-SNAP 绘制分割掩码与边界框;逐图生成中英双语 QA;知识三元组从 OwnThink 自动抽取后人工精炼 |
| 标注者 | 有经验医生(experienced physicians),来自华西医院、四川省人民医院等机构;具体人数论文未披露 |
| 金标准性质 | 人工金标准(开放题答案为唯一参考答案;封闭题答案为封闭集合);分割/检测标注为像素级金标准 |
| 已知边界 | 论文统计与清洗发布版不一致;开放题参考答案措辞唯一,评测需按官方归一化规则执行 |
关于"金标准"的三点解读:第一,SLAKE 的金标准是协议性的——开放题以唯一参考答案字符串为真值,这使得金标准同时定义了评测协议(归一化规则、分组口径),脱离协议谈准确率没有意义;第二,语义标注(掩码/框)是传统意义上的像素级金标准,质量与上游 3D 数据的层面选择强相关,边缘层面器官不完整属正常现象;第三,KG 类问题的"真值"是知识图谱快照而非影像本身,其金标准地位随医学知识更新衰减,使用时应标注知识版本意识。
§3 数据集规格
§3.0 版本抉择矩阵
SLAKE 存在"论文版数字"与"清洗发布版"两个事实体系,另有第三方再打包版。选择前先看你的需求:
| 你的需求 | 推荐版本 | 规模 | 理由 |
|---|---|---|---|
| 复现官方协议、与其他论文对比准确率 | SLAKE 1.0 清洗发布版(HF 官方仓) | 5,980 条 QA(3,690/1,061/1,229) | 社区论文(MEVF、M2I2、PubMedCLIP 等)均基于发布版文件评测 |
| 引用数据集统计数字、写综述 | 论文版(arXiv/ISBI) | 14,028 条 QA(9,849/2,109/2,070) | 论文 Table 2 的 10 类问题分布只有论文版有;引用时须注明"论文报告" |
| 大模型快速评测(少代码) | HuggingFace datasets 加载 | 同发布版,一行加载 | 支持 load_dataset("BoKelvin/SLAKE");另有 EvalScope、FiftyOne 再打包版 |
| 需要分割掩码/边界框/知识图谱 | 原始 zip(官方下载页) | imgs.zip 212 MB + KG.zip 81.7 kB | HF 的 datasets 视图不直接暴露掩码像素与三元组文件 |
§3.1 模态详情
| 模态 | 规格 | 说明 |
|---|---|---|
| CT | 282 幅,轴位单层切片,DICOM 体数据重采样为 JPEG | 覆盖头、颈、胸、腹、盆腔;部分为增强/平扫混合(未标注) |
| MRI | 181 幅,轴位单层切片 | 头部与腹部;问答涉及序列加权判断(如 T2) |
| X-Ray | 179 幅,胸部正位 | 来自 NIH ChestXray14,保留原始疾病标签 |
| 语义分割掩码 | PNG,像素值为类别索引 | 需用 mask.txt 映射到器官/病灶名称(坑点 4) |
| 边界框 | JSON,绝对像素坐标 | 器官与病灶检测框 |
| 问答文本 | JSON 字段,中英双列 | 每条含 question/question_en、answer/answer_en |
| 知识图谱 | ZIP 内含三元组文件(2 个文件) | 5,232 条双语三元组;KG 题作答依据 |
影像分辨率横跨 240×240 至 1024×1024(JPEG),无 DICOM 头文件,无设备参数记录。
§3.2 按子集样本数
影像构成(发布版,共 642 幅):
| 维度 | 类别 | 数量 |
|---|---|---|
| 模态 | CT / MRI / X-Ray | 282 / 181 / 179 |
| 部位 | 头(CT+MRI)/ 颈 / 胸 / 腹 / 盆腔 | 140 / 41 / 219 / 201 / 41 |
| 影像划分 | 训练 / 验证 / 测试 | 450 / 96 / 96 |
QA 问答类型分布(论文版 14,028 条;训练/验证/测试,发布版经清洗后有出入):
| content_type | 训练 | 验证 | 测试 |
|---|---|---|---|
| Plane(切面) | 931 | 173 | 176 |
| Quality(质量) | 535 | 109 | 118 |
| Modality(模态) | 1,072 | 203 | 217 |
| Position(位置) | 1,876 | 412 | 390 |
| Organ(器官) | 2,125 | 462 | 454 |
| KG(知识图谱) | 1,202 | 278 | 260 |
| Abnormality(异常) | 1,230 | 245 | 221 |
| Color(颜色) | 424 | 108 | 115 |
| Shape(形状) | 157 | 42 | 46 |
| Size(大小) | 297 | 77 | 73 |
| 合计 | 9,849 | 2,109 | 2,070 |
发布版文件行数(清洗后实测口径): train.json 3,690 / validation.json 1,061 / test.json 1,229,合计 5,980。
§3.3 数据格式表
| 文件/字段 | 格式 | 内容 |
|---|---|---|
| train.json / validation.json / test.json | JSON 数组 | 每条一条双语 QA(字段见 §4.1) |
| imgs/xmlabN/source.jpg | JPEG | 第 N 幅影像(img_id 与目录号对应) |
| imgs/xmlabN/ 内掩码 PNG | PNG(灰度索引图) | 像素值 = 器官/病灶类别索引,经 mask.txt 映射 |
| imgs/xmlabN/detection.json | JSON | 该图全部边界框(绝对坐标) |
| imgs/xmlabN/question.json | JSON | 该图全部问答(与全局划分文件内容对应) |
| KG.zip | ZIP(2 个文件) | 双语三元组及配套数据 |
| mask.txt | TXT | 像素索引 → 器官/病灶名称映射表 |
§3.4 存储大小
HuggingFace 官方仓库合计约 217 MB:imgs.zip 212 MB、KG.zip 81.7 kB、train.json 2.96 MB、validation.json 639 kB、test.json 636 kB、mask.txt 617 B。解压后建议预留约 1 GB(含掩码 PNG 展开)。无需数据库,直接文件系统即可承载。
§3.5 标注方式
| 标注对象 | 方式 | 工具/来源 |
|---|---|---|
| 分割掩码与边界框 | 人工逐层标注(医生) | ITK-SNAP |
| 双语 QA | 人工生成 + 语义类型归类(10 类) | 自建标注系统 |
| 知识三元组 | 自动抽取(OwnThink,52.6K 条)后按医学规则人工精炼(器官:功能/所属系统;疾病:症状/位置/病因/治疗/预防) | OwnThink + 人工审核 |
| 影像疾病标签 | 继承上游数据集(NIH ChestXray14 原始标签) | 无新增标注 |
§3.6 标注者资质与一致性
标注者为参与机构的有经验医生(论文表述为 experienced physicians),标注机构为香港理工大学(构建与标注系统)、四川大学华西医院(超声科)、四川省医学科学院·四川省人民医院。论文未披露标注人数,也未报告标注者间一致性系数(如 Kappa)或仲裁流程;标注系统搭建、知识图谱构建、选图标注与问题生成全程耗时超过半年。对使用者的含义:① 单一标注体系意味着答案措辞高度一致(利于 exact match),但风格单一;② 无人际一致性报告,标注质量审计需自行抽样;③ 医学问题若涉及最新诊疗共识,应以现行指南复核 KG 类答案。
§3.7 采集周期
数据集构建耗时超过半年(论文明确表述 more than half of a year)。上游影像的原始采集时间未在论文中说明(NIH ChestXray14 影像为回顾性公开库,CHAOS 与 Medical Decathlon 为公开挑战赛数据),SLAKE 亦未提供检查日期字段,无法进行时间维度分析。这意味着两类研究在 SLAKE 上天然不可行:时间趋势分析(疾病谱随年份变化)与纵向随访建模;若研究目标涉及这两类,请改用具备时间戳的队列型数据集(如 MIMIC 系列)。
§3.8 地域覆盖
影像来自三个国际公开影像库(美国 NIH 与国际挑战赛数据),无地域元数据;标注工作在中国香港与中国四川两地完成。知识图谱语料源自中文开源知识库 OwnThink 并翻译精炼为双语版本。
§3.9 设备规格
SLAKE 不含任何设备元数据(CT/MRI 厂商、层厚、场强、辐射剂量均未记录),图像以重采样后的 JPEG 分发。这对"设备相关伪影学习"类研究是硬约束:模型无法学习设备特异性特征,也无法做设备偏倚分析。
§3.10 深度溯源链
患者层面:上游公开库已脱敏,SLAKE 无患者标识与人口学信息。检查层面:无检查号、无检查日期。影像层面:img_id(0-641)与目录名 xmlabN 一一对应;X-Ray 保留上游疾病标签。标注层面:掩码/边界框/QA 均绑定 img_id,可追溯至单图。知识层面:KG 三元组可追溯至 OwnThink 语料与人工精炼规则(器官限功能/所属系统,疾病限症状/位置/病因/治疗/预防五类关系)。数据血缘整体清晰,但断层在"上游库→具体切片"的随机抽样记录:论文未发布抽样清单。
对溯源链的工程结论:① 以 img_id 为主键的任何 join 都可靠;② 想把 SLAKE 样本映射回 NIH ChestXray14 原始元数据(患者 ID、视图位、疾病 14 标签)不可行,除非逐一做图像哈希/感知匹配自建映射;③ X-Ray 子集保留的疾病标签在 QA 文件中不显式存在,需要按 Abnormality 类答案间接还原,作为弱标签使用时应声明损失。
§4 数据结构
§4.0 目录树
解压官方 zip 后的结构(文件名以实际下载为准,掩码文件名随整理批次略有差异,建议代码内用通配符匹配):
SLAKE/
├── train.json # 3,690 条双语 QA(官方训练集)
├── validation.json # 1,061 条(官方验证集;HF 上由 validate.json 更名)
├── test.json # 1,229 条(官方测试集)
├── KG.zip # 5,232 条双语知识三元组(英 2,603 + 中 2,629)
├── mask.txt # 掩码像素索引 → 器官/病灶名称映射表
└── imgs/
├── xmlab0/
│ ├── source.jpg # 原始放射影像
│ ├── question.json # 该图全部双语 QA
│ ├── detection.json # 器官/病灶边界框(绝对像素坐标)
│ └── mask.xmlab0.png # 语义分割掩码(像素值为类别索引)
├── xmlab1/
│ └── …(同上四件套)
├── …
└── xmlab641/ # 共 642 个目录,img_id 0-641 与目录号一致
§4.1 DAIMS 字段字典(以 train.json 为例)
| 字段名 | 类型 | 说明 | 示例值 | AI 用途 | 观测误差/注意点 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| qid | Integer | QA 全局编号 | 3 | 主键;关联评测记录 | 清洗后编号稀疏,非连续 | 无 | 0 起始 |
| img_id | Integer | 图像编号 | 1 | 拼接图像路径 imgs/xmlab{img_id}/ |
与目录号 xmlabN 对应 | 无 | 0-641 |
| q_lang | String | 问题语言 | en | 过滤单语子集(en/zh) | 同图双语题各占一条记录 | 无 | en / zh |
| question / question_en | String | 中文/英文问题 | What modality is used to take this image? | 模型输入 | 双语为对齐生成而非独立措辞 | 无 | — |
| answer / answer_en | String | 中文/英文参考答案 | MRI | 评测目标 | 可能为空串;多答案用逗号分隔(如 “Lung, Spinal Cord”) | 空串视为无效记录需过滤 | — |
| answer_type | String | 答案形式 | OPEN | 分组报告指标;封闭题可用分类头 | OPEN 占比影响总体准确率解读 | 无 | OPEN / CLOSED |
| content_type | String | 10 种语义类型 | Modality | 分类型评测与课程学习 | 论文版与发布版类型分布不一致 | 无 | Plane/Quality/Modality/Position/Organ/KG/Abnormality/Color/Shape/Size |
| base_type | String | 题目大类 | vqa | 区分视觉题与知识题 | kvqa 题答案不在图中 | 无 | vqa / kvqa |
| triple | Sequence | 知识三元组标记 | [“vhead”, “", "”] | KG 题知识注入与可解释分析 | 视觉题为占位三元组 | “_” 表示占位 | vhead/khead 等模式 |
| location | String | 解剖部位 | Abdomen | 分部位评测 | 10 个取值(含部位-器官组合) | 无 | Head/Neck/Chest/Abdomen/Pelvic cavity 等 |
| modality | String | 检查模态 | MRI | 按模态分层评测 | X-Ray 与 CT/MRI 灰度特性不同 | 无 | CT / MRI / X-Ray |
| base_type 附加字段(per-image question.json) | — | 每图独立文件含同构记录 | — | 逐图检索/在线加载 | 与全局 JSON 内容对应,注意去重 | 无 | — |
§4.2 标签分布
- 答案形式:OPEN(自由作答)与 CLOSED(封闭集合,多为是/否)两类;封闭题准确率通常高出开放题 4-10 个百分点(论文基线:76.13 vs 70.34)。
- 题目大类:视觉题(base_type=vqa)与知识题(base_type=kvqa);论文版 KG 类占 1,740/14,028(约 12.4%)。
- 语言:每图问题同时生成中英两版;发布版 test.json 中英条目近似均衡。
- 部位:胸部影像占 219/642(34.1%),为最大子集;颈与盆腔各 41 幅(6.4%),为最小子集。
- location 字段:共 10 个取值,是"部位-重点结构"组合(如 Head、Abdomen、Chest、Pelvic cavity 及器官组合形态),分部位评测时以实测取值清单为准,勿按 5 部位硬映射。
- modality 字段:CT / MRI / X-Ray 三值;X-Ray 仅出现在 Chest。
- 类型不均衡:论文版 Shape 类训练集仅 157 条,是 Organ 类(2,125 条)的 7.4%,分类型评测时小类别方差极大。
§4.3 关键统计
| 统计项 | 数值 | 备注 |
|---|---|---|
| 影像总数 | 642 | CT 282 / MRI 181 / X-Ray 179 |
| QA 总数(论文版/发布版) | 14,028 / 5,980 | 官方声明清洗后与论文不同(坑点 1) |
| 知识三元组 | 5,232(英 2,603 + 中 2,629) | 由 52.6K 条自动抽取精炼而来 |
| 语义标注 | 12 种疾病、39 个器官 | ITK-SNAP 人工标注 |
| 影像划分 | 450 / 96 / 96 | 图像级 70/15/15,按 8 类别分层 |
| 发布版 QA 划分 | 3,690 / 1,061 / 1,229 | train / validation / test |
| 平均每图 QA 条数 | 发布版约 9.3 条 | 5,980 ÷ 642;同一图像多条 QA 是泄漏高发区 |
| 引用量 | 675+(截至 2026-09) | Google Scholar |
§4.4 数据层级
SLAKE 只有两层结构:图像(642)→ QA 记录(5,980 条发布版)。不存在患者层与检查/序列层:同一图像的所有 QA 通过 img_id 关联;每图另附分割掩码与边界框(像素/JSON 层级)以及逐图 question.json(与全局划分内容对应)。做任何抽样、划分、集成时必须以 img_id 为最细聚合粒度(坑点 2)。
这一层级设计对三类任务有直接影响:
| 任务视角 | 有效层级 | 建模含义 |
|---|---|---|
| VQA 监督学习 | QA 记录层 | 样本量按 QA 数计,但划分/CV 必须回到图像层 |
| 分割/检测 | 图像层 | 642 个监督样本,样本量以幅数计 |
| 患者级推断 | 不存在 | 任何"患者"表述均不成立,642 幅≠642 人 |
§4.5 缺失值与信息性缺失
| 情形 | 处理建议 |
|---|---|
| answer/answer_en 为空串 | 加载后过滤(HF 数据视图统计存在长度为 0 的答案字段) |
| triple 字段为 [“vhead”,““,””] | 视觉题的占位三元组,非缺失;仅 kvqa 题含有效三元组 |
| 无设备/患者/时间字段 | 属数据集设计性缺失(非信息性缺失编码),无法插补;相关分析应明示"不适用" |
| 掩码类别索引未知含义 | 查根目录 mask.txt 映射表,勿凭像素值猜类别(坑点 4) |
§5 划分与使用建议
§5.1 官方划分
官方按图像划分:8 个"部位-模态"类别内按 75:15:15 抽样,合成图像级 70/15/15(训练 450 / 验证 96 / 测试 96 幅),对应发布版 train.json 3,690 / validation.json 1,061 / test.json 1,229 条 QA。测试集图像与训练集图像完全不重叠,这是官方协议的核心保证。论文另按 10 类内容类型给出分布(见 §3.2,注意为论文版数字)。
§5.2 社区惯例划分
社区论文普遍直接使用官方 train/validation/test 三文件,并在英文测试集(或测试集全集)上报告总体、开放式、封闭式三档准确率。少数研究做 5 折交叉验证(以图像为单位分折)。使用 HuggingFace datasets 时,默认 config 即为官方三划分,勿自行 reshuffle。
§5.3 泄漏风险(重点)
- QA 级随机划分 = 图像泄漏:平均每图约 9.3 条 QA,若按 QA 记录随机划分 train/test,同一图像会同时出现在两侧,模型只需记住图像即可得高分。任何自制划分必须
groupby(img_id)后按组抽样。 - 双语互为近似重复:同一问题的中英文版本语义等价,若按语言拆分训练/测试(如中文训练、英文测试),并非严格泄漏,但会高估跨语言泛化;报告时须注明协议。
- 逐图 question.json 与全局 JSON 并存:若同时加载两者且不去重,训练集会被重复样本污染。
任何自制划分交付前,先跑一遍泄漏审计断言:
def assert_no_leakage(train_items, test_items):
tr = {x["img_id"] for x in train_items}
te = {x["img_id"] for x in test_items}
assert tr.isdisjoint(te), f"图像泄漏:{len(tr & te)} 幅图同时出现在两侧"
§5.4 交叉验证建议
小样本类别(Shape、Size、Color)建议做图像级分层 5 折交叉验证(按 content_type × img_id 分层),并固定折间图像不重叠;KG 类题目建议单独报告,因其难度与知识库覆盖强相关。
§5.5 外部验证建议
在 SLAKE 上训练的模型,推荐依次迁移到 VQA-RAD(同任务、英文、胸部为主)与 GEMeX(同团队胸片、含可解释性)上测试;医学 VLM 评测可直接加入 OmniMedVQA 混合矩阵。跨数据集时注意答案空间与归一化规则差异(坑点 5)。反向迁移同样有价值:在 VQA-RAD 上训练、到 SLAKE 测试,可以检验模型对"多部位 + 双语 + 知识题"的鲁棒性——社区经验是一致性地观察到开放题与 KG 题跌幅最大,这两格应作为外部验证的敏感指标优先报告。
迁移实验的推荐配置:冻结视觉编码器、只微调跨模态融合层,这样性能跌幅可归因于"分布迁移"而非"容量过拟合";同时保留一份 SLAKE 内部验证集成绩作锚点,外部跌幅以锚点为基准归一化后报告。
§6 AI 就绪指南
§6.0 云端快速启动
HuggingFace 官方仓已托管全部文件,Colab/Kaggle 无需申请、无需注册:
# 云端一行加载(官方三划分自动映射 train/validation/test)
from datasets import load_dataset
ds = load_dataset("BoKelvin/SLAKE") # 不含掩码像素与 KG 文件,需原始 zip
print(ds) # train 3,690 / validation 1,061 / test 1,229
print(ds["train"][0])
需要掩码与知识图谱的进阶实验,在云端直接拉原始文件即可(HuggingFace Hub 免登录可读公开仓):
from huggingface_hub import snapshot_download
snapshot_download("BoKelvin/SLAKE", repo_type="dataset",
local_dir="/content/SLAKE") # Colab 约 217 MB
import zipfile
zipfile.ZipFile("/content/SLAKE/KG.zip").extractall("/content/SLAKE/kg")
注意 EvalScope 等框架的内置 SLAKE 评测用的是自己的再打包子集(2,094 题/180 图),与官方 test.json 划分不同,跨框架对数字时务必先核对评测集规模。
§6.1 快速上手(本地)
以下代码预期目录结构为 §4.0 的树:data_root 指向解压后的 SLAKE/ 目录,data_root / "train.json" 为划分文件,data_root / "imgs" / f"xmlab{img_id}" / "source.jpg" 为图像拼接关系。最小可用子集 = train.json + imgs 目录(约 212 MB),KG.zip 与掩码仅在进阶实验中需要。
import json, os
from PIL import Image
data_root = "/data/SLAKE" # ← 解压后包含 train.json 的目录
with open(os.path.join(data_root, "train.json")) as f:
train = json.load(f)
item = train[0]
img_path = os.path.join(data_root, "imgs",
f"xmlab{item['img_id']}", "source.jpg") # 目录号 = img_id
img = Image.open(img_path)
print(item["q_lang"], item["question_en"], "→", item["answer_en"], img.size)
# 最小可用子集:只保留英文封闭题(最快跑通一个分类头基线)
mini = [x for x in train if x["q_lang"] == "en" and x["answer_type"] == "CLOSED"]
print(f"英文封闭题 {len(mini)} 条")
§6.2 数据获取
| 渠道 | 链接 | 大小 | 说明 |
|---|---|---|---|
| HuggingFace(推荐) | https://huggingface.co/datasets/BoKelvin/SLAKE | 约 217 MB | 官方托管,含全部原始文件;validation.json 为官方 validate.json 的更名 |
| 官方下载页 | https://www.med-vqa.com/slake/ | 约 217 MB | 跳转 Google Drive |
| EvalScope 再打包 | https://evalscope.readthedocs.io/en/latest/benchmarks/slake.html | 较小 | 其评测子集为 2,094 题/180 图,非官方划分,仅用于框架内对比 |
| FiftyOne 视图 | https://huggingface.co/datasets/Voxel51/SLAKE | — | 已解析掩码/检测框为对象标注,适合可视化 |
# 方式一:HuggingFace CLI
huggingface-cli download BoKelvin/SLAKE --repo-type dataset --local-dir SLAKE
# 方式二:Python 直连
from huggingface_hub import snapshot_download
snapshot_download(repo_id="BoKelvin/SLAKE", repo_type="dataset", local_dir="SLAKE")
CC-BY-4.0 许可,无需注册与申请,可商用但须署名;下游发布请同时核对上游三个影像库的许可(NIH ChestXray14、Medical Decathlon、CHAOS)。
常见报错速查(本地加载阶段):
| 报错现象 | 根因 | 处理 |
|---|---|---|
FileNotFoundError: imgs/xmlabN/... |
img_id 与目录名拼接错误或 imgs.zip 未解压 | 核对 §4.0 目录树;确认解压到 data_root 下 |
KeyError: 'validation' |
下载的是旧版文件名 validate.json | 从官方 HF 仓重新下载(已更名 validation.json) |
| 掩码可视化全灰/花屏 | 把类别索引当灰度图显示 | 按 §6.3 用 mask.txt 映射后再渲染 |
| datasets 加载列数不一致 | 使用了第三方再打包版 | 认准 BoKelvin/SLAKE 官方仓 |
§6.3 预处理全流程
流程:解压 → 加载划分 JSON → 语言过滤 → 掩码索引映射(可选)→ 图像标准化。完整可运行示例:
<details>
<summary>展开完整预处理代码(约 60 行)</summary>
import json, os, glob
import numpy as np
from PIL import Image
data_root = "/data/SLAKE"
def load_split(root, name):
"""加载官方划分并做基本清洗。"""
with open(os.path.join(root, f"{name}.json")) as f:
items = json.load(f)
clean = [x for x in items if x.get("answer", "") and x.get("answer_en", "")]
return clean
def image_path(root, item):
"""img_id → 图像路径。目录号与 img_id 一一对应。"""
return os.path.join(root, "imgs", f"xmlab{item['img_id']}", "source.jpg")
def load_mask_mapping(root):
"""mask.txt → {像素索引: 器官/病灶名}。掩码 PNG 的像素值是类别索引。"""
mapping = {}
with open(os.path.join(root, "mask.txt")) as f:
for line in f:
parts = line.strip().split()
if len(parts) >= 2:
mapping[int(parts[0])] = " ".join(parts[1:])
return mapping
def read_mask(root, item, mapping):
"""读取掩码并转换为名称标签图。文件名用通配符匹配以兼容不同整理批次。"""
folder = os.path.join(root, "imgs", f"xmlab{item['img_id']}")
hits = glob.glob(os.path.join(folder, "mask*.png"))
if not hits:
return None
idx = np.array(Image.open(hits[0]))
return np.vectorize(lambda v: mapping.get(int(v), "background"))(idx)
def normalize_image(img, size=(512, 512)):
"""医学灰度图标准化:转灰度、缩放、归一化到 [0,1]。"""
img = img.convert("L").resize(size)
arr = np.asarray(img, dtype=np.float32) / 255.0
return arr
train = load_split(data_root, "train")
val = load_split(data_root, "validation")
test = load_split(data_root, "test")
print(len(train), len(val), len(test)) # 3,690 1,061 1,229(含双语各计一条)
mapping = load_mask_mapping(data_root)
demo = next(x for x in train if x["img_id"] == 100)
mask_named = read_mask(data_root, demo, mapping) # 名称标签图
arr = normalize_image(Image.open(image_path(data_root, demo)))
print(arr.shape, arr.min(), arr.max())
</details>
要点:① 同一 QA 的中英文是两条记录(q_lang 区分),语言过滤后再统计;② 掩码像素值是索引而非灰度,直接 imshow 会得到错误的"伪彩色"认知(坑点 4);③ answer 为空串的记录直接过滤;④ 影像分辨率不一(240×240-1024×1024),统一缩放即可,无需窗宽窗位(已重采样)。
§6.4 PyTorch DataLoader 完整代码
<details>
<summary>展开完整 Dataset + DataLoader 代码(约 70 行)</summary>
import json, os, random
import torch
from torch.utils.data import Dataset, DataLoader
from PIL import Image
from torchvision import transforms
class SlakeVQA(Dataset):
"""SLAKE 医学视觉问答数据集。
目录预期:
root/train.json / validation.json / test.json
root/imgs/xmlab{img_id}/source.jpg
data_root 拼接关系:image_path = root/imgs/xmlab{img_id}/source.jpg
最小可用子集:任一 JSON + imgs/ 目录。
"""
def __init__(self, root, split="train", lang="en",
img_size=224, answer_vocab=None):
with open(os.path.join(root, f"{split}.json")) as f:
items = json.load(f)
self.root = root
self.lang = lang
self.items = [x for x in items
if x.get("q_lang") == lang
and x.get("answer", "") and x.get("answer_en", "")]
self.tf = transforms.Compose([
transforms.Grayscale(num_output_channels=3),
transforms.Resize((img_size, img_size)),
transforms.ToTensor(),
transforms.Normalize(mean=[0.5], std=[0.25]),
])
self.ans2id = answer_vocab or self._build_vocab()
self.qtype2id = {t: i for i, t in enumerate(
["Plane", "Quality", "Modality", "Position", "Organ",
"KG", "Abnormality", "Color", "Shape", "Size"])}
def _build_vocab(self):
answers = {x["answer_en"] if self.lang == "en" else x["answer"]
for x in self.items}
return {a: i for i, a in enumerate(sorted(answers))}
def __len__(self):
return len(self.items)
def __getitem__(self, i):
x = self.items[i]
img = Image.open(os.path.join(
self.root, "imgs", f"xmlab{x['img_id']}", "source.jpg"))
ans = x["answer_en"] if self.lang == "en" else x["answer"]
return {
"image": self.tf(img),
"answer_id": torch.tensor(self.ans2id[ans], dtype=torch.long),
"is_open": torch.tensor(x["answer_type"] == "OPEN"),
"content_type": torch.tensor(self.qtype2id[x["content_type"]]),
"question": x["question_en"] if self.lang == "en" else x["question"],
}
def collate(batch):
return {k: torch.utils.data.default_collate([b[k] for b in batch])
if k not in ("question",) else [b[k] for b in batch]
for k in batch[0]}
train_ds = SlakeVQA("/data/SLAKE", split="train", lang="en")
val_ds = SlakeVQA("/data/SLAKE", split="validation", lang="en",
answer_vocab=train_ds.ans2id) # 固定词表,防止划分间不一致
train_dl = DataLoader(train_ds, batch_size=64, shuffle=True,
num_workers=4, collate_fn=collate)
val_dl = DataLoader(val_ds, batch_size=128, shuffle=False,
num_workers=4, collate_fn=collate)
print(len(train_ds), len(val_ds), len(train_ds.ans2id))
</details>
知识图谱加载(KG 题/检索增强实验必备):KG.zip 内含 2 个文件(共 5,232 条双语三元组:英文 2,603 + 中文 2,629;具体文件名与内部格式以实际解压为准,以下按常见 <head, relation, tails> JSON 结构示例)。三元组遵循论文规定的五类关系——器官限"功能/所属身体系统",疾病限"症状/位置/病因/治疗/预防":
import json, zipfile, os
kg_dir = "/data/SLAKE/kg" # ← 解压 KG.zip 后的目录
triples = []
for fp in sorted(os.listdir(kg_dir)):
if fp.endswith(".json"):
with open(os.path.join(kg_dir, fp)) as f:
data = json.load(f)
for h, rel, ts in data: # <head, relation, tail> 列表
triples.extend((h, rel, t) for t in ts)
print(f"三元组 {len(triples)} 条") # 5,232(EN 2,603 + ZH 2,629)
# 为 kvqa 题拼接三元组上下文(RAG 风格 prompt 注入)
def kg_context(question_triple, triples):
head = question_triple[0] # triple 字段的 <vhead, ...> 模式
hits = [f"{h} {rel} {t}" for h, rel, t in triples if h == head]
return ";".join(hits[:5]) # 截断 top-5 防止 prompt 超长
§6.5 坑点 8 个(SLAKE 真实特有失败模式)
⚠️ 坑点 1:论文数字与下载文件不一致,硬编码统计值直接崩溃(分类:工程陷阱)
问题:论文报告 14,028 条 QA、划分 9,849/2,109/2,070,但官方随后清洗发布的 SLAKE 1.0 只有 5,980 条(3,690/1,061/1,229),官方页面明确声明"清洗后与论文略有不同"。照抄论文数字写断言(
assert len(train) == 9849)或预分配评测矩阵都会失败。
症状:加载数据后样本数与论文表格对不上;跨论文对比时发现别人报告的"训练集大小"与你本地不一致;按论文 10 类分布写类权重后训练异常。
解决:
- 简单方法:永远在运行时
len()统计实际行数,不硬编码任何论文数字;引用统计时注明"论文版 14,028 / 发布版 5,980"。- 进阶方法:写一个 sanity check 脚本,启动训练前校验三文件行数、img_id 范围(0-641)、语言字段分布,并将实际值写入实验日志(MLOps 配置指纹)。
- SOTA 方法:用 DVC 或数据指纹(文件哈希)锁定数据版本,评测报告自动附带"数据版本声明",避免复现纠纷。
参考:官方下载页清洗声明、arXiv:2102.09542 论文 Table 2、HuggingFace 官方仓
⚠️ 坑点 2:按 QA 记录随机划分导致图像泄漏,指标虚高(分类:数据泄漏)
问题:同一幅影像平均挂载约 9.3 条 QA(发布版 5,980 条 ÷ 642 幅),且中英双语各占一条。若把所有记录合并后随机切分,同一图像的"姊妹问题"会同时出现在训练与测试集——模型记住图像即可答对大量测试题。官方是按图像 70/15/15 划分的。
症状:自制随机划分的准确率比官方划分高出 10-30 个百分点;按图像分组检查发现 train/test 出现同一 img_id。
解决:
- 简单方法:只用官方 train/validation/test 三文件,不自制划分。
- 进阶方法:确需重划分时按 img_id 分组抽样:
import random img_ids = sorted({x["img_id"] for x in items}) random.seed(42); random.shuffle(img_ids) k = int(len(img_ids) * 0.7) train_ids, test_ids = set(img_ids[:k]), set(img_ids[k:]) train = [x for x in items if x["img_id"] in train_ids] test = [x for x in items if x["img_id"] in test_ids]
- SOTA 方法:分层组抽样(content_type × 部位 × img_id)+ 泄漏审计脚本(断言 train/test 图像集合交集为空)写入 CI。
参考:论文 §3 划分协议
⚠️ 坑点 3:双语记录混用,语言错配拉低指标(分类:标签理解)
问题:每条记录含 question/question_en 与 answer/answer_en 四个文本字段,q_lang 指明该记录的问题语言。中文模型评测若误用英文答案做匹配(或反之),exact match 必然失败;混用双语记录训练还会让词表膨胀一倍。
症状:明明模型答案"语义正确"却判错;统计答案词表时出现大量中文/英文成对等价项;训练 loss 双语混杂不收敛。
解决:
- 简单方法:加载后立即按
q_lang过滤,并保证取答案时语言与问题一致(answer_en配 en,answer配 zh)。- 进阶方法:双语联合训练时在 batch 内按语言分组归一化,评测时分别报告 SLAKE-EN 与 SLAKE-ZH 两个子集。
- SOTA 方法:用中英答案等价对(如 “是的”/“Yes”)构建跨语言答案映射表,只用于分析语言差距,不用于放水评测;对照 EvalScope 的中英同义词归并规则。
参考:HuggingFace 数据字段视图、EvalScope SLAKE 评测说明
⚠️ 坑点 4:掩码像素值是类别索引,直接可视化/训练都会出错(分类:预处理陷阱)
问题:分割掩码 PNG 的像素值不是灰度强度,而是"器官/病灶类别索引"(如 70、135 等),必须经根目录 mask.txt 映射为名称。把它当普通灰度图做归一化或可视化,会得到毫无意义的中间灰度;做分割任务时若不按索引构建 one-hot,类别数也是错的。
症状:掩码可视化后"器官"看起来像噪声;分割模型类别数设错;同一索引在不同图上代表不同器官却按统一索引训练。
解决:
- 简单方法:读 mask.txt 构建
{索引: 名称}映射,加载掩码后先做索引→名称转换再做后续处理。- 进阶方法:构建全局类别表(39 器官 + 12 病灶 + 背景),每图生成局部索引→全局 ID 的查找表,保证跨图一致性;用调色板可视化。
- SOTA 方法:参考 FiftyOne 版(Voxel51/SLAKE)的解析脚本,它已把像素索引转换为可读器官标签并转为相对坐标对象标注。
参考:Voxel51/SLAKE 数据卡(含掩码解析流程)
⚠️ 坑点 5:exact match 极严格,措辞差异导致系统性判错(分类:评估误用)
问题:SLAKE 参考答案唯一且评测按精确匹配:回答 “T2-weighted” 而参考是 “T2”、“Right Side” 而参考是 “Right”、“胸腔” 而参考是 “胸部”、多项答案 “Lung, Spinal Cord” 只答出一项,全部判错。生成式大模型直接用原始字符串对比,会显著低估真实能力,也让不同论文的数字不可比。
症状:VLM 在 SLAKE 上得分远低于其真实医学水平;人工抽检发现大量"答案对但判错";复现他人数字时对不上。
解决:
- 简单方法:实现官方归一化——小写、去标点与冠词、文字数字转阿拉伯数字、统一 “x ray” 为 “xray”。
- 进阶方法:加入 EvalScope 风格的同义词归并:中英 yes/no 极性同义词(是的/有/包含/可以;不是/没有/不包含/不可以)合并、"X光/X射线"映射、"两个/二"映射;同时报告严格与归并后两档分数。
- SOTA 方法:主表用官方严格协议保证可比性,附录用 LLM judge 复核规则判错的样本并单独成列(注明不可与历史数字直接比较)。
参考:EvalScope SLAKE 归一化规则
⚠️ 坑点 6:总体准确率被封闭题虚高,开放题能力被掩盖(分类:评估误用)
问题:封闭题(多为是/否)远比开放题容易,而封闭题占比不低。只报告总体准确率会系统性美化模型;两个总体分数相同的模型,开放题可能相差 8 个百分点以上(论文基线:总体 72.73 中封闭 76.13 / 开放 70.34;M2I2 封闭 91.1 / 开放 74.7)。
症状:模型 A 总分高于模型 B,但人工抽检发现 B 的自由作答明显更好;消融实验在总体指标上"无显著差异"而实际开放题退化。
解决:
- 简单方法:永远同时报告总体、OPEN、CLOSED 三档(官方协议)。
- 进阶方法:再按 content_type × q_lang 细分报告(如中文开放 KG 题),并给出每格样本量,小类别注明方差。
- SOTA 方法:对封闭题额外报告校准指标(ECE/ACE),检测是/否偏向;第三方已发布 SLAKE 校准基准可对齐。
参考:论文 Table 4 分档基线、sota2 SLAKE 榜单分档口径
⚠️ 坑点 7:KG 题答案不在图像里,纯视觉模型必然失败(分类:标签理解)
问题:约一成题目(content_type=KG,base_type=kvqa)考的是图像外医学知识(病因、症状、治疗、器官功能),参考答案来自配套知识图谱。把全部题目当视觉问答训练,模型只能学到"知识题猜高频答案",KG 嵌入文件被忽视。
症状:KG 类开放题准确率长期趴在低位且对视觉消融完全不敏感;官方基线显示 KG 题"有图无图"差异远小于"有无 KG"差异(70.27 → 72.30)。
解决:
- 简单方法:训练时按 base_type 分流,kvqa 题走文本知识通路(TransE 实体嵌入或直接检索三元组),vqa 题走视觉通路。
- 进阶方法:解压 KG.zip,为每题注入 triple 字段指向的三元组上下文;生成式模型把三元组拼进 prompt 做 RAG。
- SOTA 方法:用 MOTOR/CPRD 式知识增强预训练,或用大模型自带医学知识 zero-shot 解 KG 题并单独报告该格分数。
参考:论文 §2.4 知识图谱构建、MOTOR(arXiv:2304.14204)
⚠️ 坑点 8:水平翻转与"3D 想象"破坏解剖学先验(分类:偏倚陷阱)
问题:SLAKE 影像保留真实解剖方位(肝在右、心在左),水平翻转增强会让"肝在哪一侧"类 Position 题的正确答案系统性反转,模型学到矛盾标签;同时 CT/MRI 是从 3D 体数据抽取的单层切片,把它当 3D 体数据做层间插值、伪 3D 卷积或与相邻切片拼接,都会引入不存在的信息。
症状:翻转增强后 Position/Organ 类准确率不升反降;跨切片拼接训练时出现"幻觉层";3D 模型在 SLAKE 上完全无法收敛(无相邻层可用)。
解决:
- 简单方法:禁用水平翻转;只用旋转(小角度)、缩放、亮度对比度抖动等保方位增强。
- 进阶方法:如必须用翻转,同步翻转位置类答案词表(left↔right)与边界框坐标,并只对非位置类题目生效。
- SOTA 方法:在数据卡中显式声明"2D 单层切片"约束,3D 研究改用 CHAOS/Medical Decathlon 原始体数据;对 Position 类题做方位一致性单元测试。
参考:论文 §3.1 影像来源(单层轴位切片)、CHAOS 数据集
§6.6 数据增强(安全 ✅ / 危险 ❌)
| 增强 | 适用性 | 理由 |
|---|---|---|
| 小角度旋转(±15°)与平移 | ✅ | 不改变左右方位与器官拓扑,模拟摆位差异 |
| 缩放/裁剪(保留主体) | ✅ | 模拟视野变化;裁剪勿切掉主要器官 |
| 亮度/对比度抖动 | ✅ | 模拟窗宽窗位与扫描条件差异 |
| 弹性形变 | ⚠️ 慎用 | 会破坏器官形态类答案(Shape/Size 题敏感) |
| 水平翻转 | ❌ | 反转解剖左右,破坏 Position/Organ 类标签(坑点 8) |
| 灰度反转 | ❌ | CT/MRI 的灰度语义(高密度亮)不可逆 |
| 随机相邻切片拼接 | ❌ | SLAKE 为孤立单层切片,拼接引入虚构解剖 |
实现提示: torchvision 的 RandomHorizontalFlip 是医学影像代码的默认项,接 SLAKE 前务必显式移除;如需保留翻转以扩充样本,请配合坑点 8 的答案词表同步方案,并只对位置无关的题目启用。
§6.7 模型推荐
| 模型路线 | 代表 | 适用场景 | SLAKE 参考表现 |
|---|---|---|---|
| 经典 VQA 双流(CNN+LSTM+注意力) | VGG+SAN、MEVF | 快速基线、消融研究 | 72.73% / 76.5-78.6%(英文测试) |
| 医学 CLIP 预训练 + 注意力 | PubMedCLIP | 小数据迁移 | 80.1% |
| 多模态融合/知识增强 | M3AE、M2I2、LaPA、CPRD | 冲击经典协议 SOTA | 81.2-84.6% |
| 医学大视觉语言模型(7B-32B) | Lingshu-32B、Hulu-Med-7B、PulseMind-72B | 生成式评测、指令微调 | 85.6-89.2%(sota2 收录,2026.01-03) |
| 轻量专用 VLM | MedGemma 4B、HealthGPT-L14 | 边缘部署、F1 协议评测 | Tokenized F1 72.3 / 64.5(PWC,2025) |
选型提示:以上五条路线对应五种"算力-可比性"权衡。入门复现选第一条(单卡数小时);发方法论文选第三条(数字可进对比表);做中文医疗产品 demo 选第四条并启用 SLAKE-ZH;表内数字来源与协议差异见 §8.1,禁止直接横比。
§6.8 硬件需求
| 阶段 | 显存 | 典型配置 | 预计耗时 |
|---|---|---|---|
| 数据加载与统计 | 无需 GPU | CPU + 4 GB 内存 | 数分钟 |
| 经典双流模型训练(如 MEVF) | 8-12 GB | 1× RTX 3090 | 数小时/全程 |
| M3AE/M2I2 级微调 | 24-40 GB | 1× A100 40GB | 半天-1 天 |
| 7B 医学 VLM 指令微调(LoRA) | 24-48 GB | 1× A100 40GB / 4090+QLoRA | 1-3 天 |
| 32B 级评测(生成式) | 80 GB 或多卡 | 2× A100 80GB(vLLM) | 数小时(5,980 条推理) |
说明:SLAKE 影像为单张 224×224 输入即可承载的小图任务,显存瓶颈几乎全部来自语言侧参数量而非视觉侧;5,980 条 QA 的全量评测集很小,评测时间通常可忽略,真正的成本在训练。无 GPU 时可用 CPU 复现官方 VGG+SAN 的推理验证(训练则需数天,不推荐)。
§6.9 评估指标代码
实现官方口径的归一化精确匹配,并按官方协议分档报告:
<details>
<summary>展开评测代码(约 45 行)</summary>
import re
NUM_WORDS = {"one": "1", "two": "2", "three": "3", "four": "4", "five": "5",
"six": "6", "seven": "7", "eight": "8", "nine": "9", "ten": "10"}
ZH_POLARITY_POS = {"是的", "有", "包含", "可以"}
ZH_POLARITY_NEG = {"不是", "没有", "不包含", "不可以"}
def normalize(ans: str, lang: str) -> str:
a = ans.strip().lower()
a = re.sub(r"\b(x[ -]?ray)\b", "xray", a)
for w, d in NUM_WORDS.items():
a = re.sub(rf"\b{w}\b", d, a)
a = re.sub(r"\b(a|an|the)\b", "", a)
a = re.sub(r"[^\w\s\u4e00-\u9fff]", "", a)
a = re.sub(r"\s+", " ", a).strip()
if lang == "zh":
if a in ZH_POLARITY_POS:
a = "yes"
elif a in ZH_POLARITY_NEG:
a = "no"
return a
def evaluate(items, predict_fn):
"""predict_fn(item) -> 模型答案字符串。返回官方三档 + 语言分组准确率。"""
stats = {}
for x in items:
lang = x["q_lang"]
gt_raw = x["answer_en"] if lang == "en" else x["answer"]
ok = normalize(predict_fn(x), lang) == normalize(gt_raw, lang)
for key in ("overall", x["answer_type"], lang):
n, c = stats.get(key, (0, 0))
stats[key] = (n + 1, c + int(ok))
return {k: {"n": n, "acc": c / n} for k, (n, c) in stats.items()}
if __name__ == "__main__":
import json
test = json.load(open("/data/SLAKE/test.json"))
dummy = lambda x: x["answer_en"] if x["q_lang"] == "en" else x["answer"]
print(evaluate(test, dummy)) # 上限自检应为 1.0
</details>
报告规范:主表给出 overall / OPEN / CLOSED / en / zh 五格(含样本量 n),KG 类(base_type=kvqa)单列一档;严格协议数字与同义词归并数字分开呈现,不做混排。推荐输出形态:
| 分组 | 样本量 n | 准确率 |
|---|---|---|
| overall | 1,229 | — |
| CLOSED | — | — |
| OPEN | — | — |
| en / zh | — / — | — |
| KG(kvqa,开放) | — | — |
(“—” 处填入你的模型实测值;每格必须同时给 n, reviewers 才能判断小类别方差。)
§6.10 MLOps 笔记
- 数据版本指纹:记录三个 JSON 的哈希与文件大小(train 2.96 MB / validation 639 kB / test 636 kB),任何复现先核对指纹,规避坑点 1 的版本漂移:
import hashlib, json, os
def dataset_fingerprint(root):
fp = {}
for name in ("train.json", "validation.json", "test.json"):
path = os.path.join(root, name)
fp[name] = {
"sha256": hashlib.sha256(open(path, "rb").read()).hexdigest()[:16],
"n_records": len(json.load(open(path))),
}
return fp # 写入实验日志/模型卡,作为数据版本声明
print(dataset_fingerprint("/data/SLAKE"))
- 评测确定性:封闭题可走分类头(可复现);生成式评测固定温度 0、种子与解码参数,并把 prompt 模板入库。
- 分组监控:线上/实验指标看板按 q_lang × answer_type × content_type 拆分,Shape/Size 小类别设最小样本量告警。
- 泄漏审计进 CI:任何新划分 PR 自动运行"图像集合交集为空"断言(坑点 2)。
- 许可合规:CC-BY-4.0 允许商用,但基于 SLAKE 训练的模型发布时应在模型卡中署名并链接官方主页;衍生数据集须保留许可链。
- 知识库版本管理:KG.zip 的三元组属于"知识快照",诊疗指南更新后应对 KG 题做时间敏感性审计,避免把过时治疗方案固化为标准答案。
§7 质量评估与局限性
§7.1 已知偏倚
| 偏倚类型 | 描述 | 严重程度 | 缓解措施 |
|---|---|---|---|
| 疾病谱偏倚 | 图像从三个公开库随机抽取,胸部占 34.1%,疾病构成不反映临床患病率 | 中 | 分部位报告;外推时声明抽样性质 |
| 类别不均衡 | Shape 类训练题仅 157 条(论文版),Organ 类 2,125 条 | 中 | 分类型评测;小类别做分层重采样 |
| 答案长尾 | 开放题答案词表长尾(器官组合、多答案项),高频答案覆盖多数样本 | 中 | 报告 per-class 指标;对长尾做 top-k 归并分析 |
| 单机构标注风格 | 问题措辞与答案格式由少量机构医生生成,存在模板化表达 | 中 | 用同义词归并评测;跨数据集验证 |
| 双语非独立性 | 中英问题为对齐生成而非独立措辞,跨语言泛化被高估 | 低-中 | 协议中注明"双语对齐"性质 |
| 设备/流程信息缺失 | 无设备参数与采集时间,无法评估设备偏倚与时间漂移 | 中 | 不做设备相关结论;换上游原始数据补元数据 |
| 单层切片偏差 | 3D 体数据抽出的单层切片缺少上下文,部分异常判读依赖层面位置 | 中-高 | 结果不得外推至 3D 判读场景 |
§7.2 标注质量
掩码与边界框由有经验医生用 ITK-SNAP 逐层绘制,属像素级人工金标准;QA 由同一标注体系生成,语义类型明确(10 类),封闭题答案空间受控。论文未报告标注者间一致性(Kappa/Dice 复核),也未披露多人独立标注与仲裁流程,因此标注一致性只能以"官方清洗后的自洽性"间接背书;官方在 2021 年后做过一次清洗(发布版与论文数字不同),侧面说明初版存在标注噪声。分割标注的实践质量口碑较好——社区(FiftyOne、EvalScope 等)直接消费掩码与检测框而未见系统性标注错误报告;QA 答案方面,多答案字段(如 “Lung, Spinal Cord”)与措辞唯一性是使用侧最常遇到的摩擦点,属协议问题而非标注错误。建议重度使用分割标注的团队抽样 50-100 幅做一次内部复核,并把复核协议写进自己的数据卡。
§7.3 泛化性
| 部署场景 | 失效风险 | 证据/机制 |
|---|---|---|
| 三维影像判读 | 高 | 数据为单层 2D 切片,无层间上下文 |
| 真实临床患病率人群 | 高 | 抽样构成非临床分布(§7.1) |
| 汉语口语化问句 | 中 | 问题为模板化双语生成,措辞分布窄 |
| 其他影像中心(不同设备) | 中 | 无设备参数;灰度已重采样 |
| 知识时效 | 中 | KG 精炼自 2021 年前语料,诊疗指南更新后需校对 |
| 生成式自由作答 | 中 | exact match 协议对措辞敏感(坑点 5) |
§7.4 伦理
影像全部来自已公开发布、已脱敏的上游数据集(NIH ChestXray14、Medical Decathlon、CHAOS),无 DICOM 头、无患者标识、无人脸;标注医生信息未披露个人细节;NeurIPS 基准收录时确认无需额外伦理批准(依据其开放数据许可)。CC-BY-4.0 允许商业使用,但下游部署仍需自行完成临床合规审查。两点提醒:其一,脱敏状态继承自上游库,若上游库日后发现隐私问题并撤回,SLAKE 的相应子集会受连带影响,生产环境应关注上游库公告;其二,医学影像的再识别风险理论存在(如罕见病影像组合),公开发表基于 SLAKE 样例时建议使用官方样例图而非自行发布原始影像。
§7.5 公平性
数据集不含人口学字段(年龄/性别/种族),无法进行亚组公平性审计——这本身即是局限:模型在人群亚组上的差异不可测。双语设计天然支持语言公平性分析(中英表现差距),第三方 VLM 评测显示同一模型中英文表现存在数个百分点的差距,可作为中文医学能力审计的参考。此外,标注医生来自中国医疗机构、问题以模板化双语生成,模型可能学到"中文语境的答案措辞偏好";跨语言部署时应检查答案风格漂移,而非仅在中文测试集上报告总分。
§7.6 数据漂移
上游影像库版本(NIH ChestXray14、CHAOS、Medical Decathlon)更新不会自动同步至 SLAKE;SLAKE 自身自 2021-2022 年清洗版后无新版本发布。随时间推移的主要"漂移"是评测生态漂移:新论文在归一化规则、语言子集、prompt 协议上的差异造成数字不可比(见 §8.1 说明)。另一类隐性漂移是知识时效:KG 三元组反映 2021 年前的医学共识,指南修订(如分期、治疗线数)会让部分 KG 题答案过时。建议以"数据哈希 + 协议声明 + 知识快照日期"三锁定管理长期实验。
§7.7 DAIMS 24 项检查
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 宽格式 | ✅ | JSON 记录扁平,一条一 QA,字段固定 |
| 2 | 唯一标识 | ✅ | qid 唯一标识 QA,img_id 唯一标识图像 |
| 3 | 特殊字符 | ⚠️ | 中文含全角标点,多答案用逗号分隔,解析需注意 |
| 4 | 重复行 | ✅ | 双语记录语义对齐但字段值不同,非重复;逐图 question.json 与全局 JSON 内容对应需去重使用 |
| 5 | 缺失编码 | ⚠️ | 少量记录答案为空串,需加载后过滤 |
| 6 | 标签标识 | ✅ | answer_type/content_type/base_type 三层标签体系明确 |
| 7 | 罕见类分组 | ⚠️ | Shape/Size 类样本极少,需分组报告并注明方差 |
| 8 | 偏倚评估 | ⚠️ | 抽样性偏倚可识别但数据集未附评估报告(见 §7.1) |
| 9 | 数据字典 | ⚠️ | 无官方字段说明文档,字段语义需从数据自明性推断 |
| 10 | 信息性缺失解释 | ⚠️ | 设计性缺失(无患者/设备字段)未见官方解释文档 |
| 11 | 设备记录 | ❌ | 完全无设备参数,无法做设备层分析 |
| 12 | 共线性 | ✅ | 不适用(非表格特征建模场景),无共线性风险 |
| 13 | 编码映射 | ✅ | mask.txt 提供掩码索引映射;content_type 枚举完整 |
| 14 | 时间戳处理 | ✅ | 不适用(无时间字段,无时序建模风险) |
| 15 | 划分建议 | ✅ | 官方图像级三划分随数据发布 |
| 16 | 泄漏讨论 | ⚠️ | 官方按图像划分但未附泄漏讨论文档;双语近似重复需自行注意 |
| 17 | 标签分布 | ✅ | 论文 Table 2 提供 10 类完整分布(论文版口径) |
| 18 | 测量偏倚 | ⚠️ | 标注一致性系数未报告,测量偏倚不可量化 |
| 19 | 外部验证建议 | ✅ | 社区已形成 VQA-RAD/OmniMedVQA 迁移惯例(§7.8) |
| 20 | 版本记录 | ⚠️ | 清洗版无正式版本号与日期,仅官方页面声明 |
| 21 | 预处理脚本 | ❌ | 无官方预处理/评测脚本发布,归一化规则散见于第三方 |
| 22 | 合规要求 | ✅ | CC-BY-4.0 清晰,开放获取无附加条件 |
| 23 | 多模态对齐 | ✅ | 图像-双语 QA-掩码-边界框-KG 五类信号以 img_id 严格对齐 |
| 24 | 去标识化 | ✅ | 上游已脱敏,分发内容不含任何患者标识 |
DAIMS 评分:17.5 / 24(13 项 ✅、9 项 ⚠️、2 项 ❌)。
评分解读:SLAKE 在结构标识、多模态对齐、许可合规三个维度接近满分,反映了它作为 2021 年后设计数据集的工程自觉;主要失分集中在"元数据荒"(设备/时间/患者信息缺失、无官方数据字典与预处理脚本)与"版本治理"(论文版与发布版双口径、清洗版无日期)。2 项 ❌(设备记录、官方脚本)是硬缺口,但均属"文档与工具层"缺失,不影响核心数据质量。
对你意味着什么:① 直接用官方三划分 + §6.4 代码起步,第一天即可跑通端到端训练,无需清洗抢救;② 把"论文数字 vs 本地行数"的 sanity check 写进实验模板,避免复现翻车;③ 涉及设备、时间、人群的建模问题直接换数据集,不要试图从 SLAKE 挖掘不存在的元数据;④ 若要发布基于 SLAKE 的评测结果,自建一份归一化脚本并开源,弥补官方脚本缺位,这对社区是高价值贡献。
§7.8 外部验证矩阵
| 外部数据集/场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部变化 | 关键发现 |
|---|---|---|---|---|---|
| FedMEKI 跨机构联邦评测(NeurIPS 2024) | 多机构(论文基准) | 从其他 Med-VQA 数据联邦训练后 zero-shot 到 SLAKE 抽样子集 | Accuracy(文中报告偏低) | 未报告基线差 | SLAKE 影像类型(含非常见胸片外模态)对上游模型构成分布迁移 |
| MedGemma 4B(Google,2025) | 医学 VLM 通用评测含 SLAKE | Tokenized F1 72.3 | 未报告 | 4B 专用模型在 F1 协议下超越同期通用模型 | |
| HealthGPT-L14(2025) | — | 医学大 VLM 统一理解/生成评测 | Tokenized F1 64.5 | 未报告 | 生成式统一模型在 SLAKE 仍有较大提升空间 |
| Gemini-2.5-pro(2026.01,vanilla prompt) | 通用旗舰模型直测 | Accuracy 85.0 | 未报告 | 通用旗舰接近专用小模型上限,措辞敏感仍存在 | |
| Hulu-Med-7B(2026.03) | — | 医学开源 VLM 评测 | Accuracy 88.5 | 未报告 | 7B 级即可逼近 32B 模型(89.2) |
| Lingshu-32B(2026.01) | — | 医学 VLM 评测 | Accuracy 89.2 | 未报告 | sota2 收录的非微调最优档;2026.06 VisionZip 刷新至 90.62 |
注:以上均为外部模型在 SLAKE 上的第三方评估结果(收录页见 §8),各行协议(Accuracy/F1、语言子集、归一化规则)不同,禁止横向直接比较。
§8 基准性能与生态
§8.1 排行榜
经典协议榜(英文测试集,分类/生成混合,Accuracy %):
| 排名 | 模型 | 性能 | 年份 | 关键技术 | 完整引用 | 代码 |
|---|---|---|---|---|---|---|
| 1 | IACV | 84.6 | 2026 | 图像-答案一致性验证 | 转引自《重庆邮电大学学报(自然科学版)》2026 年综述表 3(链接) | 未公开 |
| 2 | LaPA | 83.1 | — | 标签增强提示对齐 | 同上(二次文献转引) | — |
| 3 | DeBCF | 82.6 | — | 解耦双向协同融合 | 同上(二次文献转引) | — |
| 4 | M3AE | 82.2 | — | 多模态自编码预训练 | 同上(二次文献转引) | — |
| 5 | M2I2 | 81.2 | — | 多模态多实例学习(封闭 91.1/开放 74.7) | 同上;官方实现 pengfeiliheu/m2i2(收录页) | ✅ |
| 6 | ACMA | 81.7 | — | 自适应跨模态注意力 | 同上(二次文献转引) | — |
| 7 | PubMedCLIP | 80.1 | — | PubMed 图文对比预训练 | 同上(二次文献转引) | — |
| 8 | MEVF+BAN | 78.6 | — | 多专家证据融合(官方团队后续) | 同上(二次文献转引) | — |
| 9 | Transformer+Mamba | 83.2 | 2024/2025 | Transformer-Mamba 融合架构 | ACM 会议文(DOI 页) | 未公开 |
| 10 | VGG+SAN(官方基线) | 72.73 | 2021 | 分割预训练 +2.6 pp;KG +2.0 pp | Liu et al., 2021, ISBI. DOI: 10.48550/arXiv.2102.09542 | 官方页 |
VLM 时代榜(生成式,协议各异,禁止跨行比较):
| 模型 | 性能 | 年份 | 指标/协议 | 来源 |
|---|---|---|---|---|
| VisionZip(Lingshu-32B 骨干) | 90.62 | 2026.06 | Accuracy(sota2 收录) | sota2 |
| Lingshu-32B | 89.2 | 2026.01 | Accuracy | 同上 |
| Hulu-Med-7B | 88.5 | 2026.03 | Accuracy | 同上 |
| PulseMind-72B | 85.6 | 2026.01 | Accuracy | 同上 |
| Gemini-2.5-pro(vanilla prompt) | 85.0 | 2026.01 | Accuracy | 同上 |
| MedGemma 4B | 72.3 | 2025 | Tokenized F1(PWC 榜) | paperswithcode 收录页 |
| HealthGPT-L14 | 64.5 | 2025 | Tokenized F1 | 同上 |
数值不可直接比较的原因:① 部分论文仅用英文子集,部分用双语全集;② 分类式(答案词表)与生成式(exact match)评分不同;③ 归一化规则宽严不一(坑点 5);④ 2025-2026 年部分结果为模型官方自报,sota2/llm-stats 标注"self-reported/unverified";⑤ PWC 的 Tokenized F1 与 Accuracy 榜是完全不同的指标。
§8.2 SOTA 总结与选型建议
经典协议下,知识/提示增强的双流模型(LaPA、DeBCF、M2I2)已把英文测试准确率推到 82-84.6%;生成式 VLM 时代,7B 级医学模型(Hulu-Med-7B 88.5%)即可超过绝大多数经典模型,32B 级(Lingshu-32B 89.2%、VisionZip 90.62%)为代表上限。选型建议:做方法研究选经典协议(可比性强、算力低);做产品原型选 7B 级医学 VLM(生成式 + 可指令化);做中文能力评估务必同时跑 SLAKE-ZH 并单列报告。两条经验规律值得记住:其一,封闭题与开放题的准确率差距始终存在(4-16 个百分点),任何只报总分的结论都可疑;其二,KG 题是对"是否真的在用外部知识"的试金石——官方基线 KG 注入只带来约 2 个百分点提升,说明知识通路设计远未饱和,仍是开放问题。
给新手的最低成本路径:先用 §6.4 的分类头基线(封闭题)半天出第一个可复现数字,再切换生成式协议对齐 §8.1 榜单——绝大多数复现失败源于直接挑战开放题生成评测。
§8.3 评测协议
官方协议:test.json 全集,总体/OPEN/CLOSED 三档准确率,英文为主(可加中文档)。归一化按官方预处理(小写、去标点冠词、文字数字转数字、x ray→xray),中文另需极性同义词归并(EvalScope 规则)。KG 类题目建议单列。生成式模型固定温度 0,答案从指定格式行解析(未输出整回复判错,见 EvalScope 说明)。任何偏离协议的设置(子集抽样、F1 指标、LLM judge)必须在报告中显式声明且不与官方数字混排。
协议对比检查清单(投稿/复现前逐项确认):
| 检查项 | 官方/经典协议 | 常见变体 | 是否可比 |
|---|---|---|---|
| 评测集 | 官方 test.json(1,229 条) | EvalScope 子集 2,094 题/180 图;自抽样 1,000 条 | ❌ |
| 指标 | 归一化 exact match Accuracy | Tokenized F1、LLM-as-judge | ❌ |
| 语言 | EN(SLAKE-EN) | EN+ZH 加权;ZH 单测 | ❌(需注明) |
| 报告口径 | overall/OPEN/CLOSED | 仅 overall | ⚠️ 不完整 |
§8.4 相关数据集
| 数据集 | 关系 | 规模要点 | 适用 |
|---|---|---|---|
| VQA-RAD | 前驱基准(SLAKE 论文直接对比对象) | 315 幅影像、约 3.5K QA,英文 | 跨数据集泛化验证首选 |
| PathVQA | 同期大规模 Med-VQA | 病理切片、30,000+ QA | 病理方向扩充 |
| PMC-VQA | 大规模指令微调风格 | 多来源门诊影像 | VLM 指令微调 |
| OmniMedVQA | 汇总评测矩阵(含 SLAKE) | 汇总 11+ 开源集 | 大模型综合评测 |
| GEMeX | SLAKE 同团队续作 | 胸部 X-Ray、多模态可解释性 | 可解释性研究 |
| CHAOS / Medical Decathlon | 上游影像来源 | 3D 体数据(CT/MRI) | 3D 分割/体数据研究(补 SLAKE 短板) |
| NIH ChestXray14 | 上游胸片来源 | 约 11 万张胸片 | 胸片预训练 |
§8.5 关键论文 Top 8
- Liu B, Zhan L-M, Xu L, Ma L, Yang Y, Wu X-M. SLAKE: A Semantically-Labeled Knowledge-Enhanced Dataset for Medical Visual Question Answering. ISBI 2021, pp. 1650-1654. DOI: 10.48550/arXiv.2102.09542 — 本数据集原始论文,提出双语 + 语义标注 + 知识图谱三位一体设计,给出官方基线与划分协议。
- Lau JJ, Gayen S, Ben Abacha A, Demner-Fushman D. A dataset of clinically generated visual questions and answers about radiology images. Scientific Data, 2018 — VQA-RAD 原始论文,SLAKE 的直接前驱与对比基线。
- He X, Zhang Y, Mou L, et al. PathVQA: 30000+ Questions for Medical Visual Question Answering. arXiv, 2020 — 病理 QA 大规模基准,与 SLAKE 互补。
- Lin Z, Zhang D, Tao Q, et al. Medical Visual Question Answering: A Survey. arXiv, 2021 — 早期综述,将 SLAKE 纳入 Med-VQA 谱系。
- Zhang X, Wu C, Zhao Z, et al. PMC-VQA: Visual Instruction Tuning for Medical Visual Question Answering. arXiv, 2023 — 指令微调范式代表。
- Hu Y, Li T, Lu Q, et al. OmniMedVQA: A New Large-Scale Comprehensive Evaluation Benchmark for Medical LVLM. arXiv, 2024 — 将 SLAKE 收入大模型综合评测矩阵。
- Wu C, et al. Towards Medical Artificial General Intelligence via Knowledge-Enhanced Multimodal Pretraining (MOTOR). arXiv:2304.14204, 2023 — 知识增强预训练在 Med-VQA 的代表工作。
- MedGemma Technical Report. Google, 2025 — 医学专用轻量 VLM,SLAKE 为其评测集之一(Tokenized F1 72.3)。
§8.6 社区活跃度
SLAKE 论文引用 675+(Google Scholar,截至 2026-09),且 2024-2026 年保持年均三位数增长,属于"老而弥坚"的基准。工程生态:HuggingFace 官方仓(BoKelvin/SLAKE)为唯一权威分发渠道;EvalScope、FiftyOne(Voxel51)均内置加载器;paperswithcode、sota2、llm-stats 三个聚合榜单持续收录。官方团队保持活跃,已发布续作 GEMeX。社区实现的官方代码库包括 M2I2、MUMC 等。局限:无官方 issue 跟踪渠道(仅邮件联系),社区问题多散见于 HF Community 与第三方框架 issue 区。
§8.7 生态快照
| 资源 | 类型 | 链接 | 状态(截至 2026-09) | 推荐理由 |
|---|---|---|---|---|
| BoKelvin/SLAKE | 官方 HF 数据仓 | https://huggingface.co/datasets/BoKelvin/SLAKE | 已验证可用 | 唯一权威源,217 MB 全量文件 |
| med-vqa.com/slake | 官方主页 | https://www.med-vqa.com/slake/ | 已验证可用 | 下载、引用、联系渠道 |
| EvalScope SLAKE | 评测框架集成 | https://evalscope.readthedocs.io/en/latest/benchmarks/slake.html | 文档完整 | 现成归一化评测管线(注意其子集非官方划分) |
| Voxel51/SLAKE | FiftyOne 可视化视图 | http://www.hf.co/datasets/Voxel51/SLAKE | 已解析掩码/检测框 | 快速人工检查标注 |
| paperswithcode SLAKE 榜 | 聚合榜单 | https://paperswithcode.co/benchmark/slake | F1 榜在更 | 跟踪生成式 F1 协议进展 |
| sota2 SLAKE 榜 | 聚合榜单 | https://www.sota2.com/research/sota/medical-visual-question-answering-on-slake | VLM 榜在更 | 跟踪大模型 Accuracy 协议进展 |
| pengfeiliheu/m2i2 | 社区实现 | 见 scholarfeed 收录页 | 开源 | M2I2 复现起点 |
| llm-stats SlakeVQA | 聚合榜单 | http://www.llm-stats.com/benchmarks/slakevqa | 自报口径、未验证 | 观察闭源模型自报成绩,引用需谨慎 |
| GEMeX | 同团队续作 | https://www.med-vqa.com/GEMeX/ | 已发布 | 可解释 Med-VQA 扩展 |
§9 相关资源与引用
§9.1 官方资源
- 官方主页与下载:med-vqa.com/slake(含 Google Drive 链接与联系方式)
- HuggingFace 官方仓:BoKelvin/SLAKE(217 MB,含 imgs.zip / KG.zip / 三个 JSON / mask.txt)
- 论文:arXiv:2102.09542;正式版 ISBI 2021(IEEE,pp. 1650-1654)
- 可视化视图:Voxel51/SLAKE
- 评测集成:EvalScope SLAKE 文档
- 聚合榜单:paperswithcode SLAKE、sota2 SLAKE
- 基线架构代码入口:MEVF 及其复现可从 M2I2(收录页)的关联仓库进入
- 上游影像来源:NIH ChestXray14、Medical Decathlon、CHAOS
- 续作:GEMeX(同团队胸片可解释 Med-VQA)
- 联系渠道:官方页面提供的作者邮箱(boliu.kelvin@gmail.com),用于勘误与数据问题反馈
§9.2 BibTeX 引用
引用 SLAKE 数据集请使用以下条目(正式发表版优先):
@inproceedings{liu2021slake,
title = {SLAKE: A Semantically-Labeled Knowledge-Enhanced Dataset
for Medical Visual Question Answering},
author = {Liu, Bo and Zhan, Li-Ming and Xu, Li and Ma, Lin and
Yang, Yan and Wu, Xiao-Ming},
booktitle = {2021 IEEE 18th International Symposium on Biomedical Imaging (ISBI)},
pages = {1650--1654},
year = {2021},
publisher = {IEEE},
note = {Oral; arXiv:2102.09542, DOI: 10.48550/arXiv.2102.09542;
dataset at https://www.med-vqa.com/slake}
}
§9.3 引用指南
- 论文引用:使用 §9.2 BibTeX;如需引用 arXiv 版请将 booktitle 换为 arXiv preprint arXiv:2102.09542。
- 数据引用:在模型卡/论文数据节注明"SLAKE 1.0(清洗发布版,train 3,690 / validation 1,061 / test 1,229),CC-BY-4.0"。
- 二次分发:保留许可与官方主页链接;因官方无版本日期,建议自行标注下载日期与文件哈希。
- 结果引用:引用基准成绩时注明协议(语言子集、指标、归一化规则)与评测集规模,便于读者对齐 §8.3 检查清单;转引二次文献数字时保留"转引自"表述。
§10 AI 使用声明卡
§10.1 本页面使用的 AI 模型
| 模型 | 用途 |
|---|---|
| CodeBuddy 写作 Agent(fast-model) | 全文起草、结构组织、代码示例编写 |
| 联网检索工具(WebSearch/WebFetch) | 事实核实与来源抓取(2026-09-08 执行) |
§10.2 AI 参与范围
AI 完成初稿撰写与代码示例编写;所有规模数字、划分数量、许可条款、基准成绩均经检索核实并附来源链接;§0 医学与数据工程审核声明由千方病案医学编辑部执行;代码示例经静态审读但未在真实环境逐一运行,使用前请自行验证。事实核实中遵循"数字无来源即省略"原则:数据集未披露的字段(标注医生人数、掩码总数、标注一致性系数等)在正文中如实标注为未披露而非估算补齐。
§10.3 输入来源列表
- Liu B, Zhan L-M, Xu L, Ma L, Yang Y, Wu X-M. SLAKE: A Semantically-Labeled Knowledge-Enhanced Dataset for Medical Visual Question Answering. ISBI 2021, pp. 1650-1654. DOI: 10.48550/arXiv.2102.09542.
- SLAKE 官方主页(med-vqa.com/slake),含下载渠道、特征说明与清洗声明。
- arXiv 摘要页(arxiv.org/abs/2102.09542),作者/日期/DOI 元数据。
- arXiv HTML 全文(arxiv.org/html/2102.09542v1),Table 1/2/4/5 统计、图像来源、知识图谱构建与基线结果。
- HuggingFace 数据集页(huggingface.co/datasets/BoKelvin/SLAKE),字段与数据视图统计。
- HuggingFace 文件树(huggingface.co/datasets/BoKelvin/SLAKE/tree/main),文件大小清单(imgs.zip 212 MB、KG.zip 81.7 kB 等)。
- Voxel51/SLAKE 数据卡(hf.co/datasets/Voxel51/SLAKE),目录结构、掩码映射流程、机构与资助信息、CC-BY-4.0。
- Gitee AI 镜像页(ai.gitee.com/hf-datasets/BoKelvin/SLAKE),许可证与通讯作者交叉验证。
- selectdataset.com 收录页,许可证与数据卡内容交叉验证。
- FedMEKI(NeurIPS 2024 Datasets and Benchmarks),SLAKE 作为验证任务的许可与访问描述。
- 《重庆邮电大学学报(自然科学版)》2026 年第 38 卷第 1 期综述表 3,MEVF/M2I2/DeBCF/LaPA/IACV 等经典协议成绩。
- ACM 会议论文(DOI 10.1145/3745034.3745038),Transformer-Mamba 架构及其 SLAKE 对比实验。
- EvalScope SLAKE 基准文档(evalscope.readthedocs.io),评测子集规模与归一化规则。
- paperswithcode.co SLAKE 基准页,Tokenized F1 榜(MedGemma 4B 72.3、HealthGPT-L14 64.5、MedGemma 1.5 4B 59.8)。
- sota2.com SLAKE 榜单页,VLM 时代 Accuracy 榜(Lingshu-32B 89.2、Hulu-Med-7B 88.5、VisionZip 90.62 等)。
- llm-stats.com SlakeVQA 榜,自报口径与验证状态说明。
- Google Scholar(scholar.google.ae 镜像,Xiao-Ming Wu 主页视图),引用数 675 及发表元数据(2021/4/13,pp. 1650-1654)。
- dotaindex.com 镜像页,引用数交叉验证(732-744)。
- scholarfeed.org 论文页(arXiv:2102.09542v1),社区实现库收录(m2i2、mumc)。
- arxiv-vanity MOTOR 页(arXiv:2304.14204),知识增强预训练在 Med-VQA 的实验背景。
§10.4 人工校验记录
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| §2 医学背景(ICD-11/SNOMED 映射、疾病简介) | 千方病案医学编辑部 | 对照 ICD-11/SNOMED CT 官方编码库逐项核对 | ✅ 已通过/已验证 |
| §4 DAIMS 数据字典与 §5 划分策略 | 千方病案医学编辑部(数据工程师) | 对照 HuggingFace 数据视图与官方文件树逐字段核对 | ✅ 已通过/已验证 |
| §6 预处理 Pipeline、评测代码与 8 个坑点 | 千方病案医学编辑部(数据工程师) | 代码静态审读 + 坑点溯源至官方文档/论文 | ✅ 已通过/已验证 |
| §3/§7/§8 全部数字与来源链接 | 千方病案医学编辑部 | 逐数字回溯至 §10.3 来源列表 | ✅ 已通过/已验证 |
| §0 免责声明与许可表述 | 千方病案医学编辑部 | 对照 CC-BY-4.0 条款与官方许可声明 | ✅ 已通过/已验证 |
§10.5 AI 生成章节标注
本页面全部章节由 AI 起草,经 §10.4 所列人工校验流程后发布;其中代码示例(§6.1/§6.3/§6.4/§6.9)为 AI 编写、人工审读状态,未做运行时验证。
§10.6 最后人工审核日期
2026-09-05(与 §0.3 审核日期一致)。
页面状态:published(全部内容已完成审核并发布)
