信息速览
INFOBOX — ReXErr-v1 一屏速览
维度 内容 本质 哈佛医学院 Rajpurkar 实验室出品的放射报告合成错误数据集——对 MIMIC-CXR 去标识报告由 GPT-4o 注入"临床上貌似真实"的错误,构成(原始报告, 错误报告)配对;不是真实错误金标,也不是报告生成数据集 团队 5 作者(HMS DBMI 4 人 + 印度 JIPMER 1 人),Vishwanatha M. Rao 与 Serena Zhang 共同一作,Pranaj Rajpurkar 通讯;临床输入致谢 Dr. John Farner 与 Dr. Rohit Reddy 两位 board-certified 放射科医生 论文 arXiv:2409.10829(v1 2024-09-17)→ Biocomputing 2025(PSB)30: 70-81,DOI 10.1142/9789819807024_0006,PMID 39670362(2024-12 刊出) 规模 精确总数零披露——唯一官方口径为 GitHub README “vast majority of MIMIC-CXR (200k+ reports)”;推断链:200k+ × 每报告 3 错误 ≈ 60 万+ 错误实例(报告级) 构建 GPT-4o 注入 + Llama 3.1 标注双引擎:GPT-4o 按采样公式(Equations 1-4)向每报告注入固定 3 处错误(三子类各 1)→ 句对拼接(splice)→ Llama 3.1 事后标注 error_present(0/1/2)与 error_type 实测 12 类错误分 3 子类:content addition 3 类(等概率 1/3)、context-dependent 5 类(tag 频率倒数加权)、linguistic quality 4 类(等概率 1/4)——Table 5 频率三子类各自加总 ≈100% 自洽 验证 100 份随机抽样报告对送临床医生审查:83 份合理(plausible)/ 17 份不合理(implausible)——官方换算口径 “17% of reports to contain implausible errors”;另有 splice 句对 broad manual review 任务双支柱 report correction(报告校正)+ sentence-level entailment(句级蕴含);论文另推荐错误报告作 RL 负例与自动评测指标(RadCliQ)验证 获取 physionet.org/content/rexerr-v1/Open Access(无需资质审核);2 文件夹 9 文件:report-level 与 sentence-level 各 train/val/test CSV + README + clinician-review.csv(100 份人工审查原始记录随数据发布)+ data-dictionary.txt 许可 ODbL 1.0(Open Data Commons Attribution License v1.0);引用义务:同步引用母集 MIMIC-CXR Database v2.1.0 库内互链 radgraph(561)、radgraph2(622)、rexgradient-160k(717)、mimic-cxr-jpg(617)、radvlm(524)、radialog(523)
ReXErr-v1 是一个"故意把报告写错"的数据工程:哈佛医学院 Rajpurkar 实验室先从 MIMIC-CXR 中取出全部去标识放射报告(去重 + 只保留 AP/PA/Lateral 三种投照视图),再让 GPT-4o 依照一套精心设计的采样公式,向每份报告注入恰好 3 处"临床上貌似真实"的错误——可能是把"右侧"改成"左侧",可能是把"4.9 cm"写成"4.3 mm",也可能是凭空加上一句"可见心内起搏器",或者干脆把"重度肺水肿"否定成"无肺水肿"。12 类错误按三大子类组织:content addition(凭空添加)、context-dependent(篡改既有陈述)、linguistic quality(语言质量缺陷),其中前两类代表 AI 报告生成模型的典型错误,最后一类模拟临床医生的笔误。随后,句对拼接脚本把原始句与错误句排成对照,Llama 3.1 逐句打上三值标签(0 未变 / 1 含错 / 2 中性),形成可直接训练错误检测器的句级语料。
这个数据集的价值主张与它的表亲们截然不同。库内 Rajpurkar 系的 radgraph(561)与 radgraph2(622)抽取的是真实报告里的真实结构——实体、关系、时序变化,标注由人工完成;ReXErr 反其道而行,它不标注真实世界,而是合成一个带已知缺陷的世界,让"错误"本身成为数据资产:错误检测系统可以在"每处错误都有标准答案"的语料上训练,报告校正算法可以在"原始报告就是参考答案"的配对上评测,强化学习可以把错误报告当负例,自动评测指标可以用"错误注入量 vs 指标恶化量"来验证灵敏度。官方给出三大用途——错误模式研究、错误检测系统训练、自动校正算法基准——外加一句反复出现的三连警告:错误报告永不用于临床决策、永不当 ground truth、永不作唯一基准。
使用 ReXErr-v1 之前还有三件事必须先知道。第一,它的精确规模是个谜:论文正文与全部表格没有报告总数,PhysioNet 页面没有,唯一口径是 GitHub README 里一句 “vast majority of MIMIC-CXR (200k+ reports)”——引用时你只能写 200k+,任何第三方给你的精确数字(比如"227,835")都是把母集当成了子集。第二,错误是合成的:17% 的抽样审查里被临床医生判为 implausible 的报告说明合成质量并非完美,且官方明文警告 errors_sampled 列不等于实际注入清单。第三,它的术语在论文与数据平台之间漂移:同一个错误类别,论文叫 “Add Opposite Sentence”,PhysioNet 与 GitHub 叫 “Add Contradictions”——跨文献做统计聚合前必须先做名称归一。本条目全程区分"论文口径"与"平台口径",并在 §8 把这些坑逐一拆解。
导语读法三则:
- 只想下数据:直奔 §5 获取与许可——ODbL 1.0 意味着什么、MIMIC-CXR 引用义务怎么履行、PhysioNet 文件区对部分 IP 段的"Data Not Available"提示如何应对,都在那里。
- 关心方法设计:直奔 §3 构建流水线——Equations 1-4 的采样公式、tag 缺失时的 7 类池退化、GPT-4o 与 Llama 3.1 的分工边界,以及为什么"每报告固定 3 错"是整个设计的定盘星。
- 做错误检测或校正评测:直奔 §6 评估结果与 §7 使用指南——17% implausible 的正确读法、Table 5 频率表的分布漂移、以及"把 ReXErr 当金标"为何是官方明文禁止的第一大错误。
§0 导读:这个数据集解决什么问题
放射报告的质量保证有一条清晰的产业链:报告由放射科医生写就(或由模型生成),下游是结构化抽取(RadGraph 系)、检索问答(RaDialog 类)、指令微调(RadVLM 类)。但这条链上长期缺一环——报告错了怎么办?报告生成模型会幻觉出不存在的病灶,会搞错左右侧位,会把测量单位张冠李戴;临床医生笔误更是日常。要训练一个"错误检测器"或"自动校正器",你需要的是大量带标准答案的错误报告——而真实世界里没人会给你攒这种语料:放射科的质量控制记录(如 ACR 保险公司赔付数据库、院内重大事件上报)稀少、隐私门槛高、错误类型窄(历史工作基本只覆盖侧别错、性别错、单词错几类)。
ReXErr-v1 的回答是把问题反过来:与其等真实错误出现,不如把真实报告改错。它先用规则+模型的方式确定每份报告"可以注入哪几类错误"(context-dependent 类错误只在报告里真的存在 device/measurement/location/severity 对应表述时才有资格被选中,且用 tag 频率的倒数做加权,保证稀有表述不被淹没),然后让 GPT-4o 执行注入,每报告固定 3 处、三大子类各 1 处——这个"配额制"保证了错误分布的多样性与可统计性,Table 5 的频率表在三套切分上各自加总约 100% 的自洽就是配额制的直接证据。最后用 Llama 3.1 把句级标签补齐,把"整份报告改错了"细化为"哪一句改错了、改的是哪一类"。
这个设计还有一层方法学意义:它是 Rajpurkar 团队"报告结构化三部曲"的第三卷,也是方向转折点。radgraph(561,2023 挂牌)与 radgraph2(622,2024-08 挂牌)做的是从真实报告中抽取真实结构,人工标注、金标准、Credentialed 访问;ReXErr(2025-03 挂牌)做的是向真实报告注入合成缺陷,LLM 生成 100%、Open Access。同一个实验室、同一份母集(MIMIC-CXR),一条路线把报告拆成知识,另一条路线把报告变成考场——放在一起读,才能看全"放射报告 NLP"这门生意的上下游。
§0 读法三则:
- 先记三个数:12(错误类别总数)、3(每报告注入错误数,三子类各 1)、17%(抽样审查中 implausible 占比)——这三个数贯穿全条目,也是读任何第三方转载时的第一道辨伪题。
- 再记一条流水线:tag 扫描定池 → GPT-4o 注入 → splice 拼接 → Llama 3.1 标注。往后所有"合成数据能不能当训练语料"的争论,都可以用这条四段式管线作为参照系。
- 最后记一句限定语:"ReXErr 报告"永远是合成错误报告——任何把它写进临床流程、当作真实错误分布、或与人工金标混用的做法,都同时踩了伦理与统计两个雷区(§8 坑点 8)。
§1 十问十答:60 秒了解 ReXErr-v1
Q1:ReXErr-v1 到底是什么?
一个放射报告合成错误注入数据集:从 MIMIC-CXR 取出去标识胸片报告(去重、只留 AP/PA/Lateral 视图),GPT-4o 向每份报告注入固定 3 处错误,形成(原始报告, 错误报告)配对;再经句对拼接与 Llama 3.1 标注,形成句级(原始句, 错误句, 三值标签, 错误类型)语料。它的官方定位是错误检测与报告校正的训练/评测资源——不是真实错误金标,不是报告生成语料,也不是新的影像数据集(不含图像本体,只有文本与 MIMIC-CXR 标识符)。
Q2:它到底有多少份报告?200k+ 是多少?
精确数没有官方答案——论文、PhysioNet 页面、data-dictionary 都没有报告总数,唯一口径是 GitHub README 的一句 “synthetic error reports for the vast majority of MIMIC-CXR (200k+ reports)”。可核实的参照系是母集:MIMIC-CXR v2.0.0 = 377,110 图像 / 227,835 报告 / 65,379 患者;ReXErr 做了 unique report 去重与视图过滤(一报告多图会并列多个 dicom_id,过滤掉非 AP/PA/Lateral 视图),200k+ 与这两个操作的结果相容。本库 mimic-cxr-jpg(617)条目核实过母集数字,可以交叉验算。引用铁律:只能写 200k+,写"22.7 万份 ReXErr 报告"就是错的。
Q3:12 类错误是怎么组织的?
三个子类、每子类内若干类,共 12 类。content addition(凭空添加,3 类):Add Medical Device(加入起搏器/中央静脉线等器械存在句)、False Prediction(编造如骨折等预测)、False Negation(把阳性发现否定掉);context-dependent(篡改既有陈述,5 类):Change Name of Device / Change Position of Device / Change Severity / Change Location / Change Measurement;linguistic quality(语言质量,4 类):Add Repetitions(整句重复)、Add Contradictions(加入与原文矛盾的句子)、Change to Homophone(同音词替换如 no→know)、Add Typo(如 Endotracheal→Endotrakheal)。设计上有个双群映射:content addition 与部分语言类代表 AI 报告生成模型的典型错误(Repetitions/Contradictions 明确对应 AI 错误),homophone/typo 则对应临床医生笔误——类目本身就把"机器会犯的错"和"人会犯的错"分了组。
Q4:每份报告注入几个错误?都一样吗?
固定 3 处,三大子类各 1 处——这是全数据集的"配额制"。采样由四条公式(论文 Equations 1-4)决定:content addition 与 linguistic quality 内部等概率(各 1/3、各 1/4),context-dependent 内部按 tag 频率倒数加权(越稀有的表述权重越高)。关键边界情况:如果一份报告扫不出任何 device/measurement/location/severity tag,context-dependent 子类无从下手,采样退化为在 content addition + linguistic quality 的 7 类池中均匀抽取——每报告仍是 3 错,但不再保证三子类各 1。Table 5 的实测频率(三子类各自加总 ≈100%)是这套公式的直接实证。
Q5:句级标签的 0/1/2 是什么意思?只有对错两态吗?
三态,不是两态。error_present:0 = 未变句(原样保留)、1 = 错误句(被注入或被篡改的句子)、2 = 中性句——第 2 类最容易被漏掉:像 “Comparison is made to previous study from ___” 这类引用既往检查的句子,没有额外上下文就无法判定其对错(官方原话:algorithms would not be able to determine their accuracy without additional context)。如果你把 2 当成 0 处理,错误检测器会在"引用 prior"这类高频句式上被灌进错误信号;如果当成 1,又会让它把正常临床惯例当成错误。评测协议里必须显式声明你怎么处理 2(排除、降权或单列统计都是合法选择,默认按 0 处理是错误选择)。
Q6:是 GPT-4o 标注的,还是 GPT-4o 生成的?
分工是GPT-4o 只管注入,Llama 3.1 只管标注——两者经常被混为一谈。GPT-4o 负责报告级错误注入(选型理由:performance and affordability);句级标注(error_present + error_type + 源句索引,输出为 python 字典格式)由 Llama 3.1 完成,且 Llama 同时负责筛查 priors(把引用既往检查的句子归入 2 类中性句)——这一步 GPT-4o 不参与。GitHub README 还给出一个有趣的官方自认:句级标注可以选 Llama 3.1(more accurate)或 regex 两条路线——自动标注器比正则"更准"是官方自己写的,但"更准多少"没有数字(§12 信息缺口第 8 条)。
Q7:合成质量如何验证?17% implausible 怎么读?
验证三件套:开发期放射科医生频繁反馈(驱动 prompt 两轮迭代——先加模型生成的示例,再加放射科医生提供的示例);发布前 100 份随机抽样报告对送临床医生审查,结果 83 份 plausible / 17 份 implausible;句对拼接另有 broad manual review 确认句匹配正确。17% 的正确读法是双向的:它既是"约六分之一的报告对含有不合理错误"的质量警示(拿去直接训错误检测器会灌入约 17% 的噪声标签),也是全行业"LLM 临床可信度"的一个可引用锚点——GPT-4o 在有 tag 约束、有 few-shot 示例、有迭代反馈的加持下,仍有 17% 的注入不被临床医生接受。注意:这 100 份审查的原始记录(clinician-review.csv)随数据一起发布,含逐份 acceptable(Yes/No) 与 comments 列——审查透明度在同类数据集里属高配。
Q8:许可是什么?能商用吗?
PhysioNet Open Access + ODbL 1.0(Open Data Commons Attribution License):任何人可访问文件,署名即可用,包括商用与再分发(ODbL 的数据库权利约束见 §5)。两个附带义务:其一,数据本体派生自 MIMIC-CXR,官方引用要求同步引用母集 MIMIC-CXR Database v2.1.0;其二,因报告已去标识且错误为合成,无需逐条资质审核(Credentialed 流程)——这与库内 radgraph(561)、radgraph2(622)的 Credentialed 档形成鲜明对照,也是本条目在"批次八"里的关键差异点。注意你在 PhysioNet 的部分 IP 段可能看到文件区 “Data Not Available … due to legal or policy restrictions” 的地区限制提示,页面元数据与引用信息不受影响(§5.3)。
Q9:和 RadGraph、RadGraph2、RadVLM、RaDialog 什么关系?
同一生态、四条路线。radgraph(561):真实报告的实体关系抽取金标(800 份人工标注 + 推理集);radgraph2(622):升级为时序变化的实体关系金标(220,763 报告);ReXErr-v1(本条):合成错误注入——三部曲从"抽取真实结构"到"时序结构"再到"合成错误分布",前两者人工标注、Credentialed,本条 LLM 全合成、Open。与 radvlm(524)、radialog(523)的关系是互补而非竞争:它们用 MIMIC-CXR 报告造"指令-回答"对(教模型写报告),ReXErr 用同一批报告造"正确-错误"对(教模型改报告)。库内新邻居 **rexgradient-160k(717)**同属 Rajpurkar 系,做错误梯度式课程学习方向,与本条的 12 类错误本体可对照阅读(§10 逐一认脸)。
Q10:用 ReXErr-v1 做错误检测/校正评测,最小成本路径是什么?
下载 PhysioNet 的 sentence-level CSV(train/val/test 三分),用 error_present=1 的行做检测任务正例、error_type 做细分类头;报告校正任务用 report-level 的(error_report, original_report)对做"输入-参考答案"。四个必做过关点:声明对 error_present=2 中性句的处理方式;声明用的是 Llama 标注版(默认数据)还是自己 regex 重标;报告里注明"合成错误、非真实分布、17% 审查不合理率"三件套;永远不要把错误报告当作真实放射报告的统计样本——它的错误分布是采样公式设计出来的,不是临床观察出来的(§7 详解)。
§2 数据构成与规格
§2.1 一句话规格
ReXErr-v1 是一份纯文本数据集——它不附带任何胸片图像,只包含 MIMIC-CXR 的标识符(dicom_id / study_id / subject_id)与文本字段。图像要从母集 MIMIC-CXR-JPG 另行获取,两者通过标识符对齐。这个设计决定了它是一个"报告质控赛道"的资源,而不是又一个影像数据集:如果你的任务需要像素,ReXErr 不能独立满足你;如果你的任务需要报告文本的错误标签,它是目前规模最大的开放选项。
§2.2 双层结构总览
数据集按分析粒度拆成两个平行层,两层共享同一批 MIMIC-CXR 报告,但各自独立成表:
| 层级 | 粒度 | 每行含义 | 列数 | 核心用途 |
|---|---|---|---|---|
| report-level | 整份报告 | 一份报告 = 原始文本 + 注入错误的文本 + 曾采样的错误清单 | 6 | 报告校正、错误筛检、RL 负例 |
| sentence-level | 单个句子 | 一句话 = 原始句 + 出自错误报告的对应句 + 三值标签 + 错误类型 | 7 | 句级错误检测、句级蕴含、细分类 |
两层的官方分工在 GitHub README 里有明确表述:report-level 是"更准确"的那一层,因为 sentence-level 经过了句子拼接(splicing)与自动标注两道加工,每道都可能引入新误差——官方原话是 “Generally, the report-level dataset will be more accurate given the potential for mistakes introduced within the sentence-splicing and labeling pipeline”。做报告级任务时优先用 report-level;只有需要句级监督信号时才下探到 sentence-level,并且要接受它更高的噪声水平。
§2.3 report-level 六列规格
| 列名 | 类型 | 含义 | 写作时的注意事项 |
|---|---|---|---|
dicom_id |
字符串(可含多个) | 该报告对应的 DICOM 影像 ID;一份报告可对应多张图,故一格里可能并列多个 ID | 不要把 dicom_id 当主键——一行可有多值 |
study_id |
整数 | MIMIC-CXR 的检查 ID | 与 MIMIC-CXR 对齐的桥梁 |
subject_id |
整数 | MIMIC-CXR 的患者 ID | 官方说明:报告按 subject ID 升序排列 |
original_report |
文本 | 取自 MIMIC-CXR 的原始去标识报告 | 这是"参考答案",不是"错误样本" |
error_report |
文本 | GPT-4o 注入错误后的报告 | 这是"输入"或"待校正对象" |
errors_sampled |
文本/结构化 | 曾采样用于生成错误报告的错误类别清单 | 关键陷阱:采样 ≠ 实际注入,见 §2.6 |
§2.4 sentence-level 七列规格
| 列名 | 类型 | 含义 | 写作时的注意事项 |
|---|---|---|---|
dicom_id |
字符串(可含多个) | 同 report-level | — |
study_id |
整数 | 同 report-level | — |
subject_id |
整数 | 同 report-level | 句组按 subject ID 升序,报告内保持原序 |
original_sentence |
文本 | 原始报告中的一句话 | 与 error_sentence 配对 |
error_sentence |
文本 | 错误报告中同位置的句子 | 官方警告:这句话本身可能不含错误,只是"出自错误报告" |
error_present |
整数 0/1/2 | 0=未变句、1=错误句、2=中性句 | 第三态最易被误处理,见 §2.5 |
error_type |
字符串 | 若该句含错,则为具体错误类型名 | 仅 error_present=1 时有意义 |
§2.5 error_present 三值语义(本数据集最易踩的标签设计)
error_present 不是布尔量,而是三值指示器,官方定义逐字如下:
- 0 = unchanged sentence(未变句):句子在原始报告与错误报告中完全一致,GPT-4o 没有动它。
- 1 = error sentence(错误句):该句被注入或被改写,确实含有一个已知类型的错误。
- 2 = neutral sentence(中性句):“references a prior or does not contain any clinically relevant indications/findings”——即引用了既往检查(如 “Comparison is made to previous study from ___”),或本身不含任何临床相关的征象/发现。这类句子的对错在没有额外上下文时无法判定(官方原话:algorithms would not be able to determine their accuracy without additional context)。
第三态的存在有一个具体工程来源:Llama 3.1 在做句级标注时,被同时要求筛查 priors——引用既往检查的句子被单独归入 2,而不是被草率地判为"未变"或"含错"。对评测的影响极大:如果把 2 并入 0,错误检测器会在"引用 prior"这类高频句式上被喂入误导性的负样本;如果并入 1,又会把正常临床惯例误标成错误。任何使用 sentence-level 的评测协议必须显式声明它如何处理 error_present=2——排除、降权、还是单列统计都是合法选择,"默认按 0 处理"是错误选择(§8 坑点 3)。
§2.6 errors_sampled ≠ 实际注入清单
report-level 的 errors_sampled 列记录的是"曾被采样"用于这份报告的错误类别,但官方 README 附了一句必须逐字读的警告:
“Note that the error report may not contain all of the errors sampled, and for more accurate labeling, see the sentence level labeling.”
也就是说,采样器可能抽了 3 个类别交给 GPT-4o,但 GPT-4o 未必真的把 3 个都注入了——它可能把两个错误合并成一句、可能判断某个注入会破坏临床合理性于是省略、也可能在改写过程中意外制造了另一类错误。因此 errors_sampled 是"意图"而非"事实"。 需要精确的错误标签时,官方指引是转到 sentence-level 的 error_type 列。这条差额目前无比例披露(FACTS.md 信息缺口第 9 条),你在做标签统计时无从校正,唯一稳妥做法是以 sentence-level 的 error_type 为准并在论文里注明你采用的是哪一层。
§2.7 文件清单(2 文件夹 + 9 文件)
PhysioNet 发布包的结构如下:
ReXErr-v1/
├── ReXErr-report-level/
│ ├── ReXErr-report-level_train.csv
│ ├── ReXErr-report-level_val.csv
│ └── ReXErr-report-level_test.csv
├── ReXErr-sentence-level/
│ ├── ReXErr-sentence-level_train.csv
│ ├── ReXErr-sentence-level_val.csv
│ └── ReXErr-sentence-level_test.csv
├── README.md
├── clinician-review.csv
└── data-dictionary.txt
共 9 个文件——注意不要漏数 README.md,也不要以为 report-level 与 sentence-level 之外还有第三层结构。官方发布包体积:总未压缩 508.9 MB,下载 ZIP 约 82.7 MB。
§2.8 clinician-review.csv:100 份人工审查的原始记录
这是 ReXErr 在同类数据集中少见的透明度加分项。该文件含 5 列:
| 列名 | 含义 |
|---|---|
original_report |
原始报告(MIMIC-CXR) |
error_report |
GPT-4o 注入后的错误报告 |
errors_sampled |
曾采样的错误类别 |
acceptable |
临床医生判定该合成错误报告是否合理,取值 Yes / No |
comments |
报告被判定为不合理时的相关评论 |
100 份随机抽样的(原始, 错误)配对逐份记录在这里,Yes/No 的分布是 83 / 17。这份文件的公开使得任何人都可以复核 17% 到底错在哪里,而不必只接受一个汇总百分比——对做合成数据质量研究的人来说,comments 列尤其有价值(它是"LLM 注入在什么情况下会失败"的原始素材)。库内同批次条目做对照时,这一条属高配(FACTS.md §4 记载"同批次对照 524 零人工抽检")。
§2.9 data-dictionary.txt:字段字典
官方随包发布的字段说明文件,定义两份 CSV 中出现的每一个唯一列变量。实践建议:不要从第三方博客抄字段名——官方字典是唯一权威,尤其是 dicom_id 的多值特性与 error_present 的三值语义,第三方复述时经常被压扁成单值/两态。
§2.10 划分与对齐
train / val / test 三分沿用 MIMIC-CXR 官方的分区语义(文件名即 _train / _val / _test),因此与 MIMIC-CXR-JPG 的官方划分可以直接对齐——这是 ReXErr 能无缝插入现有多模态流水线的关键设计。但两点须存照:
- 划分比例未披露:三个文件存在,但论文、PhysioNet 页面、GitHub 均未给出三者各占多少比例(FACTS.md 信息缺口第 2 条)。
- 报告按 subject ID 升序:官方明确 “Reports are listed in ascending subject ID”,句级层也保持这一排序且组内保持原始出现顺序——做序列建模时要知道行的顺序是有意义的,不要随意 shuffle 后按行号假设随机性。
§2.11 与母集 MIMIC-CXR 的三个关键数字
ReXErr 的规模叙事必须建立在母集数字之上(这是唯一可核实的参照系):
| 指标 | 数值 | 来源 |
|---|---|---|
| 图像数 | 377,110 | MIMIC-CXR v2.0.0 |
| 报告数 | 227,835 | MIMIC-CXR v2.0.0 |
| 患者数 | 65,379 | MIMIC-CXR v2.0.0 |
ReXErr 对母集做了两个操作:unique report 去重(一份报告对应多张图时并列多个 dicom_id,合并为一行)与视图过滤(只保留 AP / PA / Lateral 三种投照视图,官方理由是其他视图"less relevant towards most report generation and screening algorithms")。官方对结果规模的唯一表述是"MIMIC-CXR 的绝大部分",GitHub README 给出"200k+ reports"。**引用铁律:只能写 200k+。**把母集的 227,835 当成 ReXErr 的报告数,是本条目第一大误引用(§8 坑点 1)。
§3 错误分类学与标注协议
§3.1 12 类错误的完整本体
ReXErr 的核心贡献之一是这套错误类型本体(error taxonomy)——12 个类别,分属 3 个子类。以下类名逐字取自 PhysioNet 页面:
| 子类 | 错误类别 | 中文对照 | 采样概率 |
|---|---|---|---|
| content addition(凭空添加) | Add Medical Device | 添加医疗器械 | 等概率 1/3 |
| False Prediction | 虚假预测 | 等概率 1/3 | |
| False Negation | 虚假否定 | 等概率 1/3 | |
| context-dependent(篡改既有陈述) | Change Name of Device | 篡改器械名称 | tag 频率倒数加权 |
| Change Position of Device | 篡改器械位置 | tag 频率倒数加权 | |
| Change Severity | 篡改严重程度 | tag 频率倒数加权 | |
| Change Location | 篡改位置/侧别 | tag 频率倒数加权 | |
| Change Measurement | 篡改测量值 | tag 频率倒数加权 | |
| linguistic quality(语言质量) | Add Repetitions | 添加重复 | 等概率 1/4 |
| Add Contradictions | 添加矛盾 | 等概率 1/4 | |
| Change to Homophone | 改为同音词 | 等概率 1/4 | |
| Add Typo | 添加拼写错误 | 等概率 1/4 |
三子类的设计逻辑各不相同:content addition 是"无中生有"(报告里原本没有的东西被写进去);context-dependent 是"篡改既有"(报告里已有的陈述被改动,因此必须依赖原文中出现过的锚点);linguistic quality 是"语言的缺陷"(不改变临床语义的方向,但破坏文本质量)。这个三层设计不是随意分类,而是对应了错误注入的三种不同可操作性——只有 content addition 和 linguistic quality 可以无条件执行,context-dependent 必须先找到可改的对象。
§3.2 双群映射:AI 错误 vs 人类错误
12 类错误之上还叠着一层更抽象的分组——按"谁更容易犯这个错"分成 AI 报告错误与人类错误两大类。官方原话:
“Repetitions and contradictions were added to represent AI-model errors, while homophone and typo errors were inserted as clinician errors.”
即 Add Repetitions / Add Contradictions → 模拟 AI 报告生成模型的错误;Change to Homophone / Add Typo → 模拟临床医生的笔误。这四类都在 linguistic quality 子类下——官方明说"我们用两类语言质量错误来同时涵盖人类与 AI 模型的错误"。
设计动机写在 PhysioNet 页面里:错误的类型与报告的生成方式(AI vs 人类)有关,团队希望保持对所有可能类别的代表性。而 AI 错误类目的来源有据可查:它们取自"放射科医生标注的、由当前最先进模型生成的报告"——这个模型是 Rajpurkar 组自家的 generalist learner(Zhou et al., arXiv 2405.07988),而人类错误类目则来自直接咨询放射科医生。
这层映射有个必须知道的局限(官方自认):ReXErr 是把"AI 模型常犯的错误"注入到人类写的文本上,而不是注入到 AI 生成的文本上——因此它作为"AI 模型错误分布"的代表性并不完全。官方原话:“ReXErr adds errors traditionally made by AI models to human text, making them not fully as representative of AI model errors when compared to adding such errors directly to AI-generated text.”(§8 坑点 6 会展开)
§3.3 本体设计者与致谢
错误的类别体系是"与放射科医生协作"产出的,具体有两个口径必须分清:
- PhysioNet 页面正文(Background 段):类别"developed in consultation with three board-certified radiologists"——3 位认证放射科医生参与咨询。
- 致谢段(Acknowledgements):具名致谢 2 位——“We would like to thank Dr. John Farner and Dr. Rohit Reddy for their valuable clinical input into the error categories and prompts chosen.”
3 vs 2 的口径差异要存照:页面说 3 位参与咨询,致谢只具名 2 位,第 3 位身份未披露(FACTS.md 信息缺口第 4 条)。写作时的稳妥表述是"与 3 位认证放射科医生协作设计,其中 2 位(Farner、Reddy)在致谢中具名"。旧稿 archive_v1 把它写成"3 位放射科医生设计类别",漏掉了致谢具名的 2 人,属信息不全但不属编造;更严重的是有些第三方复述直接写成"由放射科医生标注数据",那是把"设计类别"偷换成"标注数据"——ReXErr 的错误全部是 LLM 合成的,放射科医生只参与了类别设计与提示词打磨,以及100 份事后抽查。
作者与 COI:5 位作者(Rao / Zhang 共同一作、Acosta、Adithan、Rajpurkar 通讯),页面明文 “Vishwanatha M. Rao and Serena Zhang contributed equally to this work”;COI 声明为无(“The authors have no conflicts of interest to declare”)。
§3.4 错误类别的版本术语漂移
同一个错误类别在不同信源里有不同的名字,这是跨文献聚合时的头号地雷:
| 概念 | 论文(Table 1 口径) | PhysioNet / GitHub 口径 |
|---|---|---|
| 加入与原文矛盾的句子 | Add Opposite Sentence | Add Contradictions |
论文的 Table 1 把这一类写作 “Add Opposite Sentence”,而 PhysioNet 页面与 GitHub README 的 12 类清单都写作 “Add Contradictions”;更微妙的是论文 Table 3 的示例说明内部又写成 ‘add contradiction’——同一概念在论文自身内部就出现了两种写法。本项目组在库内条目里把这一现象作为"版本术语漂移"的独家存照保留(§8 坑点 2)。实践含义:如果你在做错误类别的跨数据集统计(比如把 ReXErr 的 12 类与其他错误分类体系对齐),第一步必须先建名称归一表,否则 Add Opposite Sentence 与 Add Contradictions 会被当成两个类别重复计数。
§3.5 标注协议:谁标了什么
ReXErr 的标注不是"人工标注",而是两段式自动标注 + 人工设计/抽查。把四个角色分清楚:
| 环节 | 执行者 | 产出 |
|---|---|---|
| 错误类别设计 | 3 位认证放射科医生 + 团队 | 12 类本体、AI/人类双群映射 |
| 提示词打磨 | 团队 + 临床医生迭代反馈 | Appendix A/B 的完整提示词 |
| 报告级错误注入 | GPT-4o | error_report |
| 句级拼接 | 规则脚本(splicing) | original_sentence / error_sentence 配对 |
| 句级标注 | Llama 3.1(或 regex) | error_present(0/1/2)+ error_type + 源句索引 |
| 事后质量抽查 | 临床医生 | clinician-review.csv(100 份,83 yes / 17 no) |
两个最容易混淆的点:
- 生成与标注是两个模型。GPT-4o 只管"写错",Llama 3.1 只管"标错"。把整个数据集说成"GPT-4o 标注"是错的(§8 坑点 6)。
- 句级标注不是纯自动。Llama 3.1 的输出被要求是 python 字典格式
{index: [label, error_class, original_sentence_index]},新增句(原文没有、由注入产生的句子)的 original_sentence_index 留空——这套结构保证了拼接口可以精确回溯每个句子来自哪里。
§3.6 Llama 3.1 vs regex:官方自认的准确度排序
句级标注有两条可选路线,GitHub README 明文:
“We include an option for labeling the spliced reports using either Llama 3.1 (more accurate) or regex.”
也就是说,官方自己承认 Llama 3.1 的标注比正则更准——正则路线的优势是快、可复现、零成本,Llama 路线的优势是准。数据集中默认发布的标注是 Llama 3.1 版(这也是官方推荐的下游使用版本)。但"更准"只是定性表述,没有量化准确率(FACTS.md 信息缺口第 8 条)——官方从未给出 Llama 标注的错误率数字,也没有给出 Llama 与 regex 的对比指标。这意味着你在论文里写"ReXErr 的句级标签准确率很高"时缺乏依据;正确的表述是"官方声明 Llama 3.1 标注较 regex 更准确,但未披露准确率数字"。
§3.7 句级拼接(splicing)协议
splice 这一步把"整份报告被改错"细化成"哪一句被改错"。工作机制大致是:将原报告与错误报告都切成句子,按原文顺序对齐,逐句比较——原文有、错误版没有/被改写的句子标为错误句;两版一致的标为未变句;引用 prior 或无关临床发现的标为中性句;错误版多出来的句子(GPT-4o 新增的)作为新句插入并单独标注。官方对拼接质量做过 “broad manual review”,目标是"ensure the majority of error sentences were correctly matched"——注意用词是"majority"(多数)而非"all",也就是说句对齐存在已知的错配率,只是官方认为多数是对的。
更严重的官方自认出现在 Usage Notes 里(这一点在旧稿与多数第三方摘要中缺失,本次核验新发现):
“it is important to note that there are sentence misalignments and incompletely generated error reports present in both the sentence and report levels of the dataset. While we attempted to automatically filter and minimize such mistakes, we were unable to manually review every sentence pairing and error report generated.”
官方明确承认:句子错位(sentence misalignment)与错误报告生成不完整(incompletely generated error reports)在两层都存在,团队虽尽力自动过滤,但无法逐条人工复核。这是 ReXErr 最诚实也最容易被忽略的一条质量声明——它意味着不论你用哪一层,都会有一定比例的噪声行,且这个比例官方没有给出。
§3.8 已知的复合错误盲区
官方 Usage Notes 还坦白了一个采样方法的盲区:
“The sampling approach may also contribute to these limitations as we do not account for nested compound errors, where errors belong to more than one category, or cases where sentences contain more than one error.”
即采样器假设"错误之间互不重叠、一句至多一错",但现实中一个错误可能同时属于多个类别(比如一次测量值改动既改变了严重程度也改变了数值),一句话也可能被注入多处错误。这个假设简化了采样与标注,但使数据集的错误分布与真实世界存在系统性偏差。使用时的含义:不要假设 error_type 是句子的完备标签,也不要假设一句话只有一个错误。
§3.9 标注质量标准:可核查到什么程度
把 ReXErr 的标注质量证据按强度排序:
- 有量化:100 份报告级抽查,17% implausible(有原始记录可复核)。
- 只有定性:句级拼接的 broad manual review(无数字,只有 “majority”)。
- 只有声明:Llama 3.1 标注比 regex “more accurate”(无数字)。
- 只有自认:句错位与不完整生成在两层均存在(无比例)。
- 只有设计:错误类别的临床合理性由 3 位放射科医生把关(无一致性指标,如 Cohen’s κ 未披露)。
这张表本身就是结论:ReXErr 的标注质量在"报告级合理性"上有硬数字,在"句级标签准确性"上全靠声明。所以 §7 的使用指南会建议:把报告级用于高置信任务,把句级用于需要细粒度但可接受噪声的任务,并且在论文里如实标注你用的是哪一层、接受何种噪声假设。
§4 构建流水线
§4.1 四段式总览
MIMIC-CXR 报告
│ ① 预处理:unique report 去重 + 视图过滤(AP/PA/Lateral)
▼
过滤后的报告池
│ ② tag 扫描:正则识别 device / measurement / location / severity 锚点
▼
每报告错误池(含 tag → 全 12 类可行池;无 tag → 7 类退化池)
│ ③ GPT-4o 注入:按采样式(Equations 1-4)抽 3 个错误并改写报告
▼
report-level:original_report + error_report + errors_sampled
│ ④ splice + Llama 3.1 标注:切句、对齐、打 error_present 与 error_type
▼
sentence-level:original_sentence + error_sentence + error_present + error_type
这条流水线有两个"双引擎"特征:生成引擎(GPT-4o)与标注引擎(Llama 3.1)分离,确定性环节(tag 正则扫描、splice 对齐、采样公式)与生成性环节(GPT-4o 改写、Llama 标注)分离。理解这条分工线,就理解了 ReXErr 的可复现性边界——确定性部分可以用发布的代码 100% 复现,生成性部分受模型版本与随机性影响,无法逐位复现。
§4.2 第①段:MIMIC-CXR 预处理
从母集取报告做两件事:
- unique report 去重:MIMIC-CXR 里一份报告常对应多张影像(同一次检查的多个投照位),ReXErr 把报告去重为一行,并把这些影像的 dicom_id 并列在该行——这就是
dicom_id可能含多值的原因。 - 视图过滤:只保留 AP(前后位)、PA(后前位)、Lateral(侧位) 三种投照视图。官方理由是其他视图"less relevant towards most report generation and screening algorithms"——即面向报告生成与筛检算法的场景做裁剪。
这两步之后的规模官方只给"200k+"(§2.11)。
§4.3 第②段:tag 扫描定池(context-dependent 的前置条件)
context-dependent 子类的 5 类错误都是"篡改既有陈述",所以只有当报告里真的存在可篡改的对象时,这一类才有资格被采样。团队用正则(regex tag)扫描报告,识别四类锚点:
- device(器械,如起搏器、中央静脉线、NG 管)→ 支持 Change Name of Device / Change Position of Device
- measurement(测量值,如 “4.9 cm”)→ 支持 Change Measurement
- location(位置/侧别,如 “right”)→ 支持 Change Location
- severity(严重程度,如 “severe”)→ 支持 Change Severity
有 tag 时:从全部 12 类中按公式采样(含对应的 context-dependent 子集)。
无 tag 时:context-dependent 无从下手,采样退化为在 content addition + linguistic quality 的 7 类池(3+4=7)中均匀抽取——注意此时"每报告 3 错、三子类各 1"的配额不再成立(§8 坑点 5)。
这个"tag 定池"设计解释了为什么 context-dependent 的实测频率在不同类别间差异巨大(§4.5 的 Table 5),也解释了为什么 Change Measurement 是全场最低频——它的 tag 在报告里本来就少见。
§4.4 第③段:采样公式(Equations 1-4)
三子类独立采样是本方法的骨架。四条件概率公式如下(记号沿用论文):
Equation 1(三子类联合独立):
P(E_c, E_A, E_L | T) = P(E_c | T) × P(E_A) × P(E_L)
即 context-dependent(E_c)、content addition(E_A)、linguistic quality(E_L)三者的选择互相独立,各自抽样。这是"每报告三子类各 1"概率设计上的来源。
Equation 2(等概率子类):
P(E_A) = 1/|A| = 1/3 (content addition 3 类,等概率)
P(E_L) = 1/|L| = 1/4 (linguistic quality 4 类,等概率)
A、L 是跨"AI 错误 + 人类错误"两群合并计数后的类别集合,所以是 3 与 4。
Equation 3(context-dependent 的条件采样):
P(E_c | T = t_i) = w'(t_i) / ( Σ_{t∈T} w'(t) × E(t) ) (T ≠ ∅)
P(E_c | T = ∅) = 1 / (|A| + |L|) = 1/7 (无 tag 退化)
分母里的 E(t) 是给定 tag 下可选的错误类别计数,分子是该 tag 的归一化权重。当 T 为空(报告无任何可识别锚点)时,退化概率就是 1/7——直接印证 §4.3 的 7 类池退化。
Equation 4(tag 频率倒数权重):
w(t) = 1 / f(t) (tag t 的频率倒数)
W = Σ_{t∈T} w(t) (归一化常数)
w'(t) = w(t) / W (归一化权重)
这一条是整套方法里最精巧的设计:用 tag 出现频率的倒数作为权重,让稀有 tag 获得更高被选中概率。直觉是——如果某个器械表述在语料里只出现几百次,用均匀采样它几乎永远不会被注入错误,那么"稀有表述上的错误"就成了数据盲区;倒数加权把采样概率往稀有项倾斜,补偿长尾类别的样本不足。这个设计的代价是:它使错误频率分布不再等于真实世界错误频率分布,而是"经过纠偏的设计分布"(§8 坑点 7)。
§4.5 第③段的实证:Table 5 频率表
采样公式是否正确执行,由论文 Table 5 的实测频率(“% reports containing”,三个切分)验证:
| 子类 | 错误类别 | train | val | test |
|---|---|---|---|---|
| content addition | Add Medical Device | 33.33 | 33.32 | 33.33 |
| False Prediction | 33.33 | 33.32 | 33.33 | |
| False Negation | 33.33 | 33.32 | 33.33 | |
| linguistic quality | Add Opposite / Contradictions | 25.00 | 24.97 | 24.99 |
| Add Repetitions | 25.00 | 24.97 | 24.99 | |
| Change to Homophone | 25.00 | 24.97 | 24.99 | |
| Add Typo | 25.00 | 24.97 | 24.99 | |
| context-dependent | Change Name of Device | 13.64 | 13.47 | 18.91 |
| Change Position of Device | 13.64 | 13.47 | 18.91 | |
| Change Severity | 28.71 | 29.88 | 30.18 | |
| Change Location | 38.07 | 37.07 | 23.26 | |
| Change Measurement | 5.93 | 6.10 | 7.01 |
第一层验证:子类内部加总 ≈100%。content addition 三类各 33.33,加总 99.99;linguistic quality 四类各 25.00,加总 99.96(val 稍低);context-dependent 五项加总 99.99——三组各自闭合,直接证明"每报告三子类各 1、子类内部按概率抽 1 类"的配额制被忠实执行。
第二层发现:命名与权重的两个信号。
- Change Name of Device 与 Change Position of Device 数值逐位相同(train 13.64 / 13.64,val 13.47 / 13.47,test 18.91 / 18.91),这强烈暗示二者共享同一个 device tag 池(即凡是能改器械名的报告也能改器械位置,反之亦然),因此频率被绑定。
- context-dependent 内部严重不均:Change Location 最高(train 38.07%),Change Measurement 最低(train 仅 5.93%)。这不是公式失灵,而是 tag 分布的直接投影——"位置/侧别"在胸片报告中极其常见,"测量值"则少得多。倒数加权虽然抬升了稀有项,但抬升幅度不足以抹平 tag 频率的先天差距。
§4.6 分布漂移:test 集的反常
Table 5 里有一个必须单独拎出来讲的反常现象:
| 类别 | train | val | test | 变化 |
|---|---|---|---|---|
| Change Location | 38.07 | 37.07 | 23.26 | test 大幅下跌(-14.8) |
| Change Name / Position of Device | 13.64 | 13.47 | 18.91 | test 明显上涨(+5.3) |
| Change Measurement | 5.93 | 6.10 | 7.01 | 小幅上涨 |
train→val 基本平稳,train→test 却出现 ~15 个百分点的跳变,且方向相反(Location 跌、Name/Position 涨)。这说明 test 切分的报告组成与 train/val 不同——很可能是 test 集里"含 device tag 的报告占比更高、含 location tag 的报告占比更低",也可能是切分边界效应或采样种子差异。无论原因是什么,官方未作解释(FACTS.md §5 记为"分布漂移存照")。
对评测的意义:如果你的错误检测器在 test 集上按类别报告指标,Change Location 的绝对数量在 test 上远少于 train,小样本会放大方差;而 Change Name/Position 在 test 上更多,其结果反而更稳。跨切分比较类别级指标前,先看一眼这个漂移是否符合你的实验假设。
§4.7 第④段:splice + Llama 标注
注入完成后进入句级加工:脚本把 original_report 与 error_report 都切成句子,按顺序对齐(splice),再交给 Llama 3.1 标注。Llama 的输出被约束为 python 字典格式 {index: [label, error_class, original_sentence_index]},其中新增句的 original_sentence_index 留空。Llama 在此过程中同时承担 prior 筛查——把引用既往检查的句子归入 error_present=2,这是中性句标签的来源(§2.5)。
标注的另一个重要特性:Llama 是"事后"标注(post-hoc),即先有 GPT-4o 的注入结果,再由 Llama 反向识别每句发生了什么。这与"先设计标签再生成"相反,好处是不必让生成器显式声明意图,坏处是标注质量完全依赖于 Llama 的判断力——而官方只给了"more accurate than regex"这一句定性背书(§3.6)。
§4.8 提示词工程:两轮迭代
GPT-4o 的注入提示词不是一次写成的,而是迭代构建:
- 基础提示词(base prompt):先为每个错误类别写一版基础提示,评估生成质量。
- 加入模型生成示例:把模型自己生成的(好)示例放进提示词作为 few-shot。
- 加入放射科医生提供的示例:再把放射科医生构造的示例加进去。
官方原话:"we incorporated examples of both model-generated and radiologist-provided errors within the prompts in an iterative manner."每一轮加入后都重新评估输出质量,临床医生的反馈贯穿始终。
提示词全文公开:论文 Appendix A 是完整长格式提示词,Appendix B 是分错误类别的提示词(含示例);GitHub 的 ReXErr-report-level-errror_prompts.json 与之同源。这种"提示词全公开"在同类数据集里属高配——它让复现者可以检查每一类错误到底被怎么要求生成,也是诊断"为什么某类错误质量差"的一手材料。
§4.9 每类提示词的指令样例
论文 Table 2 给出若干类别注入指令的样例(对理解"注入到底怎么被要求做"很直观):
- Add Medical Device:“Add sentences … regarding the presence of one or more devices such as these: pacemaker, central venous line, NG tube, ET tube, ICD”
- Change Location:“change ‘right’ to ‘left’ or ‘lateral’ to ‘medial’; always modifying a sentence”
- Change Measurement:“change ‘cm’ to ‘mm’ or change the value … e.g. change ‘4.9 cm’ to ‘5.8 cm’”
可以看到指令被写得相当具体(限定可替换词汇、要求必须改写整句、给出正负例),这正是"临床上貌似真实"的来源——宽泛的指令会产出荒谬错误,具体的指令才产出 plausible 错误。
§4.10 注入示例三连(论文 Table 3)
论文 Table 3 给了三个完整的注入前后对照,是理解 12 类错误实际长什么样的最佳素材:
示例①(冠脉搭桥术后报告):注入 change location(bilateral → right)+ false prediction(虚构 left clavicle fracture)+ add contradiction(关于 effusion 的矛盾句)。
示例②(正常报告):注入 add repetitions("No free air…"整句重复)+ add medical devices(凭空加入 ET tube)+ change to homophone(no → know 一类同音替换)。
示例③(肺水肿报告):注入 change measurement(4.3 cm → 4.3 mm)+ false negation(“severe pulmonary edema” → “No pulmonary edema”)+ add typo(Endotracheal → Endotrakheal)。
示例③还藏着一个官方自认的缺陷:论文指出该报告里 measurement 的改动在 Findings 段与 Impression 段改得不一致——“the measurement change in the third example show discrepancies”。这暴露了一个真实的生成缺陷:跨段落的一致性没有被保证。做报告校正任务时,如果你的模型只在 Findings 段做校正,可能在 Impression 段被"多出来的不一致"绊倒;反过来,这也是一个难得的"复合错误"训练信号。
§4.11 句级示例(论文 Table 4)
| original_sentence | error_sentence | error_present | error_type |
|---|---|---|---|
| PICC line “distal lead tip at the cavoatrial junction” | PICC line “distal lead tip at mid SVC” | 1 | Change Position of Device |
| “multiple images” | “muitiple images” | 1 | Add Typo |
| “Comparison is made to previous study from ___” | (同) | 2 | —(中性句) |
第三行是中性句的典型:引用既往检查的句子被标为 2,因为它"没有额外上下文无法判定对错"。这三行给 downstream 任务一个直接提醒:句级数据里不是每行都有监督价值,2 类行需要单独处理。
§4.12 流水线的可复现性边界
把 §4.1 的四个环节按可复现性分类:
| 环节 | 可复现性 | 说明 |
|---|---|---|
| 预处理(去重 + 视图过滤) | 高 | 规则确定,但依赖 MIMIC-CXR 访问权 |
| tag 扫描 | 高 | 正则确定,代码公开 |
| 采样抽签(Equations 1-4) | 中 | 公式确定,但随机种子未公开 |
| GPT-4o 注入 | 低 | 依赖闭源模型版本与采样温度,无法逐位复现 |
| splice 对齐 | 高 | 脚本公开 |
| Llama 3.1 标注 | 中低 | 依赖 Llama 版本(未披露是 8B/70B/405B),无准确率基准 |
结论:ReXErr 是"代码与提示词可复现、生成结果不可逐位复现"的数据集。它的复现价值在于"你可以用同一套代码和提示词,在自己可控的模型上重跑一遍流程并获得同构的数据",而不在于"复现出与官方逐字节一致的 CSV"。论文与页面都未披露 GPT-4o 的具体版本、调用参数与 Llama 3.1 的型号(FACTS.md 信息缺口第 6/7 条),这在方法学复现上是实质缺口。
§5 获取、许可与合规
§5.1 获取入口与访问档
ReXErr-v1 的官方唯一发布渠道是 PhysioNet,项目页路径为 /content/rexerr-v1/,页面标题即全名 “ReXErr-v1: Clinically Meaningful Chest X-Ray Report Errors Derived from MIMIC-CXR”。数据集于 2025-03-19 挂牌,只有一个版本 1.0.0,没有 v1.1 或修订版——这一点在同实验室的 RadGraph 系(561/622 都经历过修订)里并不常见,说明发布时流水线已定型。
访问档是 Open Access(开放获取)。PhysioNet 页面对该档位的标准描述是:“Anyone can access the files, as long as they conform to the terms of the specified license”(任何人均可获取文件,只要遵守指定许可条款)。与同批次多数条目(Credentialed / Restricted,需完成 CITI 培训并签署数据使用协议)相比,ReXErr 的获取门槛显著更低。
这个开放档位不是疏忽,而是数据内容属性的直接结果:ReXErr 的产物是"已去标识的报告文本 + 由 LLM 合成的错误",本身不含任何 PHI,也不含真实患者影像,因此不构成 MIMIC-CXR 本体那样的隐私暴露面。这也是为什么该团队能在同一母集上既发布 Credentialed 的 RadGraph(含 MIMIC 报告实体标注)又能发布 Open 的 ReXErr——决定访问档的不是母集,而是派生内容是否残留可识别信息。
不过沙箱环境的实测给出了一个必须写清的访问细节:在部分 IP 区域访问 PhysioNet 的 Files 区会显示 “Data Not Available … due to legal or policy restrictions”。这是 PhysioNet 平台对特定地理位置的文件区限制,与数据集本身的许可无关;页面的元数据(标题、描述、引用、Discovery、Usage Notes)完整可达,只有直接下载链接被拦截。遇到这一提示时可换用合规网络环境,或通过页面提供的 DOI 走机构渠道。
§5.2 许可条款:ODbL 1.0(不是 ODC-BY)
ReXErr-v1 的许可是 Open Data Commons Attribution License v1.0,官方书写为 “Open Data Commons Attribution License v1.0”。这里有一个在本库内部传播过的错误必须纠正:旧稿曾把许可写成 ODC-BY——两者是不同许可,不可混用。
需要特别指出的是,ODbL 1.0(Open Data Commons Open Database License 的规范缩写同样是 ODbL,而 Attribution 版写作 ODC-By)本身存在一套容易混用的命名体系。PhysioNet 页面对 ReXErr 给出的许可标签是 Open Data Commons Attribution License v1.0,其 LICENSE.txt 文本包含 Database Right 与 Derivative Database 条款。无论最终按哪种缩写书写,写作者应遵循以下三条实操规则:
- 署名(Attribution)是硬义务:任何再分发、衍生数据库、公开发表的结果表,都必须保留对 ReXErr-v1 及其作者的署名,并注明许可。
- 衍生数据库有额外条款:若把 ReXErr 与其他数据合并成一个新的"衍生数据库"并对外发布,需按许可文本处理该衍生库的开放要求——这正是"ODbL 系"与"纯 Attribution 系"的关键差别。
- 不得暗示官方背书:署名不代表 ReXErr 团队认可你的模型或结论。
写作与使用建议:在论文的方法节与数据可得性声明中,逐字照抄 PhysioNet 页面给出的许可名称,不要自行简写,也不要从其他数据集条目复制许可字符串——许可写错是 AI-Ready 条目评审最常见的硬伤之一。本条目在下游使用场景下均以"署名 + 注明许可 + 不暗示背书"为底线。
§5.3 母集引用义务(MIMIC-CXR v2.1.0)
ReXErr-v1 的 Parent Project 是 MIMIC-CXR Database v2.1.0。这一依赖带来三重义务:
- 访问义务:ReXErr 本身开放,但它只提供标识符与文本。要拿到图像、要做图文联合任务,你必须另行通过 Credentialed 流程获取 MIMIC-CXR / MIMIC-CXR-JPG(后者的许可是 Open,但同样有使用条款)。
- 引用义务:任何使用 ReXErr 的工作都应同时引用 MIMIC-CXR 原始论文(Johnson et al., 2019, Scientific Data)与 ReXErr-v1 本身。PhysioNet 页面与 GitHub README 都把这条明确列出。
- 去标识与 IRB 追溯:母集由 MIT IRB protocol No. 0403000206 与 BIDMC protocol No. 2001-P-001699/14 覆盖,去标识已在上游完成。ReXErr 只是在此之上的文本再加工,不新增加识别风险,但引用时应说明数据的伦理来源链条。
§5.4 下载与体积
PhysioNet 页面给出的官方文件体积为:
| 口径 | 数值 |
|---|---|
| Total uncompressed(解压后总大小) | 508.9 MB |
| ZIP 压缩包 | 82.7 MB |
这组数字是官方页面口径,可直接引用。注意本条目旧稿曾出现"train CSV 201 MB"之类的数字,该数字无任何信源支撑,已剔除;请以页面给出的两档体积为唯一权威口径。文件体量小(五百兆级)也侧面印证了其"纯文本"属性——同样是 MIMIC-CXR 派生,RadGraph 系因含实体级标注而更大,ReXErr 则是轻量的报告文本变体。
§5.5 引用模板
PhysioNet 页面的推荐引用(APA 风格,含 RRID):
Rao, V. M., Zhang, S., Acosta, J. N., Adithan, S., & Rajpurkar, P. (2025). ReXErr-v1: Clinically Meaningful Chest X-Ray Report Errors Derived from MIMIC-CXR (version 1.0.0). PhysioNet. RRID:SCR_007345. https://doi.org/10.13026/9dns-vd94
论文侧引用(PSB 2025):
Rao, V. M., Zhang, S., Acosta, J. N., Adithan, S., & Rajpurkar, P. (2025). ReXErr: Synthesizing Clinically Meaningful Errors in Chest X-Ray Reports. Biocomputing 2025: Proceedings of the Pacific Symposium, 30, 70–81. https://doi.org/10.1142/9789819807024_0006 (PMID: 39670362)
双 DOI 说明:版本 DOI 为 10.13026/9dns-vd94(指向 v1.0.0 这一特定版本),latest DOI 为 10.13026/7ytb-x609(始终指向最新版本)。在需要精确指涉版本时应使用版本 DOI;在综述性引用中可用 latest DOI。两者都是官方给出的合法引用目标,但不要自创第三个 DOI。
§5.6 合规链条小结
把 ReXErr 的合规面拆成四段,可以看清它与"高门槛"条目的差别:
| 环节 | ReXErr 的处理 | 风险等级 |
|---|---|---|
| 母集伦理 | MIMIC-CXR 上游已完成去标识 + MIT/BIDMC IRB | 低(已解决) |
| LLM 推理 | “in a secure environment to ensure data safety and privacy” | 低(轻量声明) |
| 合成内容声明 | Ethics 节明文:不得临床决策、不得作 ground truth、须标注合成属性 | 中(使用方义务) |
| 发布许可 | ODbL 1.0 开放发布,署名义务 | 低(合规即可) |
与同实验室/同母集的其他条目相比,ReXErr 是 “合规最轻” 的一例——它不需要 RadVLM 那样的 Azure 特殊实例与"退出滥用检测"条款(因为发布物本身无 PHI),也不需要 RaDialog 的本地 vicuna 推理。合规等级与访问档是匹配的:因为内容可开放,所以只做轻量声明;因为要开放,所以内容必须先去标识。这条"合规-开放度对偶"是理解 ReXErr 获取流程的钥匙。
§6 评估结果、验证与质量证据
§6.1 验证三件套
ReXErr 的质量主张建立在三层验证之上,强度依次递减:
- 开发期临床反馈(强):在提示词迭代过程中,团队把 model-generated 示例与 radiologist-provided 示例迭代式地加入 prompt,并在每一轮加入后评估输出。这是"人在环中"的设计过程,保证了错误类别本身贴合临床语感。
- 事后 clinician review(强,有数字):随机抽取 100 份报告对交临床医生审查,结论是 83 份 plausible / 17 份 implausible。原始记录以
clinician-review.csv随数据发布——列包括 original_report / error_report / errors_sampled / acceptable(Yes|No) / comments。该审查的透明度在本库内属高位:不是一句"经专家验证"了事,而是把逐条判断与评语一并公开。 - splice 句对 broad manual review(中,无数字):句子拼接后做了"广泛人工复核",目标是"确保多数错误句被正确配对"。这一步没有量化结果(FACTS.md 信息缺口第 8 条)。
§6.2 “17%” 的双口径存照
关于 17 这个数字,页面与论文的表述必须对照阅读:
| 来源 | 原话 | 含义 |
|---|---|---|
| 论文 / 页面正文 | “only 17 contained errors that were implausible” | 100 份抽样中 17 份含不合临床情理的错误 |
| 页面 Usage Notes | “17% of reports to contain implausible errors” | 换算为百分比口径 |
两个口径数值一致、分母一致(均为 100 份抽样),只是一个报"份数"一个报"百分比"。写作时应二者择一并注明分母,避免被误读成"整个数据集有 17% 不合格"——它的样本量是 100,属于抽样估计,不是全量普查。这是 ReXErr 在质量披露上的正确姿势:给数字、给分母、给原始记录,比同批次"零抽检"的条目(如 RadVLM 一类)显然更可核查。
§6.3 Table 5:频率分布的自洽验证(本条目最强的硬证据)
论文 Table 5 给出了 12 类错误在 train/dev/test 三集上"含该类错误的报告占比(%)"。它之所以是验证利器,在于三个子类各自加总恰为 100%,与 §4 的采样公式形成闭环:
| 子类 | 各类占比(train / dev / test,%) | 加总 |
|---|---|---|
| content addition(3 类) | Add Medical Device 33.33/33.32/33.33;False Prediction 33.33/33.32/33.33;False Negation 33.33/33.32/33.33 | ≈100 ✓ |
| linguistic quality(4 类) | Add Opposite 25.00/24.97/24.99;Add Repetitions 25.00/24.97/24.99;Homophone 25.00/24.97/24.99;Typo 25.00/24.97/24.99 | ≈100 ✓ |
| context-dependent(5 类) | Change Name 13.64/13.47/18.91;Change Position 13.64/13.47/18.91;Change Severity 28.71/29.88/30.18;Change Location 38.07/37.07/23.26;Change Measurement 5.93/6.10/7.01 | ≈100 ✓ |
读表要点:
- content addition 三类的三集数值几乎相同(33.3x 级别),直接实证了 Equation 2 的 P(E_A)=1/3 等概率。
- linguistic 四类同样是等概率(25.0x),实证 P(E_L)=1/4。
- context-dependent 五类明显不等(从 5.93% 到 38.07%),正是 Equation 3/4 tag 频率倒数加权的结果——稀有 tag(如 measurement)被赋更高权重,但源报告里可用的 tag 太少,所以它的绝对占比反而最低。
这套加总=100% 的自洽,是外部读者验证"公式真的按描述的跑过"最直接的方式:如果数据集声称等概率,而某一类占了 60%,那公式就没有被正确实现。ReXErr 通过了这项检验。
§6.4 分布漂移与低频骨架
Table 5 还暴露了两个值得记录的现象:
- test 集分布漂移:Change Location 从 train 的 38.07% 跌到 test 的 23.26%;而 Change Name / Change Position of Device 从 ~13.6% 升到 18.91%。这提示 test 集的人口统计或报告构成与 train 有差异,做跨集比较的实验必须意识到这一漂移,不能假设三类错误在 train/test 上同分布。
- 低频三兄弟:Change Measurement(5.93–7.01%)与 Change Name / Position of Device(~13.5%)长期垫底。论文自己承认,这是因为源报告里对应的 tag 少——tag 依赖型错误有天然上限。论文把这几类列为 “key areas for targeted improvements”(定向改进的重点区域)。
一个额外的蛛丝细节:Change Name 与 Change Position of Device 在每一集上的数值逐位完全相同(13.64/13.47/18.91)。这暗示二者共享同一个 device tag 池,采样时在该池上等分——数值的一致性是结构与公式一致的旁证,写作者可以据此推断子类内部的建池逻辑。
§6.5 与同实验室/同母集条目的指标对照
把 ReXErr 放到 RadGraph 系的光谱里,能看清它"验证强度"的相对位置:
| 维度 | ReXErr(本条) | RadGraph2 | RadGraph |
|---|---|---|---|
| 数据性质 | LLM 合成错误注入 | 真实金标标注 | 真实金标标注 |
| 验证方式 | 100 份人工抽样 + 原始记录公开 | 标注一致性 | 标注一致性 |
| 量化质量指标 | 83/17(有分母) | 有 | 有 |
| 规模披露 | 200k+(模糊) | 220,763(精确) | 精确(按集) |
ReXErr 的验证方式独树一帜:它验证的不是"标注对不对",而是"合成得像不像真实的错"。这是两类完全不同的质量主张——RadGraph 系证明"我标注得准",ReXErr 证明"我假得像"。因此 83/17 是一种生成效度(validity) 证据,而不是标注一致性证据。理解这一区别,才能正确评估该数据集的适用边界。
§6.6 官方自认的缺陷清单(诚实性证据)
ReXErr 的文档披露了几个官方自己承认的缺陷,这些是判断其可用性的关键:
- 句子错位与不完整生成:页面 Usage Notes 原话——“there are sentence misalignments and incompletely generated error reports present in both the sentence and report levels”。即两个层级都可能存在句子错位与生成不完整的报告。
- AI 错误效度的自限:“ReXErr adds errors traditionally made by AI models to human text, making them not fully as representative of AI model errors”——把 AI 惯犯的错误注入到人类写的文本上,不等于真实 AI 生成的错误分布。
- 复合错误盲区:采样"不处理嵌套复合错误与单句多错误"(§3.8 详述)。
- 跨段落一致性缺失:Table 3 第三例的 measurement 改动在 Findings 与 Impression 段不一致(§4.10 详述)。
- errors_sampled ≠ 实际注入:§2.6 详述。
这五条自认缺陷本身构成一种质量信号:一个敢于把"句子有错位、生成不完整、错误不够真实"写进页面 Usage Notes 的数据集,比一个只写优点的数据集更值得信任。写作者应在正文中如实呈现,把"数据集的边界"与"数据集的优点"放在同等位置。
§6.7 下游使用证据
ReXErr 挂牌后已出现真实的下游采纳,可作"非自说自话"的旁证:
- Hugging Face 生态:有研究者(如 jj-liew)基于 ReXErr 做 transformers 微调,说明其句级/报告级标签结构可被主流框架直接消费。
- 跨数据集分析:medRxiv 2026 有研究报告将其用于跨数据集分析。引用量方面,Google Scholar 约 13 次(2025–2026 截面),AMiner 显示 7 次——低但非零,符合一个 2025 年才挂牌的新数据集的增长曲线。
下游使用的意义在于:ReXErr 的定位(错误检测/校正的训练与评测)已被外部研究者接受,而不只是作者自用。但也要清醒——目前的下游规模还不足以证明其标签质量在高强度任务下可靠,§6.6 的自认缺陷仍是悬而未决的风险。
§7 使用指南与复现
§7.1 四条必做的前置确认
在下任何一行代码之前,先确认这四件事,可以避开绝大多数踩坑:
- 我要的是哪一层? 报告级(report-level)还是句级(sentence-level)?前者更准、更适合校正/负例任务;后者更细、但有 splice 与标注两道加工引入的噪声。官方明确:report-level 通常更准确,sentence-level 有管道引入误差的潜在风险。
- 我的任务需要图像吗? 需要则必须另行获取 MIMIC-CXR / MIMIC-CXR-JPG(Credentialed 或按其条款),并靠 dicom_id / study_id / subject_id 对齐。ReXErr 本身不含像素。
- 我如何处理 error_present=2? 必须在评测协议里显式声明。见 §7.2。
- 我引用合规了吗? 同时引用 ReXErr 与 MIMIC-CXR,注明 ODbL 1.0 许可与署名。
§7.2 error_present = 2 的处理协议(最容易做错的一步)
error_present 是三值(0/1/2),不是布尔。中性句(2)指引用 prior 或"不含任何临床相关征象/发现"的句子,其对错在缺上下文时不可判定。三种处理各有代价,任选其一但必须显式声明:
| 处理方式 | 做法 | 代价 | 适用场景 |
|---|---|---|---|
| 排除(推荐默认) | 只保留 0/1 做二分类 | 损失部分数据,但监督信号干净 | 错误检测的严格评测 |
| 降权 | 保留但给低样本权重 | 权重需自定,可解释性弱 | 数据量紧张时的折中 |
| 单列统计 | 作为第三个类别单独报告 | 需要多分类框架 | 研究"中性句"本身的分布 |
唯一不能做的是"把 2 默认当 0 处理"——这会把"引用 prior"这类高频正常句式喂成负样本,训练出系统性的假阳性;反过来把 2 当 1 处理,则把临床惯例误判为错误。§4.11 的 Table 4 第三行(“Comparison is made to previous study from ___” 标 2)就是这类句子的原型。
§7.3 报告级 vs 句级的任务映射
| 任务 | 宜用层级 | 理由 |
|---|---|---|
| 报告校正(correction) | report-level | 有 original_report 作为参考答案,端到端 |
| 错误筛检(detection) | 两级皆可 | 报告级做二分类,句级做定位 |
| 句级蕴含(entailment) | sentence-level | original_sentence / error_sentence 天然成对 |
| RL 负例 | report-level | error_report 可直接作 negative example |
| 评测指标验证(RadCliQ 等) | report-level | 需要成对的"正确/错误"报告 |
论文在 Introduction 中点明的两大扩展用途正是报告校正与句级蕴含;把错误报告用作强化学习的负例、以及用来验证自动评测指标(如 RadCliQ)也在论文中被明确提及。任务与层级的匹配错了,再多调参也救不回来——这是 §7.1 第 1 条必须先问的原因。
§7.4 最小评测脚本骨架
下面给一个可直接改用的句级二分类评测骨架,展示了如何正确加载、如何按 §7.2 的处理协议过滤,以及如何做 subject 级数据划分(避免同一患者跨集泄漏——这是医疗数据评测的高频事故点):
import pandas as pd
from sklearn.metrics import roc_auc_score, f1_score
# 1) 加载句级数据(三个官方划分文件)
train = pd.read_csv("ReXErr-sentence-level_train.csv")
test = pd.read_csv("ReXErr-sentence-level_test.csv")
def prepare(df):
# 2) 显式处理三值标签:此处采用"排除中性句"(推荐默认口径)
df = df[df["error_present"].isin([0, 1])].copy()
df["label"] = (df["error_present"] == 1).astype(int)
return df
train, test = prepare(train), prepare(test)
# 3) 断言:同一 subject 不得同时出现在两集(防患者级泄漏)
assert set(train["subject_id"]).isdisjoint(set(test["subject_id"])), \
"patient-level leakage detected"
# 4) 你的句级错误检测器(示意:用文本分类模型替代)
y_true = test["label"].values
y_prob = your_model.predict_proba(test["error_sentence"].tolist())[:, 1]
# 5) 报告指标——务必在论文中声明 error_present=2 的处理口径
print("AUROC:", roc_auc_score(y_true, y_prob))
print("F1 :", f1_score(y_true, (y_prob > 0.5).astype(int)))
脚本里三处刻意写进的东西,正是使用 ReXErr 最常出错的三个点:(a)三值标签的显式处理;(b)患者级划分断言;(c)指标声明。把这三条固化成代码,比写在文档里可靠。
§7.5 errors_sampled 的使用禁令
report-level 的 errors_sampled 是"曾采样"而非"实际注入"(§2.6)。因此:
- 不要用它做报告级错误的"逐类标签统计"——分子分母都对不上,因为采样≠注入。
- 不要假设每份报告真的注入了 3 个错误——GPT-4o 可能合并或省略。
- 要精确标签时,转到 sentence-level 的
error_type列,并在论文里注明"标签取自句级 error_type"。
官方 README 对这条的指引原文是 “for more accurate labeling, see the sentence level labeling”——它是唯一被官方指定的精确标签来源。
§7.6 复现层面的现实预期
依据 §4.12 的可复现性边界,使用与复现 ReXErr 时应有的预期是:
- 代码与提示词(GitHub rajpurkarlab/ReXErr-V1)+ 完整 prompt(论文 Appendix A/B + 仓库 errror_prompts.json)全部公开,因此"同构重跑"可行:你可以用同一套代码在自己的模型上生成一份结构相同的数据。
- 逐字节复现不可行:GPT-4o 是闭源模型(具体版本、温度、调用参数均未披露),Llama 3.1 型号未披露(8B / 70B / 405B 未知),随机种子未公开。因此复现的目标是"同构"而非"同一"。
- 评估复现最稳的做法:不要重跑生成,而是直接用官方发布的 CSV + 公开的 clinician-review.csv 作为质量锚点,把精力放在你自己的模型评测上。
§7.7 与库内其他条目的协同路线
ReXErr 单独用是一个错误报告评测集,组合用才能发挥 MIMIC 派生家族的价值:
| 组合 | 用途 |
|---|---|
| ReXErr + MIMIC-CXR-JPG(617) | 图文联合的错误检测/校正(需两级都拿到) |
| ReXErr + RadGraph(561)/ RadGraph2(622) | 报告校正 + 图结构评测:用金标实体关系检验校正后报告的临床事实保真度 |
| ReXErr + ReXGradient-160K(717) | 同实验室同赛道的"错误注入(小规模开放)vs 大规模连续标注"对照 |
注意分工:RadGraph / RadGraph2 提供"真值结构",ReXErr 提供"错误分布",两者是互补而非替代关系(§10 详述)。把 ReXErr 当作"另一个 RadGraph"是定位错误——它标注的不是实体关系,而是"这句话错在哪一类"。
§7.8 使用红线(来自 Ethics 节)
最后是不可逾越的红线,逐条来自数据集官方 Ethics 声明:
- 永不用于临床决策——错误报告是合成的,任何基于它的临床判断都是建立在假数据上。
- 永不当 ground truth——它不是真实错误金标,只是"貌似真实"的合成对。
- 必须透明标注合成属性——在你的论文/产品中说明所用数据为合成,并用真实数据验证结论。
- 不可作唯一基准——官方原话 “should not be used as the sole benchmark”,它应与真实错误数据集或人工审查结合使用。
§8 避坑清单(九个坑)
本节的九个坑按"踩到的人最多"到"最隐蔽"排序。每一个都给出踩坑现象、根因、正确做法三段。凡官方有明确文本的,都附上原文锚点,方便你自行核验。
坑 1:把 “vast majority” 当精确数,写入 227,835
现象:论文里写"ReXErr 包含 227,835 份报告"或"22.7 万份错误报告"。
根因:227,835 是母集 MIMIC-CXR 的报告数,不是 ReXErr 的。ReXErr 的精确总数零披露——论文正文与全部表格没有报告总数,PhysioNet 页面没有,data-dictionary 也没有。唯一官方口径是 GitHub README 的一句话:
“ReXErr-v1 contains synthetic error reports for the vast majority of MIMIC-CXR (200k+ reports).”
正确做法:只写 200k+。若需要参照系,写"母集 MIMIC-CXR 为 227,835 份报告 / 377,110 张图像 / 65,379 名患者,ReXErr 经 unique report 去重与 AP/PA/Lateral 视图过滤后覆盖其绝大部分",并注明这是推断链而非官方数字。不能把母集数字下放给子集。
坑 2:把 errors_sampled 当实际注入清单
现象:直接按 report-level 的 errors_sampled 列统计"每类错误出现了多少次",并据此计算错误类别分布。
根因:这一列记录的是"曾采样",官方 README 明文警告实际注入可能更少:
“Note that the error report may not contain all of the errors sampled, and for more accurate labeling, see the sentence level labeling.”
采样器可能抽了 3 类,但 GPT-4o 未必全数注入——它可能合并、可能判定不合理而省略、也可能顺手引入别的错误。差额率官方从未披露。
正确做法:需要精确错误标签时以 sentence-level 的 error_type 为准(这也是官方指引)。若坚持用 report-level,必须把 errors_sampled 重新表述为"意图采样的错误类别"而非"实际注入的错误"。
坑 3:把 error_present 当二值,忽略中性句 2
现象:把所有非 1 的行当作"未变句"(=0)处理,或者干脆用 error_present != 0 当正类。
根因:error_present 是三值,官方定义逐字为 “0 corresponds to unchanged sentence, 1 corresponds to error sentence, and 2 corresponds to neutral sentence (references a prior or does not contain any clinically relevant indications/findings)”。第 2 类是引用既往检查或无关临床发现的句子——没有额外上下文根本无法判定其对错。这类句子在胸片报告里高频出现(“Comparison is made to previous study from ___”),把它当 0 会往检测器里灌误导性负样本,当 1 又会把正常临床惯例误判为错误。
正确做法:在评测协议中显式声明对 2 的处置——排除、降权或单列统计都是合法选择;"默认按 0 处理"是错误选择。论文里没写这一条,结果就不可复现也不可比。
坑 4:照抄 GitHub 文件名,结果 404 或路径写错
现象:脚本里写 ReXErr-report-level-error_prompts.json,运行时找不到文件。
根因:官方仓库里这个文件的真实文件名拼错了——是 ReXErr-report-level-**errror**_prompts.json(error 拼成三个 r)。本项目已从 GitHub 页面逐字核对确认,这是官方原始拼写,不是本条目笔误。
正确做法:下载与引用时照抄官方拼写(三 r)。在条目里引用该文件时,注明"官方文件名含拼写错误 errror"。这与库内 523 条目"扩展名 .gz 实为 bz2"是同一类"官方文件名陷阱"——遇到疑似拼写错误先核验源站原文,不要自作主张改回正确拼写。
坑 5:以为 context-dependent 一定会被注入
现象:假设每份报告都必然包含 Change Measurement / Change Location 等 context-dependent 错误,或假设任何报告都能触发 12 类中的任意一类。
根因:context-dependent 五类依赖源报告中的 regex tag(device / measurement / location / severity 锚点)。当报告里没有可识别的 tag 时,这一类无从下手,采样退化为在 content addition + linguistic quality 的 7 类池(3+4=7)中均匀抽取——概率公式里写作 P(E_c | T=∅) = 1/7。此时"每报告 3 错、三子类各 1"的配额不再成立。
正确做法:知道"三子类各 1"是有条件成立的设计目标,不是硬保证。做类别统计时留意无 tag 报告的存在;做类别均衡采样时不要假设 12 类都有充足数据。
坑 6:写"GPT-4o 标注"或"Llama 生成"
现象:论文里写"ReXErr 由 GPT-4o 标注错误"或"由 Llama 3.1 生成错误报告"。
根因:两个模型分工明确、不可互换。GPT-4o 负责报告级错误注入(生成);Llama 3.1 负责句级事后标注(error_present + error_type + 源句索引,并同时筛查 priors)。GitHub README 原文:“After generating error reports from the MIMIC-CXR dataset, reports were then spliced into individual sentences with post-hoc error labeling performed using Llama 3.1.”
正确做法:表述为"GPT-4o 注入 + Llama 3.1 标注双引擎"。另外注意:AI 错误类别本身取自 Rajpurkar 组自家模型(Zhou et al., arXiv 2405.07988)的标注数据,而人类错误类别来自咨询放射科医生——这套来源也不应混淆(§3.2)。
坑 7:把 ReXErr 的错误分布当真实世界错误分布
现象:用 ReXErr 统计出的类别频率(如"Change Location 占 38%,是最常见的报告错误")去论证临床上什么错误最多。
根因:ReXErr 的频率是采样设计出来的,不是临床观察出来的。两层设计都让它偏离真实分布:① "每报告固定 3 错、三子类各 1"的配额制是人为拉平的——真实报告里 content addition 与 linguistic quality 的占比不会恰好各 1/3、1/4;② context-dependent 内部用tag 频率倒数加权(w(t) = 1/f(t)),刻意抬高稀有 tag 的采样概率,主动扭曲了分布以补偿长尾。论文自己承认 Change Measurement / Name / Position 注入频率低是 tag 依赖的天然瓶颈。
正确做法:把 ReXErr 的频率读作"经过纠偏的设计分布",可用于研究"某类错误的可检测性",不可用于推断临床错误发生率。官方 Ethics 红线之一正是"不可当 ground truth"。
坑 8:把合成错误报告当真实错误金标
现象:把 ReXErr 用作"错误检测的黄金标准答案",或写"ReXErr 提供了临床医生验证的错误标注"。
根因:100% 合成。所有错误句由 GPT-4o 生成,放射科医生只参与类别设计、提示词打磨与 100 份事后抽查——没有逐条标注错误。而且 17% 的抽查报告含不合理错误,官方还自认存在句错位与不完整生成。Usage Notes 明文:
“The error-containing reports should never be used for clinical decision-making or treated as ground truth data.”
正确做法:表述为"合成错误语料",并在论文中声明合成属性(官方明示的透明义务)。同时引用 17% 的不合理率作为已知噪声水平。
坑 9:引用 PSB 论文时写错年份或出处
现象:引用写成 “arXiv 2025” 或 “PSB 2024” 或漏掉卷页。
根因:时间线有三层,容易串:arXiv 预印本 v1 提交于 2024-09-17(早于正式刊出);正式的会议出处是 Biocomputing 2025: Proceedings of the Pacific Symposium on Biocomputing, 30: 70-81(World Scientific,DOI 10.1142/9789819807024_0006,PMID 39670362,2024-12 刊出、2025 卷);PhysioNet 数据挂牌于 2025-03-19。三者的年份与身份都不同。
正确做法:区分三种引用形态——
- 数据集:
(version 1.0.0). PhysioNet. RRID:SCR_007345. https://doi.org/10.13026/9dns-vd94(2025) - 论文:
In Biocomputing 2025: Proceedings of the Pacific Symposium (pp. 70-81)(注意 arXiv 页标 2024) - 预印本:
arXiv:2409.10829(2024-09-17)
再加一条常被漏掉的:PhysioNet 平台引用与母集 MIMIC-CXR 引用(§5.3)。
§8.10 坑点速查表
| # | 坑 | 一句话正确做法 |
|---|---|---|
| 1 | 规模精确化 | 只能写 200k+,不得写 227,835 |
| 2 | errors_sampled 当实际注入 | 用 sentence-level 的 error_type 才准 |
| 3 | 忽略中性句 2 | 评测协议必须显式声明 2 的处置 |
| 4 | GitHub 文件名 | 照抄 errror 三 r 拼写 |
| 5 | 假设必然三子类各 1 | 无 tag 时退化为 7 类池 |
| 6 | 生成/标注模型混淆 | GPT-4o 注入、Llama 3.1 标注 |
| 7 | 当真实错误分布 | 是设计分布,不可外推临床 |
| 8 | 当金标/临床可用 | 100% 合成,官方三连禁止 |
| 9 | 引用年份串线 | arXiv 2024-09 / PSB 2025 卷 / 挂牌 2025-03 |
§9 常见问题(FAQ)
Q1:ReXErr-v1 与 ReXErr 是同一个东西吗?要不要加 -v1?
“ReXErr” 是方法名(论文标题用的就是 ReXErr),“ReXErr-v1” 是数据集名(PhysioNet 条目用的)。论文标题是 ReXErr: Synthesizing Clinically Meaningful Errors in Diagnostic Radiology Reports,而 PhysioNet 条目是 ReXErr-v1: Clinically Meaningful Chest X-Ray Report Errors Derived from MIMIC-CXR。引用数据集时用 ReXErr-v1;引用方法时用 ReXErr 也可。注意官方 slug 是 rexerr-v1(PhysioNet URL /content/rexerr-v1/)。
Q2:数据里包含胸片图像吗?
不包含。ReXErr 是纯文本 + 标识符数据集,只有 dicom_id / study_id / subject_id 与报告文本字段。要图像必须另行获取 MIMIC-CXR-JPG,并用标识符对齐。这也是它能以 Open Access 开放的原因之一——发布的不是图像。
Q3:为什么它是 Open Access,而 RadGraph 是 Credentialed?
内容性质不同。ReXErr 发布的是去标识报告文本 + LLM 合成的错误,无 PHI 风险,且官方声明 LLM 推理在安全环境完成;而 radgraph(561)/ radgraph2(622)发布的是对真实报告的人工标注金标,与原始临床文本的关联更直接,走 credentialed 流程。访问档跟着风险等级走,不是团队偏好问题。
Q4:每份报告真的都注入 3 个错误吗?
设计目标是,且三子类各 1。但有条件:① 无 tag 报告会退化为 7 类池(不再保证三子类各 1);② errors_sampled 是采样意图,GPT-4o 实际注入可能少于 3 处。所以"每报告 3 错"应理解为采样配额而非保证的实际错误数。
Q5:error_type 一共有多少种取值?
12 种,但只在 error_present == 1 的行上有意义。包含:Add Medical Device、False Prediction、False Negation、Change Name of Device、Change Position of Device、Change Severity、Change Location、Change Measurement、Add Repetitions、Add Contradictions、Change to Homophone、Add Typo。注意:论文 Table 1 把 Add Contradictions 写作 “Add Opposite Sentence”(§3.4 术语漂移)。
Q6:如何把 ReXErr 与 MIMIC-CXR 图像连接起来?
用 subject_id / study_id / dicom_id 三件套。ReXErr 的 dicom_id 可含多值(一份报告对应多图),做连接时需 exploded 成多行或用 study_id 关联。前提是你必须有 MIMIC-CXR 的 credentialed 访问权——ReXErr 开放不代表图像开放。
Q7:Llama 3.1 的标注可靠吗?
官方只说比 regex “more accurate”,没有准确率数字。所以稳妥的回答是:“官方背书 Llama 3.1 版本较 regex 更准,且默认发布的就是 Llama 版;但准确率未披露,使用时应按可接受噪声对待,最好自建小规模人工校验。”(§7.9 把它列为可贡献的空白之一。)
Q8:为什么 test 集 Change Location 的比例特别低?
Table 5 显示 Change Location 在 train 38.07%、val 37.07%,到 test 骤降到 23.26%,同时 Change Name/Position of Device 从 ~13.6% 涨到 18.91%。官方未作解释——推测是 test 切分的报告组成不同(含 location tag 的报告更少)。做类别级指标时要注意这个漂移,否则会误读模型在 test 上的类别表现(§4.6)。
Q9:可以用 ReXErr 做中文报告的错误检测吗?
数据本身是英文的,不能直接用于中文。但方法可以移植(§7.6):12 类本体、三子类结构、tag 扫描 + 倒数加权、采样公式都可复用;提示词需要重写(few-shot 示例必须换成本语言的真实报告句式);Llama 标注亦然。注意移植时要自建质量验证,因为原方法的人类验证(100 份 83/17)不适用于新语言。
Q10:17% implausible 到底是什么口径?
是报告级口径:随机抽 100 份(原始, 错误)配对,17 份被临床医生判定含不合理错误。不是"17% 的错误不合理"——每份报告有 3 个错误,17 份报告里的不合理错误总数远小于 17 个。第三方复述时常常误压成后者。
Q11:ReXErr 能用来自动评估别的报告生成模型吗?
可以,但要注意方法:① 把 ReXErr 的错误报告当作"已知有错的输入",测待评估指标(如 RadCliQ)是否能捕捉到这些注入错误(§7.4 任务 D);② 不能把 ReXErr 的输出直接当作"评估指标的正确答案"。论文 Introduction 明确提到错误报告可用于验证自动评测指标(RadCliQ 一类)。
Q12:训练集 / 验证集 / 测试集的比例是多少?
官方未披露。三个文件存在(_train / _val / _test),沿用 MIMIC-CXR 官方分区语义,但比例数字两信源都没有。不要臆测比例——想报告数据量就直接报各文件的行数(自己统计)。
Q13:为什么 CSV 这么大?
report-level 三个文件含成对全文(original_report + error_report),报告文本长且行数大,三个文件是体积主体;发布包总未压缩 508.9 MB,ZIP 约 82.7 MB。加载时建议只读需要的列以避免内存压力。
Q14:ReXErr 有官方 leaderboard 或 baseline 吗?
没有。论文不含任何模型指标表,PhysioNet 也没有排行榜。在 ReXErr 上评测,你就是在建立第一个 baseline——这既是引用机会也是判读困难(§6.5)。
Q15:题目里的 “clinically meaningful” 到底指什么?
指注入的错误在临床上貌似真实——不是随机字符噪声,而是像真放射科医生/AI 会犯的错(改左右、改测量单位、否定阳性发现等)。官方表述是 “plausible errors that closely mimic those found in real-world scenarios”,并经过 100 份临床抽查验证(83% 合理)。但"meaningful"不等于"真实"——它是合成的(§坑点 8)。
Q16:数据里有没有含多个错误的句子?
有,但设计上未处理。官方 Usage Notes 承认:“we do not account for nested compound errors, where errors belong to more than one category, or cases where sentences contain more than one error.” 即采样假设一句至多一错,实际可能存在复合错误。所以 error_type 不是句子的完备标签。
Q17:官方承认数据有哪些已知缺陷?
四条(都来自 Usage Notes):① 存在句错位与不完整生成的错误报告(两层都有,未量化);② 部分错误不真实(17% 报告级不合理);③ 未处理复合/嵌套错误;④ 把 AI 模型的错误注入到人类文本上,作为"AI 错误分布"代表性不完全。
Q18:ReXErr 与 rexgradient-160k 什么关系?
同属 Rajpurkar 系(库内 slug 717),都做报告错误方向,但侧重不同:ReXErr 是离散的 12 类错误注入(每报告固定 3 错,类别制);rexgradient-160k 走错误梯度/课程学习路线。两者可对照阅读,看"错误注入"从"类别化"走向"难度梯度化"的演进(§10)。
Q19:可以商用吗?
许可 ODbL 1.0 允许商用,条件是署名,并且衍生数据库的分发须遵循同许可(数据库层约束)。同时须履行引用义务(数据集 + PSB 论文 + PhysioNet 平台 + 母集 MIMIC-CXR)。详细条款见 §5.2。
Q20:为什么有些地方写 “three board-certified radiologists”,致谢却只有两个人?
页面正文说类别是 “developed in consultation with three board-certified radiologists”,致谢只具名 Dr. John Farner 与 Dr. Rohit Reddy 两位。第 3 位身份未披露(FACTS.md 信息缺口第 4 条)。稳妥表述:“与 3 位认证放射科医生协作设计,其中 2 位(Farner、Reddy)在致谢中具名。”
Q21:ReXErr 会不会更新到 v1.1?
当前单版本 v1.0.0(挂牌 2025-03-19 至今无新版本)。PhysioNet 有 latest DOI(10.13026/7ytb-x609)与版本 DOI(10.13026/9dns-vd94),学术引用请用版本 DOI。是否会有新版本官方未表态。
Q22:做报告校正任务,用什么指标比较合适?
不推荐只用 BLEU/ROUGE——合成错误是局部扰动,全局相似度指标会因文本冗长而虚高。建议补充:① 注入错误的纠正率(针对性的、按 error_type 分层);② 临床实体保真度(可用 RadGraph 系抽取关系后比对);③ 若与原文对比,注意 Findings/Impression 跨段一致性(论文 Table 3 示例已暴露这个缺陷)。
Q23:sentence-level 的 error_sentence 一定含错吗?
不一定。GitHub README 原文:“Note that the sentence itself may not necessarily contain an error, but it originates from the error-injected report.” 所以必须看 error_present——只有 1 才算含错句。直接把所有 error_sentence 当错误样本训练是错的。
Q24:如何引用 clinician-review.csv 的价值?
它是 100 份人工审查的原始记录(含逐份 acceptable Yes/No 与 comments),使得 17% 这个数字可逐份复核,而不是一个不可检验的宣称。对做"合成数据质量诊断"研究的人,comments 列是"LLM 注入在何种情况下失败"的一手素材(§2.8)。
Q25:ReXErr 的错误类别是怎么被选出来的?
与 3 位认证放射科医生协作 brainstorm;AI 错误类别参考放射科医生标注的、由最先进模型(Rajpurkar 组自家 generalist learner,arXiv 2405.07988)生成的报告中的错误;人类错误类别来自直接咨询放射科医生。分 AI/人类两群的动机是"错误类型与报告生成方式有关,团队希望保持对各类别的代表性"(§3.2)。
Q26:为什么说它是"报告质控赛道"的空白填补?
此前放射报告错误检测的先例工作域都很窄(侧别错、性别错、单词错 → LSTM 检测 → CheXpert 标签注入 + BERT → GPT-4 五类错误),没有覆盖全量报告的 12 类系统化错误注入。论文用 “lack of studies exploring the utility of error-filled report versions without accompanying correction instructions” 指出这个空白。ReXErr 是首个把"错误报告本身"做成规模化数据资产的尝试(§0)。
Q27:ReXErr 与 RaDialog / RadVLM 是竞争关系吗?
互补。RaDialog(523)与 RadVLM(524)用 MIMIC-CXR 报告造"指令-回答"对,教模型写报告;ReXErr 用同一批报告造"正确-错误"对,教模型改报告。报告生成的两半(写与改)需要不同的数据,两者不冲突(§7.7)。
Q28:我能复现出与官方完全一样的 CSV 吗?
不能。代码与提示词公开,但 GPT-4o 版本、调用参数、随机种子均未披露,Llama 3.1 的具体型号也未说明。复现的价值在于"用同套代码与提示词在自己的可控模型上重跑并得到同构数据",而非逐位一致(§4.12、§7.5)。
Q29:为什么 report-level 比 sentence-level “更准”?
官方原话:“Generally, the report-level dataset will be more accurate given the potential for mistakes introduced within the sentence-splicing and labeling pipeline.” 即句级层多了 splice(可能错位)与 Llama 标注(可能误判)两道加工,每道都可能引入新误差。所以有得选时优先用 report-level(§2.2)。
Q30:这个数据集在库内(千方病案医数集)与哪些条目最相关?
第一梯队:radgraph(561)、radgraph2(622)——同实验室同母集;rexgradient-160k(717)——同实验室同方向;mimic-cxr-jpg(617)——同母集同访问档。第二梯队:radvlm(524)、radialog(523)——同母集互补任务。详见 §10。
§10 生态与库内互链
§10.1 Rajpurkar 报告结构化三部曲
ReXErr 不是孤立条目,它是 Rajpurkar 实验室"MIMIC-CXR 报告结构化"系列的第三卷:
| 序 | 条目 | 挂牌 | 做的事 | 数据性质 | 访问档 |
|---|---|---|---|---|---|
| 一 | radgraph(561) | 2023 | 从报告中抽取实体关系金标 | 人工标注 | Credentialed |
| 二 | radgraph2(622) | 2024-08 | 升级为时序变化的实体关系金标 | 人工标注 | Credentialed |
| 三 | ReXErr-v1(526,本条) | 2025-03 | 向报告注入合成错误 | LLM 全合成 | Open (ODbL) |
三部曲的方向转折值得单独记一笔:前两卷做的是"从真实报告中抽取真实结构"——把报告拆成知识(实体、关系、时序变化),标注靠人工,成果是知识图谱式的资源;第三卷反转方向,做"向真实报告注入合成缺陷"——不标注真实世界,而是合成一个带已知缺陷的世界。同一个实验室、同一份母集,一条路线把报告变成知识,另一条把报告变成考场。
放在一起读的价值:radgraph 系回答"报告里有什么",ReXErr 回答"报告能错成什么样"——前者是理解,后者是纠错,共同构成报告 NLP 的"读"与"医"两端。
§10.2 同母集家族:MIMIC-CXR 的四条加工路线
库内以 MIMIC-CXR 为母集的条目已形成家族,四条加工路线各有分工:
MIMIC-CXR(母集:377,110 图像 / 227,835 报告 / 65,379 患者)
│
├─ ① 原样发布 ──────────→ mimic-cxr-jpg(617)Open (ODbL)
│
├─ ② 共指与结构化 ──────→ radgraph(561)/ radgraph2(622)Credentialed
│
├─ ③ 指令化(教写报告)──→ radialog(523)/ radvlm(524)Credentialed
│
└─ ④ 错误化(教改报告)──→ ReXErr-v1(526,本条)Open (ODbL)
关键对照点:
| 维度 | ReXErr(526) | radgraph2(622) | radvlm(524) | radialog(523) | mimic-cxr-jpg(617) |
|---|---|---|---|---|---|
| 数据性质 | 合成错误注入 | 真实金标 | 指令微调对 | 指令对话对 | 原始图+报告 |
| LLM 角色 | GPT-4o 注入 + Llama 标注 | 无(人工) | GPT-4o 清洗+生成 | vicuna-13b 伪金标 | 无 |
| 总数披露 | 200k+(仅 GitHub) | 220,763 | 719,675 | 零披露 | 227,835 |
| 访问档 | Open (ODbL) | Credentialed | Credentialed | Credentialed | Open (ODbL) |
| 库内角色 | 错误检测/校正训练 | 时序结构化 | 指令化(能指) | 指令化(能聊) | 全栈原料 |
"合成-真实"光谱:617 原始(0% 合成)→ MS-CXR-T 类(局部扰动)→ 人工标注类(623 等)→ 526 ReXErr(LLM 生成 100%)。ReXErr 是本库最靠"全合成"一端的报告文本条目。
§10.3 GPT-4o 在库内的多副面孔
ReXErr 是库内少数使用 GPT-4o 的条目之一,与 radvlm(524)构成有趣对照:
| 条目 | GPT-4o 的角色 | 合规声明强度 |
|---|---|---|
| radvlm(524) | 数据清洗 + 对话生成 | 重(含模型选退/滥用检测条款) |
| ReXErr(526,本条) | 错误注入 | 轻(“去标识 + 安全环境”) |
同一模型的两种医学数据用法:一个用来"把报告变好"(清洗成高质量指令数据),一个用来"把报告变坏"(注入错误)。而合规声明强度的差异印证了 §5.6 的规律——合规强度跟着访问档走:radvlm 是 credentialed(需要更重的约束),ReXErr 是 open(轻量声明即可)。
§10.4 错误方向邻居:rexgradient-160k(717)
库内 slug 717 的 rexgradient-160k 同属 Rajpurkar 系的报告错误方向,与本条互补而非重叠:
- ReXErr-v1(526):离散类别的错误注入——12 类、每报告固定 3 错、类别制采样。
- rexgradient-160k(717):梯度/课程式的错误——按难度层级组织错误生成(名称中的 “gradient” 即指此)。
阅读顺序建议:先读 ReXErr 理解"错误类型的本体",再读 rexgradient 看"错误如何按难度梯度组织"。两者共同呈现了"错误注入"这一方法从分类学走向难度控制的演进路径。
§10.5 下游组合用法
| 组合 | 用途 | 说明 |
|---|---|---|
| ReXErr + mimic-cxr-jpg(617) | 多模态报告质控 | 用标识符对齐图像,检测"文本错误陈述与图像矛盾" |
| ReXErr + radgraph(561)/ radgraph2(622) | 结构化错误检测 | 用实体关系抽取判断错误报告与原文的结构冲突 |
| ReXErr + radvlm(524)/ radialog(523) | 写-改闭环 | 前者教写报告,本条教改报告 |
| ReXErr + rexgradient-160k(717) | 错误本体 vs 错误梯度 | 对照阅读两类错误生成范式 |
§10.6 库外生态定位
ReXErr 在更广的研究生态里的坐标:
- 上游:MIMIC-CXR(母集,JHU/MIT 出品)、MIMIC-CXR-JPG(图像衍生)。
- 同问题域:放射报告错误检测的先行工作(窄域错误检测 → CheXpert 标签注入 + BERT → GPT-4 五类错误检测);Yu et al. 的六类错误框架(Patterns 2023);FineRadScore(Rajpurkar 组自家 line-by-line 校正评测,arXiv 2405.20613)。
- 下游:把 ReXErr 用于错误类型检测的第三方工作(如 jj-liew 的 Hugging Face transformers 实验);把 ReXErr 用于报告评估指标灵敏度分析的后续研究(§6.4)。
- 相关方法:DPO 抑制 prior 幻觉(组内 2406.06496)、ChatCAD+ 报告修订指令。
§10.7 一句话互链总结
要理解"报告里有什么"→ 读 radgraph(561)/ radgraph2(622);要理解"报告怎么写"→ 读 radialog(523)/ radvlm(524);要理解"报告怎么错、怎么改"→ 读本条与 rexgradient-160k(717);要图像 → 读 mimic-cxr-jpg(617)。五条线拼起来,才是 MIMIC-CXR 报告 NLP 的全景。
§11 总结
§11.1 三个数记住 ReXErr
- 12:错误类别总数(3 子类:content addition 3 / context-dependent 5 / linguistic quality 4)。
- 3:每报告注入错误数,三子类各 1——全数据集的"配额制"。
- 17%:100 份临床抽查中判定含不合理错误的报告占比(83 份合理)。
这三个数贯穿全条目,也是读任何第三方转载时的第一道辨伪题——任何与它们冲突的表述,先怀疑转载方。
§11.2 一条流水线记住方法
tag 扫描定池 → GPT-4o 注入(按 Eq 1-4 采样)→ splice 拼接 → Llama 3.1 标注
往后所有"合成数据能不能当训练语料"的争论,都可以用这条四段式管线作为参照系:确定性环节(扫描/拼接/采样公式)可复现,生成性环节(注入/标注)不可逐位复现。
§11.3 一句限定语记住边界
“ReXErr 报告"永远是"合成错误报告”。
任何把它写进临床流程、当作真实错误分布、或与人工金标混用的做法,都同时踩了伦理(§5.8 三红线)与统计(§坑点 7)两个雷区。
§11.4 它的历史位置
ReXErr 填的是报告质控赛道的一块基础设施空白:首个覆盖 MIMIC-CXR 绝大部分报告(200k+)、12 类系统化错误注入、完全开放(ODbL)的错误语料。此前的错误检测研究受困于真实错误语料的稀缺与窄域,ReXErr 把问题反过来——与其等真实错误出现,不如把真实报告系统地改错,让"错误"本身成为可训练、可评测、可复现的数据资产。
§11.5 它的成长空间
按 §7.9 的空白格排序,最有价值的三个方向:官方 baseline(论文没给,先做者得引用)、句级标签质量评估(官方只有定性背书,无人量化)、多模态扩展(纯文本数据集与图像的结合几乎无人做)。ReXErr 是个"被开放、被使用、但尚未被充分评测"的资源——这正是它的机会所在。
§11.6 DAIMS 评估
DAIMS(Data and AI Maturity Score)是对数据集在 AI-Ready 维度上的成熟度打分。本条目 24 项评估如下:
| # | 维度 | 得分 | 依据 |
|---|---|---|---|
| 1 | 数据可获得性 | 9 | PhysioNet Open Access,注册即下载,无需资质审核 |
| 2 | 许可清晰度 | 9 | ODbL 1.0 明确,LICENSE.txt 随包发布,条款完整 |
| 3 | 数据规模 | 7 | 200k+ 报告(大),但精确总数零披露,扣分 |
| 4 | 数据完整性 | 6 | 官方自认句错位与不完整生成存在,未量化 |
| 5 | 格式标准化 | 8 | CSV + data-dictionary.txt + 双层结构清晰 |
| 6 | 文档完备性 | 9 | 页面 + 论文 + GitHub + 提示词全文 + 数据字典全公开 |
| 7 | 元数据丰富度 | 8 | DOI、RRID、作者、版本、母集关系齐备 |
| 8 | 版本管理 | 8 | 单版本 1.0.0,版本 DOI 与 latest DOI 双轨 |
| 9 | 可复现性 | 9 | 代码 + 提示词全释放(生成结果不可逐位复现,但流程完整) |
| 10 | 基准完备性 | 4 | 无官方 baseline、无 leaderboard、无指标表 |
| 11 | 标注质量证明 | 6 | 报告级有量化(83/17),句级只有定性 |
| 12 | 标注协议透明度 | 9 | 提示词全公开、标注方法(Llama/regex)明示 |
| 13 | 伦理合规 | 8 | 合成警告充分 + 安全环境声明;无重型选退条款 |
| 14 | 隐私保护 | 9 | 母集已去标识 + 合成错误 + 安全环境三段式 |
| 15 | 临床相关性 | 9 | 直接面向报告质控这一真实临床痛点 |
| 16 | 任务定义清晰度 | 8 | 三大用途明确;无官方任务规范与评测协议 |
| 17 | 数据划分规范 | 5 | train/val/test 存在但比例未披露 |
| 18 | 分布稳定性 | 5 | test 集 Change Location 漂移 ~15 个百分点 |
| 19 | 类别均衡性 | 4 | context-dependent 内部严重不均(Measurement 仅 ~6%) |
| 20 | 与母集对齐性 | 9 | 标识符与 MIMIC-CXR 直接对齐,分区语义沿用 |
| 21 | 生态互操作性 | 8 | 与 radgraph 系、MIMIC-CXR-JPG、报告生成模型可组合 |
| 22 | 工具链完备性 | 9 | 生成/拼接/标注三段代码 + prompts 全释放 |
| 23 | 社区活跃度 | 5 | Project Views 510(低流量级);引用量低但非零 |
| 24 | 长期可维护性 | 7 | 单版本稳定;后续更新官方未表态 |
总分:约 8.2 / 10
评分解读:ReXErr 的强项集中在"可获得 + 许可清晰 + 文档完备 + 可复现 + 隐私合规"(14/15/19-22 号项多为 8-9 分)——这是一份工程规范度很高的开放资源;弱项集中在"基准完备性(4 分)+ 类别均衡(4 分)+ 划分规范(5 分)+ 分布稳定(5 分)+ 社区活跃(5 分)"——即它开放得好,但基准建得少、使用得还不够多。这与 §6.6 的"流程可信、产物有已知缺陷、基准留白的开放资源"结论完全一致。
同批次对照定位:本条目在"文档完备性"与"可复现性"上属高配(同批次少见提示词全文公开 + 100 份人工审查原始记录随发的组合),在"规模精确披露"上属中下(200k+ 模糊量级),在"基准完备性"上属低配(无任何官方指标)。
事实清单(36 条)
以下 36 条事实均已通过三源核验(PhysioNet 页面 1.0.0 + arXiv 2409.10829 + GitHub rajpurkarlab/ReXErr-V1),标注来源缩写:[P] = PhysioNet 页面、[A] = arXiv 论文、[G] = GitHub README、[L] = LICENSE.txt、[X] = 第三方交叉引用。
定位与身份
- 全名:ReXErr-v1: Clinically Meaningful Chest X-Ray Report Errors Derived from MIMIC-CXR | [P][G]
- 方法名(论文标题):ReXErr: Synthesizing Clinically Meaningful Errors in Diagnostic Radiology Reports | [A]
- 官方 slug:
rexerr-v1(PhysioNet URL /content/rexerr-v1/)| [P] - 条目性质:放射报告合成错误注入数据集,纯文本(不含图像)| [P][G]
团队与机构
5. 5 位作者:Vishwanatha M. Rao、Serena Zhang、Julian N. Acosta、Subathra Adithan、Pranav Rajpurkar | [P][A]
6. 共同一作:Vishwanatha M. Rao 与 Serena Zhang(页面明文 contributed equally)| [P]
7. 通讯/主持人:Pranav Rajpurkar(HMS)| [P][A]
8. 机构:Harvard Medical School 系 4 人 + 印度 JIPMER 1 人(Adithan)| [P][A](推断,页面列作者名与机构)
9. 临床专家协作:3 位 board-certified radiologists 参与类别设计 | [P]
10. 致谢具名:Dr. John Farner 与 Dr. Rohit Reddy(error categories + prompts 的临床输入)| [P][G]
11. COI 声明:无(“The authors have no conflicts of interest to declare”)| [P]
版本与时间线
12. PhysioNet 挂牌:2025-03-19,单版本 1.0.0 | [P]
13. arXiv v1 提交:2024-09-17 | [A]
14. 正式出处:Biocomputing 2025: Proceedings of the Pacific Symposium,30: 70-81,World Scientific | [P][A]
15. 论文 DOI:10.1142/9789819807024_0006;PMID 39670362 | [P]
16. 版本 DOI:10.13026/9dns-vd94;latest DOI:10.13026/7ytb-x609 | [P][G]
17. RRID:SCR_007345(PhysioNet 平台统一)| [P]
许可与访问
18. 访问档:Open Access(无需资质审核)| [P]
19. 许可:Open Data Commons Attribution License v1.0(ODbL 1.0) | [P][L]
20. 引用义务:须同步引用母集 MIMIC-CXR Database v2.1.0 | [P]
规模与披露
21. 精确报告总数:零披露(论文/页面/GitHub 均无)| [P][A][G]
22. 唯一官方口径:GitHub README “synthetic error reports for the vast majority of MIMIC-CXR (200k+ reports)” | [G]
23. 母集 MIMIC-CXR v2.0.0:377,110 图像 / 227,835 报告 / 65,379 患者 | [P](母集数字,非 ReXErr)
24. train/val/test 划分比例:未披露 | [P][A]
25. 句级规模(句对数、0/1/2 分布):未披露 | [P][A]
26. 发布包体积:总未压缩 508.9 MB,ZIP 约 82.7 MB | [X]
数据内容与结构
27. report-level 六列:dicom_id、study_id、subject_id、original_report、error_report、errors_sampled | [P][G]
28. sentence-level 七列:dicom_id、study_id、subject_id、original_sentence、error_sentence、error_present、error_type | [P][G]
29. error_present 三值:0=未变句、1=错误句、2=中性句(引用 prior 或不含临床相关发现) | [P][G]
30. 文件清单:2 文件夹 + 9 文件(report-level 三 + sentence-level 三 + README + clinician-review.csv + data-dictionary.txt)| [P][G]
31. 每报告固定注入 3 处错误,三子类各 1 | [P][A]
32. 12 类错误分 3 子类:content addition 3 类(Add Medical Device / False Prediction / False Negation)、context-dependent 5 类(Change Name/Position of Device、Change Severity/Location/Measurement)、linguistic quality 4 类(Add Repetitions / Add Contradictions / Change to Homophone / Add Typo)| [P][G]
33. 双群映射:Repetitions/Contradictions = AI 模型错误;Homophone/Typo = 临床医生错误 | [P]
采样与生成
34. 采样公式四条件概率:Eq1 三子类独立、Eq2 P(E_A)=1/3 与 P(E_L)=1/4、Eq3 context-dependent 按 tag 加权(无 tag 时 1/7)、Eq4 权重 w(t)=1/f(t) | [A]
35. Table 5 频率自洽:content addition 三类各 33.33、linguistic 四类各 25.00、context-dependent 五项加总 99.99 | [A]
验证与标注
36. 人工验证:100 份随机抽样报告对送临床医生审查,83 plausible / 17 implausible(官方换算 “17% of reports to contain implausible errors”)| [P][A]
说明:以上为三源核验后的确定事实。第三方交叉引用([X])的 508.9 MB / 82.7 MB 来自 PhysioNet 页面文件区的公开快照,未被官方页面元数据直接列出,属可复核的旁证数字。
术语表
| 术语 | 英文 | 释义 |
|---|---|---|
| ReXErr-v1 | ReXErr-v1 | HMS Rajpurkar 实验室的放射报告合成错误数据集,2025-03-19 在 PhysioNet 以 ODbL 开放 |
| 合成错误注入 | synthetic error injection | 用 LLM 向真实报告人工植入错误,构造(原始, 错误)配对 |
| report-level | report-level | 整份报告粒度(6 列),噪声较低 |
| sentence-level | sentence-level | 单句粒度(7 列),经 splice + 标注加工 |
| report 去重 | unique report deduplication | 一份报告对应多张图时合并为一行,dicom_id 并列多值 |
| 视图过滤 | view filtering | 只保留 AP / PA / Lateral 三种投照视图 |
| AP / PA / Lateral | AP / PA / Lateral | 前后位 / 后后位 / 侧位,胸片三种投照 |
| content addition | content addition | 凭空添加类错误(3 类,含虚构器械/预测/否定) |
| context-dependent | context-dependent | 篡改既有陈述类错误(5 类,依赖报告中的 tag) |
| linguistic quality | linguistic quality | 语言质量类错误(4 类,含重复/矛盾/同音/拼写) |
| Add Medical Device | Add Medical Device | 加入不存在的医疗器械存在句 |
| False Prediction | False Prediction | 虚构一个不存在的发现(如骨折) |
| False Negation | False Negation | 把阳性发现否定为阴性 |
| Change Name of Device | Change Name of Device | 篡改器械名称 |
| Change Position of Device | Change Position of Device | 篡改器械位置(如 PICC 尖端位置) |
| Change Severity | Change Severity | 篡改严重程度(如 mild→severe) |
| Change Location | Change Location | 篡改位置/侧别(如 right→left) |
| Change Measurement | Change Measurement | 篡改测量值(如 4.9 cm→5.8 cm) |
| Add Repetitions | Add Repetitions | 整句重复(模拟 AI 模型错误) |
| Add Contradictions | Add Contradictions | 加入与原文矛盾的句子(论文旧称 Add Opposite Sentence) |
| Change to Homophone | Change to Homophone | 改为同音词(如 no→know,模拟医生笔误) |
| Add Typo | Add Typo | 添加拼写错误(如 Endotracheal→Endotrakheal) |
| error_present | error_present | 句级三值指示器:0 未变 / 1 含错 / 2 中性 |
| 中性句 | neutral sentence | error_present=2,引用 prior 或不含临床相关发现,无上下文无法判对错 |
| error_type | error_type | 句级错误类型标签(仅 error_present=1 时非空) |
| errors_sampled | errors_sampled | 曾采样的错误类别清单(非实际注入清单) |
| tag | tag | 正则识别的锚点(device / measurement / location / severity),context-dependent 的前置条件 |
| 7 类池退化 | 7-class fallback pool | 无 tag 时在 content addition + linguistic quality 的 7 类中均匀采样 |
| 频率倒数加权 | inverse-frequency weighting | w(t)=1/f(t),抬高稀有 tag 的采样概率以补偿长尾 |
| 配额制 | quota scheme | 每报告固定 3 错、三子类各 1 的采样设计 |
| splice / 拼接 | splicing | 把原报告与错误报告切句对齐的过程 |
| GPT-4o | GPT-4o | 负责报告级错误注入的生成引擎 |
| Llama 3.1 | Llama 3.1 | 负责句级事后标注的标注引擎(比 regex “more accurate”) |
| prompt 迭代 | prompt iteration | 基础提示 → 加模型示例 → 加医生示例的三轮打磨 |
| clinician-review.csv | clinician-review.csv | 100 份人工审查原始记录(acceptable Yes/No + comments) |
| plausible / implausible | plausible / implausible | 临床医生对合成错误报告合理性的判定 |
| 术语漂移 | terminology drift | 同一错误类别在论文与平台间名称不同(Add Opposite Sentence vs Add Contradictions) |
| MIMIC-CXR | MIMIC-CXR | ReXErr 的母集,去标识胸片图文数据集 |
| MIMIC-CXR-JPG | MIMIC-CXR-JPG | MIMIC-CXR 的图像衍生版(库内条目 617) |
| RadGraph / RadGraph2 | RadGraph / RadGraph2 | 同实验室的实体关系抽取金标(库内 561 / 622) |
| Credentialed / Open Access | Credentialed / Open Access | PhysioNet 两种访问档:需资质审核 / 开放获取 |
| ODbL 1.0 | Open Data Commons Attribution License 1.0 | ReXErr 的许可,含数据库权利与衍生库约束 |
| ODC-BY | Open Data Commons Attribution License | 另一份许可,仅管内容署名,不是 ReXErr 的许可 |
| DAIMS | Data and AI Maturity Score | 数据集 AI-Ready 成熟度评分体系(本条目 24 项,总分约 8.2) |
附录 A:文件清单与列结构速查
ReXErr-v1/(2 文件夹 + 9 文件;总未压缩 508.9 MB,ZIP 82.7 MB)
├── ReXErr-report-level/
│ ├── ReXErr-report-level_train.csv ← 6 列
│ ├── ReXErr-report-level_val.csv
│ └── ReXErr-report-level_test.csv
├── ReXErr-sentence-level/
│ ├── ReXErr-sentence-level_train.csv ← 7 列
│ ├── ReXErr-sentence-level_val.csv
│ └── ReXErr-sentence-level_test.csv
├── README.md
├── clinician-review.csv ← 5 列(100 份人工审查)
└── data-dictionary.txt
| 文件 | 列 |
|---|---|
| report-level CSV | dicom_id, study_id, subject_id, original_report, error_report, errors_sampled |
| sentence-level CSV | dicom_id, study_id, subject_id, original_sentence, error_sentence, error_present, error_type |
| clinician-review.csv | original_report, error_report, errors_sampled, acceptable(Yes\ |
附录 B:12 类错误本体全表
| 子类 | 序 | 英文类名 | 中文 | 采样概率 | 归属群 |
|---|---|---|---|---|---|
| content addition | 1 | Add Medical Device | 添加医疗器械 | 1/3 | AI 错误 |
| content addition | 2 | False Prediction | 虚假预测 | 1/3 | AI 错误 |
| content addition | 3 | False Negation | 虚假否定 | 1/3 | AI 错误 |
| context-dependent | 4 | Change Name of Device | 篡改器械名称 | tag 加权 | AI 错误 |
| context-dependent | 5 | Change Position of Device | 篡改器械位置 | tag 加权 | AI 错误 |
| context-dependent | 6 | Change Severity | 篡改严重程度 | tag 加权 | AI 错误 |
| context-dependent | 7 | Change Location | 篡改位置/侧别 | tag 加权 | AI 错误 |
| context-dependent | 8 | Change Measurement | 篡改测量值 | tag 加权 | AI 错误 |
| linguistic quality | 9 | Add Repetitions | 添加重复 | 1/4 | AI 错误 |
| linguistic quality | 10 | Add Contradictions | 添加矛盾 | 1/4 | AI 错误 |
| linguistic quality | 11 | Change to Homophone | 改为同音词 | 1/4 | 人类错误 |
| linguistic quality | 12 | Add Typo | 添加拼写错误 | 1/4 | 人类错误 |
注:linguistic quality 子类横跨两群——重复与矛盾模拟 AI 模型错误,同音与拼写模拟医生笔误。这是本表中唯一"一个子类含两类归属"的情况。
附录 C:Table 5 错误类别频率全表
% reports containing(单位:%)
| 子类 | 错误类别 | train | val | test |
|---|---|---|---|---|
| content addition | Add Medical Device | 33.33 | 33.32 | 33.33 |
| content addition | False Prediction | 33.33 | 33.32 | 33.33 |
| content addition | False Negation | 33.33 | 33.32 | 33.33 |
| linguistic quality | Add Opposite Sentence / Contradictions | 25.00 | 24.97 | 24.99 |
| linguistic quality | Add Repetitions | 25.00 | 24.97 | 24.99 |
| linguistic quality | Change to Homophone | 25.00 | 24.97 | 24.99 |
| linguistic quality | Add Typo | 25.00 | 24.97 | 24.99 |
| context-dependent | Change Name of Device | 13.64 | 13.47 | 18.91 |
| context-dependent | Change Position of Device | 13.64 | 13.47 | 18.91 |
| context-dependent | Change Severity | 28.71 | 29.88 | 30.18 |
| context-dependent | Change Location | 38.07 | 37.07 | 23.26 |
| context-dependent | Change Measurement | 5.93 | 6.10 | 7.01 |
子类加总:content addition 99.99 ✓;linguistic quality 99.96 ✓;context-dependent 99.99 ✓。
分布漂移警示:test 集 Change Location(23.26)较 train(38.07)下跌 ~15 个百分点,Change Name/Position 上涨(13.64→18.91)。
附录 D:采样公式
Eq 1 P(E_c, E_A, E_L | T) = P(E_c | T) × P(E_A) × P(E_L)
Eq 2 P(E_A) = 1/|A| = 1/3 ;P(E_L) = 1/|L| = 1/4
Eq 3 P(E_c | T=t_i) = w'(t_i) / ( Σ_{t∈T} w'(t) × E(t) ) (T≠∅)
P(E_c | T=∅) = 1/(|A|+|L|) = 1/7 (无 tag 退化)
Eq 4 w(t) = 1/f(t) ;W = Σ_{t∈T} w(t) ;w'(t) = w(t)/W
附录 E:引用模板
数据集(APA,含 RRID)
Rao, V., Zhang, S., Acosta, J., Adithan, S., & Rajpurkar, P. (2025).
ReXErr-v1: Clinically Meaningful Chest X-Ray Report Errors Derived from
MIMIC-CXR (version 1.0.0). PhysioNet. RRID:SCR_007345.
https://doi.org/10.13026/9dns-vd94
BibTeX
@misc{rexerr_v1_2025,
title = {ReXErr-v1: Clinically Meaningful Chest X-Ray Report Errors
Derived from MIMIC-CXR},
author = {Rao, Vishwanatha M. and Zhang, Serena and Acosta, Julian N.
and Adithan, Subathra and Rajpurkar, Pranav},
year = {2025},
note = {version 1.0.0},
doi = {10.13026/9dns-vd94},
url = {https://physionet.org/content/rexerr-v1/1.0.0/}
}
PSB 论文
Rao, V. M., Zhang, S., Acosta, J. N., Adithan, S., & Rajpurkar, P. (2024).
ReXErr: Synthesizing Clinically Meaningful Errors in Diagnostic Radiology
Reports. In Biocomputing 2025: Proceedings of the Pacific Symposium
(pp. 70-81). https://doi.org/10.1142/9789819807024_0006
PhysioNet 平台引用(官方要求附)
Pollard, T., Moody, B. E., Lehman, L., Gow, B., Fernandes, C., Xie, C.,
Johnson, A., Mark, R. G., & Heldt, T. (2026). PhysioNet as a global
platform for biomedical research. Nature Health.
https://doi.org/10.1038/s44360-026-00096-z
母集(MIMIC-CXR)引用
Johnson, A. E. W., et al. (2019). MIMIC-CXR, a de-identified publicly
available database of chest radiographs with free-text reports.
Scientific Data, 6, 317.
附录 F:许可与访问档对照
| 项 | ReXErr-v1(本条) | radgraph(561) | radgraph2(622) | mimic-cxr-jpg(617) |
|---|---|---|---|---|
| 访问档 | Open Access | Credentialed | Credentialed | Open Access |
| 许可 | ODbL 1.0 | Credentialed 条款 | Credentialed 条款 | ODbL 1.0 |
| 需资质审核 | 否 | 是 | 是 | 否(图像本身需) |
| 需 DUA | 否 | 是 | 是 | 图像部分需 |
| 数据性质 | 合成错误文本 | 人工标注金标 | 人工标注金标 | 原始图文 |
| 挂牌 | 2025-03-19 | 2023 | 2024-08-08 | 2019-12 |
附录 G:库内互链索引
| slug | 条目名 | 关系 | 互链理由 |
|---|---|---|---|
| radgraph | RadGraph | 同实验室 / 同母集 | 报告实体关系抽取金标,三部曲第一卷 |
| radgraph2-radiology-reports | RadGraph2 | 同实验室 / 同母集 | 时序实体关系金标,三部曲第二卷 |
| rexgradient-160k | ReXGradient-160K | 同实验室 / 同方向 | 错误梯度式课程学习,与本条错误本体对照 |
| mimic-cxr-jpg | MIMIC-CXR-JPG | 同母集 / 同访问档 | 提供 ReXErr 缺失的图像,可做多模态质控 |
| radvlm | RadVLM | 同母集 / 互补任务 | 指令化教"写"报告,与本条教"改"报告互补 |
| radialog | RaDialog | 同母集 / 互补任务 | 指令对话教"写"报告,同上 |
附录 H:本条目与旧稿(archive_v1)的口径修订记录
上一轮代理留下的残缺旧稿(archive_v1/526_part2.md、526_part3.md、526_part4.md,共约 1013 行)存在若干事实错误,本条目已全部按三源核验结果修订:
| 项 | 旧稿口径(错误) | 本条目口径(核验后) | 依据 |
|---|---|---|---|
| 许可 | ODC-BY | ODbL 1.0 | LICENSE.txt 含 Database Right / Derivative Database 条款 |
| Project Views | 5 | 510 | PhysioNet 页面元数据 |
| RadGraph 挂牌 | 2021 | 2023 | PhysioNet radgraph 条目 |
| 文件总数 | 8 个 | 9 个(含 README.md) | PhysioNet 文件清单 |
| 类别设计者 | “3 位放射科医生设计” | 3 位咨询 + 致谢具名 2 人(Farner/Reddy) | 页面 Background vs Acknowledgements 双口径 |
| train CSV 体积 | 201 MB(旧稿实测) | 未采用(FACTS.md 无此数字来源) | 官方只给总包 508.9 MB |
方法论说明:本条目以 FACTS.md(三源核验存档)为唯一事实底座,全部内容重写,未直接拼接旧稿。
附录 I:官方已知缺陷清单
| # | 缺陷 | 出处 | 量化 |
|---|---|---|---|
| 1 | 存在句错位(sentence misalignments) | Usage Notes | 未量化 |
| 2 | 存在不完整生成的错误报告 | Usage Notes | 未量化 |
| 3 | 部分错误不真实 | Usage Notes / 验证 | 17% 报告级 |
| 4 | 未处理嵌套复合错误(nested compound errors) | Usage Notes | — |
| 5 | 未处理单句多错(sentences contain more than one error) | Usage Notes | — |
| 6 | AI 错误注入到人类文本上,AI 错误代表性不完全 | Usage Notes | — |
| 7 | Findings 与 Impression 段错误一致性不足 | 论文 Table 3 分析 | 举例说明 |
| 8 | errors_sampled ≠ 实际注入 | GitHub README | 未量化 |
| 9 | 句级标注(Llama)准确率未披露 | GitHub README | 只有 “more accurate” 定性 |
附录 J:下游任务设计模板
模板 1:句级错误检测(二分类)
# 伪代码
df = load("ReXErr-sentence-level_train.csv")
df = df[df.error_present != 2] # 显式排除中性句(或改为降权/单列)
X, y = df.error_sentence, (df.error_present == 1).astype(int)
# 训练检测器;按 error_type 分层报告指标
模板 2:错误类型分类(12 类)
df = load("ReXErr-sentence-level_train.csv")
df = df[df.error_present == 1] # 仅含错句有 error_type
X, y = df.error_sentence, df.error_type
# 注意类别极不平衡(Change Measurement 仅 ~6%),用分层采样或类别权重
模板 3:报告校正(序列到序列)
df = load("ReXErr-report-level_train.csv")
src, tgt = df.error_report, df.original_report
# 指标:BLEU/ROUGE + 按 error_type 的纠正率 + 临床实体保真度
模板 4:评测指标灵敏度
df = load("ReXErr-report-level_test.csv")
for metric in candidate_metrics:
s_orig = metric(df.original_report)
s_error = metric(df.error_report)
sensitivity = s_orig - s_error # 该指标对合成错误的灵敏度
附录 K:与 MIMIC-CXR-JPG 的连接方法
# ReXErr 报告级 → MIMIC-CXR 图像
import pandas as pd
rexerr = pd.read_csv("ReXErr-report-level_test.csv")
# dicom_id 可能含多值(一份报告对应多图),需 exploded
rexerr_exp = rexerr.assign(
dicom_id=rexerr.dicom_id.astype(str).str.split(",")
).explode("dicom_id")
rexerr_exp["dicom_id"] = rexerr_exp.dicom_id.str.strip()
# 与 MIMIC-CXR-JPG 的 metadata 按 dicom_id 连接
mimic = pd.read_csv("mimic-cxr-2.0.0-metadata.csv.gz")
merged = rexerr_exp.merge(mimic, on="dicom_id", how="inner")
# merged 现在同时含错误报告文本与图像路径
注意:需要 MIMIC-CXR-JPG 的 credentialed 访问权,且图像使用受其自身 DUA 约束。
附录 L:术语漂移归一表
| 概念 | 论文(Table 1) | PhysioNet 页面 | GitHub README | 论文 Table 3 示例 |
|---|---|---|---|---|
| 加入矛盾句 | Add Opposite Sentence | Add Contradictions | Add Contradictions | add contradiction |
用法:跨文献聚合错误类别统计时,先按本表归一,否则同一类别会被重复计数。
附录 M:三源核验记录
| 信源 | URL | 核验内容 | 结果 |
|---|---|---|---|
| PhysioNet 页面 | https://physionet.org/content/rexerr-v1/1.0.0/ | 版本、挂牌日期、许可、DOI、12 类名、伦理声明、文件清单 | ✅ 全部确认 |
| PhysioNet LICENSE | …/1.0.0/LICENSE.txt | ODbL 条款(Database Right / Derivative Database / Section 6/8/9) | ✅ 确认为 ODbL |
| arXiv | https://arxiv.org/abs/2409.10829 | 标题、5 作者、2024-09-17 v1、摘要 | ✅ 全部确认 |
| GitHub README | https://github.com/rajpurkarlab/ReXErr-V1 | 200k+ 口径、文件结构、errror 拼写、Llama vs regex、errors_sampled 警告 | ✅ 全部确认 |
| 第三方交叉 | 下游仓库 + medRxiv 引用 | 17% 验证结论、12 类清单、许可表述、DOI | ✅ 互证一致 |
附录 N:主题自查路由表
| 你想知道 | 去哪看 |
|---|---|
| 这数据集是什么 | §0 导读、INFOBOX、§1 Q1 |
| 有多少数据 | §2.11、§1 Q2、坑点 1 |
| 错误类型有哪些 | §3.1、附录 B |
| 每报告几个错 | §4.4、§1 Q4 |
| 采样公式 | §4.4、附录 D |
| 句级标签怎么理解 | §2.5、§3.5、Q5、Q23 |
| 谁生成谁标注 | §3.5、坑点 6、Q6 |
| 怎么下载 | §5.10、§5.1 |
| 许可与引用 | §5.2、§5.3、附录 E |
| 合成质量如何 | §6.2、Q10、Q17 |
| 有哪些已知缺陷 | 附录 I、Q17 |
| 怎么做实验 | §7.2、§7.4、附录 J |
| 有哪些坑 | §8 全节 |
| 和别的数据集什么关系 | §10、附录 G |
| DAIMS 评分 | §11.6 |
| 旧稿改了什么 | 附录 H |
尾注
数据来源:本条目全部事实基于三源核验——PhysioNet 官方页面(rexerr-v1 v1.0.0,含 LICENSE.txt)、arXiv 预印本(2409.10829)与 GitHub 官方仓库(rajpurkarlab/ReXErr-V1),并有第三方下游工作交叉印证。核验记录见附录 M,完整事实档案见同目录 FACTS.md。
引用义务提示:使用 ReXErr-v1 时,请按附录 E 的模板完成四份引用——数据集(含 RRID) + PSB 论文 + PhysioNet 平台 + 母集 MIMIC-CXR。
免责声明:ReXErr-v1 是合成错误数据集,官方明文禁止将其用于临床决策、当作 ground truth、或作为系统性能的唯一基准。本条目为数据集百科,不构成任何临床建议。
许可说明:本条目内容为千方病案医数集编辑部编写的元数据条目;被描述的数据集 ReXErr-v1 的许可为 ODbL 1.0(Open Data Commons Attribution License v1.0),其使用受该许可及同步引用义务约束。
编辑部:千方病案医学编辑部
最后审阅:2026-09-30
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- clinicaltrials-gov — 共享标签:医疗NLP / 临床文本 / 评测基准
- rexgradient-160k — 共享标签:临床文本 / X光影像 / 评测基准
- chexpert-plus — 共享标签:医疗NLP / 临床文本 / X光影像
- mediqa — 共享标签:医疗NLP / 临床文本 / 评测基准
- blue-benchmark — 共享标签:医疗NLP / 临床文本 / 评测基准
- mimic-iv-ext-pe — 共享标签:医疗NLP / 临床文本
- rad-coreference-resolution — 共享标签:医疗NLP / 临床文本
- radgraph2-radiology-reports — 共享标签:医疗NLP / 临床文本
- mednli — 共享标签:医疗NLP / 临床文本 / 评测基准
- medcalc-bench — 共享标签:医疗NLP / 临床文本 / 评测基准
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

