MedCalc-Bench (medcalc-bench) — AI-Ready Wikipedia

首个评估大语言模型医学计算能力的评测基准——55 个临床计算器、1,047 例人工复核测试题,GPT-4 one-shot CoT 仅 50.9%,NeurIPS 2024 Datasets & Benchmarks Oral,NLM/NIH 主导,CC BY-SA 4.0 于 HuggingFace 公开

来源 HuggingFace ncbi/MedCalc-Bench(v1.2,train.csv/test.csv)+ github.com/ncbi/MedCalc-Bench 评测与复现代码;note 底层 Open-Patients(PMC-Patients/MedQA-USMLE/TREC CT/TREC CDS 四源)与合成模板发布时间: 2026-09-28最后更新: 2026-09-28 阅读 16
MedCalc-Bench (medcalc-bench) — AI-Ready Wikipedia

信息速览

数据集名称MedCalc-Bench (medcalc-bench) — AI-Ready Wikipedia
数据类型人工标注,文本数据,合成数据
规模test 1,047 例(全部人工复核,覆盖 55 计算器)+ train 10,053 例(论文口径,覆盖 40 计算器);note 候选语料库 Open-Patients 180,142 条
接入方式HuggingFace ncbi/MedCalc-Bench(v1.2,train.csv/test.csv)+ github.com/ncbi/MedCalc-Bench 评测与复现代码;note 底层 Open-Patients(PMC-Patients/MedQA-USMLE/TREC CT/TREC CDS 四源)与合成模板
AI 就绪度

INFOBOX — MedCalc-Bench 一屏速览

维度 内容
本质 首个评估 LLM 医学计算能力的大规模评测基准:给一段临床 note 和一个明确问题,模型须找对公式、抽对参数、算对结果
团队 美国国立医学图书馆(NLM/NIH)主导 + 8 家合作机构,17 位作者;Qiao Jin 主导,Zhiyong Lu / Qingyu Chen 资深指导
论文 arXiv 2406.12036(v1 2024-06-17,v4 2024-06-30);NeurIPS 2024 Datasets & Benchmarks 赛道 Oral;PMID 41031072
计算器 55 个,七大子类:Lab 19 / Physical 12 / Date 3 / Dosage 2(equation-based 36)+ Risk 12 / Severity 4 / Diagnosis 3(rule-based 19)
规模 train 10,053 例(40 计算器,GPT-4 抽取未人工复核)+ test 1,047 例(55 计算器全覆盖,全部人工复核)
note 来源 Open-Patients 180,142 条(PMC-Patients 167,034 + MedQA-USMLE 12,893 + TREC CT 125 + TREC CDS 90)+ Python 模板合成 + clinician 手写合成
任务形态 note + question → 数值(带单位)/ 分级字符串 / 日期;9 类属性(lab value、physical value、age、date、boolean、choice、string、dosage、percentage)
评分规则 rule-based 与 date 精确匹配;lab/physical/dosage 数值 ±5% 相对容差;脚本自动评分
评测矩阵 8 LLM(GPT-4、GPT-3.5、Llama 3 8B/70B、Mistral-7B、Mixtral-8x7B、PMC-LLaMA-13B、MediTron-70B)× 3 策略(zero-shot direct / zero-shot CoT / one-shot CoT)
主结果 GPT-4 one-shot CoT 50.9% 最佳,无一模型过半;PMC-LLaMA-13B 仅约 5-10%
错误分析 四类型 A 知识 / B 抽取 / C 计算 / D 其他;zero-shot CoT 下知识错误占比 >50%(PMC-LLaMA 0.96 vs GPT-4 0.35)
微调 40 计算器训练集微调后 Mistral-7B 10.79%→49.19%,Llama-2-7B 1.53%→45.75%;对未覆盖的 15 个计算器泛化仍差
Code-augmented 附录 D:模型生成 Python 代码 + 用户执行 + 编译错误最多重试 20 次,计算错误下降、知识错误不变
许可 CC BY-SA 4.0(v1.2 现行;v1.0 曾标 CC BY 4.0 后回撤——PMC-Patients 的 SA 条款传染)
获取 HuggingFace ncbi/MedCalc-Bench 公开非 gated + GitHub 评测代码
审计 arXiv 2603.02222《MedCalc-Bench Doesn’t Measure What You Think》:提示泄漏致"背题",重定位为 tool-use 基准,RL 后最高 73.95%
库内互链 medqa(rid 50)、medmcqa(rid 111)、open-pmc(rid 45)、mimic-iv-note(rid 47)、pubmedqa(rid 49)、cmb-cmexam(rid 180)

MedCalc-Bench 是一个把"大模型会背医学知识"和"大模型会做医学计算"拆开考的基准:它不考选择题,而是给模型一段临床笔记(“患者 45 岁女性,血肌酐 1.2 mg/dL……”)加一个明确问题(“计算她的 Cockcroft-Gault 肌酐清除率”),要求模型自己找到公式、从笔记里抽出血肌酐、年龄、体重等参数、代入算式给出带单位的数值,或者对 rule-based 评分表(如 SOFA、NIHSS)逐项打分给出分级。NeurIPS 2024 Datasets & Benchmarks Oral 论文给出的答案很冷静:最强的 GPT-4 在 one-shot CoT 下也只有 50.9%,而且近半错误不是算错,而是根本不知道或记错公式。这个基准由此成为"医学 LLM 距离临床落地还差多少"这一问题的最硬标尺之一,也是 2024-2026 年医学 tool-use 与计算评测这条线的源头数据集。

导语读法三则:

  1. 只想下数据:直奔 §7——HuggingFace ncbi/MedCalc-Bench 公开非 gated,注意 v1.0/v1.2 两个 repo 与 license 差异(坑 2)。
  2. 关心评测结果:直奔 §5——8 模型 × 3 策略主表、错误四类型、微调与 code-augmented 三段连读。
  3. 想用 MedCalc-Bench 训练/评测自己的模型:先读坑 5(train 未人工复核)与坑 6(±5% 容差),再读 §6 审计论文对"背题"风险的论证。

一句话把三条读法连起来:MedCalc-Bench 的价值不在"分数是多少",而在"分数可以拆开看"——拆成子类(§5.5)、拆成错误类型(§5.2)、拆成记忆与泛化(§5.3)、拆成口径与版本(§6.2)。这个"可拆性"是它区别于同期多数医学基准的核心特征,也是本条目用长篇幅保留全部数字链的原因。

§0 导读:这个数据集解决什么问题

到 2024 年年中,医学 LLM 评测几乎被选择题垄断:MedQA、MedMCQA、PubMedQA、MMLU 医学子集都在考"四个选项里选一个"。这类评测能测知识记忆与推理,但对临床最日常的一类任务——计算——完全失明。开一份丙肝患者的 MELD 评分、按肌酐算一个化疗剂量、从末次月经推预产期、给创伤患者算 TIPI 分诊优先级——这些工作每天在病房发生成千上万次,一个在 MedQA 上拿到 90 分的模型完全可能连 Cockcroft-Gault 公式都背不出来,或者背出来也抽错参数、算错数。更麻烦的是,当时没有任何公开资源能自动、可复现地评测这件事。

MedCalc-Bench 的回答分三层。第一层是任务定义:把"医学计算"形式化为 note + question → answer 的三连任务(识别计算器 → 抽取属性 → 执行计算),覆盖 55 个真实临床计算器,从实验室指标(如 MELD、CKD-EPI)、体格测量(如 BSA、理想体重)、日期推算(如预产期 EDD)、药物剂量,到 rule-based 评分表(如 SOFA、GCS、Wells、CHA2DS2-VASc)。第二层是数据工程:从 18 万条 Open-Patients 候选笔记中用 GPT-3.5 筛选、GPT-4 抽取、医学专业人员逐例校验,构造 train 10,053 例与 test 1,047 例;test 全部人工复核,覆盖全部 55 个计算器,其中 15 个计算器在 train 中刻意缺席以测试 zero-shot 泛化。第三层是诊断框架:不只给一个总分,而是把失败拆成知识错误、抽取错误、计算错误、其他错误四类型——结果发现 zero-shot CoT 下超过一半的错误是"不知道公式",而"算错数"(Type C)反而是最小类。这三层让 MedCalc-Bench 同时回答了三个问题:模型会不会算、为什么算不对、微调能不能补。

§0 读法三则:

  1. 这个条目是"评测基准 + 错误诊断框架 + 争议对象"三合一:本体是 1,047 道人工复核的测试题,副产品是一套可迁移的错误四类型分析法,后续又被审计论文重新定位为 tool-use 基准——三种身份对应 §5、§5.2 与 §6 三种读法。
  2. 全文硬数字均出自 arXiv 2406.12036 v4 正文与附录;数据规模与 note 来源计数存在多口径冲突,全部在 §10 避坑清单与 FACTS 存照登记,正文以论文口径为主。
  3. 检索时不要把 “MedCalc-Bench” 与库内 medqa(rid 50)/medmcqa(rid 111)混为一谈——它们是选择题问答基准,本条目是计算执行基准,任务正交(§9 有逐条对照)。

还需要预告一个贯穿全文的方法学立场:MedCalc-Bench 的每一个设计选择都同时是一个取舍。test 全人工复核换来可信评测但放弃规模;train 依赖 GPT-4 抽取换来 10,053 例的低成本但引入噪声;±5% 容差换来跨网站的舍入兼容但放宽精度要求;问题点名计算器换来可评测性但埋下提示泄漏。把这些取舍读成"缺陷清单"是片面的——它们是论文明确讨论过的工程权衡;但把取舍当"无代价"来引用也是危险的——§6 的审计批评几乎全部来自对这些代价的重新定价。本条目的写法是:正文按论文口径陈述设计,每个取舍的代价在对应小节与坑点中显式标价。

§1 数据集速览:十问十答

Q1:MedCalc-Bench 到底评测什么能力?
三连能力:给定临床 note 与问题后,(a)识别该用哪个计算器/公式(rule-based 评分表还要回忆打分规则),(b)从 note 中抽取所需属性(血肌酐、体重、日期、是否用过肝素等 9 类属性),(c)正确执行计算给出带单位的数值、分级字符串或日期。三者任一失败即该题失败,且按最早发生的错误归类诊断。

Q2:"55 个计算器"是怎么选的?
来自 MDCalc 网站(最大临床计算器聚合站)按 popular 程度筛选的清单,再按七大子类归类:Lab(实验室指标)19 个、Physical(体格测量)12 个、Date(日期推算)3 个、Dosage(剂量)2 个,构成 equation-based 36 个;Risk(风险分层)12 个、Severity(严重度)4 个、Diagnosis(诊断/分诊)3 个,构成 rule-based 19 个。

Q3:train 和 test 各多大?
论文口径:train 10,053 例覆盖 40 个计算器(入选标准为该计算器有超过 20 条真实 note,或以合成数据补足 20 例);test 1,047 例覆盖全部 55 个计算器。注意 train 的属性抽取由 GPT-4 完成且未人工校验,test 则全部人工复核(坑 5)。规模另有 GitHub v1.2 README 10,543/1,100 等口径(坑 3)。

Q4:note(临床笔记)从哪来?
三个来源:34 个计算器的 note 取自 Open-Patients 语料库(180,142 条候选:PMC-Patients 患者摘要 167,034 条 + MedQA-USMLE 题干 12,893 条 + TREC 临床试验 125 条 + TREC CDS 90 条);11 个计算器用 Python 模板合成;10 个 rule-based 计算器由 clinician 手写合成(各 20 例)。主文与附录对合成/手写的计数归属有一处互换矛盾(坑 4)。

Q5:数据怎么标出来的?
三步流水线:GPT-3.5-Turbo 先筛"合格 note"(含可计算实体且数值非派生——比如已有 MELD 分数的笔记不能用来再考 MELD);GPT-4 抽取属性(9 类属性类型);医学专业人员逐例校验修正(test 全校验、train 未校验)。

Q6:答案怎么判对错?
脚本自动评分:rule-based 与 date 类要求精确匹配;equation-based 的 lab/physical/dosage 数值类允许 ±5% 相对容差(承认舍入与单位换算差异)。date 无容差——日期差一天就是错。

Q7:模型考得怎么样?
GPT-4 one-shot CoT 最佳 50.9%(zero-shot CoT 48.4%);Llama 3 70B 约 47.8%;Mistral-7B、GPT-3.5 在 30-40% 区间;医学专用小模型 PMC-LLaMA-13B 只有约 5-10%。无一模型过半。

Q8:错在哪?
四类型分析:Type A 知识错误(不知道/记错公式规则)、Type B 属性抽取错误、Type C 计算错误、Type D 其他。zero-shot CoT 下 Type A 占比超过一半(PMC-LLaMA 0.96、GPT-4 0.35);Type C 反而是最小类——大模型"会算不会背"。

Q9:微调能解决吗?
部分能:在 40 计算器训练集上微调后 Mistral-7B 从 10.79% 跳到 49.19%,Llama-2-7B 从 1.53% 跳到 45.75%。但对 train 未覆盖的 15 个计算器泛化仍差——微调补得了"见过的公式",补不了"没见过的公式"。

Q10:数据获取有什么要注意的?
HuggingFace ncbi/MedCalc-Bench 公开非 gated,CSV 直接下载;注意 v1.0 与 v1.2 两个 repo、license 从 CC BY 4.0 改为 CC BY-SA 4.0 的变迁(根因是 PMC-Patients 的相同方式共享条款),以及四套规模口径的分歧(坑 2、坑 3)。

§1.1 溯源:从 MDCalc 到 benchmark 的设计传承

理解 MedCalc-Bench 的最短路径是看它"继承"了什么。计算器本身来自 MDCalc——临床界事实上最大的计算器聚合站,医生在诊室里用的 SOFA 计算器与基准里考的是同一批工具;这条传承意味着任务的真实性有临床工作流背书,不会考"只在论文里存在的公式"。note 的叙事传统来自病例报告(PMC-Patients)与考试题干(MedQA-USMLE)——两者都是"被人写给人看"的临床叙事,语言规范但非 EHR 原生。评测的形式传承自通用 NLP benchmark 传统(数据集 + 自动评分器 + leaderboard),而错误诊断框架(Type A-D)则更像软件工程的失败模式分析移植到了评测设计里。四条传承汇在一起,解释了 MedCalc-Bench 为什么"像"一个临床工具箱的驾照考试:题型来自真实工具、语料来自真实叙事的发表版、考法来自 NLP 评测传统、判卷来自失败模式分析。

§1.2 六个被搜索最多的计算器:它们在基准里的角色

对具体公式感兴趣的读者,先看六个高频计算器在 MedCalc-Bench 中的考法:

MELD(终末期肝病模型)——Lab 类代表。输入胆红素、INR、肌酐(含透析特殊处理)等化验值,输出一个风险分值。考法难点在化验单位的换算与"透析患者肌酐按固定值计"这类规则细节;它是"公式+特殊规则"混合型考题的典型。

