M4Bench: Evaluating Procedural Specification for Clinical EHR Derivation Agents¶
会议: NeurIPS2026
arXiv: 2610.37459
代码: https://github.com/hannesill/m4
领域: 其他
关键词: 临床电子病历、衍生变量、代码智能体、过程性规范、评测基准
一句话总结¶
本文提出针对电子病历衍生变量构建的代码智能体评测基准 M4Bench,通过 28 项跨 MIMIC-IV 与 eICU 的重构任务及严密对照实验,证实临床专家审校的过程性 Skill 能将 Codex 匹配奖励提升 0.136,且该增益本质上主要来自临床规则的完备度而非特定 Skill 封装格式。
研究背景与动机¶
在基于重症监护与电子病历(EHR)的临床观察性研究中,研究队列的筛选与预后评估极度依赖关键衍生变量。这类变量包括器官功能衰竭评分(如 SOFA、APS-III、SAPS-II、OASIS)、脏器功能障碍指标(如 KDIGO 急性肾损伤分期、MELD 终末期肝病模型)以及核心表型定义(如 Sepsis-3 脓毒症与疑似感染窗口)。然而,这些关键变量在原始临床数据库中极少以现成的数据列存在,其底层计算逻辑往往深深分散在繁杂的项目编码(itemid)、单位换算、时间开窗对齐、缺失值默认填补策略以及特定数据版本的数据清洗惯例中。同一临床概念在不同实现细节上的微小分歧,会剧烈改变入组队列人群分布与下游统计推断结论。
现阶段以大语言模型驱动的代码智能体(Coding Agents)虽然展现出了强大的 SQL 编写、自省调试与迭代执行能力,但在面对严肃的真实世界医疗数据库时,面临着“隐性过程知识(tacit procedural knowledge)”断层的严峻困境。数据库的物理表结构和字段注释仅能提供数据模式结构(Schema),却无法表征如何将去甲肾上腺素等多类升压药折算为等效剂量、在何时应将缺失的器官系统评分默认视为零分、或如何根据抗生素使用时间与微生物送检时间窗口的先后优先级判定感染发生。此类高度专业的过程性知识目前多隐藏在临床专家的头脑中或散落于社区公开代码库(如 MIT-LCP MIMIC-Code)内,此前没有任何基准能将这种领域专家经验转化为可版本化、可严谨审计的智能体过程性制品并定量评测。
为填补这一空白,研究团队不再局限于让模型回答自由文本形式的临床问答或简单的文本转 SQL(Text-to-SQL),而是设计了系统性评估基准 M4Bench。本文的核心切入点在于:将人类临床专家的隐性推导规程提炼为形式化的 Markdown Agent Skill 规范,并在严密受控的无网络沙箱中考察智能体复现真实临床衍生变量的能力。核心 idea:将临床数据库派生变量中的隐性规则解构为可独立审计的过程性规程(Procedural Specification),通过多重消融与对照实验量化过程完备度、封装格式与模式先验对智能体真实代码生成的一致性影响。
方法详解¶
整体框架¶
M4Bench 依托真实临床重症数据库构建了一个高保真、强隔离的评测闭环。基准涵盖 15 个临床任务家族、共 28 项派生任务(包含 26 个 MIMIC-IV 任务与 2 个 eICU 任务)。每个任务由一份任务说明卡(Task Card)、一个预先移除了目标结果表的隔离 DuckDB 数据库副本以及可选的过程性 Skill 组成。智能体在 OS 容器级隔离且完全断网的环境下运行,通过代码执行探索数据表、编写数据提取逻辑并输出包含唯一主键与数值列的 output.csv。
评测系统对智能体提交的 CSV 进行逐行、逐列对齐与容差比对,计算与公开权威概念代码构建的基准真值之间的连续标量奖励(Reward),并辅以严格通过率(Strict Pass)、主键 F1 分数(Key F1)以及归一化平均绝对误差(nMAE)等全方位诊断指标。评测流水线及对照设计如图所示:
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["任务输入<br/>任务说明 + DuckDB 镜像"] --> B["过程性规程注入<br/>无Skill / 诱饵 / 参考SQL / 临床Skill"]
B --> C["沙箱代码执行与推导<br/>Docker容器隔离 / 严禁外部联网"]
C --> D["标准化产物输出<br/>生成 output.csv (主键 + 目标列)"]
D --> E["评测对齐与惩罚度量<br/>主键左连接 / 扣除多余与重复键"]
E --> F["多维指标评估<br/>Reward / Strict Pass / Key F1 / nMAE"]
关键设计¶
1. 临床任务设计与标准/原始(Standard vs Raw)双轨分级机制
针对真实场景中不同抽象层次的数据工程挑战,M4Bench 将任务划分为两类形态以解耦智能体的能力边界。标准任务(Standard Mode,共 11 项)保留了官方派生库中已清洗完成的中间特征表(例如已归一化的用药记录或生理体征),仅移除最终目标评分表,用以考察模型在具备高质量特征前提下的临床规则组装能力;而原始任务(Raw Mode,共 17 项)不仅移除最终概念表,在 MIMIC-IV 上更是彻底剥离了 mimiciv_derived 模式,强制智能体必须从最底层的原始事件表(如 chartevents、prescriptions、microbiologyevents)出发,自行解决脏数据过滤、itemid 识别、单位换算、窗口聚合与多表时序 Join。整个基准包含从患者住院尺度(如 Charlson 合并症指数、基线肌酐)、ICU 入住尺度(如 SOFA 24h、APS-III、SAPS-II、MELD)、事件尺度(如疑似感染识别)到精细滑动时序窗口(如每小时滚动计算的尿量生成率、机械通气状态区间)等多种输出粒度,部分衍生任务真实参考行数突破 400 万行。
2. 临床专家双盲审校与版本化过程性规程(Agent Skill)
为了确保注入的过程性规程具备临床真实性与学术可溯源性,团队由 4 位拥有重症医学、急诊医学、创伤外科与医学人工智能背景的资深临床医师兼研究员(C1–C4)组成审校委员会。每项任务及对应的 Skill Markdown 文档均由至少两位临床专家进行独立双盲审校,就任务定义、数据模式映射、临床排除标准与边缘情况达成共识。生成的 Skill 是一份结构化 Markdown 文档,详细列明公式定义、关键项目标识符集合、有效时间窗口判定逻辑、缺失值填补规约与输出主键粒度约束,但严禁包含可直接运行的 SQL 代码片段、中间答案路径或样本答案行,确保智能体必须依靠理解过程性规范来独立编写代码。
3. 对齐惩罚评分函数与多重对照解构机制
为精准度量智能体生成结果与真实目标表之间的部分一致性,避免全有或全无(All-or-Nothing)式二元评测带来的信号稀疏,M4Bench 设计了融入主键惩罚的连续标量奖励(Reward)函数。对于任务 \(t\)、待评分数值列集合 \(C_t\)、隐藏标准真值键集合 \(K_t\) 与智能体产物 \(A_t\),评测器通过声明主键将 \(A_t\) 左连接至真值表 \(G_t\)。若智能体生成了多余主键或重复主键,则直接计入分母作为严厉惩罚项:
其中 \(\approx\) 表示完全相等或在严格容差范围内的浮点数值/时间戳匹配。为进一步解构 Skill 带来的能力增益到底源自何处,M4Bench 设置了四组精密的对照实验:(1)诱饵 Skill(Decoy Skill):提供格式完全一致但任务领域不匹配的规程文件,排除单纯增加上下文长度或提示工程带来的通用收益;(2)原始参考 SQL(Raw Reference SQL):直接注入专家编写的参考 SQL 查询,考察具备代码结构参考时的表现上限;(3)操作性规范(Operational Spec):仅提供详尽的非 SQL 临床医学判定规则,剔除具体数据库 itemid 和提取配方,分离医学逻辑完整性与底层数据库导航难度;(4)模式扰动(Schema Perturbations):对底层表名、字段名进行字符混淆(Obfuscation)或重构打散(Restructuring),探究智能体对 MIMIC 数据模式的记忆程度与泛化鲁棒性。
实验关键数据¶
主实验¶
基准在严格容器隔离下,使用 OpenAI Codex 系列(GPT-5.4-Mini、GPT-5.5)作为主要评测对象(共 760 次正式运行,每单元 5 次试验并进行任务均衡平均),并在 Claude Code(Opus-4.7、Sonnet-4.6,共 560 次运行)上开展了全量 28 项任务的验证复现。下表展示了主要模型在无 Skill 与有 Skill 条件下的任务均衡评测结果:
| 模型 / 评测分组 | 条件 (Condition) | 匹配奖励 (Reward) | 增益 (Delta [95% CI]) | 提升任务比例 | 严格通过率 (Strict Pass) | 主键 F1 (Key F1) | 排序 nMAE |
|---|---|---|---|---|---|---|---|
| GPT 5.4 Mini | No Skill / With Skill | 0.639 / 0.802 | +0.162 [0.099, 0.232] | 26 / 28 | 6/140 vs 13/140 | 0.957 vs 0.963 | 0.134 vs 0.068 |
| GPT 5.5 | No Skill / With Skill | 0.767 / 0.876 | +0.109 [0.060, 0.166] | 24 / 28 | 7/140 vs 12/140 | 0.967 vs 0.967 | 0.098 vs 0.052 |
| Codex 均衡均值 | No Skill / With Skill | 0.703 / 0.839 | +0.136 [0.085, 0.191] | 26 / 28 | 13/280 vs 25/280 | 0.962 vs 0.965 (+0.003) | 0.116 vs 0.060 (-0.056) |
| Claude Opus 4.7 | No Skill / With Skill | 0.769 / 0.852 | +0.083 [0.038, 0.135] | 25 / 28 | 17/140 vs 22/140 | 0.985 vs 0.987 | 0.082 vs 0.053 |
| Claude Sonnet 4.6 | No Skill / With Skill | 0.725 / 0.881 | +0.156 [0.087, 0.231] | 20 / 28 | 8/140 vs 15/140 | 0.969 vs 0.982 | 0.105 vs 0.051 |
| Claude 均衡均值 | No Skill / With Skill | 0.747 / 0.867 | +0.120 [0.067, 0.177] | 21 / 28 | 25/280 vs 37/280 | 0.977 vs 0.985 (+0.008) | 0.094 vs 0.052 (-0.042) |
消融实验¶
通过在预先指定的代表性子集上运行诱饵 Skill、参考 SQL、操作性规则规范以及数据库模式混淆实验,深入剖析性能跃升的驱动要素:
| 对照实验类型 | 覆盖任务集 | 对照配置 (Condition A vs B) | 指标表现 (Metric A vs B) | 净差异 (Delta [95% CI]) | 核心结论 |
|---|---|---|---|---|---|
| 诱饵控制组 | 10 任务子集 | No Skill vs Decoy Skill | Reward: 0.553 vs 0.554 | +0.001 [-0.015, 0.018] | 诱饵几乎无提升,排除提示词长度增加带来的虚假增益 |
| 代码结构控制组 | 10 任务子集 | Targeted Skill vs Raw SQL | Reward: 0.833 vs 0.837 | +0.003 [-0.035, 0.041] | 纯文字规范几乎抹平了与显式参考 SQL 之间的差距 |
| 规范完备度控制组 | 8 任务子集 | No Skill vs Operational Spec | Reward: 0.606 vs 0.767 | +0.162 [0.072, 0.260] | 仅提供非 SQL 临床规则即可收获大部分核心收益 |
| Skill 封装增量 | 8 任务子集 | Operational Spec vs Skill | Reward: 0.767 vs 0.792 | +0.024 [-0.034, 0.099] | 包含代码 itemid 与技巧的完整 Skill 边际增益未达统计显著 |
| 模式混淆扰动 | 26 个 MIMIC 任务 | Native vs Obfuscated Schema | Skill Delta: 0.157 vs 0.135 | 鲁棒保留率: 86.2% | 模型面对打乱字段名仍保留大部 Skill 解读执行能力 |
| 模式重构扰动 | 26 个 MIMIC 任务 | Native vs Restructured Schema | Skill Delta: 0.157 vs 0.110 | 鲁棒保留率: 70.4% | 重组表结构对跨表时序 Join 带来额外挑战,但规范仍显著生效 |
关键发现¶
- 过程性规范的完备度主导了全部收益:在 8 任务机制子集上,仅补充纯文本临床规则(Operational Spec)就能带来 +0.162 的显著提升;而在其基础上进一步提供具体 itemid 和数据工程指南的完整 Skill 仅额外带来 +0.024 的微弱上浮,且 95% 置信区间跨越零点。这说明大模型欠缺的本质上是“严谨明确的业务逻辑”,而非缺乏在数据库中搜索字段的基础能力。
- 匹配精度的提升并未解决数据颗粒度问题:尽管 Reward 提升了 0.136 且数值平均绝对误差(nMAE)显著收窄,但智能体在主键集合上的 F1 分数几乎纹丝不动(仅 +0.003),全部严格通过的比例极低(Codex 有 Skill 组也仅 25/280 通过)。错误高度集中在复杂的跨表时序滑动窗口连接(如机械通气时间段判定、每小时尿量变化率),模型极易出现微小的时间戳偏移或行对齐遗漏。
- 任务异质性极其鲜明:在涉及精细临床裁决和边缘处理的复杂任务上(如多时段尿量变化率提升达 +0.471、MELD 终末期肝病评分提升 +0.354、疑似感染窗口判定提升 +0.291),Skill 发挥了决定性支撑作用;但在常规分类规则或标准特征已高度完备的任务上(如 KDIGO 肾损伤、Charlson 合并症指数),Skill 提升接近于零甚至由于过于繁琐的规则约束引入了轻微负向扰动。
亮点与洞察¶
- 构建了临床衍生变量的可版本化智能体测评体系:首次将医学科研中最为脆弱、极易引发“不可重现性”危机的数据衍生流程标准化为受控基准,证明了结构化过程规范对于医疗代码大模型落地的不可替代性。
- 多层级控制实验斩断了虚假归因链条:通过精心设计的诱饵 Skill、原始参考 SQL 与模式打乱重构等一系列消融对比,严谨证明了性能跃升既非由于更长上下文带来的泛化刺激,亦非单纯背诵了公开仓库中的 SQL,而是扎扎实实转化了规范中的规则信息。
- 为真实医疗科研智能体落地敲响审慎警钟:实验揭示出智能体常常能够在 90% 以上的数值字段上取得吻合,却在最底层的行主键粒度(Key Coverage / F1)与复杂时间窗口边界上频现细微差错,这类隐蔽错误往往足以彻底扭曲后续的流行病学统计结论。
局限与展望¶
- 依赖单中心公开数据库且以回顾性衍生为主:28 个任务中 26 个均基于 MIMIC-IV 构建,仅包含 2 个 eICU 探测任务,尚无法全面评估智能体跨越不同医院复杂异构 EHR 架构的真实泛化适应能力;同时所有任务均为事后回顾性变量提取,无法完全等同于床旁实时预警。
- 真值锚定于现有代码库而非绝对临床金标准:基准评测目标采用社区广泛使用的 MIT-LCP 逻辑实现。经临床医生二次审计发现,原实现自身即存在局限(例如缺少血管紧张素 II 的升压药换算、器官衰竭评分中未测项目默认填零导致假阴性等),使得当前评估本质上是测量模型对“权威工程实现”的复刻度而非终极医学正确性。
- 未来方向:研究团队计划引入更多中心数据库(如 OMOP 规范体系下的多源医疗机构数据),引入多位独立临床医生仲裁的多重金标准真值目标,并进一步探索将形式化时序检验算子嵌入智能体推理循环中以突破行粒度对齐瓶颈。
相关工作与启发¶
- vs EHRSQL / MedAgentBench: EHRSQL 与 MedAgentBench 主要聚焦于针对患者单项指标的 Text-to-SQL 查询或虚拟诊疗流程的交互式工具调用;而 M4Bench 专注于需要深度数据清洗、复杂时间窗口滑动与复杂医学量表评分计算的学术科研级衍生变量重构。
- vs SWE-bench / SkillsBench: SWE-bench 评测软件工程 Issue 修复,SkillsBench 评估通用代理工具调用技能;M4Bench 将 Agent Skill 范式深入引入高度复杂的垂直医疗领域,通过严格的沙箱防污染与多重消融实验,为高门槛专业领域中“隐性知识”的工程化转化提供了标准的测评方法学范式。
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ 首次针对临床电子病历复杂衍生变量构建代码智能体评测基准,将隐性临床规范转化为可度量、可版本化制品。
- 实验充分度: ⭐⭐⭐⭐⭐ 涵盖 28 项任务、双模型族 1300+ 运行轨迹,搭配诱饵、参考 SQL、操作规范与模式扰动四重对照,论证滴水不漏。
- 写作质量: ⭐⭐⭐⭐⭐ 实验逻辑架构严密,统计检验指标健全,对局限性与指标解读边界的阐述极其克制与精准。
- 价值: ⭐⭐⭐⭐⭐ 为推动人工智能协助临床真实世界研究(RWS)与观察性医学数据挖掘的严谨复现奠定了关键的基准基础。