信息速览

MedMCQA — 印度医学入学考试多选题数据集 AI-Ready Wikipedia
INFOBOX
| 数据集名称 | MedMCQA |
| 英文全称 | MedMCQA: A Large-scale Multi-Subject Multi-Choice Dataset for Medical domain Question Answering |
| 别名/简称 | MedMCQA、med_mcqa(lighteval 镜像)、印度医学考试 MCQ 数据集 |
| 疾病分类 | 非单一疾病数据集——覆盖 MBBS/MD 入学考试全科目疾病谱(ICD-11:1G4Z 脓毒症 / BA41 急性心肌梗死 / CB4Z 心力衰竭 / 5B55.Z 2 型糖尿病等高频考点,详见 §2.1) |
| SNOMED CT | 91302008 Sepsis / 22298006 Myocardial infarction / 84114007 Heart failure / 233604007 Pneumonia 等考点映射 + 385677005 Multiple choice question (详见 §2.2) |
| 数据模态 | 文本(英文医学多选题,含选项、答案与专家解析) |
| AI 任务类型 | 多选题问答(MCQA)、医学知识评测、LLM 基准评估、微调训练、推理能力分析 |
| 样本总数 | 193,155 道题(train 182,822 / dev 4,183 / test 6,150;论文口径 “>194k”) |
| 数据大小 | ~88 MB(Parquet)/ ~152 MB(JSON 源文件) |
| 数据格式 | Parquet / JSON(HuggingFace datasets 一行加载) |
| 许可证 | Apache-2.0 |
| 访问级别 | 开放(无需注册申请) |
| DUO 标签 | NRES |
| 语言 | 英文 |
| 首发日期 | 2022-03-27(arXiv 预印本)/ 2022-04(CHIL 2022 会议,PMLR 174:248-260) |
| 最后更新 | 2022-05-06(HuggingFace 首次发布,此后无内容更新) |
| 发布机构 | Saama AI Research(印度金奈) |
| 官方主页 | https://medmcqa.github.io/ |
| 下载地址 | https://huggingface.co/datasets/openlifescienceai/medmcqa |
| DOI | 10.48550/arXiv.2203.14371(arXiv) |
| 引用次数 | 1,000+(Google Scholar,截至 2026-08,作者公开确认) |
| AI 就绪度评分 | ⭐⭐⭐⭐(4/5)— 一行代码加载、官方划分、Apache-2.0、标准评测 harness 支持;扣分项:test 集无公开标签、multi 题型与单答案评估冲突、标签噪声、发布后无维护更新 |
| 页面状态 | published |
§0 E-E-A-T 信任声明与免责声明
医学审核者:千方病案医学编辑部交叉审核:§2 医学背景(ICD-11/SNOMED CT 考点映射、考试科目与临床任务定义、金标准描述)、§7 偏倚分析。
数据工程审核者:千方病案医学编辑部交叉审核:§4 DAIMS 数据字典(字段口径、划分构成)、§5 数据划分策略、§6 评测 Pipeline 和坑点。
审核日期:2026-09-05
审核方式:交叉审核
利益冲突声明:千方病案医数集与 Saama AI Research、AIIMS、印度国家考试委员会(NBE)无任何商业利益关联。本页面不销售 MedMCQA 数据集本身,仅提供 AI 就绪指南与学术信息服务。编辑者未接受 Saama 或其关联方的任何形式资助。
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议(Apache-2.0,以 HuggingFace 仓库标注为准)。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。
§1 数据集概览
§1.0 30 秒速览
MedMCQA 是 Saama AI Research 于 2022 年发布的大规模医学多选题问答数据集,包含 193,155 道英文四选一题目,取材自印度两项医学研究生入学考试——AIIMS PG(全印医学科学研究院,1991 年至今)与 NEET PG(国家医学研究生入学考试,2001 年至今)的真题及模拟题,覆盖 21 个医学科目、约 2,400 个医疗主题,近九成训练题附带专家解析。
它的地位可以一句话概括:MedMCQA 是医疗大语言模型评测的事实标准之一。Google 的 Med-PaLM 系列把它纳入 MultiMedQA 评测套件,GPT-4 发布时的医学能力演示同样用它——从 2022 年 PubMedBERT 的 41% 到 2023 年 GPT-4 的 73.7%,再到今天前沿模型的 80%+,MedMCQA 的分数曲线就是医疗 LLM 的能力编年史。论文引用已超 1,000 次(截至 2026-08),HuggingFace 月下载量达数万次。
你可以用它来:评测或微调一个医疗问答模型、研究 LLM 的记忆污染与选项位置偏倚、或者为医学教育类应用构建题库。但请记住它的边界——这是"考试题",不是"临床病例":平均仅 12.77 个 token 的题干测的是书本知识,不是床旁决策。
§1.1 摘要
MedMCQA 的构建逻辑是"用真实选拔考试给 AI 出卷"。作者从 AIIMS PG 与 NEET PG 的官方真题(分别追溯至 1991 年与 2001 年)及医学专业人员编写的模拟题/在线测试系列中收集了 19.4 万余道题,经过去除非四选项题、剔除图片/表格依赖题、清理 HTML 残留、Grammarly 辅助拼写校正、Levenshtein 相似度(>0.9)去重等流程,最终形成 193,155 题的发布版。每条样本包含题干、4 个选项、正确答案(1-based 索引)、choice_type(single/multi)、专家解析、科目与主题标签共 10 个字段。数据集按考试来源而非随机划分:训练集为模拟题,dev 集为 NEET PG 真题,test 集为 AIIMS PG 真题(标签不公开)。论文同步给出了 BERT 系基线(最高 47%)与人类考生(merit 线约 90%)的巨大差距——这个差距定义了此后三年医疗 LLM 的攻关目标。
§1.2 战略价值分析
评测标准维度:MedMCQA 填补了 2022 年之前医学 QA 数据集"小而窄"的空白——此前的生物医学 MCQA 数据集大多只有几千题、覆盖科目有限。19.4 万题、21 个科目的规模使"分科目细粒度评估"第一次成为可能,Singhal 等人的 MultiMedQA 套件随即将其纳入,Med-PaLM、Med-PaLM 2、GPT-4、BioMistral、Meditron 等几乎所有重要医疗 LLM 的论文中都报告了 MedMCQA 分数。它已成为医疗 AI 论文的"标准配置"——没有 MedMCQA 数字的医疗 LLM 论文几乎不存在。
规模与成本维度:88 MB 的体积、Apache-2.0 许可证、一行 load_dataset 加载——MedMCQA 把医疗 AI 评测的门槛降到了笔记本电脑级别。与需要 CITI 培训、数周审批的临床数据集(MIMIC、eICU)相比,它是零摩擦的。这一特性使其成为学术界微调小模型(7B 级医疗模型)最广泛使用的训练语料之一,HuggingFace 上有 85+ 个模型标注在其上训练。
研究方法论维度:MedMCQA 也是研究 LLM 评测本身缺陷的理想样本——它公开多年、几乎必然存在于各大模型预训练语料中,因此成为数据污染、选项位置偏倚、答案记忆等"评测有效性"研究的首选对象。多项研究用它证明:选项乱序可使模型答案翻转近六成,模型对选项 A 的偏好远超真实分布。这些发现深刻影响了 2024 年后医疗评测方法论的设计。
§1.3 横向对比
| 数据集 | 题量 | 来源 | 语言 | 核心差异化 |
|---|---|---|---|---|
| MedMCQA | 193,155 | 印度 AIIMS/NEET PG 考试 | 英文 | 规模最大、含解析、MultiMedQA 成员、训练+评测双用途 |
| MedQA(USMLE) | 12,723(英文版) | 美国执业医师考试 | 英/中/繁中 | 题干更长(病例型)、临床推理权重更高 |
| PubMedQA | 273,000(1k 人工标注) | PubMed 摘要 | 英文 | 研究文献推理,yes/no/maybe 三分类 |
| MMLU 医学子集 | 约 1,600(6 子集) | 各科考试混合 | 英文 | 通用评测框架一部分,题量小 |
| MedBullets | 308 | USMLE Step 2/3 风格 | 英文 | 高难度专家题,抗污染设计 |
| CMExam / CMB | 数万 | 中国医学考试 | 中文 | 中文医疗评测对应物 |
MedMCQA 的不可替代性在于:它是唯一兼具"十万级题量 + 官方训练划分 + 专家解析 + 免费商用许可"的医学考试数据集。MedQA 更接近真实临床思维但题量小两个数量级;PubMedQA 测文献理解而非知识储备;MMLU 医学子集题量太小无法支撑微调。
§1.4 版本演进时间轴
| 时间 | 事件 |
|---|---|
| 2022-03-27 | arXiv 预印本发布(arXiv:2203.14371) |
| 2022-04-07/08 | CHIL 2022 会议发表(PMLR vol. 174, pp. 248-260) |
| 2022-05-06 | HuggingFace datasets 官方收录(openlifescienceai/medmcqa 初始提交) |
| 2022-12 | 官方排行榜收录 Codex 5-shot CoT 结果(60/63%),此后排行榜停止更新 |
| 2023-01 | Med-PaLM(Singhal et al., Nature 2023)将 MedMCQA 纳入 MultiMedQA 套件,报告 Flan-PaLM 57.6% |
| 2023-03 | GPT-4 技术报告与 Med-PaLM 2 相继使用 MedMCQA:GPT-4-base 73.7%、Med-PaLM 2 72.3% |
| 2024 | BioMistral、Meditron 等开源医疗 LLM 将 MedMCQA 作为标准训练/评测集;lighteval 镜像发布 |
| 2025-05 | MedGemma 发布并报告 MedMCQA 分数;多项评测有效性质疑研究以 MedMCQA 为对象发表 |
| 2026-08 | 作者宣布论文引用突破 1,000 次 |
§1.5 典型 AI 应用场景
- 医疗 LLM 知识评测:MultiMedQA 套件成员,报告医疗模型事实知识水平的标准科目——Med-PaLM 2、GPT-4、MedGemma 均以 MedMCQA dev 准确率为核心指标。
- 小型医疗模型微调:18.3 万训练题 + 专家解析,是 BioMistral、Meditron 及大量 7B 级医疗模型的标准训练语料之一(HF 上 85+ 个模型标注使用)。
- 评测有效性研究:数据污染、选项位置偏倚、答案记忆、药名扰动鲁棒性等"基准批判"研究的首选实验场。
- 医学教育与题库应用:为印度医学考试培训、医学教育产品提供结构化题库(注意商用需遵守 Apache-2.0 条款与题目原始版权)。
- 推理蒸馏语料:exp 字段(约 16 万条解析)可作为推理链蒸馏的原料——但需先清洗(见 §6.5 坑点 5)。
§2 医学背景
§2.1 ICD-11 考点锚定
MedMCQA 不是单一疾病数据集,而是覆盖印度 MBBS→MD 入学考试全部教学大纲的题目集合。其高频考点可映射到 ICD-11 全疾病谱。基于论文答案类型分析(药物名 22.49%、治疗程序 18.74%、副作用 12.74%、剂量 11.24%、病因 10.49%、受累部位 9.75%),其疾病考点分布与印度医学考试大纲一致:
| 高频考点(中文) | ICD-11 对应 | 典型考查形式 |
|---|---|---|
| 脓毒症与感染性疾病 | 1G4Z 脓毒症,未特指 | 首选抗生素、培养结果解读 |
| 急性心肌梗死 | BA41 急性心肌梗死 | ECG 判读要点、再灌注策略 |
| 心力衰竭 | CB4Z 心力衰竭,未特指 | 药物机制与禁忌 |
| 2 型糖尿病 | 5B55.Z 2 型糖尿病 | 降糖药选择、并发症筛查 |
| 高血压 | BA00 原发性高血压 | 一线用药、妊娠合并用药 |
| 肺炎 | CA40 肺炎 | 病原学、影像特征 |
| 急性肾损伤 | 8B6Z 急性肾损伤,未特指 | 分期标准、电解质紊乱 |
| 妊娠与分娩并发症 | JA00-JA6Z | 产程处理、IMNCI 相关(印度特色) |
与 ICD-11 生态的关系:MedMCQA 题目本身不带任何 ICD 编码——它是自由文本考试题。上表由本百科基于论文与样本分析整理,用于检索锚定。若你的研究需要"按疾病筛选题目",可用关键词匹配 + §6.3 的科目/主题字段过滤,但请预期约 15-20% 的题目无法归入单一疾病(基础医学、药理学机制、解剖学题目占相当比例)。
§2.2 SNOMED CT 映射
| 考点场景 | ICD-11 | SNOMED CT | SNOMED CT 术语 |
|---|---|---|---|
| 脓毒症 | 1G4Z | 91302008 | Sepsis (disorder) |
| 急性心肌梗死 | BA41 | 22298006 | Myocardial infarction (disorder) |
| 心力衰竭 | CB4Z | 84114007 | Heart failure (disorder) |
| 肺炎 | CA40 | 233604007 | Pneumonia (disorder) |
| 2 型糖尿病 | 5B55.Z | 44054006 | Diabetes mellitus type 2 (disorder) |
| 高血压 | BA00 | 38341003 | Hypertensive disorder, systemic arterial (disorder) |
| 多选题(评估形式) | — | 385677005 | Multiple choice question (observable entity) |
| 医学教育评估 | — | 409073007 | Educational guidance (procedure) |
§2.3 医学背景简介
MedMCQA 面向的"临床问题"是印度医学研究生入学选拔考试。在印度,MBBS(内外全科医学士)毕业生若希望攻读 MD/MS 专科资格,必须参加国家级选拔考试——历史上 AIIMS PG(全印医学科学研究院自办,公认难度最高)与 NEET PG(全国统考)是两大主渠道(2020 年起 AIIMS 等院校招生已逐步并入 INI-CET 体系,但 1991-2021 年的真题构成了本数据集的主体)。这些考试为纯多选题形式,覆盖解剖、生化、生理、病理、药理、微生物、内外妇儿等 21 个科目,要求考生在约 12 个 token 的题干内完成事实回忆与快速鉴别。merit 线(录取线)考生正确率约 90%——这是论文给出的"人类专家水平"参照点,也是衡量 AI 分数的锚。
§2.4 临床任务定义
| AI 任务 | 定义 | 在 MedMCQA 中的操作化 |
|---|---|---|
| 医学知识多选问答 | 给定题干 + 4 选项,选出最佳答案 | 预测 cop ∈ {1,2,3,4},报 Accuracy |
| 分科目细粒度评估 | 按 21 个科目分别报告准确率 | 按 subject_name 分组统计 |
| 推理类型分析 | 12 类推理能力(事实回忆/多跳/类比/治疗/诊断等) | 论文 §4.4 沿用 Clark et al. 2018 体系的人工分析框架 |
| 检索增强问答 | 允许检索外部知识源辅助作答 | 论文 with-Context 设定(Wikipedia/PubMed 上下文) |
| 解释生成 | 生成答案的理由 | 以 exp 字段为参照(注意 exp 非自足,见 §6.5 坑点 5) |
必须明确的边界:MedMCQA 测的是"考试能力"(examination competence),不是"临床决策"(clinical decision-making)。考试逻辑是"给定已知条件→匹配唯一正确答案";临床逻辑是"面对模糊信息→构建鉴别诊断→管理不确定性"。两者之间没有等号——这正是多项评测批评研究的核心论点(§7.1)。
§2.5 题目人群特征(考试生态)
考试类数据集没有"患者人群",本节给出对应的"题目生态"画像:
| 维度 | 特征 |
|---|---|
| 数据来源 | AIIMS PG 真题(1991 年起)、NEET PG 真题(2001 年起)+ 医学专业人员编写的模拟题/在线测试系列(开放网站与书籍) |
| 考试对象 | 印度 MBBS 毕业生(报考 MD/MS 专科资格) |
| 题目语言 | 英文(印度医学教育为全英文授课) |
| 题干长度 | 平均 12.77 token(train)/ 14.09(dev)/ 9.93(test),最长 220 token |
| 选项长度 | 平均 2.70 token,最长 38 token |
| 解析长度 | 平均 66.22 token,最长 3,155 token |
| 答案类型分布(论文 25% 抽样人工分析) | 药物名 22.49% / 治疗程序 18.74% / 副作用 12.74% / 剂量 11.24% / 病因 10.49% / 受累部位 9.75% |
| 疑问形式 | 68% 题目以疑问词开头(25% 抽样) |
| 地域特色 | 印度药名品牌、印度国家指南(如 IMNCI)、印度流行病学数据频繁出现 |
21 个科目清单(论文 Table 3;train 含 “Unknown” 兜底类):
| 科目(英文) | 中文 | 类别 |
|---|---|---|
| Anatomy | 解剖学 | 基础医学 |
| Biochemistry | 生物化学 | 基础医学 |
| Physiology | 生理学 | 基础医学 |
| Pathology | 病理学 | 基础医学 |
| Pharmacology | 药理学 | 基础医学 |
| Microbiology | 微生物学 | 基础医学 |
| Forensic Medicine (FM) | 法医学 | 基础医学 |
| Medicine | 内科学 | 临床医学 |
| Surgery | 外科学 | 临床医学 |
| Obstetrics & Gynaecology (O&G) | 妇产科学 | 临床医学 |
| Pediatrics | 儿科学 | 临床医学 |
| Ophthalmology | 眼科学 | 临床医学 |
| ENT | 耳鼻咽喉科学 | 临床医学 |
| Orthopaedics | 骨科学 | 临床医学 |
| Radiology | 放射学 | 临床医学 |
| Anaesthesia | 麻醉学 | 临床医学 |
| Psychiatry | 精神病学 | 临床医学 |
| Skin | 皮肤科学 | 临床医学 |
| Dental | 口腔科学 | 临床医学 |
| Social & Preventive Medicine (PSM) | 社会与预防医学 | 公共卫生 |
| Unknown | 未归类 | 兜底类 |
论文未公布各科目题量分布,仅说明"约 95% 的科目包含 50+ 主题、70% 的科目包含 100+ 主题"。
§2.6 金标准/参考标准
| 数据划分 | 标注方式 | 标注者 | 金标准性质 |
|---|---|---|---|
| Train | 模拟题原书/原网站给定答案 + 专家解析 | 医学专业人员(考试辅导书作者群) | 出版物答案键,未经数据集方独立复核,存在已知错标(§6.5 坑点 4) |
| Dev(NEET PG 真题) | 考试官方答案 | 印度国家考试体系 | 真题官方答案键,偶有考试争议题 |
| Test(AIIMS PG 真题) | 考试官方答案 | 全印医学科学研究院 | 真题官方答案键,不对外公开(cop=-1) |
论文明确的质检流程:剔除非四选项题、剔除无最佳答案或选项缺失题、过滤图片/表格依赖题(含 “equation”、“India”、“graph”、“map” 等关键词过滤)、启发式清理 HTML/URL/特殊符号、Grammarly 在人工监督下修正拼写、Levenshtein 相似度 >0.9 去重。但请注意:答案键本身的正确性未经独立医学复核——后续审计研究(§6.5 坑点 4)已确认存在 gold-label 错误。
无 PHI:数据全部为出版物考试题,不含任何患者信息,无需去标识化(论文声明 “This research does not require IRB approval”)。
§3 数据集规格
§3.0 版本抉择矩阵
MedMCQA 本体只有一个版本(2022 年单次发布、无更新),真正的"选型"发生在镜像与评测口径之间:
| 你的需求 | 推荐选择 | 大小 | 理由 |
|---|---|---|---|
| 通用加载、微调训练 | openlifescienceai/medmcqa(HF 主仓库) | ~88 MB | 官方收录、Parquet 直读、193,155 行完整三划分、社区事实标准 |
| 配合 HuggingFace lighteval 评测 | lighteval/med_mcqa | ~88 MB | lighteval 官方镜像,字段与评测模板对齐 |
| 用 EleutherAI lm-evaluation-harness 复现论文数字 | harness 内置 medmcqa 任务 |
自动拉取 | 与 Med-PaLM 时代论文口径最接近的现成实现 |
| 只需要带标签的评估集 | dev split(NEET PG 4,183 题) | <5 MB | test 无公开标签,dev 是社区事实评估集 |
| 与 MedQA/PubMedQA 联合评测 | MultiMedQA 套件 | 各集独立 | Singhal et al. 标准组合,跨基准可比 |
一句话结论:训练用 openlifescienceai 主仓库 train split;评测用 dev split(别找 test 标签,见 §6.5 坑点 2);复现论文用 lm-eval-harness 并声明口径。
§3.1 模态详细说明
MedMCQA 为纯文本英文多选题模态。每条样本是一个独立问答单元:题干(question)+ 四个选项(opa-opd)+ 正确答案索引(cop)+ 题型标记(choice_type)+ 专家解析(exp)+ 科目/主题标签(subject_name/topic_name)。原始构建时作者主动剔除了依赖图片/表格的题目,但后续审计发现仍有少量残留"引用不存在图片"的文本题(§6.5 坑点 4)。数据集不含影像、波形、结构化 EHR 等任何其他模态——若需要多模态医学评测,请考虑 WorldMedQA-V、MMMU 医学子集或 PathVQA 等。
§3.2 样本量拆分
| 划分 | 来源 | 题量 | 标签 | 解析 | 用途 |
|---|---|---|---|---|---|
| train | 模拟题与在线测试系列 | 182,822 | ✅ cop 1-4 | ✅ 约 88% 非空 | 微调训练 |
| validation(dev) | NEET PG 真题(2001 至今) | 4,183 | ✅ cop 1-4 | ✅ 约 53% 非空 | 社区事实评估集 |
| test | AIIMS PG 真题(1991 至今) | 6,150 | ❌ cop=-1 | ❌ 全空 | 官方排行榜提交 |
| 合计 | 193,155 |
论文摘要口径为 “More than 194k”(去重前数字);论文 §2.4 正文曾将 dev/test 数量写反(“6K dev / 4K test”),以 Table 2 与 HuggingFace 实际行数为准:dev 4,183、test 6,150。
§3.3 数据格式详情
| 形态 | 格式 | 说明 |
|---|---|---|
| HuggingFace 主仓库 | Parquet(auto-converted) | load_dataset("openlifescienceai/medmcqa") 一行加载 |
| 官方 GitHub 仓库 | JSON(train.json / dev.json / test.json) | MedMCQA/MedMCQA 仓库,字段与 HF 一致 |
| lighteval 镜像 | Parquet | lighteval/med_mcqa,适配 lighteval 评测模板 |
§3.4 存储大小
| 形态 | 大小 | 备注 |
|---|---|---|
| Parquet(HF 下载) | ~88 MB | 三划分合计 |
| JSON 源文件 | ~152 MB | GitHub 仓库下载口径 |
| 加载入内存 | <1 GB | pandas/DataFrame 全量加载无压力,笔记本可跑 |
§3.5 标注方式
MedMCQA 不含二次人工标注——答案键直接继承自题目原始出版物(真题官方答案 + 模拟题书籍答案)。数据集方的角色是"收集 + 清洗 + 结构化":格式统一、脏题剔除、拼写校正、相似题去重。HF dataset card 明确标注 annotations_creators: no-annotation。这一设计的含义必须被使用者理解:标签质量等于原出版物质量,数据集方未做独立医学复核。
原始出版物(真题/模拟题书)
→ 网页/书籍抓取(开放网站与出版物)
→ 格式清洗(非四选项题、图片题、HTML 残留剔除)
→ Grammarly 拼写校正(人工监督)
→ Levenshtein >0.9 相似题去重(保护 dev/test)
→ 结构化发布(10 字段,exam-based 三划分)
§3.6 标注者资质
答案键产生者为印度医学考试辅导生态的医学专业人员(真题官方答案来自考试机构;模拟题答案来自辅导书作者)。数据集创建者为 Saama AI Research 的三位研究员(Ankit Pal、Logesh Kumar Umapathi、Malaikannan Sankarasubbu)。解析(exp)的质量参差不齐——部分是完整的教科书式讲解,部分仅是 “Ans. © Ref: Harrison 19th ed. P640” 式的答案确认加书籍页码引用。
§3.7 数据采集时间范围
题目原始考试年份跨度为 1991(AIIMS PG 最早真题)至 2021 年前后(数据集发布前)。数据集中不含每题的具体年份字段——无法按年份筛选或做时间维度分析。数据集本身自 2022 年 5 月发布后无内容更新。
§3.8 地理覆盖
单一国家来源——印度。两项考试均为印度国家级医学入学考试,教学大纲、药物品牌名、公共卫生指南(IMNCI 等)与流行病学参照均基于印度语境。这是理解其泛化性边界的第一前提(§7.3)。
§3.9 采集设备规格
不适用(文本考试数据集,无采集设备)。数据管道为网页抓取 + 出版物数字化,具体抓取站点清单未公开——这也是后续批评文献指出的透明度缺口之一。
§3.10 深度溯源链
| 环节 | 系统/方法 | 关键转换 |
|---|---|---|
| 1. 题目原始产生 | AIIMS PG 考试(1991 起)、NEET PG 考试(2001 起)、辅导书/在线测试系列 | 医学专业人员命题,官方/出版物答案键 |
| 2. 公开流通 | 考试回忆版、辅导书籍、备考网站 | 真题经考生回忆与出版物渠道进入公开领域;无逐题版权与年份元数据 |
| 3. 收集与清洗 | Saama AI Research 抓取管道 | 非四选项题/图片题剔除、关键词过滤、HTML 清理、Grammarly 校正 |
| 4. 去重与划分 | Levenshtein 相似度(>0.9 剔除) | 按考试来源划分 train/dev/test,保护评估集独立性 |
| 5. 发布 | medmcqa.github.io + GitHub + HuggingFace(2022-05-06) | Apache-2.0;test 标签保留(cop=-1) |
| 6. 生态固化 | MultiMedQA(2023)、lm-eval-harness、lighteval | dev split 成为社区事实评估集;进入大量 LLM 预训练语料(污染风险,§6.5 坑点 3) |
§4 数据结构详解
§4.0 目录结构预览
HuggingFace 加载后无本地目录概念;以下为 GitHub 仓库下载后的结构:
MedMCQA/
├── train.json # 训练集 182,822 题(模拟题,含答案与解析)
├── dev.json # 验证集 4,183 题(NEET PG 真题,含答案与解析)
├── test.json # 测试集 6,150 题(AIIMS PG 真题,cop=-1 无答案、无解析)
└── README.md # 官方说明与提交指引
HF Parquet 版加载后为三个 split(train / validation / test),每行 10 个字段,无嵌套结构。
§4.1 DAIMS 标准化字段描述表
| 字段名 | 数据类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| id | string | 题目唯一标识(UUID) | “4e1715fe-0bc3-494e-b6eb-2d4617245aef” | 去重键、结果追踪 | 无 | 不允许缺失 | 36 字符 UUID |
| question | string | 题干 | “Which vitamin is supplied from only animal source:” | 模型输入 | OCR/抓取残留错字可见(如 “conveed”) | 不允许缺失(极个别为空串) | 1-220 token |
| opa | string | 选项 A | “Vitamin C” | 候选答案 1 | 同 question | 不允许缺失 | 1-38 token |
| opb | string | 选项 B | “Vitamin B7” | 候选答案 2 | 同上 | 不允许缺失 | 同上 |
| opc | string | 选项 C | “Vitamin B12” | 候选答案 3 | 同上 | 不允许缺失 | 同上 |
| opd | string | 选项 D | “Vitamin D” | 候选答案 4 | 同上 | 不允许缺失 | 同上 |
| cop | int64 | 正确答案索引 | 3(即选项 C) | 标签 | 存在少量错标(审计已确认个案) | test 集 = -1(标签保留) | train/dev: 1-4;test: -1 |
| choice_type | string | 题型 | “single” / “multi” | 评估过滤关键字段 | multi 题 gold 只存一个字母(§6.5 坑点 1) | 不允许缺失 | |
| exp | string | 专家解析 | “Ans. © Vitamin B12 Ref: Harrison’s 19th ed. P 640…” | 蒸馏/解释生成参照 | 质量参差;部分仅为书籍引用 | train 约 12% 为 null、dev 约 47% 为 null、test 全 null | 1-3,155 token 或 null |
| subject_name | string | 科目标签 | “Biochemistry” | 分科目评估 | 存在 “Unknown” 兜底类 | 部分为 “Unknown” | 21 类(test 为 20 类) |
| topic_name | string | 主题标签 | “Vitamins and Minerals” | 细粒度分析 | 粒度不均 | test 集为空 | 约 2.4k 取值或空 |
§4.2 标签分布统计
| 维度 | 分布 | 说明 |
|---|---|---|
| 正确答案位置 | A 约 32% / B、C、D 各约 22-24% | 位置不平衡:A 占比显著偏高,模型可学位置先验(§6.5 坑点 8) |
| choice_type | single 为主,multi 占相当比例 | dev 集审计显示:过滤后 2,194 题中 732 道为 multi(约 33%,MISP-Bench 审计口径) |
| 科目分布 | 内外妇儿等临床大科为主,Dental/Anaesthesia 等小科较少 | 论文未公布完整分布;21 类 + Unknown |
| 答案类型 | 药物名 22.49% / 治疗 18.74% / 副作用 12.74% / 剂量 11.24% / 病因 10.49% / 部位 9.75% | 论文 25% 抽样人工分析 |
| 解析覆盖 | train 约 88% / dev 约 53% / test 0% | exp 为 null 的比例不可忽视 |
§4.3 关键字段描述性统计
- 题干平均 12.77 token(train)——极短题干是 MedMCQA 最鲜明的统计特征,决定了它测的是事实回忆而非长病例推理。
- 词汇表 97,694(全库),train 94,231 / dev 10,800 / test 11,218——AIIMS(test)词汇更丰富,论文据此推断 AIIMS 题更复杂。
- 最长解析 3,155 token,平均 66.22 token。
- 各框架加载行数核对:
len(ds["train"]) == 182822、len(ds["validation"]) == 4183、len(ds["test"]) == 6150——加载后请先断言这三个数字,不符说明镜像或版本有问题。
§4.4 数据层级关系
questions(193,155 题,扁平结构,无外键)
├─ subject_name(21 科目,一级分类)
│ └─ topic_name(约 2.4k 主题,二级分类,test 集为空)
├─ choice_type(single / multi,影响评估语义)
└─ split(train=模拟题 / dev=NEET PG / test=AIIMS PG,按考试来源天然分层)
数据为扁平问答表,无患者→住院→事件式的多级主键。唯一需要理解的层级是"科目→主题"两级分类,以及"考试来源→划分"的天然分层——后者是评估设计的基础(§5)。
§4.5 缺失值情况与信息性缺失编码
| 缺失位置 | 规模 | 机制 | 信息性缺失编码 | 对 AI 的影响 |
|---|---|---|---|---|
| test 集 cop | 全部 6,150 题为 -1 | 刻意设计(排行榜防刷分) | -1 = 标签保留 | 本地无法计算 test 准确率,用 dev 替代 |
| test 集 exp / topic_name | 全部为空 | 同上 | null / 空串 | 无法做 test 的解释生成评估 |
| train 集 exp | 约 12% 为 null | 原书未给解析 | null = 无解析 | 蒸馏前必须过滤 |
| dev 集 exp | 约 47% 为 null | 真题回忆版多无解析 | null = 无解析 | 用 dev 做解释评估时注意近半缺失 |
| subject_name | 少量为 “Unknown” | 未归类 | “Unknown” 兜底类 | 分科目评估时单独处理或剔除 |
| question 文本 | 极个别空串/极短 | 抓取残留 | 空串 | 加载后过滤 len(question.strip()) > 0 |
§5 数据划分与使用建议
§5.1 官方数据划分
官方划分是 MedMCQA 设计上最值得称道的部分:按考试来源而非随机划分。训练集全部是模拟题/在线测试系列;dev 集全部是 NEET PG 真题(2001 至今);test 集全部是 AIIMS PG 真题(1991 至今)。作者还计算了全库题目两两 Levenshtein 距离,相似度 >0.9 的题从 dev/test 中剔除——目的明确:防止训练集里的"孪生题"污染评估。这一"真题评估、模拟题训练"的范式使 MedMCQA 的分数天然带有"准外部验证"性质。
但有两个必须知道的现实:(1) test 标签不公开,本地无法评估 test;(2) dev 是 NEET PG、test 是 AIIMS PG,两个考试风格不同(AIIMS 题干更短、词汇更难),dev 分数不完全等于 test 分数——论文基线中两者差距可达 2-7 个百分点。
§5.2 推荐划分策略
- 标准做法(推荐):训练用 train,调参/选模型用 dev 的一个子集,最终评估用 dev 全集(4,183 题)。报告时明确写 “MedMCQA dev accuracy”。
- 需要更严格泛化声明时:通过官方 GitHub 提交流程获取 test 集评分(Google 表单提交预测),或使用 lm-eval-harness 的 medmcqa 任务复现论文口径。
- 从 train 中再切验证集:微调实验若需独立调参集,从 train 随机切 2-5%(按题目而非按 subject 分层即可,train 内均为模拟题同源)。
- 过滤 multi 题:做"单最佳答案"评估时,建议在 dev 上过滤
choice_type == "single"(或至少同时报告两个口径)——否则约三成题目处于"多个选项可接受但 gold 只认一个"的语义模糊区(§6.5 坑点 1)。
from datasets import load_dataset
ds = load_dataset("openlifescienceai/medmcqa")
assert len(ds["train"]) == 182822
assert len(ds["validation"]) == 4183
assert len(ds["test"]) == 6150
dev_single = ds["validation"].filter(lambda x: x["choice_type"] == "single")
print(f"dev single-answer 题数: {len(dev_single)} / {len(ds['validation'])}")
§5.3 数据泄漏风险防御
| # | 泄漏模式 | 严重程度 | 防御措施 |
|---|---|---|---|
| 1 | 预训练污染:MedMCQA 公开多年,已进入各大 LLM 预训练语料 | 高(评测有效性级) | 评测前做 n-gram 污染检测(§6.3 给出代码);报告时声明污染风险;优先用选项乱序复测 |
| 2 | train 与 dev/test 近似重复题 | 中 | 官方已做 >0.9 Levenshtein 去重,但仍有相似考点题;微调后评估时注意"同考点不同题"的泛化假象 |
| 3 | exp 解析中直接含答案 | 高(蒸馏场景) | 用 exp 做蒸馏/CoT 数据时,不要把 exp 拼进输入 prompt(“Ans. ©” 直接泄题) |
| 4 | 用 dev 反复调参后报 dev 分数 | 中 | dev 只有 4,183 题,多轮调参会过拟合 dev;重要结论用一次性 held-out 子集或官方 test 通道确认 |
§5.4 交叉验证建议
- 标准评估无需交叉验证——用固定 dev 全集即可,这也是文献可比性的基础。
- 微调超参搜索:train 内 5 折随机划分(同源模拟题,无分组泄漏顾虑)。
- 稳健性验证(强烈建议):选项乱序复测——将 dev 每题的 4 个选项随机重排(同步重排 cop),分数下降幅度即记忆/位置偏倚的量级估计(研究显示翻转率可达 59.1%,§6.5 坑点 3)。
§5.5 外部验证
在 MedMCQA 上训练/调优的模型,经典外部验证路径为:MedQA(USMLE)——题干更长、病例型、美国考试体系,是最常用的交叉验证基准;PubMedQA——文献推理;MMLU 医学子集——通用框架对照;CMExam/CMB——中文医疗考试体系。MedMCQA→MedQA 的迁移表现尤其值得关注:两者同为四选一医学考试题,但题干长度与推理深度差异显著,是检验"考试技巧 vs 临床推理"的天然对照(§7.8)。
§6 AI 就绪指南
§6.0 云端快速启动
零门槛加载:MedMCQA 无需任何申请——88 MB、Apache-2.0。在 Google Colab 免费实例上,从安装到跑完一个 zero-shot 评估(dev 全集 + 一个 API 模型)通常不超过 30 分钟。
# Colab 首行:pip install datasets openai from datasets import load_dataset ds = load_dataset("openlifescienceai/medmcqa") print(ds) # train 182,822 / validation 4,183 / test 6,150用现成 harness 一键复现基准:
pip install lm-eval lm_eval --model hf \ --model_args pretrained=mistralai/Mistral-7B-Instruct-v0.2 \ --tasks medmcqa --num_fewshot 5 --batch_size auto
§6.1 快速上手
# ========================================
# MedMCQA 快速上手 — 评估一个 LLM 的最小可用流程
# 环境要求: datasets>=2.14, openai>=1.0(或任意兼容 chat API)
#
# 数据位置约定:
# load_dataset 自动缓存至 ~/.cache/huggingface/datasets
# 无需手动管理目录;三划分行数应为 182,822 / 4,183 / 6,150
#
# 口径声明(务必写进实验记录):
# 评估集 = dev(NEET PG 4,183 题),0-shot,single+multi 全量
# ========================================
from datasets import load_dataset
ds = load_dataset("openlifescienceai/medmcqa")
dev = ds["validation"]
LETTERS = ["A", "B", "C", "D"]
def build_prompt(ex):
return (
"You are a medical expert taking the Indian PG medical entrance exam. "
"Answer with a single letter (A, B, C or D).\n\n"
f"Question: {ex['question']}\n"
f"A. {ex['opa']}\nB. {ex['opb']}\nC. {ex['opc']}\nD. {ex['opd']}\n\n"
"Answer:"
)
def score(pred_letter, cop):
# cop 为 1-based 整数 1-4(test 集为 -1,勿在 test 上评分)
return int(pred_letter == LETTERS[cop - 1])
# 示例:打印首题及其答案
ex = dev[0]
print(build_prompt(ex))
print("gold:", LETTERS[ex["cop"] - 1], "| subject:", ex["subject_name"])
§6.2 数据获取流程
| 获取方式 | 链接/位置 | 大小 | 流程 |
|---|---|---|---|
| HuggingFace 主仓库 | https://huggingface.co/datasets/openlifescienceai/medmcqa | ~88 MB | load_dataset 一行加载,免注册 |
| GitHub 官方仓库 | https://github.com/MedMCQA/MedMCQA | ~152 MB | train.json / dev.json / test.json 直接下载 |
| lighteval 镜像 | https://huggingface.co/datasets/lighteval/med_mcqa | ~88 MB | lighteval 评测模板配套 |
| 官方主页/排行榜 | https://medmcqa.github.io/ | — | test 集提交评分指引(Google 表单) |
Apache-2.0 许可证:允许商用与修改,需保留版权声明与许可文本。注意一个常被忽略的点:Apache-2.0 覆盖的是数据集方的汇编工作;题目原文的版权归属原考试机构与出版商——大规模商用再分发题目原文前建议咨询法务。
§6.3 预处理 Pipeline
<details>
<summary><b>点击展开完整预处理代码(清洗 + 污染检测 + 选项乱序评估三件套)</b></summary>
# ========================================
# MedMCQA 预处理三件套
# 1) 微调数据清洗(过滤空题干/multi/无解析样本)
# 2) 污染检测(n-gram 重叠法,评估前自查)
# 3) 选项乱序(稳健性评估必备)
# ========================================
import random
import re
from datasets import load_dataset
ds = load_dataset("openlifescienceai/medmcqa")
# ---------- 1) 微调训练集清洗 ----------
def clean_train(ex):
q = ex["question"].strip()
if len(q) < 10: # 空串/残题
return False
if ex["cop"] not in (1, 2, 3, 4): # 异常标签
return False
opts = [ex["opa"], ex["opb"], ex["opc"], ex["opd"]]
if len(set(o.strip().lower() for o in opts)) < 4: # 选项重复(已知 12+ 道)
return False
return True
train_clean = ds["train"].filter(clean_train)
train_single = train_clean.filter(lambda x: x["choice_type"] == "single")
train_with_exp = train_single.filter(
lambda x: x["exp"] is not None and len(x["exp"].strip()) > 50
)
print(f"清洗后: {len(train_clean)} → single: {len(train_single)} → 带解析: {len(train_with_exp)}")
# ---------- 2) 污染检测(8-gram 重叠) ----------
def ngrams(text, n=8):
tokens = re.findall(r"\w+", text.lower())
return {" ".join(tokens[i:i+n]) for i in range(len(tokens) - n + 1)}
# 把你的预训练语料(或怀疑含 MedMCQA 的语料)建成 n-gram 集合
corpus_ngrams = set()
# for doc in your_pretraining_corpus: corpus_ngrams |= ngrams(doc)
dev_ngram_hits = 0
for ex in ds["validation"]:
if ngrams(ex["question"]) & corpus_ngrams: # 语料为空时恒为 0,仅示意接口
dev_ngram_hits += 1
print(f"dev 集中与语料存在 8-gram 重叠的题目: {dev_ngram_hits}")
# ---------- 3) 选项乱序(污染/位置偏倚稳健性测试) ----------
LETTERS = ["A", "B", "C", "D"]
def shuffle_options(ex, seed):
rng = random.Random(seed + hash(ex["id"]) % 10000)
opts = [ex["opa"], ex["opb"], ex["opc"], ex["opd"]]
order = list(range(4))
rng.shuffle(order)
gold_new = order.index(ex["cop"] - 1) + 1 # 重排后的新 gold 位置
out = dict(ex)
for new_i, old_i in enumerate(order):
out[f"op{LETTERS[new_i].lower()}"] = opts[old_i]
out["cop"] = gold_new
return out
dev_shuffled = ds["validation"].map(lambda x: shuffle_options(x, seed=42))
# 同一模型在 dev 与 dev_shuffled 上的准确率差 = 位置/记忆偏倚量级
</details>
直接使用成熟评测管道替代手写:lm-evaluation-harness(--tasks medmcqa,EleutherAI 维护,社区引用最广)、lighteval(lighteval/med_mcqa 镜像 + 官方模板)、OpenMed 评测套件。手写评估脚本时最容易踩的坑(cop 1-based、multi 题、dev/test 口径)见 §6.5。
§6.4 框架加载
# PyTorch 微调:把 MedMCQA 包装为分类任务(选项拼接纳 softmax)
import torch
from torch.utils.data import Dataset
class MCQADataset(Dataset):
def __init__(self, hf_split, tokenizer, max_len=256):
self.data = hf_split
self.tok = tokenizer
self.max_len = max_len
def __len__(self):
return len(self.data)
def __getitem__(self, i):
ex = self.data[i]
opts = [ex["opa"], ex["opb"], ex["opc"], ex["opd"]]
enc = [self.tok(ex["question"], o, truncation=True,
max_length=self.max_len, return_tensors="pt")
for o in opts]
input_ids = torch.stack([e["input_ids"].squeeze(0) for e in enc])
attn = torch.stack([e["attention_mask"].squeeze(0) for e in enc])
return {"input_ids": input_ids, "attention_mask": attn,
"label": torch.tensor(ex["cop"] - 1)} # 转 0-based
# TensorFlow / Keras(TFDS 无官方镜像,经 datasets 转换)
from datasets import load_dataset
ds = load_dataset("openlifescienceai/medmcqa")
tf_train = ds["train"].to_tf_dataset(
columns=["question", "opa", "opb", "opc", "opd"],
label_cols=["cop"], batch_size=32, shuffle=True)
# JAX/Flax:经 NumPy 迭代
import numpy as np
ds = load_dataset("openlifescienceai/medmcqa")
batch = ds["train"][:128]
labels = np.array(batch["cop"]) - 1 # 0-based int32 供 optax.softmax_cross_entropy
§6.5 常见坑点
⚠️ 坑点 1:choice_type=‘multi’ 题与单答案评估语义冲突(分类:评估误用)
问题:相当比例的题目标记为 multi("all of the following EXCEPT"式或多答案组合题),但 cop 只存一个字母——模型选了另一个"实际也可接受"的选项仍被判错。MISP-Bench 审计(medRxiv 2026)在 dev 过滤出的 2,194 题中发现 732 道 multi 题(约 33%)与单最佳答案评估不兼容。
症状:分数莫名偏低且错误分析中大量"模型答案其实说得通"的案例;不同论文的 dev 分数对不上(有的过滤了 multi,有的没有)。
解决:评估时过滤
choice_type == "single",或同时报告两个口径;做严谨研究时引用 MISP-Bench 的审计结论说明口径选择。参考:MISP-Bench(medRxiv 2026.05.07.26352627,六类审计框架);Pal et al. 2022 论文字段说明。
⚠️ 坑点 2:test 集没有公开标签,却试图本地评估 test(分类:评估误用)
问题:HF 的 test split 中 cop 全部为 -1、exp 与 topic_name 全空——标签刻意保留,需通过官方 GitHub 提交通道评分。新手常直接对 test 跑准确率,得到无意义结果。
症状:test 上"准确率"恒为 0 或报错(cop=-1 索引越界);或误以为数据集损坏。
解决:本地评估一律用 dev(4,183 题,NEET PG 真题);加载后先断言三划分行数与 cop 取值范围;论文中声明 “evaluated on the MedMCQA dev set”。需要 test 分数时走 medmcqa.github.io 的官方提交流程。
参考:HF dataset card;awinml/medmcqa 镜像说明(“The test split has no ground-truth labels. The standard community practice is to evaluate on the dev split.”)。
⚠️ 坑点 3:预训练污染与"记忆分"——高分未必是能力(分类:数据泄漏)
问题:MedMCQA 自 2022 年公开于 GitHub/HuggingFace,几乎必然被各大 LLM 的预训练语料收录。模型可能"背过答案"而非"会做题"。稳健性研究显示:将 dev 选项随机乱序后,模型答案翻转率高达 59.1%;模型预测选项 A 的比例(45.9%)远超真实分布(32.2%)。
症状:模型 zero-shot 分数异常高但乱序后暴跌;换用等价的新题(如 MedBullets)后分数断崖式下降。
解决:(1) 评测报告必须声明污染风险;(2) 做选项乱序复测,把"原序分 - 乱序分"作为稳健性指标一并报告;(3) 重要结论用 2024 年后的新基准(MedBullets 等抗污染设计)交叉确认。
参考:“When Chain-of-Thought Backfires”(UNHSAILLab MedMCQA-Robustness-Study);Golchin & Surdeanu 2023(污染检测方法论)。
⚠️ 坑点 4:标签噪声与抓取残留——错标、重复选项、幽灵图片题(分类:标签理解)
问题:答案键继承自原出版物,未经独立医学复核。审计已确认:存在 gold-label 错误(全部 11 个模型一致选非 gold 且 exp 自相矛盾的个案)、至少 12 道选项字节级重复的题(EXACT_DUP)、28 道引用不存在图片的"幽灵图片题";HF viewer 中肉眼可见 OCR 错字(如 “prismatic hyperplasia”、“conveed”)。
症状:模型在某些题上"集体答错"且错误模式一致——这往往是题错了而不是模型错了;选项去重后发现样本数变少。
解决:训练前执行 §6.3 清洗(去空题、去重复选项);做错误分析时对"多模型一致答错"的题目人工复核;引用 Northcutt et al. 2021 的通用结论(主流基准平均约 3.3% 标签错误率)设定合理预期。
参考:MISP-Bench 审计(medRxiv 2026);Northcutt et al. 2021(“Pervasive Label Errors in Test Sets Destabilize Machine Learning Benchmarks”)。
⚠️ 坑点 5:exp 解析字段不能直接当 CoT 训练数据(分类:预处理陷阱)
问题:exp 缺失率高(train 约 12%、dev 约 47%),且大量 exp 不是自足推理链,而是 “Ans. © Vitamin B12 Ref: Harrison’s 19th ed. P 640” 式的答案确认 + 书籍页码引用——开头直接泄题,内容依赖纸质教材上下文。
症状:用 exp 蒸馏出的模型学会先说 “Ans. ©” 再编造引用页码;解释生成评估 BLEU/ROUGE 虚高(模型复读了解析模板)。
解决:蒸馏前过滤
len(exp) > 50且剥离 “Ans. (x)” 前缀与 “Ref: …” 引用尾巴;把 exp 作为"知识素材"让教师模型重写为自足推理链,而非直接蒸馏原文;评估解释质量时改用人工或 LLM-as-judge 而非字面重叠指标。参考:HF dataset viewer 抽样可见典型 exp 格式;Pal et al. 2022 §2(解析来源说明)。
⚠️ 坑点 6:cop 是 1-based 整数(1-4),不是 0-based、不是字母(分类:工程陷阱)
问题:cop=3 表示选项 C。按 0-based 索引会把所有标签平移一位;不同镜像(openlifescienceai / lighteval / 个人 fork)的字段名与 split 命名略有差异。
症状:微调后准确率恒在 25% 附近(随机水平)——典型的标签错位信号;或加载别的镜像后字段对不上。
解决:统一
label = cop - 1(0-based)或LETTERS[cop-1](字母);训练前先打印 5 条样本人工核对 question/选项/cop 三者对齐;锁定使用 openlifescienceai 主仓库。参考:HF dataset card 字段说明(“cop: Correct option, i.e., 1,2,3,4”)。
⚠️ 坑点 7:印度考试语境偏倚——不代表全球临床实践(分类:偏倚陷阱)
问题:题目基于印度 MBBS 教学大纲:印度药名品牌、印度国家指南(如 IMNCI 儿童疾病综合管理)、印度流行病学(如母乳蛋白含量题)频繁出现;部分考点(特定疫苗程序、地方病)在印度语境之外并不适用。
症状:在非印度人群/指南体系上部署的模型被"印度特色题"误导;与美国考试(MedQA)分数差异大。
解决:跨地域研究时用 MedQA(USMLE)做对照评估并分别报告;面向具体国家部署的产品应换用本国考试数据微调/评估;论文中声明 MedMCQA 的地域来源。
参考:“Evaluating LLMs in Medicine: A Call for Rigor, Transparency”(对 MedMCQA 来源与代表性的批评);WorldMedQA-V(NAACL 2025,多语言对照设计)。
⚠️ 坑点 8:选项位置不平衡——约 32% 的正确答案在 A(分类:评估误用)
问题:全库正确答案分布不均(A 约 32%,B/C/D 各约 22-24%)。模型可学到"选 A 不吃亏"的位置先验,虚增准确率;人类考生不受此影响,导致人机对比失真。
症状:全选 A 的退化基线即可拿到约 32%——接近某些弱模型的"成绩";微调后模型对 A 的预测比例进一步膨胀。
解决:评估时同时报告选项乱序后的准确率(乱序会抹平位置先验);分析错误时按 gold 位置分层;若用于训练,可对训练集做选项重排增广(见 §6.6)。
参考:“When Chain-of-Thought Backfires”(A 偏好 45.9% vs 真实 32.2%);§6.3 乱序代码。
版本提示:MedMCQA 自 2022-05-06 发布后无内容更新,无版本号演进。论文 §2.4 正文将 dev/test 数量写反(“6K dev / 4K test”),一切以 HF 实际行数(dev 4,183 / test 6,150)为准。各镜像间(openlifescienceai / lighteval / 个人 fork)行数与字段命名可能有出入,锁定主仓库并在论文中注明镜像与访问日期。
§6.6 数据增强
| ✅ 安全增强 | ❌ 危险增强(禁止) |
|---|---|
| 选项随机重排(同步重排 cop)——消除位置先验的首选增广 | 对题干做同义词替换——医学术语替换极易改变题意(“糖尿病”→"高血糖"会改变考点) |
| 用教师模型将 exp 重写为自足 CoT 解析 | 把 exp 原文(含 “Ans. ©” 前缀)拼进输入 |
| 按 subject_name 分层过采样小科目 | 跨题随机拼接题干与选项——制造语义垃圾 |
| 对选项文本做大小写/标点归一化 | 药名扰动用于训练(EMNLP 2024 已证明模型对药名极脆弱,扰动会学到伪鲁棒) |
| 与 MedQA/CMExam 混合训练做课程学习 | 把 dev/test 题目任何形式混入训练 |
§6.7 模型推荐
| 场景 | 推荐方案 | 预期 dev 准确率 | 备注 |
|---|---|---|---|
| 快速基线(API) | GPT-4 级通用模型 0/5-shot | 72-79% | 历史参照:GPT-4 5-shot 72.4%(2023,dev 口径) |
| 医疗专用微调(7B 级) | Llama-3/Mistral + MedMCQA train LoRA 微调 | 60-70% | BioMistral/Meditron 生态路线 |
| 复现论文基线 | PubMedBERT + PubMed 检索上下文 | 47%(test)/ 43%(dev) | 论文官方最强基线 |
| 教学演示 | BERT-base 四路拼接分类头 | 约 33-35% | 论文官方 BERT 基线,课堂可复现 |
| 前沿对比 | frontier 模型 + 选项乱序稳健性报告 | 80%+(原序) | 必须附乱序复测(§6.5 坑点 3) |
§6.8 计算资源需求
| 硬件 | 最小配置 | 推荐配置 |
|---|---|---|
| 磁盘 | 500 MB | 2 GB(含缓存与中间结果) |
| 内存 | 8 GB | 16 GB |
| GPU(评估 7B) | 1 × 16 GB 显存(FP16) | 1 × 24 GB(BF16 + vLLM 批推理) |
| GPU(微调 7B LoRA) | 1 × 24 GB 显存 | 1 × 40-80 GB(全参或大批次) |
| 评估时间 | dev 4,183 题 zero-shot:7B 模型约 20-40 分钟(vLLM) | API 模型受速率限制,约 1-3 小时 |
| 微调时间 | LoRA 全量 train(18.3 万题)约 4-10 小时(单卡 A100 级) | 教学子集(1 万题)约 20 分钟 |
§6.9 评估指标
import numpy as np
def mcqa_report(golds, preds, subjects=None, choice_types=None):
"""golds/preds: 0-based int 列表"""
golds, preds = np.array(golds), np.array(preds)
acc = (golds == preds).mean()
print(f"Overall Accuracy: {acc:.4f} (n={len(golds)})")
if subjects is not None: # 分科目准确率
subjects = np.array(subjects)
for s in sorted(set(subjects)):
m = subjects == s
print(f" {s:35s} {(golds[m]==preds[m]).mean():.4f} (n={m.sum()})")
if choice_types is not None: # single / multi 分口径
choice_types = np.array(choice_types)
for ct in ("single", "multi"):
m = choice_types == ct
if m.sum():
print(f" [{ct:6s}] {(golds[m]==preds[m]).mean():.4f} (n={m.sum()})")
社区共识口径:唯一主指标是 Accuracy(单字母作答判对)。报告时必须声明:(1) 评估集(dev 全集 4,183 题还是抽样);(2) 是否过滤 multi 题;(3) prompt 格式与 few-shot 数;(4) 是否做选项乱序复测。MultiMedQA 口径(Med-PaLM 系列)为 dev 集、5-shot、报告 95% CI(Clopper-Pearson)。
§6.10 MLOps 笔记
- 口径即版本:MedMCQA 无版本号,"版本"由镜像 + 访问日期 + 评估口径共同定义。论文中写明 “openlifescienceai/medmcqa, accessed YYYY-MM, dev split (4,183 items), 0-shot, single-type filtered”。
- 引用要求:使用数据集须引用 Pal et al. 2022(CHIL, PMLR 174:248-260)——BibTeX 见 §9。
- 答案解析的 regex 陷阱:约束模型输出单字母(logit 限制或 stop token),正则提取失败率可压到 2% 以下;不约束时 CoT 输出的解析失败率显著更高(研究显示 direct 1.4% vs CoT 2.1%)。
- 排行榜已停更:medmcqa.github.io 官方排行榜最后更新停留在 2022-12(Codex 60/63%),不要把它当作当前 SOTA 参照;当前水平以 Med-PaLM 2 / GPT-4 系论文与后续复测为准(§8.1)。
§7 质量评估与局限性
§7.1 已知偏倚
| 偏倚类型 | 描述 | 严重程度 | 缓解措施 |
|---|---|---|---|
| 地域/考试体系偏倚 | 全部题目来自印度 AIIMS/NEET PG 体系:印度药名品牌、印度指南(IMNCI)、印度流行病学 | 高 | 跨地域结论用 MedQA/CMExam 对照;部署前换本国数据 |
| 知识类型偏倚 | 平均 12.77 token 题干,测事实回忆而非临床推理;“考试高分 ≠ 临床能力” | 高(定位性偏倚) | 与病例型基准(MedQA、MedBullets)联合评估 |
| 选项位置偏倚 | 约 32% 正确答案在 A;模型学到位置先验 | 中高 | 选项乱序复测并报告 |
| 科目分布偏倚 | 内外妇儿等大科题目占主导,小科样本稀疏 | 中 | 分科目报告 + 小科样本量声明 |
| 答案类型偏倚 | 药物名/剂量/副作用类事实题占约 47%,机制推理题偏少 | 中 | 按论文答案类型分布做分层分析 |
| 年代偏倚 | 题目止于约 2021 年;医学知识(指南、药物)持续更新 | 中 | 不用于评估"最新指南知识";声明知识截止 |
| 标签噪声 | 答案键未独立复核;已确认错标、重复选项、幽灵图片题个案 | 中 | §6.3 清洗 + 错误分析人工复核 |
| 语言偏倚 | 纯英文;印度医学教育的特定表达习惯 | 低-中 | 多语言研究用 WorldMedQA-V 等对照 |
§7.2 标注质量评估
| 标注类型 | 可靠性 | 一致性 | 局限性 |
|---|---|---|---|
| 真题答案键(dev/test) | 高(考试机构官方) | 官方唯一口径 | 偶有考试争议题;test 不可见 |
| 模拟题答案键(train) | 中高(出版物质量) | 各出版商口径不一 | 未经独立复核;已确认错标个案 |
| choice_type 标记 | 中 | single/multi 边界模糊 | multi 题 gold 只存一字母(语义不完整) |
| exp 解析 | 参差 | 无统一格式 | 约 12%/47% 缺失;大量为书籍引用而非推理链 |
| subject/topic 标签 | 中高 | 21 科目体系稳定 | 存在 Unknown 兜底类;topic 粒度不均、test 为空 |
§7.3 泛化性讨论
| 场景 | 失效风险 | 证据 |
|---|---|---|
| 跨考试体系(印度 → 美国 USMLE) | 中高 | 题干长度与推理深度差异大;MedMCQA 训练的模型在 MedQA 上分数系统性更低 |
| 跨地域(印度 → 其他国家) | 高 | 药名品牌、指南、流行病学均为印度语境(§7.1) |
| 跨任务(考试 → 真实临床) | 高 | 12.77 token 题干无患者上下文;多项批评文献指出考试分数与临床能力脱钩 |
| 跨时间(2021 前知识 → 当代指南) | 中 | 数据集冻结于 2021 年前后,新指南/新药不覆盖 |
| 跨模型代际(污染时代) | 高 | 预训练污染使新模型分数不可与 2022-2023 年文献直接比较(§6.5 坑点 3) |
| 跨科目(大科 → 小科) | 中 | 小科样本稀疏,分科目分数置信区间宽 |
§7.4 伦理考量
- 数据为出版物考试题,不含患者信息,无隐私风险(论文声明无需 IRB)。
- 题目原文的版权归属原考试机构与出版商——Apache-2.0 覆盖汇编层面,大规模商用再分发题目原文前应咨询法务。
- 不要用 MedMCQA 分数作为医疗产品临床安全性的证据——它测的是考试知识,监管申报需要临床级验证。
- 数据包含的医学知识以印度教学大纲为准,直接用于患者教育或自助诊断产品可能传播不适用地域的知识。
- 作为训练数据使用时,错标题目(§6.5 坑点 4)会把错误医学知识写进模型——训练前清洗是伦理义务而非可选项。
§7.5 公平性评估
# 分科目准确率差异分析(考试数据的"公平性"等价物)
import pandas as pd
df = ds["validation"].to_pandas()
df["correct"] = (preds == df["cop"] - 1)
report = (df.groupby("subject_name")["correct"]
.agg(["mean", "count"]).sort_values("mean"))
print(report) # 小样本科目(count < 50)的 mean 不可作为结论
已知差异:论文官方基线的分科目准确率差异极大(PubMedBERT 口径:Psychiatry 0.67 vs Pediatrics 0.39 vs Radiology 0.42,test 集)——这是题目难度与训练语料覆盖差异,不应解读为模型对"科目人群"的公平性问题。考试数据无人口学维度,传统公平性框架(性别/种族分层)不适用;其对应的伦理维度是地域与语言代表性(§7.1)。
§7.6 数据漂移提示
- 医学知识本身在漂移:MedMCQA 冻结于 2021 年前后,此后更新的指南(如高血压阈值、肿瘤免疫治疗适应证)不在其中。
- 评测环境在漂移:2023 年后发布的模型普遍疑似接触过 MedMCQA——“同一分数,不同含义”。跨年代论文比较分数时,污染程度是混杂变量。
- 监控信号:新模型在 dev 原序与乱序上的差值(记忆指标)、在 2024 年后新基准(MedBullets 等)上的相对位置变化。
§7.7 DAIMS 24 项数据就绪度评估
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 数据为宽格式(每行一个样本) | ✅ | 每行一题,10 字段扁平结构 |
| 2 | 有唯一标识符列 | ✅ | id 字段为 36 字符 UUID |
| 3 | 无 Unicode 或特殊字符问题 | ⚠️ | 主体为 ASCII;存在 OCR 错字与少量抓取残留 |
| 4 | 无重复行 | ⚠️ | 题级已做 >0.9 Levenshtein 去重;审计仍发现 12+ 道选项字节级重复与近似重复题 |
| 5 | 缺失值已识别并编码 | ✅ | test cop=-1 为刻意编码;exp null 语义明确(§4.5) |
| 6 | 标签列被明确标识 | ✅ | cop(1-based 1-4)字段文档清晰 |
| 7 | 罕见类别已分组 | ⚠️ | 2.4k topic 长尾未处理;小科目未合并;存在 Unknown 兜底类 |
| 8 | 偏倚评估已完成 | ✅ | §7.1 列出 8 类偏倚与缓解措施 |
| 9 | 有完整的数据字典 | ✅ | HF dataset card 10 字段说明 + 论文 §2-§4 |
| 10 | 信息性缺失有明确编码解释 | ✅ | §4.5:test 标签保留、exp 缺失机制均已说明 |
| 11 | 数据采集设备和设置已记录 | ⚠️ | 来源考试与清洗流程已记录;具体抓取站点清单未公开 |
| 12 | 已移除完全共线性变量 | ⚠️ | 未执行;subject/topic 层级冗余保留原始形态 |
| 13 | 对编码的映射标准已说明 | ❌ | 无 ICD/SNOMED 等标准术语映射(本百科 §2.1/§2.2 补位) |
| 14 | 对时间戳的处理已明确说明 | ⚠️ | 按考试年份来源划分(1991-/2001-)已说明,但无逐题年份字段 |
| 15 | 训练/验证/测试划分建议已给出 | ✅ | 官方 exam-based 三划分 + Levenshtein 去重,设计教科书级 |
| 16 | 数据泄漏风险已被讨论 | ✅ | 官方去重防泄漏;§5.3 讨论预训练污染等 4 类泄漏模式 |
| 17 | 标签分布已被分析 | ✅ | §4.2(位置分布、choice_type、科目、答案类型) |
| 18 | 选择性测量偏倚已被讨论 | ✅ | §7.1 考试样本不代表临床人群 |
| 19 | 外部验证建议已给出 | ✅ | §5.5 / §7.8(MedQA、PubMedQA、MMLU、CMExam 路径) |
| 20 | 数据更新和版本信息已记录 | ⚠️ | 2022 年单次发布,无版本号与 changelog |
| 21 | 最小必要预处理脚本已提供 | ⚠️ | 无官方预处理脚本;依赖 lm-eval-harness/lighteval 社区实现 |
| 22 | 合规使用要求已明确 | ✅ | Apache-2.0 + 论文引用要求明确 |
| 23 | 多模态对齐方法已说明 | ⚠️ | 纯文本设计(图片题已剔除),但仍有残留幽灵图片题 |
| 24 | 去标识化方法已被记录 | ✅ | 不含患者数据,无需去标识;IRB 豁免声明明确 |
DAIMS 评分:18.5 / 24
评分解读:良好——划分设计与开放度顶尖,标签质量与来源透明度存在结构性缺口。
对你意味着什么:MedMCQA 的 14 个 ✅ 集中在其作为评测基准的核心工程——exam-based 划分、防泄漏去重、明确的标签编码与开放许可,这在 2022 年的医学 QA 数据集中是标杆水平。扣分项几乎全部指向同一件事:它是一份"收集来的"数据集——答案键未独立复核(错误分析时对多模型一致答错的题人工复核)、无标准术语映射(用本百科 §2.1/§2.2)、无逐题年份、无官方预处理脚本(用 lm-eval-harness)、无版本演进。训练前的三个标准动作:(1) 执行 §6.3 清洗(去空题、去重复选项、剥离 exp 泄题前缀);(2) 决定 multi 题口径并写进方法学;(3) 评估报告附上选项乱序复测结果以控制污染与位置偏倚。
§7.8 外部验证矩阵
| 外部数据集/场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部测试集变化 | 关键发现 |
|---|---|---|---|---|---|
| MedQA(USMLE 英文) | 美国执业医师考试体系 | 四选一医学考试 QA | 同级模型 MedQA 分数系统性高于/低于 MedMCQA(因模型而异) | 跨基准不可直接比较 | Med-PaLM 2:MedQA 86.5% vs MedMCQA 72.3%——题干更长的美国病例题反而得分更高,印证"MedMCQA 不是纯难度问题,而是知识覆盖与风格问题" |
| PubMedQA | NLM/耶鲁 | 文献摘要三分类 | Med-PaLM 2 81.8% | N/A | MultiMedQA 套件内对照:文献推理与考试知识是两种能力 |
| 选项乱序复测(库内稳健性) | MedMCQA dev | 同题乱序 | 答案翻转率 59.1% | 分数显著下降 | 位置/记忆偏倚的量级远超预期,稳健性应作为标准报告项 |
| 药名扰动(库内对抗) | MedMCQA | 替换题中药名 | 性能显著下降 | N/A | EMNLP 2024:模型对药名 token 极度敏感,暴露记忆式答题 |
| CMExam / CMB(中文考试) | 中国医学考试体系 | 中文医学 MCQA | 不可直接比较 | N/A | 跨语言对照揭示考试文化差异;中文医疗模型通常双轨评估 |
MedMCQA 在 2026 年还值得用吗? 值得——但要换用法。作为微调训练集(18.3 万题 + 解析)它仍是性价比最高的医疗知识语料之一;作为评估基准,它的分数在污染时代需要配上乱序复测与新基准交叉验证才有信息量;作为临床能力证据,它从来就不该单独承担这个角色。把它当作医疗 AI 的"高考题库"而非"行医执照考试",是用好它的前提。
§8 基准性能与生态
§8.1 排行榜
MedMCQA 的排行榜有两个时代:2022 年的官方编码器基线时代(同一 test/dev 口径,数值可直接比较)与 2023 年后的 LLM 时代(各家口径不一,数值需谨慎比较)。官方排行榜(medmcqa.github.io)停更于 2022-12,以下 LLM 数字来自各论文原始报告。
A. 官方基线(w/o Context,论文 Table 4 口径,可直接比较):
| 排名 | 模型 | Test Acc | Dev Acc | 年份 | 关键技术 | 完整引用 | 代码 |
|---|---|---|---|---|---|---|---|
| 1 | Codex 5-shot CoT | 0.60 | 0.63 | 2022 | 代码模型 + 思维链提示 | Liévin V, Hother CE, Winther O. “Can large language models reason about medical questions?” arXiv:2207.08143 (2022) | 官方排行榜 |
| 2 | PubMedBERT + PubMed Context | 0.47 | 0.43 | 2022 | 检索增强 + 领域预训练编码器 | Pal A, Umapathi LK, Sankarasubbu M. “MedMCQA.” CHIL 2022, PMLR 174:248-260 | https://github.com/MedMCQA/MedMCQA |
| 3 | PubMedBERT (w/o context) | 0.41 | 0.40 | 2022 | 领域预训练编码器 | 同上 | 同上 |
| 4 | SciBERT | 0.39 | 0.39 | 2022 | 科学文献预训练 | 同上 | 同上 |
| 5 | BioBERT | 0.37 | 0.38 | 2022 | 生物医学预训练 | 同上 | 同上 |
| 6 | BERT-base | 0.33 | 0.35 | 2022 | 通用预训练 | 同上 | 同上 |
B. LLM 时代代表结果(口径各异,⚠️ 不可直接横向比较):
| 模型 | MedMCQA Acc | 年份 | 评估口径 | 完整引用 |
|---|---|---|---|---|
| Claude-3 | 82.3% | 2024 | 论文自测(口径未标准化) | Nambiar et al. “A collaborative large language model for drug analysis.” Nature Biomedical Engineering (2025). DOI: 10.1038/s41551-025-01471-z |
| GPT-4(2024 复测) | 79.0% | 2024 | 同上 | 同上 |
| LLaMA-3 70B | 76.0% | 2024 | 同上 | 同上 |
| GPT-4-base (5-shot) | 73.7% | 2023 | dev 集,MultiMedQA 口径 | Singhal K et al. “Toward expert-level medical question answering with large language models.” Nature Medicine (2025). arXiv:2305.09617 |
| GPT-4 (5-shot) | 72.4% | 2023 | 同上 | 同上 |
| Med-PaLM 2 (ER/best) | 72.3% | 2023 | 同上 | 同上 |
| MedGemma 27B | 70.1% | 2025 | 4,000 题抽样 | MAPC paper, ICSIE 2026. DOI: 10.1145/3789595.3789618 |
| Gemini Pro | 62.2% | 2024 | 4,000 题抽样 | 同上 |
| Flan-PaLM 540B | 57.6% | 2022 | dev 集,MultiMedQA 口径 | Singhal K et al. “Large language models encode clinical knowledge.” Nature 620:172-180 (2023) |
不可比原因清单:dev 全集 vs 4,000 题抽样;是否过滤 multi 题;0-shot vs 5-shot vs CoT;污染程度随模型年代递增。引用任何数字时请回到原始论文核对口径。
人类参照:merit 线(录取线)考生正确率约 90%(Pal et al. 2022)——这是"专家水平"的锚点,截至 2026 年前沿模型仍未在干净口径下稳定达到。
§8.2 SOTA 总结与选型建议
| 如果你… | 推荐方案 | 为什么 |
|---|---|---|
| 复现 2022-2023 年论文 | lm-eval-harness medmcqa + 声明 few-shot 与 split |
与 MultiMedQA 口径最接近的现成实现 |
| 训练小参数医疗模型 | train split(§6.3 清洗后)+ LoRA | 18.3 万题性价比最高的医疗知识语料 |
| 证明模型"真会做题" | dev 原序分 + 乱序分 + MedBullets 交叉 | 污染时代的最小可信证据组合 |
| 做分科目医学能力分析 | dev 按 subject_name 分层报告(n≥50 科目) | 论文 Table 3 的标准做法 |
| 快速验证 API 模型医学知识 | dev 抽样 500-1,000 题 + 95% CI | 成本与统计效力的平衡点 |
§8.3 官方评测协议
官方协议(Pal et al. 2022 + 排行榜):以 Accuracy 为唯一指标;分 w/o Context 与 with Context(Wikipedia/PubMed 检索增强)两轨;test 集通过官方提交通道评分,dev 集本地可评。社区事实协议(MultiMedQA 口径):dev 集 4,183 题、5-shot、报 95% CI。2024 年后的严谨实践附加:选项乱序复测 + 污染声明。
§8.4 相关数据集
| 数据集 | 关系 | 说明 |
|---|---|---|
| MedQA(USMLE) | 同类/对照 | 美国执业医师考试;题干长、病例型;MultiMedQA 姊妹基准 |
| PubMedQA | 同类/互补 | 文献摘要推理;同属 MultiMedQA |
| MMLU 医学子集 | 同类 | 6 个医学子集约 1,600 题;通用框架内对照 |
| MedBullets | 后继/互补 | 高难度专家题,抗污染设计(2024 后) |
| CMExam / CMB | 跨语言对照 | 中国医学考试数据集 |
| WorldMedQA-V | 跨语言/多模态扩展 | 多语言医学考试 + 影像(NAACL 2025) |
| Head-QA | 同类 | 西班牙医学考试(6,765 题) |
§8.5 关键论文 Top 10
- Pal A, Umapathi LK, Sankarasubbu M (2022), CHIL, PMLR 174:248-260. “MedMCQA: A Large-scale Multi-Subject Multi-Choice Dataset for Medical domain Question Answering.” — 数据集本体,权威引用入口。arXiv:2203.14371
- Singhal K et al. (2023), Nature 620:172-180. “Large language models encode clinical knowledge.” — Med-PaLM 与 MultiMedQA 套件,确立 MedMCQA 的旗舰评测地位。
- Singhal K et al. (2025), Nature Medicine. “Toward expert-level medical question answering with large language models.” — Med-PaLM 2;MedMCQA dev 72.3% 与 GPT-4 对照表的出处。arXiv:2305.09617
- Liévin V, Hother CE, Winther O (2022). “Can large language models reason about medical questions?” — Codex 5-shot CoT 60/63%,官方排行榜最后一条记录。arXiv:2207.08143
- Nori H et al. (2023). “Capabilities of GPT-4 on medical challenge problems.” — GPT-4 医学能力评估,MedMCQA 为核心基准之一。arXiv:2303.13375
- Labrak Y et al. (2024). “BioMistral: A collection of open-source pretrained large language models for medical domains.” — 开源医疗 LLM 代表,MedMCQA 标准训练/评测流程。arXiv:2402.10373
- Chen Z et al. (2023). “Meditron-70B: Scaling medical pretraining for large language models.” — Meditron 生态,MedMCQA 训练用法代表。arXiv:2311.16079
- “Language Models are Surprisingly Fragile to Drug Names in Biomedical Benchmarks” (2024), EMNLP Findings. — 药名扰动揭示 MedMCQA 上的记忆式答题。arXiv:2406.12066
- Northcutt CG et al. (2021), NeurIPS Datasets & Benchmarks. “Pervasive label errors in test sets destabilize machine learning benchmarks.” — 标签错误率审计的方法论参照系(10 基准平均 3.3%)。
- Clark P et al. (2018), AAAI. “Think you have solved question answering? Try ARC, the AI2 Reasoning Challenge.” — MedMCQA 推理能力分类体系(12 类)的来源框架。
§8.6 社区活跃度
| 维度 | 数据 |
|---|---|
| 论文引用 | 1,000+(Google Scholar,截至 2026-08,作者公开确认"top 0.03%"里程碑) |
| HuggingFace 下载 | 约 2.8 万–4.4 万次/月(openlifescienceai/medmcqa,截至 2026-09 各镜像快照);222 likes |
| HF 衍生模型 | 85+ 个模型标注在该数据集上训练/微调(截至 2026-09) |
| 评测框架收录 | lm-evaluation-harness(medmcqa 任务)、lighteval(官方镜像)、MultiMedQA Collection |
| 官方排行榜 | medmcqa.github.io(2022-12 停更,历史参照) |
| GitHub | MedMCQA/MedMCQA(数据 + 提交指引) |
| 教学采用 | 医疗 NLP 课程与 LLM 评测教程的标准示例数据集 |
§8.7 生态快照
| 资源 | 类型 | 链接 | 活跃度(截至 2026-09) | 为什么值得关注 |
|---|---|---|---|---|
| openlifescienceai/medmcqa | 数据仓库 | https://huggingface.co/datasets/openlifescienceai/medmcqa | 月下载数万级 | 官方 HF 主仓库,事实标准加载入口 |
| MedMCQA/MedMCQA | 官方代码 | https://github.com/MedMCQA/MedMCQA | 稳定(不活跃维护) | 官方 JSON 数据 + test 提交指引 |
| medmcqa.github.io | 官方主页 | https://medmcqa.github.io/ | 冻结于 2022-12 | 排行榜历史基线与论文入口 |
| EleutherAI lm-evaluation-harness | 评测框架 | https://github.com/EleutherAI/lm-evaluation-harness | 活跃 | medmcqa 任务,复现论文数字的最短路径 |
| lighteval/med_mcqa | 评测镜像 | https://huggingface.co/datasets/lighteval/med_mcqa | 活跃 | HuggingFace 官方评测栈配套 |
| MultiMedQA Collection | 基准套件 | HF Collection(MultiMedQA) | 稳定 | MedMCQA + MedQA + PubMedQA 等标准组合 |
| BioMistral / Meditron 模型族 | 预训练模型 | HuggingFace | 活跃 | MedMCQA 训练用法的参考实现 |
| UNHSAILLab MedMCQA-Robustness-Study | 研究代码 | GitHub | 2026 活跃 | 选项乱序/提示敏感性复现代码 |
§9 相关资源与引用
官方资源
- 数据集主页:https://medmcqa.github.io/
- HuggingFace 主仓库:https://huggingface.co/datasets/openlifescienceai/medmcqa
- GitHub 仓库:https://github.com/MedMCQA/MedMCQA
- lighteval 镜像:https://huggingface.co/datasets/lighteval/med_mcqa
- 论文(PMLR):https://proceedings.mlr.press/v174/pal22a.html
- arXiv:https://arxiv.org/abs/2203.14371
- 许可证:Apache-2.0(HuggingFace 仓库标注)
BibTeX 引用
% 数据集论文(必须引用)
@InProceedings{pmlr-v174-pal22a,
title = {MedMCQA: A Large-scale Multi-Subject Multi-Choice Dataset for Medical domain Question Answering},
author = {Pal, Ankit and Umapathi, Logesh Kumar and Sankarasubbu, Malaikannan},
booktitle = {Proceedings of the Conference on Health, Inference, and Learning},
pages = {248--260},
year = {2022},
editor = {Flores, Gerardo and Chen, George H and Pollard, Tom and Ho, Joyce C and Naumann, Tristan},
volume = {174},
series = {Proceedings of Machine Learning Research},
month = {07--08 Apr},
publisher = {PMLR},
pdf = {https://proceedings.mlr.press/v174/pal22a/pal22a.pdf},
url = {https://proceedings.mlr.press/v174/pal22a.html}
}
% arXiv 版本
@misc{pal2022medmcqa,
title = {MedMCQA: A Large-scale Multi-Subject Multi-Choice Dataset for Medical domain Question Answering},
author = {Pal, Ankit and Umapathi, Logesh Kumar and Sankarasubbu, Malaikannan},
year = {2022},
eprint = {2203.14371},
archivePrefix = {arXiv},
primaryClass = {cs.CL},
doi = {10.48550/arXiv.2203.14371}
}
% 如使用 MultiMedQA 评测口径
@article{singhal2023large,
title = {Large language models encode clinical knowledge},
author = {Singhal, Karan and Azizi, Shekoofeh and Tu, Tao and others},
journal = {Nature},
volume = {620},
pages = {172--180},
year = {2023}
}
教程与学习资源
- lm-eval 官方文档(medmcqa 任务示例):https://github.com/EleutherAI/lm-evaluation-harness
- HF dataset viewer(在线浏览题目,无需下载):https://huggingface.co/datasets/openlifescienceai/medmcqa/viewer
- Med-PaLM 2 论文附录(MultiMedQA 评测协议细节):arXiv:2305.09617
- 论文 ar5iv 全文(含 21 科目分科目基线表):https://ar5iv.arxiv.org/html/2203.14371
原始论文
- Pal A, Umapathi LK, Sankarasubbu M (2022). “MedMCQA: A Large-scale Multi-Subject Multi-Choice Dataset for Medical domain Question Answering.” Proceedings of the Conference on Health, Inference, and Learning (CHIL), PMLR 174:248-260. arXiv:2203.14371. DOI: 10.48550/arXiv.2203.14371.
- Singhal K et al. (2023). “Large language models encode clinical knowledge.” Nature 620:172-180.
- Singhal K et al. (2025). “Toward expert-level medical question answering with large language models.” Nature Medicine. arXiv:2305.09617.
- Liévin V, Hother CE, Winther O (2022). “Can large language models reason about medical questions?” arXiv:2207.08143.
§10 AI 使用声明卡
§10.1 AI 模型使用
| AI 模型 | 版本 | 用途 |
|---|---|---|
| deep-model(WorkBuddy) | 2026-09 | 初稿生成:INFOBOX 数据汇编、§1-§9 结构化写作、§6 代码示例生成、JSON-LD 构建 |
| WebSearch/WebFetch(多源检索) | 2026-09-05 | 6 组检索与抓取:官方主页、论文 ar5iv 全文、HF 仓库与镜像下载量、LLM 基准论文、审计文献、引用数交叉验证 |
§10.2 AI 参与范围
AI 参与范围:初稿生成 + 资料整理 + 代码生成 + 格式化排版。
AI 在本页面的工作中负责:(1) 从 medmcqa.github.io 官方主页、Pal et al. 2022 论文全文(ar5iv)、HuggingFace 仓库与多个镜像中整理结构化信息;(2) 生成 §6 的 Python 代码示例(加载、清洗、乱序评估、指标报告);(3) 系统化组织 §6.5 的 8 个坑点与 §7.1 偏倚表;(4) 执行 G1/G2/G3 排版规范检查与中英文格式标准化;(5) 构建 §C 统一 JSON-LD @graph。
§10.3 输入来源
- Pal A, Umapathi LK, Sankarasubbu M (2022), CHIL, PMLR 174:248-260 — MedMCQA 原始论文(arXiv:2203.14371,ar5iv 全文抓取)
- medmcqa.github.io 官方主页(排行榜、引用格式、任务定义)
- HuggingFace openlifescienceai/medmcqa 仓库(dataset card、字段说明、下载量、viewer 抽样)
- HuggingFace lighteval/med_mcqa 镜像(行数与格式复核)
- HuggingFace awinml/medmcqa 镜像(test 无标签的社区惯例说明、exp 覆盖率)
- Singhal K et al. (2025), Nature Medicine — Med-PaLM 2 vs GPT-4 对照表(MedMCQA 72.3/72.4/73.7%)
- Singhal K et al. (2023), Nature 620:172-180 — MultiMedQA 与 Flan-PaLM 57.6%
- Nambiar et al. (2025), Nature Biomedical Engineering, DOI: 10.1038/s41551-025-01471-z — LLaMA-3/GPT-4/Claude-3 复测数字
- MAPC paper, ICSIE 2026, DOI: 10.1145/3789595.3789618 — MedGemma/Gemini Pro 抽样口径数字
- MISP-Bench(medRxiv 2026.05.07.26352627)— dev 集六类审计(multi 732 题、重复选项、幽灵图片题、标签错误)
- “When Chain-of-Thought Backfires”(tomesphere/UNHSAILLab)— 选项乱序 59.1% 翻转率、A 偏好 45.9% vs 32.2%
- “Evaluating LLMs in Medicine: A Call for Rigor, Transparency”(chatpaper 摘要)— 对 MedMCQA 来源与质控的批评
- Liévin V et al. (2022), arXiv:2207.08143 — Codex 5-shot CoT 排行榜记录
- 作者 LinkedIn 公告(Malaikannan Sankarasubbu,2026-08)— 引用破 1,000 确认
- EMNLP 2024 Findings(arXiv:2406.12066)— 药名扰动脆弱性研究
§10.4 人工校验表
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| §2 医学背景(ICD-11/SNOMED CT 映射、考试生态、金标准) | 千方病案医学编辑部 | 交叉审核 | ✅ 已通过 |
| §3 数据集规格(三划分行数、字段清单) | 千方病案医学编辑部 | 与 HF 仓库及论文 Table 2 交叉比对 | ✅ 已验证 |
| §4 数据结构(DAIMS 字段字典、缺失编码) | 千方病案医学编辑部 | 与 HF dataset card 及 viewer 抽样交叉比对 | ✅ 已验证 |
| §5 数据划分策略 | 千方病案医学编辑部 | 交叉审核 | ✅ 已通过 |
| §6 代码示例与坑点 | 千方病案医学编辑部 | 逻辑审查 + 与审计文献比对 | ✅ 已通过 |
| §7 质量评估与 DAIMS 评分 | 千方病案医学编辑部 | 交叉审核 | ✅ 已通过 |
| §8 排行榜与引用数表述 | 千方病案医学编辑部 | 与原始论文及公开公告交叉比对 | ✅ 已验证 |
| §C JSON-LD @graph | 千方病案医学编辑部 | Schema v3.9 字段逐项校验 | ✅ 已通过 |
§10.5 AI 生成章节标注
以下章节由 AI 生成初稿并经人工审核:§1.0 30 秒速览、§3.0 版本抉择矩阵、§6.0-§6.4 代码示例、§6.5 八个坑点、§6.9 评估指标代码、§7.5 公平性评估代码、§7.7 DAIMS 评估表与评分、§8.7 生态快照、§C JSON-LD。
§10.6 最后审核
最后一次人工审核日期:2026-09-05
页面状态:published(全部内容已完成审核并发布)