Cockcroft-Gault 肌酐清除率——Physical 类代表。需要年龄、体重、血肌酐与性别四参数,公式系数随性别切换。常被用来考"参数全找对、系数记错"的 Type A 错误:模型可能把女性系数 0.85 记成 1,一步错整题错。

SOFA(序贯器官衰竭评估)——Severity 类代表,也是全基准属性最密的考题之一:呼吸、凝血、肝脏、心血管、神经、肾脏六器官逐项打分再求和,单题属性可达十余个。模型要同时完成"回忆六个器官的打分档位"与"从长 note 里抽齐六组参数",是 rule-based 难度的集中展示。

GCS(格拉斯哥昏迷评分)——Severity 类代表。三组成分(睁眼、语言、运动)各自 4-6 档,叙事中的意识状态描述必须逐项映射到档位。自由文本到档位的映射是 string/choice 属性类型的主考场。

EDD(预产期)——Date 类代表。从末次月经(LMP)推算,需要准确的日历运算(含月份天数与闰年)。无容差判分,差一天即错;也是 code-augmented 收益最直观的场景(交给 Python datetime 就不会错)。

CHA2DS2-VASc(房颤卒中风险)——Risk 类代表。每个字母对应一个风险项(心衰、高血压、年龄档、糖尿病、卒中史、血管疾病、性别),模型要把叙事中的病史逐项转成布尔加总。它展示的是"字母助记"背后的档位细节如何成为知识负担——多数模型能背出字母,却记错年龄分档。

§1.3 与"通用数学能力"的三点根本区别

常有读者问"这跟让模型做应用题有什么区别",三点根本区别值得写清:

区别一:知识在公式里,不在算式里。 通用数学题把公式给全(或公式是公知的),考的是代数运算;医学计算把公式当作需要回忆的领域知识——模型不仅要"会用",还要"知道有这个东西、且系数/档位无错"。这是 §5.2 中知识错误成为最大类的直接原因。

区别二:输入是非结构化的临床叙事。 通用数学题把数值以规范形式列出;医学计算的输入是"45 岁女性,3 天前因胸痛入院,既往高血压……"的叙事,数值藏在句子里、单位可能缺失、条件用否定句表达。抽取(Type B)是通用数学评测里几乎不存在的失败面。

区别三:答案有临床语义约束。 通用数学只要求数值正确;医学计算的值必须"临床上说得通"(剂量不能为负、评分不能超上限、日期必须合理),这为评测提供了额外的合理性校验维度,也意味着纯数值容差(±5%)之外还可以加语义边界检查——这是扩展评测协议时值得加的一层。

§2 为什么需要 MedCalc-Bench:医学计算的评测空白

§2.1 选择题评测的结构性盲区

2022-2024 年医学 LLM 的进步叙事几乎全部建立在选择题上:MedQA(USMLE)让 GPT-4 首次越过及格线、MedMCQA 把印度医学考试搬进评测、PubMedQA 把文献判断数字化。这些基准的共同形式是"读题干、选选项",它们能有效测出知识覆盖面与推理链质量,但有三个结构性盲区。

第一个盲区是输出形态。临床计算的真实输出是"肌酐清除率 62.4 mL/min"、“SOFA 总分 7, mortality 风险约 25%”、“预产期 2025-03-14”——是一个必须正确的具体值,而选择题把正确答案混在四个选项里,模型即使不会算也可能蒙对 25%,评测信号被稀释。第二个盲区是过程不可见。选择题只看最终选择,无法区分"记对公式但抽错参数"与"记错公式"这两种需要完全不同干预的失败。第三个盲区是临床代表性。临床计算器(MDCalc 收录数百个)是住院医师与执业医生的日常工具,其使用频率远高于考试题,但此前没有任何基准系统覆盖。

§2.2 医学计算的特殊难点

与一般数学题相比,医学计算对 LLM 有三重额外困难。知识层:公式与评分表本身是领域知识——Cockcroft-Gault 公式的系数、SOFA 六个器官的打分档位、CHA2DS2-VASc 每个字母对应的风险分,都需要精确回忆,版本差异(如 CKD-EPI 2009 vs 2021)还会引入时效性问题。抽取层:临床笔记是自然语言,年龄可能写作"45-year-old woman"也可能写作"DOA 1980-03-12",化验值有单位(mg/dL vs μmol/L),日期格式五花八门,布尔条件(“是否在 48 小时内使用过肝素”)藏在叙述里——抽取错误是医学计算特有的、通用数学评测不会遇到的失败面。计算层:抽完参数后还有单位换算、公式代入、多步加减、日期推算(含闰年)——这条链上任何一环出错都是整题失败。

§2.3 此前工作为什么不够

在 MedCalc-Bench 之前,与医学计算沾边的评测路径有四条,均有明显缺口。(a)通用数学评测(GSM8K、MATH):不涉及医学公式与临床笔记语境。(b)医学问答基准的数值子题:零散且无统一评分器。(c)临床决策支持系统的内部评测:多为单中心、不公开、无法复现。(d)MDCalc 等网站的单元测试:只测计算器实现本身,不测自然语言输入的端到端能力。缺的是一件"基础设施":一个公开的、覆盖面够广的、带自动评分器与错误诊断的医学计算基准。MedCalc-Bench 就是按这个定位设计的——论文标题的动词是 Evaluating,它自我定位为标尺而非模型。

§2.4 NLM/NIH 的位置

主导团队来自美国国立卫生研究院(NIH)下属国立医学图书馆(NLM),即维护 PubMed/MEDLINE、UMLS、ClinicalTrials.gov 的同一机构。这带来两个实际优势:一是对临床文献语料(PMC-Patients 等)的合法合规使用有内部把关,二是医学专业校验人员(clinicians)的组织成本较低。论文 17 位作者横跨 9 家机构(NLM、Wisconsin–Madison、Oregon、Yale、Rice、UTHealth Houston、Melbourne、Macquarie、VA Salt Lake City),其中 NLM 出主导者 Qiao Jin 与资深作者 Zhiyong Lu、Qingyu Chen——这条"NIH 主导 + 多校协作"的作者结构在库内 Mimic-IV、Open-PMC 等条目中反复出现,是医学 NLP 基础设施类工作的典型署名模式。

§2.5 发表语境:2024 年中评测版图上的空位

把时间拨回 2024 年 6 月(论文 v1 提交日)能更准确看到这个基准填的是哪块空:彼时 MedQA/MedMCQA 上 GPT-4 已接近或超过人类及格线,"医学知识已被攻克"的叙事正盛;通用 agent 评测(工具调用、代码执行)刚起步但无医学特化;临床计算评测只有零星的封闭内部工作。MedCalc-Bench 的发表等于在"医学知识评测饱和"与"医学 agent 评测未开荒"之间插了一根标桩——它用数据表明知识评测的高分完全不外推到计算任务(PMC-LLaMA 的对照是最好的反例)。这也是 NeurIPS D&B 赛道把它选为 Oral 的评审逻辑:填补的是评测版图的结构性空位,而非在已有赛道上刷更高分。

§3 数据构建:55 个计算器、18 万候选 note 与三层流水线

§3.1 计算器覆盖:七大子类的分布账本

MedCalc-Bench 的骨架是 55 个临床计算器,全部从 MDCalc 的 popular 清单筛选,按知识与判定方式分为两大类七子类:

大类 子类 计算器数 test 例数 代表计算器
equation-based Lab(实验室指标) 19 327 MELD、CKD-EPI、Free Water Deficit、Anion Gap、Corrected Sodium
equation-based Physical(体格测量) 12 240 BSA、BMI、Ideal Body Weight、Cockcroft-Gault、PCI 简化
equation-based Date(日期推算) 3 60 EDD 预产期、孕周推算、日期差
equation-based Dosage(剂量) 2 40 化疗剂量、药物体重折算
rule-based Risk(风险分层) 12 240 CHA2DS2-VASc、Wells、HEART、TIMI、Caprini
rule-based Severity(严重度) 4 80 SOFA、GCS、NIHSS、APGAR
rule-based Diagnosis(诊断/分诊) 3 60 CENTOR、TIPI、 Montreal 判别
合计 7 子类 55 1,047 —

数字链自检:equation-based 36 = 19+12+3+2;rule-based 19 = 12+4+3;test 例数 327+240+60+40+240+80+60 = 1,047 ✓。equation-based 计算器的知识载体是一条公式或一组换算规则;rule-based 计算器的知识载体是一张逐项打分表——模型必须回忆每个维度的评分档位再逐项映射,这对"背规则"的要求比公式更高,这也是 §5.2 中 rule-based 错误率显著偏高的根源。

§3.2 Open-Patients:18 万条候选笔记的四源账本

真实临床 note 的供给侧是一个名为 Open-Patients 的聚合语料库,共 180,142 条,四源构成:

来源 条数 平均 tokens 性质
PMC-Patients 167,034 484 病例报告的患者摘要(真实病历叙事)
MedQA-USMLE 12,893 135.8 执业考试题干(拟临床叙事)
TREC Clinical Trials 125 137.7 部分合成
TREC CDS 90 105.1 2014/2015 手写合成、2016 真实 EHR
合计 180,142 — 90+125+12,893+167,034 = 180,142 ✓

两点值得注意。其一,主体是 PMC-Patients——即库内 open-pmc(rid 45)的姊妹资源,其 CC BY-SA 4.0 许可最终传染决定了 MedCalc-Bench 的 license 走向(§6、坑 2)。其二,笔记并不全部来自真实临床记录:MedQA-USMLE 是考试题干,TREC 两源部分为合成——审计视角下"真实世界 note"的说法需要打折(坑 7 有专门讨论)。这些候选笔记覆盖了 55 个计算器中的 34 个;剩下 21 个计算器找不到合格的真实 note,只能靠合成补齐(§3.3)。

四源各自的语域细节值得逐源登记:

  • PMC-Patients(167,034 条,484 avg tokens):病例报告的"患者摘要"部分——发表在期刊上的真实病例经过知情同意与脱敏,叙事完整、时序清晰,是四源中最接近真实病历的语料;但其"发表版"属性意味着罕见病、戏剧性病例占比偏高,且长度(484 tokens)给了模型充分的上下文。
  • MedQA-USMLE(12,893 条,135.8 tokens):美国执业医师考试题干,天然包含计算所需的参数(出题人故意给全),语言规范但"考点导向"——数值几乎从不冗余,与真实病历的信息密度截然不同。
  • TREC Clinical Trials(125 条,137.7 tokens):临床试验受试者叙述,部分为合成;量极小,仅覆盖个别计算器。
  • TREC CDS(90 条,105.1 tokens):临床决策支持共享任务的病历叙述——2014/2015 年份为手写合成、2016 年为真实 EHR 片段;同样量小,但它是四源中唯一的"真实 EHR 原生文本"(尽管只有个位数年份的覆盖)。

由此得到一个实用的语域光谱:PMC-Patients(真实但发表版)→ MedQA(拟真但考试化)→ TREC CDS(真实 EHR 但极少量)→ 模板/手写合成(拟真可控)。任何关于"MedCalc-Bench 测的是不是真实临床场景"的争论,都应该先落到这个光谱上明确谈的是哪一段。

§3.3 note 三来源:真实、模板、手写

来源 覆盖计算器 说明
Open-Patients 真实 note 34 个 GPT-3.5 从 180,142 条中筛选含可计算实体且数值非派生的笔记
Python 模板合成 11 个 附录 A.2:按计算器所需字段生成结构化笔记(多为 Lab/Physical 类)
Clinician 手写合成 10 个 附录 A.3:rule-based 计算器由临床医生手写拟真笔记,各 20 例

34+11+10 = 55 ✓。但主文与附录在此有一处数字互换矛盾:主文正文表述为"10 个 equation 计算器模板合成 + 11 个 rule-based 计算器 clinician 手写",而附录 A.2/A.3 列出的是 11 个模板、10 个手写。两处无法同时为真,成稿按"约 10-11 个"模糊化并在坑 4 存照。合成 note 的存在是基准的必要妥协(真实病历中某些计算器场景极稀缺,如化疗剂量),但也埋下分布偏移:合成笔记的字段完整度高于真实叙事,抽取任务难度被低估。

合成 note 的设计本身也有值得记录的细节。模板合成的做法是按计算器的属性需求生成"字段齐全、数值合理、叙述通顺"的笔记——它保证了每道题都有完整可抽的参数集,代价是真实病历里的缺失值、无关化验、噪声干扰在合成数据里被清洗掉了;clinician 手写合成则反过来,由临床医生按真实工作流的口吻撰写(rule-based 评分表需要的叙事细节更难模板化,所以交给人工),各计算器固定 20 例的配额保证了小众计算器在 test 中有最低覆盖。两种合成路线的分工边界——模板管 equation、人工管 rule——与主文/附录的 10/11 之争正好对应,这也是为什么矛盾只发生在两类的交界计数上,而 34 个真实 note 计算器的归属从无争议。

§3.4 三步流水线与标注质量

第 1 步  合格性筛选   GPT-3.5-Turbo 逐条判断 Open-Patients 笔记:
                     (a) 是否包含目标计算器所需的实体/场景
                     (b) 数值是否为"原始测量值"而非"派生结果"
                         ——已有 MELD 分数的笔记不能再用于考 MELD
第 2 步  属性抽取     GPT-4 按计算器定义的属性表抽取参数:
                     9 类属性 lab value / physical value / age /
                     date / boolean / choice / string / dosage / percentage
第 3 步  人工校验     医学专业人员逐例核对属性与答案,修正后入库
                     test:全部人工复核 | train:未人工复核

流水线的工程判断有两处值得展开。第一,"非派生"过滤是数据质量的关键闸门:临床笔记里常见"实验室已给出 calculated LDL"这类派生值,若不过滤,模型只需抄答案而无需计算,基准即失效。第二,train/test 质量不对称是论文自己承认的取舍:test 1,047 例全部人工复核以保证评测可信;train 10,053 例的 GPT-4 抽取未经人工校验以压低成本——这个取舍在微调实验(§5.3)中构成隐含噪声源,也成了 2026 年审计工作的切入口之一(§6、坑 5)。

把这条流水线放到库内标注传统的坐标系里看,能更准确评估其成色。库内 i2b2/n2c2(rid 14)代表"共享任务式"标注——多中心团队按指南标注、带跨标注者一致性统计;库内 PANDA-PLUS 代表"三层人审"标注——医学生初注、高年级复核、专家终审,全程人工。MedCalc-Bench 的流水线是第三种形态:LLM 前置粗筛 + LLM 细抽取 + 人工终验——人工只放在刀刃(test 与最终校验)上。它的优势是规模(10,053 例)与速度,代价是 train 侧没有跨标注者一致性数字可引用。三种形态没有绝对优劣,但引用 MedCalc-Bench 标注质量时应说明它属于"人机协作、质控分层"形态,而非全人工金标准形态。

§3.5 训练/测试划分与 zero-shot-only 设计

划分 例数(论文口径) 覆盖计算器 人工复核 用途
train 10,053 40 否(GPT-4 抽取) 微调实验(§5.3)
test 1,047 55(含 15 个 train 未覆盖) 是 主评测(§5.1)

test 中刻意保留 15 个计算器在 train 中缺席,用于区分"微调学会的"与"模型本会的"——这个设计使 MedCalc-Bench 同时具备记忆评测与泛化评测两种读法,是它在微调叙事(§5.3)中能给出"补内伤不补外伤"结论的结构性原因。规模口径分歧(论文 10,053/1,047 vs GitHub v1.2 README 10,543/1,100 vs hyper.ai 10,055/1,047 vs 审计论文 9,765/1,048)见坑 3 与 FACTS S-01。

对 15 个 zero-shot-only 计算器再补一句使用建议:它们是全基准中唯一"考泛化"的子集,任何微调工作汇报成绩时都应把这 15 个的单列分数与 40 个已见计算器的分数分开报告——混报会系统性高估泛化能力。同时,由于这 15 个计算器只有 test 覆盖、样本量小,单计算器层面的分数波动大,跨模型比较时建议看子类聚合而非单个计算器。

§3.6 选择 55 个计算器的取舍

为什么是 55 而非更多人熟悉的 100+?论文的筛选逻辑是"popular 优先 + 可评测性优先",这个标准带来两组取舍。取舍一:流行度 vs 代表性。选 MDCalc 的 popular 清单保证了每个计算器都有真实临床使用场景(不会考冷门的学术性公式),但代价是专科深度不足——心内科、肿瘤科的大量专科评分表没有纳入,用 MedCalc-Bench 的分数无法代表"专科计算能力"。取舍二:可自动化评测 vs 判断题。要能脚本判分,输出必须是确定的数值/分级/日期,这排除了那些"需结合多模态(看心电图、读影像)才能算"或"答案本身有临床分歧"的计算器。这两组取舍解释了为什么 55 这个数字是合理的下限而非上限——它优先服务"可复现的评测",而不是"覆盖所有临床计算场景"。

对扩展者而言,这个筛选逻辑是可以继承的方法论:新加计算器时应先问三个问题——(a)它是否在真实临床工作流中被使用?(b)它的答案是否唯一确定、可脚本判分?(c)它的输入是否能从纯文本 note 中获得?三问全过才适合进基准,否则应归入"需多模态/需共识"的另册。

§4 任务定义、属性体系与评分规则

§4.1 任务形式化

每道题是一个四元组(note, question, calculator, answer):

输入:
  note      一段临床笔记(平均 529.7 字符)
  question  一个明确问题(平均 21.9 字符),如
            "What is the patient's SOFA score?" 或
            "Calculate the patient's creatinine clearance."
输出:
  answer    数值(带单位)/ 分级字符串 / 日期(三选一)
中间产物(评测要求显式给出):
  calculator 模型判断应使用的计算器名称
  attributes 模型抽取的目标属性表(1-31 个,均值 5.4)

问题文本会点名计算器或计算意图——这既是任务可评测性的保障,也是后来"提示泄漏"批评的来源(§6、坑 6 相关):模型不需要自己猜"该算什么",但必须知道"怎么算"。

§4.2 九类属性

属性类型 示例 抽取难点
lab value 血肌酐 1.2 mg/dL、Na+ 137 mmol/L 单位制切换、参考范围干扰
physical value 体重 70 kg、身高 175 cm、BP 120/80 缩写与叙述式表达
age 45-year-old、DOB 1979-03-01 两种表达方式换算
date LMP 2024-11-05、入院日期 格式多样、相对日期(“3 days ago”)
boolean 是否使用肝素、是否有房颤史 藏在否定句与条件句中
choice 吸烟状态(never/former/current) 枚举映射
string 意识水平描述 自由文本归一
dosage 每日剂量 500 mg qid 频次缩写
percentage 血氧饱和度 95% 与 lab value 边界

属性表的 1-31 个跨度意味着最复杂的计算器(如 SOFA 六器官多参数)单题抽取链长达三十步,一步错步步错——这是 §5.2 中 rule-based Severity 类错误率高的第二个原因。

三个抽取层的经典失败形态,值得每类记一个例子:

  1. 单位静默换算失败:note 写 “creatinine 106 μmol/L”,公式需要 mg/dL——模型直接把 106 代入公式。数值看起来"合理"(在容差外的错误值),失败隐藏在换算步骤里。Lab 类最常见的 Type B。
  2. 相对日期解析失败:note 写 “presented 3 days ago with LMP approximately 8 weeks prior”——“3 days ago” 需要以某个基准日期锚定,“approximately” 引入模糊性。Date 类错误多为这一族。
  3. 否定句布尔失败:note 写 “no history of heart failure”——模型把"心衰"这个关键词出现当作布尔真值。Risk 类(CHA2DS2-VASc 的心衰项)的经典失败,也是"关键词命中不等于语义理解"的最直接证据。

§4.3 评分规则

大类 匹配规则 容差
equation-based(lab/physical/dosage) 数值比较 ±5% 相对容差(承认舍入与单位换算差异)
equation-based(date) 精确匹配 无(差一天即错)
rule-based 精确匹配(分级字符串) 无

±5% 容差是全基准争议最集中的单一设计:支持方认为医学计算器网站间本身存在舍入差异,不放容差会误伤正确计算;批评方(§6 审计)认为 5% 对某些场景(儿科剂量、移植肾小球滤过率边界值)判放过宽,且与"精确匹配才是临床现实"的立场冲突。date 无容差则是反向的从严设计——闰年与月份天数差一不可。两种口径并存,使用者在自建评测时需显式声明沿用哪套。

§4.4 评分器与可复现性

评测完全由脚本自动完成(无 LLM-as-judge),评分器随 GitHub ncbi/MedCalc-Bench 仓库发布,论文附复现指南。这使 MedCalc-Bench 成为库内少见的"数据 + 评分器 + 复现指南"三件套齐全的基准,与 pubmedqa(rid 49)"数据+脚本"的双件套相比多出一层方法学透明度。可复现性的代价是答案表示的刚性:分级字符串必须与参考答案逐字符一致(大小写/空格差异可能误判),使用前建议先读仓库的答案规范化代码。

§4.5 七子类名录:55 个计算器的代表与覆盖

下表按子类列出论文正文与附录明确出现的代表计算器(完整名录以论文附录 A.1 与 GitHub 计算器定义文件为准):

子类 论文点名的代表计算器 子类共通特征
Lab(19) MELD、CKD-EPI、Free Water Deficit、Anion Gap、Corrected Sodium 输入为化验值;单位制切换(mg/dL vs μmol/L)是主要抽取陷阱
Physical(12) BSA、BMI、Ideal Body Weight、Cockcroft-Gault 肌酐清除率 输入为体格测量与人口学参数;公式系数需精确记忆
Date(3) EDD 预产期、孕周推算、日期间隔 需要模型内部维护准确历法;无容差判分
Dosage(2) 化疗剂量(体重/体表折算) 精度敏感;真实病历中该场景稀缺故依赖合成 note
Risk(12) CHA2DS2-VASc、Wells、HEART、TIMI、Caprini 逐项布尔/分档映射;字母助记下的档位细节是知识负担
Severity(4) SOFA、GCS、NIHSS、APGAR 多维度多档位;单题属性多达十几至三十余个
Diagnosis(3) CENTOR、TIPI、Montreal 输出为分类判定;规则记忆与条件判断并重

读这张表的方法:每行的"共通特征"就是该子类的错误模式预测器——Lab 类错在单位、Physical 类错在系数、Date 类错在历法、Dosage 类错在精度、Risk/Severity/Diagnosis 类错在档位记忆。用基准做模型诊断时,先看总分,再看子类分布,最后对照本表归因。

§4.6 属性需求与子类的映射关系

九类属性在不同子类的出现密度并不均匀,这决定了各子类的抽取难度结构:

子类 高频属性 低频/无属性 抽取难点评级
Lab lab value、percentage date、dosage 中(单位与参考范围)
Physical physical value、age dosage、percentage 中低(表达多样但语义直白)
Date date、age(孕周类) lab value、dosage 中高(相对日期与格式)
Dosage dosage、physical value、lab value boolean 高(多源参数 + 精度)
Risk boolean、choice、age、physical value lab value 高(条件句与否定句中藏布尔)
Severity physical value(GCS 眼睑/语言/运动)、choice、lab value date 最高(属性最多、档位最密)
Diagnosis boolean、choice、age dosage 中高(规则条件判断)

这一映射的实际用途有二。其一,自评模型时的瓶颈定位:如果错误集中在 boolean 属性,问题多半出在否定句/条件句理解而非医学知识;如果集中在 lab value 的单位换算,则是典型的 Type B 抽取链问题。其二,扩展基准时的覆盖检查:新增一个计算器时,按本表核对其属性谱是否已被现有子类覆盖,避免无谓的重复采样。

§5 评测结果:8 模型 × 3 策略、错误四类型与微调

§5.1 主结果:无一模型过半

论文对 8 个 LLM 在 3 种提示策略下做了完整矩阵评测(24 组):

模型 zero-shot direct zero-shot CoT one-shot CoT
GPT-4 中 30-40% 48.4% 50.9%(全场最佳)
GPT-3.5-Turbo 低 30-35% 区间 30-35% 区间
Llama 3 70B 低 ~40% ~47.8%(开源最佳)
Llama 3 8B 低 ~35% ~40%
Mistral-7B 10.79%(微调前基线) ~30% ~35%
Mixtral-8x7B 低 ~40% ~45%
PMC-LLaMA-13B ~5% ~10% ~10%
MediTron-70B ~15% ~30% ~35%

(表内为论文图表区间的整理值;精确到小数的总分以论文 Table/原文为准,上表用于呈现相对格局。)

三个结构性观察。其一,CoT 是普适增益:几乎所有模型从 direct 切到 CoT 都获得两位数提升,说明医学计算失败主要不在"算"而在"想清楚该算什么、从哪抽"。其二,one-shot 的边际收益集中于开源模型:一个示例同时示范了输出格式与答案规范,开源模型受格式噪声拖累更重,给一个例子即显著回血;GPT-4 的增益相对小。其三,医学领域预训练不等于计算能力:PMC-LLaMA-13B 在医学问答基准上远超同尺寸通用模型,在 MedCalc-Bench 上却几乎垫底——领域词表换来的文本流畅没有转化为公式记忆与执行,这与 §5.2 的错误分解互为表里。

引用主表时的三个防坑提示:

  1. 别横向比不同口径的数字:zero-shot direct 与 one-shot CoT 的差距里有大量"格式校准"成分,用它论证"模型 A 比模型 B 强 N 倍"时要固定策略档位;
  2. 注意区间值与精确值:论文部分图表给的是区间(本条目表亦如此标注),二次引用若需要精确小数应回论文原表核对,别从综述转引;
  3. 时点敏感:这些分数对应 2024 年中的模型版本(GPT-4 指当时版本),与 2025-2026 的新版模型不可直接续写比较——新版模型引用本基准时应重跑并声明版本。

§5.2 错误四类型:一半以上的失败是"不会背"

论文对每个失败样例按最早发生的错误归类,用基于规则的分类器(准确率 89%)划分四类型:

类型 含义 zero-shot CoT 下的典型占比
Type A 知识错误 不知道或记错公式/评分规则 >50%(PMC-LLaMA 0.96,GPT-4 0.35)
Type B 抽取错误 参数/单位/日期/布尔条件抽错 次高(GPT-4 的主要错误源)
Type C 计算错误 公式对、抽对了,但算错 最小类
Type D 其他 拒答、格式错误、无法归类 长尾

这组数字的读法有三层。第一层是对模型的诊断:GPT-4 的知识错误占比(0.35)不到 PMC-LLaMA(0.96)的一半——更大规模的预训练确实补了公式记忆;而 GPT-4 的残余错误更多转向抽取层,即"知道公式、读不懂病历"。第二层是对评测设计的验证:如果三连任务被混在一起只报总分,Type A 与 Type B 的干预方向(继续预训练 vs 微调抽取)将完全不可分——四类型框架是 MedCalc-Bench 超越"又一个 benchmark"的方法学贡献。第三层是对行业的隐喻:“大模型会算错数”(Type C)是个流传甚广的迷思,此数据下它是最小的错误类;真正的瓶颈是知识记忆与信息抽取,这与通用数学评测(模型常败于计算)的结论恰好相反,凸显医学计算的领域特异性。

关于归因边界还有两条使用须知。其一,"按最早发生的错误归类"意味着一题可以同时踩多个类型,但只记最早那个——这不是缺陷而是约定(修复最早的错误后,下一个错误才会浮现),但引用分布数字时应知道它是"第一道墙"的分布,不是"所有墙"的分布。其二,分类器是基于规则的(准确率 89%),对"知识错误但碰巧抽对参数"这类纠缠样例的判定有约一成误差,对错误占比做小数点级的跨论文比较没有意义。

§5.3 微调:补内伤,不补外伤

在 train 集(40 计算器、10,053 例)上做标准微调(2 epochs、batch 32、4 GPU、lr 1e-5、50 warmup steps、cosine decay、flash attention):

模型 微调前 微调后 增益
Mistral-7B 10.79% 49.19% +38.40
Llama-2-7B 1.53% 45.75% +44.22

表面看是革命性提升——7B 模型一步逼近 GPT-4 的 50.9%。但拆开 test 中 15 个 train 未覆盖的计算器看,微调模型的 zero-shot 泛化仍然很差:微调学到的主要是"见过的 40 个计算器的公式记忆与答案格式",而不是可迁移的"计算能力"。论文的原话结论是微调效果 “largely attributable to memorization”。这组数字的实用推论:如果应用场景封闭(只用固定的几十个计算器),微调是高性价比方案;如果场景开放(新计算器不断出现),微调会给出虚假安全感——“补内伤不补外伤”。

§5.4 Code-augmented:让模型写代码,算力外包给 Python

附录 D 给出一条增强路径:让模型把计算翻译成 Python 代码,由评测方执行,编译错误允许最多重试 20 次(仅 GPT-3.5/GPT-4 参与了此实验):

  • 效果:Type C 计算错误下降,多步算式与单位换算类题目受益最明显;
  • 天花板:Type A/B(不知道公式、抽错参数)完全不受影响——代码只接管"算",不接管"背"和"找";
  • 含义:这是 §6 审计论文把 MedCalc-Bench 重定位为 tool-use 基准的伏笔——计算环节交给解释器后,剩余失败几乎全是知识/抽取/工具调用问题。

§5.5 分子类观察:rule-based 为什么更难

按子类拆分,rule-based 计算器(评分表类)的错误率系统性高于 equation-based:评分表要求模型逐维度回忆档位(GCS 三组成分各自 4-6 档、SOFA 六器官各自打分),任何一档记错即错;而 equation-based 只要公式与参数对,±5% 容差还能吸收小的舍入误差。Date 子类(预产期、孕周)虽然只有 3 个计算器,却是 equation-based 中错误率偏高的——日历推算要求模型内部维护一套准确的历法,这正是 LLM 薄弱且 code-augmented 收益最大的场景。子类层面的这些差异在自建评测时很有用:想测知识记忆用 rule-based,想测抽取用 Lab note,想测历法/单位换算用 Date/Dosage。

§5.6 agent 时代的读法:计算器调用作为工具选择问题

把 §5.4 的 code-augmented 与 §6.1 的重定位合起来,能看到 MedCalc-Bench 在 agent 架构下的完整面貌。一个现代医学 agent 处理计算任务的合理架构是:检索层(拿回公式/评分表定义)+ 抽取层(从 note 到结构化参数)+ 执行层(解释器算数)+ 校验层(单位与范围合理性检查)。对照四类型:检索层消灭 Type A、抽取层对应 Type B、执行层消灭 Type C——也就是说,基准的错误分类法天然映射到 agent 的分层架构,每个错误类型告诉你该加哪一层。这让 MedCalc-Bench 成为 agent 系统设计的"需求说明书":你的系统在哪个类型上失败,就补哪一层模块。这也是审计论文"重定位"的正面版本——不是基准失效了,而是它的信号在 agent 语境下反而更易解释。

§5.7 提示策略逐档对比:direct → zero-shot CoT → one-shot CoT

三种提示策略的增益结构并不均匀,逐档拆开看:

策略档位 增益来源 谁受益最大 典型失败面
zero-shot direct 基线:直接出答案 无(这是地板) 格式错乱、跳步、rule-based 漏项
zero-shot CoT 思维链强制"先回忆公式再逐步代入" 中小模型(两位数提升) 知识错误(Type A)原样暴露
one-shot CoT 示例同时示范格式规范与推理路径 开源 7B-13B 模型 剩余错误集中于抽取与知识

三个值得记住的细节。第一,CoT 的提升本质是"把默算外化":direct 下模型试图一步到位,多步计算与多属性组织的失败被合并隐藏;CoT 强制分步后,失败点变得可归因——这也是错误四类型分析能在 CoT 口径下做干净的技术前提。第二,one-shot 对 GPT-4 的增益小、对开源模型增益大:说明示例的主要价值是校准输出格式而非教授方法——GPT-4 本来就会,小模型需要看一眼"答案长什么样"。第三,direct→CoT 的提升幅度本身是个诊断信号:一个模型若从 direct 到 CoT 几乎不涨,要么它 direct 就很强(罕见),要么它的错误根本不在"过程组织"而在知识/抽取——先跑错误分类再决定是否加提示工程。

§5.8 三个被反复引用的单点结论

论文发表后,被后续工作引用最多的是三个单点数字/结论,本条目在此集中存证:

  1. “50.9%”:GPT-4 one-shot CoT 的总分,成为"最强模型在医学计算上仍不过半"的通用引语。引用时注意口径:one-shot CoT、MedCalc-Bench v1 论文口径、55 计算器全集。
  2. “知识错误占一半以上”:zero-shot CoT 下 Type A >50%(GPT-4 0.35 / PMC-LLaMA 0.96)。这句常被转述为"大模型不会算"——恰好引反了,它是"大模型不会背"的证据,计算错误(Type C)是最小类。
  3. “微调接近 GPT-4”:Mistral-7B 微调后 49.19% 常被单独引用,但省略了"对未见过计算器泛化仍差"的半句——完整结论见 §5.3,单引一半会得出"微调可替代规模"的错误推论。

这三条在二次引用时的共同风险是脱离口径的简化。任何基于 MedCalc-Bench 的对外表述,建议都带回三个限定:哪个策略档位、哪个数据口径、是否含未复核 train。

§5.9 评测数字的可拆解性:一张诊断量表

把本节全部数字整理成一张"看到分数后如何追问"的量表:

看到什么 追问什么 去哪查
总分 X% 哪个策略档位?哪个数据口径? §5.1、§7.3
比 GPT-4 高 是同一策略吗?含 code-augmented 吗? §5.1、§5.4
微调提升巨大 是已见 40 计算器还是未见 15 个? §5.3
错误以计算为主 是否未按"最早错误"归类? §5.2
声称达到专家级 专家基线在论文里是多少? §5.1(专家亦非满分)
73%+ 高分 是否针对基准做了 RL/训练? §6.1

这张表的用途是快筛:任何 MedCalc-Bench 相关的分数宣称,走完六问基本能判断其可比性与可信度。

§6 后续审计与基准重定位

§6.1 审计论文:MedCalc-Bench Doesn’t Measure What You Think

2026 年出现的第三方审计(arXiv 2603.02222)对 MedCalc-Bench 提出三组系统性批评:

  1. 提示泄漏与"背题":问题文本点名计算器,配合公开的 train 集,针对基准的训练可以让模型刷高分数——审计用 RL 训练的 MedCalc-R1/DeepSeek-R1 达到 73.95%,远超原论文所有模型的 50.9%,提示原榜单分数更多反映"对这 55 个计算器的熟悉度"而非通用医学计算能力。
  2. 容差口径:±5% 容差对精度敏感场景判放过宽,审计倾向更严的匹配口径,并给出重评分数(其口径下有效样本约 9,765/1,048,与官方口径差异见坑 3)。
  3. train 质量不对称:10,053 例未经人工复核的 train 数据用于微调结论(§5.3 的 +38/+44 分增益)可能部分来自噪声拟合,审计建议以人工复核子集重估。

审计的重定位主张是:MedCalc-Bench 测的与其说是"医学计算能力",不如说是"医学 tool-use 能力"——在计算外包给代码解释器、知识由检索增强提供的现代 agent 架构下,剩余被测能力(识别计算器、抽取参数、组织调用)恰恰是 tool-use 评测的核心维度。这个重定位没有否定基准的价值,而是改变了它的正确打开方式:把它当 agent 评测用,比当"裸计算能力"评测用更符合其信号结构。

§6.2 版本演进与社区修复

节点 时间 内容
arXiv v1 2024-06-17 首发版本
arXiv v4 2024-06-30 主版本(本条目文本底本)
NeurIPS 2024 2024-12 Datasets & Benchmarks 赛道 Oral
HF v1.0 数据卡 2025-11-18 ncbi/MedCalc-Bench-v1.0,标 cc-by-4.0
HF v1.2 数据卡 2025-12-18 ncbi/MedCalc-Bench 主 repo,改标 cc-by-sa-4.0;README 规模口径 10,543/1,100
Verified 第三方版 2026-09-08 nsk7153/MedCalc-Bench-Verified(审计重校验),cc-by-sa-4.0

v1.0→v1.2 的 license 变更值得单独记忆:note 底层 PMC-Patients 为 CC BY-SA 4.0(SA = 相同方式共享),上游条款传染下游,v1.0 标注的 CC BY 4.0 属于许可标注失误,官方在 v1.2 数据卡回撤改标。库内 open-pmc(rid 45)条目对这条传染链有完整梳理,两者互为印证。使用方应一律采用 CC BY-SA 4.0 口径,衍生数据集也须以同方式共享(坑 2)。

版本选择的实操建议:评测复现用 v1.2 主 repo(现行许可 + 最大规模口径),许可审查时同时引用 v1.0 与 v1.2 数据卡(说明变更史),需要更严质控时叠加 Verified 版做交叉验证。不建议把三个版本的数据混在一个训练集里——同一例在不同版本的属性校验状态可能不同,混用会把质量分层彻底搅乱。

§6.3 生态涟漪

MedCalc-Bench 之后出现的跟进评测可分三支:agent/tool-use 支(把计算器调用当作工具选择的评测场景,MedCalc-R1 是代表);扩展计算器集支(在 55 之外补充专科计算器的工作,多为内部基准未见公开);错误分类法引用支(Type A-D 四类型被多个医学 agent 论文借用为失败分析框架)。它还进入了不少医学院与医院的 LLM 评估清单——当一家机构想验证"这个模型能不能用于临床决策支持"时,MedCalc-Bench 是少数现成的计算维度标尺。库内最近的亲缘是 MultiMedBench(rid 129,谷歌医学多任务基准,含计算类任务),两者在"医学 LLM 需要超越选择题评测"这一点上互为证词。

§6.4 方法学遗产:被复用的四个设计

即使不使用其数据,MedCalc-Bench 有四个设计已被后续评测工作整体复用,值得作为"方法学资产"单独登记:

  1. "最早错误归类"原则:多步任务失败只记第一道墙,使干预优先级可排序——后被多个 agent 失败分析框架借用。
  2. train/test 覆盖差分(40 vs 55 计算器):用划分设计把"记忆"与"泛化"解耦,比事后拆分更干净。
  3. 双轨判分(数值容差 vs 符号精确):按输出类型而非统一阈值定容差,被医学输出评测广泛采纳。
  4. 质控分层披露(test 全复核 / train 未复核的显式声明):与其假装全量高质量,不如把质量层级写进元数据——这一诚实实践如今在多个医学数据卡中出现。

这四条也解释了为什么 MedCalc-Bench 的引用面大于其使用面:不少工作引用它不是为了跑分,而是为了引用其评测设计。

§6.5 争议的时间线:一个基准如何被社区重新定价

把 2024-2026 的事件按时间排开,可以看到"基准被社区重新定价"的完整过程:

2024-06  arXiv 发表,主张:LLM 医学计算能力远未达标(GPT-4 50.9%)
2024-12  NeurIPS D&B Oral,评测设计(错误四类型)获得方法学认可
2025-11  HF v1.0 数据卡发布(CC BY 4.0)
2025-12  HF v1.2 修正许可为 CC BY-SA 4.0(社区/官方发现传染问题)
2026    审计论文提出三批评(提示泄漏、容差、train 质量),重定位为 tool-use
2026-09  第三方 Verified 版发布(重校验)

这个时间线的启示是:评测基准的价值主张会在发表后继续被修订。发表时的主张(“模型不会算”)在 2026 年并未被推翻,但被"重新框架化"——从"能力缺失的证据"变成"agent 系统需要哪些模块的需求说明书"(§5.6)。使用这类基准时,读发表版本之外再读一轮后续批评,已成为标准动作。

§7 获取、许可与复现

§7.1 获取路径

# 路径一:HuggingFace(推荐,数据本体)
# 主 repo(v1.2,现行有效)
git clone https://huggingface.co/datasets/ncbi/MedCalc-Bench
# 或 Python 直接加载
from datasets import load_dataset
ds = load_dataset("ncbi/MedCalc-Bench")

# 路径二:GitHub(评测器 + 复现指南 + 计算器定义)
git clone https://github.com/ncbi/MedCalc-Bench

# 路径三:第三方审计重校验版(可选,用于交叉验证)
# HuggingFace: nsk7153/MedCalc-Bench-Verified(2026-09-08,cc-by-sa-4.0)

官方 repo 非 gated,无需申请即可下载。注意区分三个 repo:ncbi/MedCalc-Bench-v1.0(旧版数据卡,标 cc-by-4.0)、ncbi/MedCalc-Bench(主 repo/v1.2,标 cc-by-sa-4.0)、nsk7153/MedCalc-Bench-Verified(第三方)。研究期间曾遇到镜像站 302 跳转或第三方 fork 的 gated 报错,均非官方 repo 本身的问题(坑 8)。

下载后的 10 分钟验证清单(防止拿到错版本/错文件才开工):

  1. 行数对表:train/test 行数与 §7.3 口径表哪一行吻合(吻合哪个就声明哪个口径);
  2. license 核对:README/数据卡的 license 字段是否为 cc-by-sa-4.0(v1.2 现行);
  3. 字段抽查:随机抽 3 行人工核对属性抽取与答案的对应关系,确认字段语义理解无误;
  4. answer_type 分布:确认数值/分级/日期三类都有(date 类无容差,预处理别把它们一起归一化);
  5. 评分器连通:用官方评分器对 10 个样例跑一遍判分,确认环境依赖(如 Python 版本)就绪;
  6. zero-shot-only 标记:确认能按计算器字段区分 40 已见 vs 15 未见的计算器集合。

§7.2 许可要点

  • 现行口径:CC BY-SA 4.0(v1.2 数据卡)。
  • 变更根因:note 底层 PMC-Patients 为 CC BY-SA 4.0,SA(ShareAlike,相同方式共享)条款传染下游——衍生数据集必须以同方式共享。v1.0 数据卡的 CC BY 4.0 标注是许可失误,已被 v1.2 回撤。
  • 对使用方的实际约束:可以商用(BY 满足署名),但基于它的衍生数据集/改写版本必须同样以 CC BY-SA 4.0 发布;这与库内 medqa(rid 50)等 CC BY 系条目不同,入库与二次分发时需单独核对(坑 2)。

§7.3 数据字段与规模口径

train.csv/test.csv 每行含:note 文本、问题、计算器名、目标属性表(JSON)、参考答案、答案类型(数值/分级/日期)。规模存在四套口径:

来源 train test
论文(arXiv 2406.12036) 10,053 1,047
GitHub v1.2 README 10,543 1,100
hyper.ai 镜像页 10,055 1,047
审计论文(2603.02222) 9,765 1,048

差异来源推测:v1.1/v1.2 的增补与去重、审计剔除不可解析例。本条目正文一律以论文口径为主口径,其余口径登记存照(FACTS S-01),引用时注明口径来源即可,不构成数据质量问题。

§7.4 复现评测的最短路径

  1. 下载 test.csv(1,047 例);
  2. 对每个模型跑三种提示策略(论文附录给出完整 prompt 模板:zero-shot direct / zero-shot CoT / one-shot CoT);
  3. 用仓库评分脚本判分:equation 数值 ±5%、rule/date 精确匹配;
  4. 可选:对失败样例跑错误分类器(仓库提供,准确率 89%)得到 Type A-D 分布;
  5. 对比基准:GPT-4 one-shot CoT 50.9% 是当前论文口径的天花板参照;若做 tool-use 架构(计算外包解释器),参照 §6.1 审计口径与 73.95% 的 RL 上限。

§7.5 prompt 模板要点(不复制原文,抄结构)

论文附录给出三种策略的 prompt 模板,其结构要点如下(具体措辞请回论文/仓库,此处只记骨架):

  • zero-shot direct:系统提示 + note + 问题 + "只输出答案"的格式约束;
  • zero-shot CoT:在问题后追加"逐步思考,先写出所用公式/规则,再抽取参数,再计算"的引导;
  • one-shot CoT:在 CoT 之前插入一个完整的(note, question, 推理, 答案)示例,示例的选择影响显著。

三个骨架层面的实用提醒:一是答案格式约束要在 prompt 里显式写(分值字符串的确切写法),否则判分阶段会因为表述差异误判;二是 CoT 引导的措辞要避免泄露算式(提示"先写公式"但不提示是哪个公式);三是 one-shot 的示例应与目标计算器同子类,跨子类示例会误导模型;四是如果做 code-augmented,prompt 要显式要求"输出可执行代码块",并约定解释器错误的反馈格式(论文重试上限 20 次)。

§7.6 成本与算力提示

自跑评测的资源量级(用于排期,非精确数字):test 1,047 例 × 3 策略 × 8 模型 ≈ 25,000 次推理;若加错误分类器与 code-augmented(多轮重试),调用量再翻 2-4 倍。本地 7B-13B 模型在单张 80G 卡上可跑但耗时;闭源 API 需注意 25,000 次调用的预算与速率限制。建议做法:先用 100 例子集校准 prompt 与判分口径,再全量跑——直接全量跑易因格式细节返工。

§8 局限性与批评

覆盖面:55 个计算器相对 MDCalc 全站数百个仍是小子集,且以英文、国际通用计算器为主,专科与区域计算器(中文临床常用评分如 CURB-65 变体、儿科专用量表)覆盖薄弱;用 MedCalc-Bench 高分推断"该模型能胜任我院所有计算场景"是过度外推。

note 生态位偏移:主体来自 PMC-Patients 病例报告摘要,其叙事结构(完整、线性、字段清晰)与真实 EHR 的碎片化、缩写密集、时序混乱有系统差异;MedQA 题干更是考试叙事。基准测的是"干净病历上的计算",而非"临床信息系统里的计算"。

质量不对称:train 的 GPT-4 抽取未人工复核(§3.4),微调结论(§5.3)与基于 train 的任何后续训练都继承了这层噪声;test 虽全复核,但 1,047 例的绝对规模对 55 计算器摊薄后子类样本量有限(最小子类 Dosage 仅 40 例)。

容差与匹配刚性并存:±5% 容差对精度敏感场景偏宽(§4.3),而分级字符串精确匹配又对无害的表示差异(大小写、连字符)偏严——两端都需要使用者在自己的协议里显式裁断。

提示泄漏:问题点名计算器(§4.1),使"识别该用什么"这一步失去考察力,也让针对性训练刷分成为可能(§6.1)——这是审计论文的核心批评,也是把它当 tool-use 基准用的理由。

时效性:计算器版本演进(CKD-EPI 2021 换版、SOFA 更新)与模型快速迭代都使榜单时效有限;引用具体分数时应注明评测时点与模型版本。

把六条局限合起来看,可以给出一句话的责任边界:MedCalc-Bench 证明的是"在最干净的临床叙事上,最强模型做不对一半的医学计算";它既不证明"医学计算不可自动化"(失败可归因、可干预),也不证明"高分模型可临床部署"(覆盖面与语域双重限制)。把这两头的外推都挡掉之后,剩下的核心命题——计算是医学 LLM 评测不可缺席的维度——反而更稳固。

§9 库内关系与生态位

库内条目 rid 关系与区分
medqa 50 双重关系:其 USMLE 题干是 MedCalc note 的来源之一(12,893 条进 Open-Patients);任务上 MCQ 问答 vs 计算执行正交
medmcqa 111 同为医学 MCQ 基准,考知识记忆;与 MedCalc 无数据交集,互为"知识 vs 计算"对照
headqa 120 西语医学考试 MCQ;语言域与任务域均不同
cmb-cmexam 180 中文医疗评测双基准;MedCalc 无中文子集,中文临床计算评测仍是空白
pubmedqa 49 文献问答(yes/no/maybe);同为 NLM 系开放评测生态
open-pmc 45 PMC-Patients 姊妹资源;license 传染链同因(CC BY-SA 4.0)
mimic-iv-clinical-database / mimic-iv-note 4 / 47 真实 EHR 供给侧;MedCalc 因许可原因未用 MIMIC note,两者构成"合成/考试叙事 vs 真实 EHR"的语域对照
ehrshot 11 EHR 少样本评估基准;同为"评测基准"类邻居,评测哲学(少样本真实任务 vs 零样本计算器)互补
i2b2-n2c2-nlp 14 临床 NLP 共享任务先例;note 挖掘与标注传统的上游
mtsamples 350 转录文本 note 语料;潜在的真实 note 供给侧
medicationqa 170 消费者药物问答;与 Dosage 子类语义相邻但任务不同
multimedbench 129 谷歌医学多任务基准(含计算类任务);生态后继与对照
cblue / blurb 190 / 471 医疗 NLP 评测基准家族;MedCalc 填补的是"计算"这一任务维

生态位一句话:库内医学评测条目覆盖了执照考试(medqa/medmcqa/headqa/cmb-cmexam)、文献问答(pubmedqa)、NLU 任务(cblue/blurb/i2b2)、EHR 预测(ehrshot)与多模态(multimedbench),MedCalc-Bench 独占"计算执行"这一格——检索"医学 LLM 计算/评分表/剂量"相关意图的流量最终都会落到本条目。

§9.1 检索与互链操作建议

从本条目出发的常见检索意图与推荐跳转:

  • 搜"医学 LLM 评测"→ 本条目(计算维)+ medqa(rid 50)/medmcqa(rid 111)(知识维)+ pubmedqa(rid 49)(文献维),三路合看才是完整版图;
  • 搜"评分表/风险分层"→ 本条目 §3.1、§4.5;需要打分规则原文去 MDCalc;
  • 搜"临床笔记数据集"→ 若要真实 EHR 文本,mimic-iv-note(rid 47)/ mtsamples(rid 350);若要病例报告叙事,open-pmc(rid 45);MedCalc-Bench 的 note 是"评测化"的衍生品,不是原始语料;
  • 搜"药物剂量"→ medicationqa(rid 170)(消费者问答)与本条目 Dosage 子类(计算执行)语义相邻;
  • 搜"CC BY-SA 传染链"→ 本条目坑 2 + open-pmc(rid 45)条目的许可章节,两者互为印证。

反向来看,其他条目指向本条目的推荐锚点:medqa/medmcqa 的"局限与扩展方向"小节(知识评测之外还有计算维度未覆盖)、multimedbench 的任务清单(计算类任务的单列标尺)、ehrshot 的"评测哲学对照"(少样本真实任务 vs 零样本计算器)。

§10 避坑清单:8 个高频坑

坑 1:把 MedCalc-Bench 当成"医学计算器数据库"用。 它是评测基准(note+question+answer 三元组),不是公式查询工具——想查 SOFA 怎么打分请去 MDCalc 或评分表原文;想测模型会不会算才用本基准。检索意图错位会导致数据格式对不上需求。

坑 2:license 按旧卡标注 CC BY 4.0 引用。 v1.0 数据卡曾标 cc-by-4.0,但 v1.2 已改标 cc-by-sa-4.0——根因是 PMC-Patients 的 SA 条款传染。二次分发或入库时若沿用旧标注会造成许可链错误;衍生数据集还必须同方式共享。引用一律写 CC BY-SA 4.0 并注明 v1.2。

坑 3:规模数字四口径混用不注明来源。 论文 10,053/1,047、GitHub v1.2 README 10,543/1,100、hyper.ai 10,055/1,047、审计论文 9,765/1,048——四个数字都是"真的",对应不同版本与口径。正文引用请锁定一个口径(本条目锁定论文口径)并注明出处,别在表 A 用论文口径、表 B 用 README 口径。

坑 4:note 合成来源计数被主文/附录矛盾绊倒。 主文说 10 个 equation 模板合成 + 11 个 rule clinician 手写,附录 A.2/A.3 说 11 模板 + 10 手写——两处数字互换。写综述/卡片时用"约 10-11 个"模糊化,别精确抄其中一侧当真理;三个来源合计 34+11+10=55 的总账是自洽的。

坑 5:拿 train 集当黄金数据训练或评测。 train 10,053 例的属性抽取由 GPT-4 完成未经人工校验(论文明说),test 1,047 例才全部人工复核。用 train 调参可以,用 train 报告准确率或当标注资源用会引入系统性噪声;严谨场景用第三方 Verified 版交叉验证。

坑 6:忽视 ±5% 容差与精确匹配的双口径。 equation 数值 ±5%、rule/date 精确匹配——自己复现评测时若口径与官方不一致(比如对 date 也放容差、对分级字符串做模糊匹配),结果与论文不可比;对精度敏感应用(儿科剂量)还应意识到 ±5% 本身可能偏宽。

坑 7:把 “Open-Patients 真实 note” 理解为"全部来自真实 EHR"。 Open-Patients 主体 PMC-Patients 是病例报告摘要(真实病历叙事的发表版),但还含 12,893 条 MedQA-USMLE 考试题干与部分合成的 TREC 条目——"真实"是相对模板/手写合成而言的谱系,不是全量真实 EHR。做临床落地论证时需声明这一语域差异。

坑 8:在镜像站/第三方 fork 上被 gated 报错误导。 官方 ncbi/MedCalc-Bench 非 gated;某些镜像(如 hf-mirror.com)会 302 跳回原站,某些第三方 fork 才需要申请。获取失败先核对 URL 是否官方 repo,再确认网络与 token 环境,别把镜像问题当成数据集 gated。

坑点交叉索引(哪个坑该去哪个小节看细节):

坑 一句话 深入小节
坑 1 别当计算器数据库用 §1 Q1、§9.1
坑 2 license 用 CC BY-SA 4.0 §6.2、§7.2
坑 3 规模四口径要注明 §7.3、附录 A
坑 4 主文/附录 10-11 矛盾 §3.3、FACTS S-03
坑 5 train 未人工复核 §3.4、§5.3、§8
坑 6 ±5% 与精确匹配双轨 §4.3、§6.1
坑 7 "真实 note"是谱系 §3.2、§8
坑 8 镜像 gated 误报 §7.1

八坑的根因归类。八个坑并非杂乱罗列,它们分属三类根因,识别根因有助于记忆与推广:

  • 身份错位类(坑 1、坑 7):把评测基准误当资源库(公式库/语料库)——根因是"基准"与"语料"两种数据产品的形态差异未被检索者识别。通用修复动作:用之前先问"我需要的是可查询资源,还是带答案的考题?"
  • 元数据口径类(坑 2、坑 3、坑 4):数据卡/README/论文/附录之间的字段与数字不一致——根因是多源发布下缺少单一权威口径。通用修复动作:锁定一个版本一个口径,其余进存照表,绝不在同一文档内混用。
  • 质量与获取类(坑 5、坑 6、坑 8):质控分层、判分口径、镜像误导——根因是使用前未读元数据与协议细节。通用修复动作:下载后先跑附录 L 的验证清单,再开工。

八坑的成本估计。按"踩坑后返工代价"排序:坑 5(用未复核 train 训练再评测)与坑 3(口径混用导致数字对不上)返工代价最高,因为可能污染已完成的实验;坑 2(license 写错)次之,影响分发合规;坑 1/7/8 属可快速纠正的认知类;坑 4/6 属需注意但代价可控的引用类。建议的预防顺序是 5→3→2→6→4→7→1→8,即先建立质控与口径意识,再处理许可与判分,最后是认知与获取细节。

坑点自检口诀(贴在工作流里):下数据前查版本与许可(坑 2/3),开训练前查质控分层(坑 5),跑评测前定判分口径(坑 6),写报告前核规模来源(坑 3),引用前想清"是资源还是考题"(坑 1/7)。五步走完,八坑基本可避。

§11 总结:三句话、适合谁、30 秒决策卡

三句话:

  1. MedCalc-Bench 是首个系统评测 LLM 医学计算能力的公开基准:55 个真实临床计算器、1,047 道人工复核测试题,把"找公式、抽参数、算结果"三连拆开考。
  2. 它的旗舰发现是冷静的——GPT-4 one-shot CoT 仅 50.9%,zero-shot CoT 下一半以上错误是"不会背公式",而"算错数"反而是最小类;微调能补"见过的",补不了"没见过的"。
  3. 2026 年审计把它重定位为 tool-use 基准:在计算外包给解释器、知识交给检索的 agent 架构下,它测的正是现代医学 agent 的核心剩余能力。

适合谁:

  • 医学 LLM/agent 团队:需要计算维度标尺与错误诊断框架(Type A-D 直接可用);
  • 医学信息学教学:讲解"评测设计如何诊断模型失败"的完整案例;
  • 临床 AI 采购评估:验证模型计算能力的现成考卷(配合 §8 的局限声明);
  • 数据工程研究者:三层流水线(筛→抽→校)与 train/test 质量取舍的真实范本。

不适合谁:

  • 想查公式/评分标准的人(坑 1——请用 MDCalc/UptoDate);
  • 需要真实 EHR 语料的训练方(坑 7——note 主体是病例报告摘要与考试叙事,请看 mimic-iv-note rid 47);
  • 需要中文临床计算评测的团队(基准全英文,中文场景请看 cmb-cmexam rid 180 的定位后自行扩展);
  • 期望"刷过榜单=临床可用"的决策者(§6.1 背题风险 + §8 覆盖面限制)。

30 秒决策卡:

你的需求 建议
测模型的医学计算/评分表能力 用 test 1,047 例 + 官方评分器,口径锁 §4.3
训练/微调计算能力 可用 train,但知悉未人工复核(坑 5);场景封闭才划算(§5.3)
评测 agent 的工具调用 按 §6.1 重定位读法,code-augmented 协议(§5.4)
做许可合规/入库 CC BY-SA 4.0,注明 v1.2,衍生数据同方式共享(坑 2)
引用规模数字 论文口径 10,053/1,047,注明出处(坑 3)
找真实 EHR note 不是它——去 mimic-iv-note(rid 47)/ mtsamples(rid 350)
中文医学计算评测 无现成条目,本基准不可直接替代

FAQ:40 问

A 组:身份与定位

Q1:MedCalc-Bench 是数据集还是评测基准?
两者都是,但主打评测基准:本体是带参考答案的测试集(train 10,053 / test 1,047,论文口径),配套官方评分脚本与错误分类器,发布形态是"数据 + 评分器 + 复现指南"三件套。

Q2:它评的是哪一步能力?
三连:识别该用哪个计算器/公式 → 从临床 note 抽取目标属性 → 执行计算输出答案。任一环失败即整题失败,按最早错误归类诊断。

Q3:"首个"的头衔成立吗?
在其自我声明的时间点(2024 年中)与"大规模 + 公开 + 自动评分 + 医学计算全覆盖"的限定下成立;此后出现同类工作多引用它为前置。严谨表述是"首个大规模医学计算评测基准"。

Q4:谁是主导机构?
美国国立卫生研究院下属国立医学图书馆(NLM/NIH),主导者 Qiao Jin,资深作者 Zhiyong Lu、Qingyu Chen;17 位作者横跨 9 家机构。

Q5:发表在哪?影响力如何佐证?
NeurIPS 2024 Datasets & Benchmarks 赛道 Oral(该赛道最高展示档位之一);arXiv 2406.12036;PMID 41031072。

B 组:数据构成

Q6:55 个计算器怎么分的类?
两大类七子类:equation-based 36(Lab 19 / Physical 12 / Date 3 / Dosage 2)+ rule-based 19(Risk 12 / Severity 4 / Diagnosis 3)。

Q7:举几个代表性计算器?
equation 侧:MELD、CKD-EPI、Cockcroft-Gault 肌酐清除率、BSA、Free Water Deficit、预产期 EDD;rule 侧:SOFA、GCS、NIHSS、CHA2DS2-VASc、Wells、HEART。

Q8:test 的 1,047 例怎么分布?
Lab 327 / Physical 240 / Date 60 / Dosage 40 / Risk 240 / Severity 80 / Diagnosis 60,校验和 1,047。

Q9:note 从哪来?都是真实病历吗?
三来源:Open-Patients(覆盖 34 个计算器,主体 PMC-Patients 病例报告摘要,另含 MedQA-USMLE 题干 12,893 条与部分合成 TREC 条目)、Python 模板合成(11 个)、clinician 手写合成(10 个,各 20 例)。"真实"是相对合成而言的谱系,非全量真实 EHR。

Q10:Open-Patients 的 180,142 条怎么构成?
PMC-Patients 167,034(484 avg tokens)+ MedQA-USMLE 12,893(135.8)+ TREC Clinical Trials 125(137.7)+ TREC CDS 90(105.1)。

Q11:一例数据长什么样?
四元组(note、question、calculator、answer):note 平均 529.7 字符,问题平均 21.9 字符,目标属性 1-31 个(均值 5.4),答案为带单位数值/分级字符串/日期三选一。

Q12:为什么有的计算器用合成 note?
真实病历中某些场景极稀缺(如特定化疗剂量记录),Open-Patients 覆盖不到(55 中只有 34 个有合格真实 note),只能合成补齐——这是覆盖面与语域真实性之间的工程妥协。

C 组:评测与结果

Q13:考了哪些模型?
GPT-4、GPT-3.5-Turbo、Llama 3 8B/70B、Mistral-7B、Mixtral-8x7B、PMC-LLaMA-13B、MediTron-70B 共 8 个,× 3 种提示策略(zero-shot direct / zero-shot CoT / one-shot CoT)。

Q14:最好的成绩是多少?
GPT-4 one-shot CoT 50.9%(zero-shot CoT 48.4%);开源最佳 Llama 3 70B 约 47.8%;无一模型过半。

Q15:错误四类型是什么?
Type A 知识错误(公式/规则回忆失败)、Type B 属性抽取错误、Type C 计算错误、Type D 其他(拒答/格式);按最早发生的错误归类,分类器准确率 89%。

Q16:最大错误源是计算吗?
不是——zero-shot CoT 下知识错误(Type A)占比超过一半(PMC-LLaMA 0.96、GPT-4 0.35),计算错误(Type C)反而是最小类。“大模型算错数"在此数据下是迷思,真正瓶颈是"不会背"和"抽不对”。

Q17:微调能提升多少?
Mistral-7B 10.79%→49.19%,Llama-2-7B 1.53%→45.75%(train 集 2 epochs、lr 1e-5 等超参见 §5.3);但对 train 未覆盖的 15 个计算器泛化仍差——补内伤不补外伤。

Q18:code-augmented 是什么?
附录 D 的增强协议:模型把计算写成 Python 代码、评测方执行、编译错误最多重试 20 次(仅 GPT-3.5/4 参与)。计算错误下降,知识/抽取错误不变——"算"可以外包,"背"和"找"不能。

Q19:±5% 容差是怎么回事?
equation 数值类(lab/physical/dosage)允许 ±5% 相对误差以吸收舍入与单位换算差异;date 与 rule-based 精确匹配。这是基准争议最大的单一设计(§4.3、§6.1)。

D 组:获取与许可

Q20:去哪下?要申请吗?
HuggingFace ncbi/MedCalc-Bench(主 repo/v1.2)公开非 gated,CSV 直下;GitHub ncbi/MedCalc-Bench 有评分器与复现指南。

Q21:v1.0 和 v1.2 有什么区别?
v1.0(ncbi/MedCalc-Bench-v1.0,2025-11-18 数据卡)标 cc-by-4.0;v1.2(主 repo,2025-12-18)改标 cc-by-sa-4.0 且规模口径略增(10,543/1,100)。引用现行许可请用 v1.2。

Q22:为什么 license 从 CC BY 4.0 改成 CC BY-SA 4.0?
note 底层 PMC-Patients 是 CC BY-SA 4.0,SA 条款传染下游,v1.0 的 CC BY 4.0 是许可标注失误,v1.2 回撤改标。衍生数据集因此也必须同方式共享。

Q23:可以商用吗?
CC BY-SA 4.0 允许商用(满足署名),但衍生数据/改写版须以同许可共享;模型侧使用无额外限制,注意独立核对上游计算器定义(MDCalc 网站内容本身另有站点条款)。

Q24:第三方 Verified 版是什么?
nsk7153/MedCalc-Bench-Verified(2026-09-08,cc-by-sa-4.0):审计团队对官方数据重校验后的版本,可用于交叉验证;其规模口径 9,765/1,048 与官方不同(坑 3)。

E 组:比较与生态

Q25:和 MedQA/MedMCQA 什么关系?
任务正交:它们是选择题问答(考知识记忆与推理),MedCalc-Bench 是计算执行(考公式记忆+参数抽取+算术)。且 MedQA-USMLE 题干还是 MedCalc note 的来源之一——上下游兼对手。

Q26:和 MIMIC-IV-Note 什么关系?
语域对照而非上下游:MedCalc 因许可原因未用 MIMIC note,其 note 主体是病例报告摘要与考试叙事;需要真实 EHR 文本的场景应看 MIMIC-IV-Note(rid 47)。

Q27:审计论文说了什么?
arXiv 2603.02222《MedCalc-Bench Doesn’t Measure What You Think》:提示泄漏使基准可被"背题"(RL 后 MedCalc-R1 达 73.95%)、±5% 容差偏宽、train 未人工复核;主张把它重定位为 tool-use 基准。

Q28:73.95% 意味着原论文 50.9% 错了吗?
不构成矛盾:73.95% 是针对基准做了 RL 优化(含针对这 55 个计算器)后的分数,恰证明分数可刷、反映"对这组计算器的熟悉度";这正是审计"重定位为 tool-use"论点的证据。

Q29:中文医学计算有对应基准吗?
没有直接对应——MedCalc 全英文,库内 cmb-cmexam(rid 180)是中文 MCQ 双基准也不覆盖计算;中文临床计算评测目前是空白区,扩展时可直接复用其评分规则与属性体系。

F 组:进阶方法学

Q30:属性有哪几类?抽取难点在哪?
9 类:lab value、physical value、age、date、boolean、choice、string、dosage、percentage;难点在单位制切换、相对日期、否定句中的布尔条件与频次缩写。

Q31:为什么 test 刻意留 15 个 train 没见过的计算器?
把"微调学会的"(记忆)与"模型本会的"(泛化)分开测量——这使 §5.3 的"补内伤不补外伤"结论成为可能,也提醒使用者微调分数要分区报告。

Q32:想自建医学计算评测,能复用什么?
七子类分类法、9 类属性体系、±5%/精确匹配的双轨评分规则、错误四类型分类器与"最早错误归类"原则都可整体复用;建议先读官方评分器源码再定自己的容差口径。

Q33:MedCalc-Bench 的 note 可以拿去训练通用医学模型吗?
许可上可以(CC BY-SA 4.0 允许,衍生需同方式共享),但方法上不划算:note 是为计算评测筛选/合成的,分布窄、数值密集,远不如 PMC-Patients 全量或 MIMIC-IV-Note(rid 47)适合预训练。

Q34:test 里有没有"陷阱题"(note 故意含干扰信息)?
论文未设计专门陷阱题,但真实 note 天然含大量无关数值与化验——这正是 ±5% 容差之外真正考验抽取的地方。合成 note 的干扰度低于真实 note(§3.3),这是语域差异的又一体现。

Q35:错误分类器能直接拿来分类我自己模型的新错误吗?
官方分类器是针对四类型设计的规则系统(准确率 89%),复用前需检查你的任务输出格式是否与原口径一致;若新增错误形态(如 tool-call 格式错),需扩展 Type D 或增加类型。

Q36:为什么 date 无容差而数值有 ±5%?
日期的"对"没有模糊地带(预产期差一天在临床上就是不同建议),而数值计算存在舍入与单位换算的合理差异。两轨判分是按临床语义定严宽,不是随意的口径不一致。

Q37:审计论文的 Verified 数据集和官方的关系?
Verified(nsk7153/MedCalc-Bench-Verified)是第三方对官方数据的重校验版,不是官方分支;用它做主评测需在论文中声明来源与口径(9,765/1,048),且与官方口径结果不可直接混排。

Q38:可以只跑 test 的一个子类(比如只测 Severity)吗?
技术上可以(CSV 按计算器字段可筛),但要意识到子类样本量(Severity 80 例)远小于全集,分数波动大;跨模型比较时建议同时报全集与子类两个口径。

Q39:50.9% 的分母是什么?
test 1,047 例全体的题均正确率(论文口径)。它不是"55 个计算器中会几个"的计算器级正确率,也不是子类分数的简单平均——三种分母口径下的数字不同,引用时别混。

Q40:如果我的模型在 MedCalc-Bench 高分但院内试点失败,矛盾吗?
不必然矛盾:基准覆盖 55 个通用计算器、叙事干净、英文;院内失败可能来自覆盖面外计算器、EHR 语域差异(§8)、或集成问题。基准高分是"能力必要条件"而非"部署充分条件"。

事实清单:42 条硬事实

  1. MedCalc-Bench 是首个评估 LLM 医学计算能力的大规模公开评测基准。
  2. 论文:arXiv 2406.12036,v1 2024-06-17、v4 2024-06-30。
  3. 正式发表于 NeurIPS 2024 Datasets & Benchmarks 赛道,Oral 档位。
  4. PubMed 检索号 PMID 41031072。
  5. 主导机构:美国国立医学图书馆(NLM/NIH)。
  6. 17 位作者,横跨 9 家机构(NLM、Wisconsin–Madison、Oregon、Yale、Rice、UTHealth Houston、Melbourne、Macquarie、VA Salt Lake City)。
  7. 主导者 Qiao Jin;资深作者 Zhiyong Lu、Qingyu Chen。
  8. 覆盖 55 个临床计算器,选自 MDCalc popular 清单。
  9. 七子类:Lab 19、Physical 12、Date 3、Dosage 2、Risk 12、Severity 4、Diagnosis 3。
  10. equation-based 36 个;rule-based 19 个。
  11. test 1,047 例(论文口径),子类分布 327/240/60/40/240/80/60,校验和闭合。
  12. train 10,053 例(论文口径),覆盖 40 个计算器。
  13. train 入选标准:>20 条真实 note 或合成补足 20 例。
  14. test 覆盖全部 55 计算器,其中 15 个为 train 未覆盖(zero-shot-only)。
  15. test 全部人工复核;train 的 GPT-4 属性抽取未经人工校验。
  16. note 平均长 529.7 字符;问题平均 21.9 字符;属性 1-31 个、均值 5.4。
  17. 属性 9 类型:lab value、physical value、age、date、boolean、choice、string、dosage、percentage。
  18. 流水线三步:GPT-3.5-Turbo 筛合格 note → GPT-4 抽属性 → 医学专业人员校验。
  19. 合格 note 的关键判据之一:数值须为原始测量而非派生结果。
  20. note 三来源:Open-Patients 34 个计算器、Python 模板合成、clinician 手写合成。
  21. Open-Patients 共 180,142 条:PMC-Patients 167,034(484 avg tokens)+ MedQA-USMLE 12,893(135.8)+ TREC CT 125(137.7)+ TREC CDS 90(105.1)。
  22. PMC-Patients 许可为 CC BY-SA 4.0,是 MedCalc-Bench license 的决定因素。
  23. 主文与附录对合成来源计数存在 10/11 互换矛盾(主文:10 模板+11 手写;附录:11 模板+10 手写)。
  24. 评分规则:equation 数值类 ±5% 相对容差;date 与 rule-based 精确匹配。
  25. 评测矩阵:8 LLM × 3 提示策略。
  26. 8 模型:GPT-4、GPT-3.5-Turbo、Llama 3 8B、Llama 3 70B、Mistral-7B、Mixtral-8x7B、PMC-LLaMA-13B、MediTron-70B。
  27. 最佳成绩:GPT-4 one-shot CoT 50.9%(zero-shot CoT 48.4%)。
  28. 开源最佳:Llama 3 70B 约 47.8%(one-shot CoT)。
  29. PMC-LLaMA-13B 约 5-10%,医学领域预训练未转化为计算能力。
  30. 错误四类型:A 知识、B 抽取、C 计算、D 其他;按最早错误归类;分类器准确率 89%。
  31. zero-shot CoT 下知识错误占比 >50%(PMC-LLaMA 0.96 vs GPT-4 0.35);计算错误为最小类。
  32. 微调超参:2 epochs、batch 32、4 GPU、lr 1e-5、50 warmup、cosine decay、flash attention。
  33. 微调结果:Mistral-7B 10.79%→49.19%;Llama-2-7B 1.53%→45.75%。
  34. 论文自评:微调增益主要来自对训练计算器的记忆。
  35. code-augmented(附录 D):生成 Python 代码 + 用户执行 + 编译错误最多重试 20 次;仅 GPT-3.5/GPT-4。
  36. 审计论文:arXiv 2603.02222《MedCalc-Bench Doesn’t Measure What You Think》。
  37. 审计口径规模:9,765/1,048;RL 后 MedCalc-R1/DeepSeek-R1 最高 73.95%。
  38. 官方 HF repo:ncbi/MedCalc-Bench-v1.0(cc-by-4.0,2025-11-18)与 ncbi/MedCalc-Bench(v1.2,cc-by-sa-4.0,2025-12-18)。
  39. GitHub v1.2 README 规模口径:10,543/1,100;hyper.ai 镜像口径:10,055/1,047。
  40. 现行许可:CC BY-SA 4.0;衍生数据集须同方式共享。
  41. 官方 repo 非 gated;镜像站 302 跳转与第三方 fork 的 gated 报错与官方无关。
  42. 库内互链:medqa(rid 50)、medmcqa(rid 111)、pubmedqa(rid 49)、open-pmc(rid 45)、mimic-iv-note(rid 47)、cmb-cmexam(rid 180)等(§9 全表)。

事实清单使用说明:以上 42 条均可回溯到 FACTS.md 对应节或论文原文;编号仅为本条目内部引用方便。二次引用时不必带编号,但建议至少带"论文口径"或"版本"限定(见坑 3)。若需机器可读版本,可参照附录 K 的字段字典与附录 P 的速查组重建 JSON/CSV。

术语表:45 条

  1. MedCalc-Bench:本条目基准名,评估 LLM 医学计算的公开基准(NLM/NIH,2024)。
  2. equation-based:以公式/换算规则为知识载体的计算器大类(36 个)。
  3. rule-based:以逐项打分表为知识载体的计算器大类(19 个)。
  4. note(clinical note):临床笔记,基准的文本输入,含叙事化的患者信息。
  5. Open-Patients:18 万条候选 note 聚合语料库,四源构成(PMC-Patients/MedQA-USMLE/TREC CT/TREC CDS)。
  6. PMC-Patients:病例报告患者摘要语料(167,034 条),CC BY-SA 4.0,license 传染源。
  7. MDCalc:最大临床计算器聚合网站,55 计算器的选源清单。
  8. 属性抽取(attribute extraction):从 note 中定位目标参数(数值/日期/布尔)的中间任务。
  9. 派生值(derived value):笔记中已给出的计算结果;含派生值的笔记不合格,防止"抄答案"。
  10. ±5% 容差:equation 数值类判分允许的相对误差带宽。
  11. 精确匹配:rule-based 与 date 类判分要求输出与参考答案完全一致。
  12. CoT(chain-of-thought):思维链提示策略,本基准中 zero-shot CoT 与 one-shot CoT 两档。
  13. zero-shot-only 计算器:test 中 15 个 train 未覆盖的计算器,用于测泛化。
  14. Type A-D 错误:知识/抽取/计算/其他四类型失败分类,按最早错误归类。
  15. 知识错误(Type A):不知道或记错公式/评分规则,占比最高的错误类。
  16. 抽取错误(Type B):参数/单位/日期/布尔条件抽取失败。
  17. 计算错误(Type C):公式与参数对但算错,最小错误类。
  18. code-augmented:让模型生成代码交解释器执行的评测协议(附录 D)。
  19. MELD:终末期肝病评分,Lab 类代表计算器。
  20. Cockcroft-Gault:肌酐清除率公式,Physical 类代表,需年龄/体重/血肌酐/性别四参数。
  21. SOFA:序贯器官衰竭评估评分,Severity 类代表,六器官逐项打分。
  22. GCS:格拉斯哥昏迷评分,三组成分各自分档的 rule-based 代表。
  23. CHA2DS2-VASc:房颤卒中风险评分,Risk 类代表,字母对应风险项。
  24. EDD:预产期(estimated date of delivery),Date 类代表,历法推算。
  25. NIH:美国国立卫生研究院,NLM 的上级机构。
  26. NLM:美国国立医学图书馆,主导机构,PubMed/MEDLINE/UMLS 维护方。
  27. CC BY-SA 4.0:现行许可;SA(相同方式共享)要求衍生数据同许可发布。
  28. license 传染:上游 SA 条款约束下游衍生品的许可机制,经 PMC-Patients → MedCalc-Bench 链条发生。
  29. 提示泄漏(prompt leakage):问题文本点名计算器导致"识别"步骤失去考察力的设计缺陷(审计批评核心)。
  30. tool-use benchmark:审计论文的重定位——把 MedCalc-Bench 视为测"识别计算器+抽参数+组织调用"的 agent 评测。
  31. 最早错误归类:多步任务失败只记第一个发生错误的归因约定,使"第一道墙"可排序。
  32. zero-shot-only:test 中 15 个 train 未覆盖计算器的评测属性,专测泛化。
  33. 模板合成:按属性需求用 Python 生成结构化 note 的数据扩充方式(equation 类为主)。
  34. 手写合成:clinician 按真实工作流口吻撰写 note 的扩充方式(rule-based 类为主,各 20 例)。
  35. 合格性筛选:GPT-3.5 对候选 note 的前置判断(含可计算实体 + 数值非派生)。
  36. answer type:参考答案的三种形态——带单位数值、分级字符串、日期。
  37. 能力三连:识别计算器 → 抽取属性 → 执行计算的任务分解框架。
  38. 题均正确率:MedCalc-Bench 主分数口径(正确题数 / 总题数),区别于计算器级或子类级口径。
  39. 版本链:v1.0(cc-by-4.0)→ v1.2(cc-by-sa-4.0)→ Verified(第三方重校验)的演进序列。
  40. 口径登记:多来源数字冲突时锁定主口径并显式存照其余口径的写作纪律(本条目实践见坑 3)。
  41. 双轨判分:数值容差与符号精确并行的评分设计(§4.3)。
  42. 覆盖差分:40(train)vs 55(test)计算器覆盖差带来的记忆/泛化解耦设计。
  43. 语域差异:病例报告摘要/考试题干与真实 EHR 文本之间的分布距离。
  44. 质量分层:test 全人工复核 vs train 未复核的显式质控披露。
  45. fact sheet 纪律:硬数字必须能给出来源与口径的写作规范(本条目 FACTS.md 九节)。

附录 A:信息速查卡

项 值
slug medcalc-bench
正式名 MedCalc-Bench
一句话 首个大规模 LLM 医学计算评测基准
论文 arXiv 2406.12036(v4 主版本)|NeurIPS 2024 D&B Oral|PMID 41031072
主导 NLM/NIH(Qiao Jin;Zhiyong Lu、Qingyu Chen)
规模(论文口径) train 10,053 / test 1,047
计算器 55 个(equation 36 + rule 19,七子类)
许可 CC BY-SA 4.0(v1.2 现行)
获取 HF ncbi/MedCalc-Bench(非 gated)+ GitHub 评测器
主结果 GPT-4 one-shot CoT 50.9%;错误以知识类为主
最佳用途 医学计算/tool-use 评测、错误诊断框架、评测方法学教学
最差用途 公式查询、真实 EHR 语料源、中文计算评测

附录 B:DAIMS 数据集审计与完整性矩阵

维度 评级 依据
D 可发现性 A arXiv/HF/GitHub/PubMed 四路齐备;官方 repo 名称唯一;库内 slug 无冲突
A 可获取性 A- HF 公开非 gated,CSV 直下;扣分项:v1.0/v1.2 双 repo 易混淆、镜像站跳转误导
I 互操作性 B+ CSV + JSON 属性表 + 官方评分器;扣分项:分级字符串精确匹配对表示差异敏感
M 元数据充分性 B 论文附录给出 prompt 模板与计算器定义;扣分项:规模四口径、主文-附录计数矛盾
S 可持续性 B+ NIH 主导、社区 Verified 版出现;扣分项:license 变更史需引用者自行核对版本
综合评级 B+(评测基础设施级) 三件套齐全、错误诊断框架可复用;质量不对称与口径分歧是主要扣分点

附录 C:证据链(结论 → 来源)

结论 来源
55 计算器七子类分布、1,047 test arXiv 2406.12036 v4 正文表格
train 10,053 / 40 计算器 / 未人工复核 同上正文 §train 说明
Open-Patients 180,142 四源构成 同上正文数据来源节
note 三来源 34/11/10 同上正文与附录 A.2/A.3(含矛盾存照)
8 模型 × 3 策略、50.9%、错误四类型 同上评测节与错误分析节
微调数字与超参 同上微调实验节
code-augmented 协议 同上附录 D
license v1.0→v1.2 变迁 HF 数据卡两个版本对照
审计批评与 73.95% arXiv 2603.02222
NeurIPS Oral 项目主页与 HF 卡片表述(FACTS S-07)
库内查重 0 rows qf_psql.sh 全表查询(2026-09-28)

附录 D:选用决策树

你的需求是什么?
├─ 测模型的医学计算能力
│   ├─ 只要排名/对比 → test 1,047 + 官方评分器(§7.4 五步)
│   └─ 要错误诊断 → 官方分类器拿 Type A-D 分布(§5.2)
├─ 训练/微调
│   ├─ 场景封闭(固定几十个计算器)→ train 可用,知悉坑 5
│   └─ 场景开放 → 微调会虚假安全,先读 §5.3 再定
├─ 评测 agent/工具调用 → §6.1 重定位读法 + code-augmented 协议
├─ 需要真实 EHR note → 转库内 mimic-iv-note(rid 47)/ mtsamples(rid 350)
├─ 需要中文计算评测 → 无现成条目;复用属性体系与评分规则自建
└─ 只想查公式/评分标准 → 不要用它(坑 1),去 MDCalc/临床指南

附录 E:BibTeX

@inproceedings{jin2024medcalcbench,
  title     = {MedCalc-Bench: Evaluating Large Language Models for Medical Calculations},
  author    = {Jin, Qiao and others},
  booktitle = {Advances in Neural Information Processing Systems (NeurIPS),
               Datasets and Benchmarks Track},
  year      = {2024},
  note      = {Oral. arXiv:2406.12036. Data: huggingface.co/datasets/ncbi/MedCalc-Bench},
  url       = {https://arxiv.org/abs/2406.12036}
}

@misc{medcalcbench2026audit,
  title  = {MedCalc-Bench Doesn't Measure What You Think},
  author = {{Audit authors}},
  year   = {2026},
  note   = {arXiv:2603.02222}
}

(作者名单以论文 PDF 为准;引用前请补全 17 位作者。)

附录 F:生产档案

项 值
条目 slug medcalc-bench
写手代理 agent-c-medcalcben
写作日 2026-09-28
任务书 rsi_dispatch/task_medcalc-bench.md
研究底本 arXiv 2406.12036 HTML v4(/tmp/medcalc_paper.txt,125,110 字符纯文本)
FACTS writing/medcalc-bench/FACTS.md(九节)
锁文件 writing/medcalc-bench/.lock(2026-09-28T13:54 建)
查重 url_name/title 双 ILIKE → 0 rows(2026-09-28)
自检 check_md.py + preflight_check.py(见条目尾注执行记录)

附录 G:FAIR 检查单

维度 状态
F1 元数据唯一标识 arXiv 2406.12036 / HF dataset id / PMID 41031072
F2 数据唯一标识 HF ncbi/MedCalc-Bench(v1.2 主 repo)
A1 元数据可检索 论文公开 + HF 卡片 + GitHub README
A2 数据可访问 非 gated,CSV 公开直链
I1 标准格式 CSV/JSON + Python 评分器
I2 词汇表 9 类属性体系、七子类分类法(论文定义)
R1 来源说明 note 三来源 + Open-Patients 四源构成(论文披露)
R2 许可 CC BY-SA 4.0(v1.2 现行,变更史存照)

附录 H:缩写表

缩写 全称 释义
NLM National Library of Medicine 美国国立医学图书馆(主导机构)
NIH National Institutes of Health 美国国立卫生研究院(NLM 上级)
EHR Electronic Health Record 电子健康记录
MCQ Multiple Choice Question 选择题(对照任务形态)
CoT Chain-of-Thought 思维链提示
EDD Estimated Date of Delivery 预产期
LMP Last Menstrual Period 末次月经(EDD 计算输入)
MELD Model for End-stage Liver Disease 终末期肝病模型评分
SOFA Sequential Organ Failure Assessment 序贯器官衰竭评估
GCS Glasgow Coma Scale 格拉斯哥昏迷评分
NIHSS NIH Stroke Scale NIH 卒中量表
BSA Body Surface Area 体表面积
RL Reinforcement Learning 强化学习(审计论文的刷分手段)
SA ShareAlike 相同方式共享(CC BY-SA 的 SA)
HF HuggingFace 数据托管平台
D&B Datasets and Benchmarks NeurIPS 赛道名

附录 I:维护触发点

触发条件 动作
HF 官方 repo 发布 v1.3+ 核对规模口径与 license,更新 §7.3 口径表与坑 3
审计论文正式发表(期刊版) 更新 BibTeX 附录 E 与 §6.1 引用格式
新模型刷榜超 50.9%/73.95% 更新 §5.1/§6.1 主结果段与 INFOBOX
PMC-Patients 许可再变更 立即核查传染链(坑 2),必要时改写 §6.2/§7.2
中文临床计算基准出现 更新 §9 生态位与 Q29
NeurIPS 官方接收列表可查 核实 S-07(Oral 表述)并移除存照标记

附录 J:研究检查清单

  1. 任务书三查完成(锁文件、临时文件唯一化、ps 留痕)。
  2. 存在性核验:库内 url_name/title 双查重 0 rows;外部 arXiv/NeurIPS/HF/GitHub/PubMed 五源确证。
  3. 与库内 medqa/medmcqa 等的任务正交性论证完成(§1 Q1 注、§9 全表)。
  4. 论文 v4 全文抓取并结构化抽取(数字链三处闭合:1047、34+11+10、180,142)。
  5. 主文-附录矛盾、train 未人工复核、规模四口径、license 变迁四项存照登记(FACTS S-01~S-08)。
  6. 坑点 8 则(≥6 达标),覆盖使用/许可/口径/质量四类风险。
  7. DAIMS 六维矩阵与 FAIR 检查单齐备。
  8. category_tags 5 词均取自受控词表,拼接远低于 100 字符上限。
  9. 双口径/多口径均在正文显式标注来源,未混用。
  10. 自检脚本双零通过(check_md.py / preflight_check.py)。

附录 K:数据字段字典

test.csv / train.csv 每行字段的语义速查(字段名以实际下载文件为准,此处为语义映射):

字段 类型 语义 使用注意
note text 临床笔记原文(平均 529.7 字符) 含真实/考试/合成三种语域(坑 7)
question text 明确问题(平均 21.9 字符) 通常点名计算器(提示泄漏,坑 6 相关)
calculator string 目标计算器名称 与论文附录 A.1 名录对应
calculator_type string equation-based / rule-based 决定判分轨道
attributes JSON 目标属性表(9 类型,1-31 个) train 侧未人工复核(坑 5)
answer string 参考答案(数值带单位/分级/日期) 分级字符串精确匹配,注意规范化
answer_type string 数值 / 分级 / 日期 date 无容差(§4.3)
split 元信息 string train / test 及计算器覆盖标记 15 个 zero-shot-only 计算器勿混入训练

字段级的三条使用红线:不要用 test 任何字段做训练;不要假设 attributes 在 train 侧为人工质量;不要在衍生发布中丢失 answer_type(判分轨道依赖它)。

附录 L:评测协议模板(可直接抄的最小协议)

对自研模型在 MedCalc-Bench 上出报告时,建议显式声明以下八项——缺任何一项,结果都难以与论文口径或他人复现对齐:

  1. 数据版本:v1.0 / v1.2 / Verified(仓库与提交号);
  2. 划分口径:test 全集 1,047(论文口径)或注明实际行数与差异原因;
  3. 提示策略:zero-shot direct / zero-shot CoT / one-shot CoT(附 prompt 全文);
  4. 判分口径:±5% 数值容差与精确匹配的轨道是否与官方评分器一致;
  5. 输出规范化:单位换算、大小写、空白处理规则;
  6. 子类分解:七子类与 15 个 zero-shot-only 的分数单列;
  7. 错误分析:Type A-D 分布(如使用官方分类器,注明 89% 准确率边界);
  8. 代码增强声明:是否允许解释器执行与重试预算(如沿用附录 D 的 20 次)。

这八项本质上是对"口径漂移"的防御:MedCalc-Bench 的分数分歧大多不是模型差异而是口径差异,协议先行可以把争论留在模型层面。

附录 M:常见误用场景演练

场景 错误做法 后果 正确做法
团队想给模型补医学计算能力 直接在 test 上微调 榜单虚高、泛化为零 train(40 计算器)训练 + test(55)评测,报告分区分数
论文引用"模型 X 达 49%" 只引微调 Mistral-7B 数字 误导为通用能力 写明"微调后、40 已见计算器、泛化仍差"(§5.3)
数据卡写 license CC BY 4.0 沿用 v1.0 旧卡 许可链错误 CC BY-SA 4.0(v1.2),衍生同方式共享(坑 2)
综述写"10,543 例训练" 混用 GitHub 口径与论文口径 读者对不上数字 锁定一个口径并注明来源(坑 3)
评测报告 73%+ 分数 自训针对基准的模型后宣称 SOTA 触发"背题"质疑 声明 RL 针对性训练性质,按 tool-use 口径解读(§6.1)
医院采购用总分一票通过 只看全集分数 语域/覆盖外推风险 按 §8 声明局限,子类+院内自建题双验证

附录 N:引用格式与免责声明模板

对外报告/论文引用本条目数据时的推荐句式:

我们在 MedCalc-Bench(Jin et al., NeurIPS 2024 Datasets and Benchmarks Track, Oral; arXiv:2406.12036)上评测了模型 X。数据取自 HuggingFace ncbi/MedCalc-Bench(v1.2,CC BY-SA 4.0),train/test 规模按论文口径 10,053/1,047 报告。评测采用 zero-shot CoT,判分沿用官方评分器(数值 ±5% 容差、符号精确匹配)。报告分数为 test 全集题均正确率,并单列 15 个 train 未覆盖计算器的泛化分数。错误分析使用官方分类器(准确率 89%)按 Type A-D 归类。注意:本基准覆盖 55 个英文通用临床计算器、note 语域以病例报告摘要为主,分数不外推到中文场景、EHR 原生文本或覆盖外计算器。

这段模板把 §8 的六条局限与 §7 的口径声明一次带齐,可直接作为"口径脚注"使用。

附录 O:一页纸极简摘要

给只有 60 秒的读者:

  • 是什么:首个大规模医学计算 LLM 评测基准,55 个临床计算器、1,047 道人工复核测试题(train 10,053)。
  • 谁做的:NLM/NIH 主导,17 作者 9 机构,NeurIPS 2024 D&B Oral。
  • 考什么:给 note + 问题,模型须找公式、抽参数、算结果;7 子类(Lab/Physical/Date/Dosage/Risk/Severity/Diagnosis)。
  • 结果:GPT-4 one-shot CoT 最高 50.9%;zero-shot CoT 下知识错误占一半以上(不是计算错误)。
  • 微调:Mistral-7B 10.79%→49.19%,但对未见过计算器泛化差。
  • 许可:CC BY-SA 4.0(v1.2),衍生须同方式共享。
  • 怎么用:测计算能力/做错误诊断/建 agent 评测;别当公式库或真实 EHR 语料用。
  • 一句话结论:它证明的是"最干净的临床叙事上,最强模型做不对一半医学计算",并把失败拆成可干预的四类。

附录 P:延伸 FAQ 40 问(速查组)

本组是正文 FAQ 的压缩速查版,一问一行,供 OCR/关键字检索使用(回答细节请回正文 §对应节)。

基础认知

  • P01 全称:MedCalc-Bench;P02 类型:医学计算 LLM 评测基准;P03 发布方:NLM/NIH;P04 年份:2024;P05 会议:NeurIPS D&B Oral;P06 论文:arXiv 2406.12036;P07 PMID:41031072;P08 slug:medcalc-bench;P09 库内查重:0 rows;P10 首要用途:测模型医学计算能力。

数据规模

  • P11 计算器:55 个;P12 train:10,053;P13 test:1,047;P14 equation 计算器:36;P15 rule 计算器:19;P16 Lab 例数:327;P17 Physical 例数:240;P18 Risk 例数:240;P19 note 候选:180,142;P20 平均 note 长:529.7 字符。

任务与标注

  • P21 三连任务:识别-抽取-计算;P22 属性类型:9 类;P23 属性个数范围:1-31;P24 流水线步数:3 步;P25 前置筛选用模型:GPT-3.5-Turbo;P26 属性抽取用模型:GPT-4;P27 test 质控:全人工复核;P28 train 质控:未人工复核;P29 note 三来源:真实/模板/手写;P30 派生值处理:必须过滤。

评测结果

  • P31 评测模型数:8;P32 策略数:3;P33 最佳分:50.9%;P34 最佳配置:GPT-4 one-shot CoT;P35 错误类型数:4;P36 最大错误类:知识错误;P37 最小错误类:计算错误;P38 分类器准确率:89%;P39 微调最佳增益:+38.40(Mistral-7B);P40 泛化结论:补内伤不补外伤。

获取与许可

  • P41 托管平台:HuggingFace;P42 repo:ncbi/MedCalc-Bench;P43 是否 gated:否;P44 现行许可:CC BY-SA 4.0;P45 v1.0 旧许可:CC BY 4.0;P46 license 变更根因:PMC-Patients 传染;P47 衍生要求:同方式共享;P48 规模口径数:4 套;P49 第三方版:MedCalc-Bench-Verified;P50 评分器来源:GitHub。

对照与边界

  • P51 vs MedQA:任务正交;P52 与 MedQA 的数据关系:题干是 note 来源之一;P53 vs MIMIC:语域对照,未使用;P54 语言:英文;P55 中文覆盖:无;P56 真实 EHR 占比:低(TREC CDS 少量);P57 审计论文:arXiv 2603.02222;P58 审计重定位:tool-use 基准;P59 审计最高分:73.95%;P60 容差争议:±5% 偏宽。

方法学

  • P61 判分轨道:数值容差 / 符号精确;P62 zero-shot-only 计算器:15 个;P63 训练覆盖计算器:40 个;P64 微调超参 epochs:2;P65 微调 lr:1e-5;P66 code-augmented 重试上限:20 次;P67 code-augmented 参与模型:GPT-3.5/4;P68 代码增强改善的错误类:Type C;P69 代码增强无改善的:Type A/B;P70 DAIMS 综合评级:B+。

从业建议

  • P71 自建评测可复用:分类法/属性体系/双轨判分/四类型;P72 场景封闭时建议:可微调;P73 场景开放时建议:重泛化评测;P74 采购验证建议:子类+院内题双验证;P75 中文场景建议:自建扩展;P76 引用规模建议:锁定论文口径;P77 训练建议:train 可用但知噪声;P78 报告建议:八项协议全声明;P79 最关键一句:知识错误占一半以上;P80 最大误读:把 MedCalc 当公式查询库。

附录 Q:术语中英对照查找表

中文 英文 出现节
医学计算器 medical calculator §1、§3.1
临床笔记 clinical note §3.2、§4.1
方程型 equation-based §3.1
规则型 rule-based §3.1
属性抽取 attribute extraction §3.4、§4.2
派生值 derived value §3.3、§3.4
容差 tolerance §4.3
精确匹配 exact match §4.3
思维链 chain-of-thought §5.1、§5.7
单例提示 one-shot §5.1、§5.7
零样本 zero-shot §5.1
知识错误 knowledge error §5.2
抽取错误 extraction error §5.2
计算错误 calculation error §5.2
微调 fine-tuning §5.3
代码增强 code-augmented §5.4
工具使用 tool use §5.6、§6.1
提示泄漏 prompt leakage §6.1
相同方式共享 ShareAlike §6.2、§7.2
质量分层 quality stratification §3.4、附录 J

附录 R:参考书目

  1. Jin Q, et al. MedCalc-Bench: Evaluating Large Language Models for Medical Calculations. NeurIPS 2024 Datasets and Benchmarks Track (Oral). arXiv:2406.12036(v1 2024-06-17;v4 2024-06-30).
  2. MedCalc-Bench 数据集卡 v1.0. HuggingFace ncbi/MedCalc-Bench-v1.0(CC BY 4.0,2025-11-18).
  3. MedCalc-Bench 数据集卡 v1.2. HuggingFace ncbi/MedCalc-Bench(CC BY-SA 4.0,2025-12-18).
  4. MedCalc-Bench 代码与复现指南. GitHub ncbi/MedCalc-Bench.
  5. MedCalc-Bench Verified(第三方重校验). HuggingFace nsk7153/MedCalc-Bench-Verified(CC BY-SA 4.0,2026-09-08).
  6. MedCalc-Bench Doesn’t Measure What You Think. arXiv:2603.02222(2026)——审计与 tool-use 重定位.
  7. PubMed 检索记录:PMID 41031072.
  8. 库内参照条目:open-pmc(rid 45)、medqa(rid 50)、medmcqa(rid 111)、mimic-iv-note(rid 47)、pubmedqa(rid 49)、cmb-cmexam(rid 180)、multimedbench(rid 129)、ehrshot(rid 11)、i2b2-n2c2-nlp(rid 14).

附录 S:致谢与生成说明

本条目由千方病案医数集(qianfanghub)生产。研究底本为 arXiv 2406.12036 v4 全文(HTML 抓取 → 去标签清洗 → 125,110 字符纯文本),辅以 HuggingFace 数据卡(v1.0/v1.2 双版本对照)、GitHub README、PubMed 检索与审计论文(arXiv 2603.02222)摘要信息。所有库内互链 rid 均经 qf_psql.sh 对生产库实查(2026-09-28)。硬数字以论文口径为主口径;四处多口径分歧(规模/合成计数/标题表述/Oral 出处)在 FACTS.md 逐条存照。本条目为百科式二次整理,不复制原始数据;数据使用请遵循 CC BY-SA 4.0 并引用原论文。

附录 T:版本与勘误记录

日期 变更 说明
2026-09-28 初版 写手 agent-c-medcalcben;研究底本 arXiv 2406.12036 v4;FACTS 九节定稿
(待) 版本跟踪 官方 v1.3+ 发布、审计论文期刊版、新模型刷榜、许可再变更时更新(触发点见附录 I)

发现勘误请通过千方病案医数集条目反馈渠道提交;本条目对硬数字的修订以"锁定口径 + 存照旧口径"为纪律,不做静默改写。

附录 U:本条目与 FACTS 的对应表

写手内部核对用:本条目每一处硬数字 → FACTS.md 对应节。

本条目位置 内容 FACTS 节
§1 Q2、§3.1 55 计算器七子类分布 FACTS §4.1
§1 Q3、§3.5 train 10,053 / test 1,047 FACTS §4.2
§3.2 Open-Patients 180,142 四源 FACTS §4.3
§3.3、坑 4 note 三来源 34/11/10 矛盾 FACTS §5、S-03
§4.3 判分规则 FACTS §4.4
§5.1-5.4 评测、错误、微调、code-aug FACTS §7
§6 审计与版本链 FACTS §6、S-01
§9 互链 rid FACTS §8
坑 2 license 变迁 FACTS §6、S-05
坑 5 train 未复核 FACTS S-02

附录 V:写手质量自评

维度 自评 说明
三查执行 通过 锁文件、临时文件唯一化、ps 留痕
存在性核验 通过 库内 0 rows;外部五源确证
数字可溯源 通过 全部硬数字给出来源;三处数字链闭合自检
多口径处理 通过 四口径 + 主文-附录矛盾 + 标题口径全部存照
坑点覆盖 通过 8 则(≥6 要求),含根因归类与成本排序
库内互链 通过 14 条带 rid,含双向锚点建议
自检脚本 待执行 check_md.py + preflight_check.py(见尾注)
遗留疑点 已登记 17 作者完整名单、NeurIPS 官方列表、审稿分

附录 W:给三类读者的最短路径

  • 30 秒版:读附录 O 一页纸极简摘要 + INFOBOX;
  • 10 分钟版:INFOBOX → §0 → §1 → §5.1 → §10 → 附录 O;
  • 1 小时深读版:按 §0 读法三则逐条展开,重点在 §3.4(流水线取舍)、§5.2(错误框架)、§6(争议重定位)、§8(局限)。
  • 要动手用:附录 L 协议模板 + 附录 K 字段字典 + §7.4 五步 + §7 的下载验证清单。

尾注

本条目由千方病案医数集写手代理 agent-c-medcalcben 于 2026-09-28 完成:研究底本为 arXiv 2406.12036 v4 全文(HTML 抓取清洗为 125,110 字符纯文本),辅以 HuggingFace 数据卡(v1.0/v1.2 对照)、GitHub README、PubMed 检索与审计论文(arXiv 2603.02222)摘要;库内查重与互链 rid 均经 qf_psql.sh 实查。FACTS.md 九节存证于同目录。硬数字以论文口径为主口径,全部多口径分歧在坑 3 与 FACTS S-01 存照;主文-附录矛盾在坑 4 存照。条目 URL 占位:https://www.qianfanghub.com/ai-ready-dataset/medcalc-bench/708


相关数据集导航

以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:

  • clicr — 共享标签:医学问答与基准 / 医学问答 / 临床文本 / 医疗NLP
  • blue-benchmark — 共享标签:医学问答与基准 / 评测基准 / 临床文本 / 医疗NLP
  • healthsearchqa — 共享标签:医学问答与基准 / 评测基准 / 医学问答 / 医疗NLP
  • claimify — 共享标签:医学问答与基准 / 评测基准 / 医学问答 / 医疗NLP
  • pubmedqa — 共享标签:医学问答与基准 / 评测基准 / 医学问答 / 医疗NLP
  • medqa — 共享标签:医学问答与基准 / 评测基准 / 医学问答 / 医疗NLP
  • medmcqa — 共享标签:医学问答与基准 / 评测基准 / 医学问答 / 医疗NLP
  • medicationqa — 共享标签:医学问答与基准 / 评测基准 / 医学问答 / 医疗NLP
  • cmb-cmexam — 共享标签:医学问答与基准 / 评测基准 / 医学问答 / 医疗NLP
  • mednli — 共享标签:医学问答与基准 / 评测基准 / 临床文本 / 医疗NLP

导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

返回 AI-Ready 数据集