信息速览
一份出院医嘱只有几百个词,读起来平实得像说明书:「按时服药」「两周后复查」「如果出现胸痛请立刻就诊」。衡量这份东西写得好不好,通常看它与电子病历里的结构化字段是否一致;但真正要回答的问题是另一句:这句话里的每一个事实,能不能在这位患者的病程记录里找到出处。这个问题在通用领域已经很难,在医疗领域更难——因为医生书写的摘要里,大量信息本来就没有写进病程:它来自查房时的口头交代、来自出院前一刻的临时调整、来自另一位医生口头交代过但并未落笔的判断。大模型替医生写摘要时,同一句话的性质就从「合理补充」变成了「幻觉」,而两者的字面形态几乎无法区分。
把这件事变成可计算的任务,需要先有一份「逐句划过线」的答案。ann-pt-summ(全名 Medical Expert Annotations of Unsupported Facts in Doctor-Written and LLM-Generated Patient Summaries)做的正是这件事:两名医学背景的标注者,按一套十一类标签的协议,对人类医生写的摘要和五个大模型写的摘要逐段比对、标出每一个无出处的片段,并把这些标注连同十万量级的预处理语料一起,托管在 PhysioNet 上。
它的身份需要一开始就摆正:这不是一个「更大的医疗文本数据集」,而是一个判读基准——规模小到不能训练深度模型,标注细到足以给自动幻觉检测方法打分。又因为它的上游是 MIMIC-IV,获取它必须先通过伦理培训与数据使用协议,这一点足以劝退一半的潜在用户。先看清全貌再决定是否排队办手续——一屏速览见下表。
| 维度 | 内容 |
|---|---|
| 全名 | Medical Expert Annotations of Unsupported Facts in Doctor-Written and LLM-Generated Patient Summaries |
| 发布方 | PhysioNet(由 MIT 计算生理实验室维护),数据由明斯特大学、MIT、杜克大学团队贡献 |
| 署名作者 | Stefan Hegselmann、Shannon Shen、Florian Gierse、Monica Agrawal、David Sontag、Xiaoyi Jiang |
| 上游来源 | MIMIC-IV-Note v2.2,331,793 份去标识自由文本临床记录,145,915 名患者,波士顿 Beth Israel Deaconess 医学中心 |
| 首次发布 | 2024 年 4 月 28 日,版本 1.0.0 |
| 当前版本 | 1.0.1,2025 年 4 月 30 日发布,仅补充说明,未改数据 |
| 预处理语料 | MIMIC-IV-Note-Ext-DI 与 -BHC 各 100,175 对;其子集 -BHC-Anno 26,178 对 |
| 人工标注规模 | 100 份医生书写摘要 + 100 份模型生成摘要 + 10 份校验摘要,均为字符级跨度 |
| 标注方式 | 2 名第六年德国医学生独立标注后讨论达成一致;工具为 MedTator |
| 标签体系 | 十一类标签,顶层区分无据、矛盾、错误三类,其中无据再分九个小类 |
| 文件格式 | JSONL(text / summary / labels),另有 BioC 格式 XML |
| 访问方式 | 凭证访问,需 CITI「Data or Specimens Only Research」培训并签署使用协议 |
| 许可 | PhysioNet Credentialed Health Data License 1.5.0 与同名使用协议 1.5.0 |
| 持久标识 | DOI 10.13026/gedc-j464(v1.0.1)、10.13026/m6hf-dq94(最新版本) |
| 典型用途 | 幻觉检测方法的评测、数据中心的幻觉削减、高质量患者摘要的生成与评测 |
§1 它要解决的具体麻烦
1.1 「这段话不一定是错的,只是没出处」
医疗文本的事实性判定与通用文本有一处根本差异,值得单独说清楚。在新闻摘要里,如果摘要里出现源文本没有的信息,几乎可以断定为错误;但在出院医嘱里,医生写下的很多内容在自己的病历里找不到,却完全合理——医生知道这个患者昨天在门诊说过什么、知道家属的要求、知道出院前最后一刻改了药。官方页面对此的表述很克制:这些未经充分支持的事实「通常是医疗实践中的常态,一般不应被视为错误」,原因包括信息从未被记录、记录在被选择的上下文之外(本项目只取 Brief Hospital Course),或在出院前一刻被改动过。
于是「有出处吗」这个问题,在人和机器之间的含义不对称。人类医生的补充是合理推断,模型生成的一模一样的句子却可能是凭空编造。要分辨两者,靠阅读摘要本身做不到——必须在摘要与上下文之间做逐词对位,并且需要一个明确的判断规则。本项目给出的规则是:把上下文(BHC)当作关于这位患者的唯一事实依据,但对不涉及特定患者的通用医学知识和常规建议(比如「请遵医嘱服药」)网开一面,即便它不在上下文里也算有出处。这条规则是整个数据的地基。
有了规则,才有后续的可比性。没有规则时,各家论文报告的「幻觉率」互不兼容:有的把常识性的健康建议算幻觉,有的把可以在其他章节查到的信息算有据,有的干脆把「与原文不一致」和「凭空编造」混为一谈。这类研究之间无法比较数字,只能各自说各自的话。ann-pt-summ 的价值首先不在数据量大,而在于把规则固化成了可执行、可复用的标签体系。
1.2 三条常见的错误期待
第一条,期待它是「一个可以直接微调的大语料」。十万个上下文—摘要对确实不小,但它们是预处理过的衍生语料,只用来搭起摘要生成任务的语境;真正带人工标注的是 210 份摘要。指望用它做指令微调并期待模型变老实,会立刻遇到数据量瓶颈。
第二条,期待它给「幻觉 / 无幻觉」的二分类标签。它给的是片段级跨度:每一个标注都带起止字符位置、长度、原文和标签。二分类需要你自己按窗口或按句拼出来,而这个拼接口径会影响结果。官方页面也没有给出可以直接当二分类用的那一列。
第三条,期待它证明「人类写的摘要比模型写的好」。官方页面专门提醒,医生书写摘要中的无据事实是常态而非错误,因为它可能来自被选定上下文之外的记录。把两份数据的标注条数直接摆在一起比较,忽略了这个不对称性,结论就会失真。
1.3 它能给到的与给不到的
| 你的需求 | 它给的 | 够不够 |
|---|---|---|
| 自动幻觉检测方法的评测 | 210 份摘要的字符级跨度标签加统一口径 | 够,这是它最主要的用途 |
| 不同幻觉定义之间的对标 | 十一类标签加明确的「上下文即事实依据」规则 | 够,但需要按自己的口径重映射 |
| 训练一个「守规矩」的摘要模型 | 三套衍生语料(原样 / 已清理 / 已清理并改写) | 可做对照实验,样本量偏小 |
| 复现已发表的幻觉削减实验 | 五个模型的来源与摘要的排列次序均有官方说明 | 够复现论文中的对照设置,但需按 §2.4 的分段规则排 |
| 中文或母语为中文患者的摘要评测 | — | 不够,语料为英文 |
| 门诊、门诊随访等非住院场景 | — | 不够,全部来自住院出院记录 |
| 大规模(万级以上)幻觉训练集 | — | 不够,人工标注仅 210 份 |
| 跨院泛化评测 | 单一上游数据库 | 不够,本质仍是单中心 |
回到标注本身的可信度:官方页面明确写了标注的主观性——两名标注者经讨论达成一致,但过程本身是主观的;不同项目对幻觉的定义或理解不同,会影响标注的可复现性与解释。想用它做可靠性研究的人,需要自己补一份多人背对背的数据。
1.4 你的处境与它能帮到的事
| 你的处境 | 它能帮你什么 | 下一步该做什么 |
|---|---|---|
| 你写了一个基于自然语言推理的幻觉检测器,缺评测集 | 提供带字符偏移的人工答案,可以按句或按窗口校对你的输出 | 先把你的输出对齐到字符级,再按 §5.4 的对齐规则做评测 |
| 你要比较几个模型的「编造倾向」 | 生成侧数据固定 20 个上下文、5 个模型,结构对称 | 注意 100 行的分段对应关系(§2.4),不要混淆模型来源 |
| 你想验证「数据质量比模型结构重要」 | 原样 / 已清理 / 已清理并改写三套语料形成天然对照 | 用同一套训练配方跑三次,把差异归到数据而非超参 |
| 你在做面向患者的健康传播研究 | 医生写的摘要本身就是「患者能读懂到什么程度」的材料 | 注意其中的无据事实是临床常态,不要直接当作错误 |
| 你在写综述,需要一份「医学文本幻觉标注」的实例 | 十一类标签体系及其所源自的相关工作可直接引用 | 引用 PhysioNet 版本与论文两个地方(§9.3) |
| 你想做跨院或多语种验证 | — | 不适合,全部为单一来源的英文住院记录 |
1.5 一句话判断
它不是一个拿来喂模型的语料库,而是一把用来校准「什么才算幻觉」的尺子:先把定义定死,再把每一句话按这个定义划一遍线,最后让别人可以照着同一把尺子重做一遍。
1.6 不适合谁:四条边界
不适合没有 MIMIC 访问权限的团队。 它是凭证化资源,需要先有 PhysioNet 凭据、完成 CITI「Data or Specimens Only Research」培训、签署使用协议 1.5.0。这条流程以周计,且机构层面的审批往往比平台本身慢。做课程作业或短期原型验证的人,成本上不划算。
不适合做生产环境的安全护栏。 210 份摘要撑不起上线前的充分性论证;它可以用作方向性验证,但不能作为唯一的安全依据。
不适合追求「通用医学知识正确性」的任务。 它的判定基准是「这句话在这份上下文里有没有出处」,不是「这句话在医学上是否正确」。一句医学上完全正确、但不见于该患者病程的话,在这里会被标为无据。这个取舍是刻意做出的,用之前要先接受它。
不适合打算直接拿来训练判别模型的人。 标注只有两名标注者,一致性由讨论达成而非统计度量,官方并未给出独立的第三方核验结果。用它训练判别器所得到的结论能否迁移到其他场景,缺少证据支撑。
§2 数据构成与规格
2.1 九个部分:三套预处理语料、三套标注语料、三套衍生语料
官方页面把整个项目拆成三组,每组三个子集,理解这个分组是动手前的第一步。它们的差别不在格式,而在有没有人工标注以及有没有被改写。
| 分组 | 名称 | 规模 | 内容 | 官方给出的文件路径 |
|---|---|---|---|---|
| 预处理语料 | MIMIC-IV-Note-Ext-DI | 100,175 对 | 上下文为出院医嘱之前全部病程,摘要为出院医嘱 | /mimic-iv-note-ext-di/dataset/all.json |
| 预处理语料 | MIMIC-IV-Note-Ext-DI-BHC | 100,175 对 | 同上,但上下文只取 Brief Hospital Course | /mimic-iv-note-ext-di-bhc/dataset/all.json |
| 预处理语料 | MIMIC-IV-Note-Ext-DI-BHC-Anno | 26,178 对 | 上述两者的子集,上下文不超过 4,000 字符、摘要不少于 600 字符 | /mimic-iv-note-ext-di-bhc/dataset/*_4000_600_chars.json |
| 人工标注 | Hallucinations-MIMIC-DI | 100 对 | 从 -BHC-Anno 随机抽样的医生书写摘要,无据事实标注由两名专家达成一致 | /hallucination_datasets |
| 人工标注 | Hallucinations-MIMIC-DI-Valid | 10 对 | 同样抽样来源的校验集,标注方式相同 | /hallucination_datasets |
| 人工标注 | Hallucinations-Generated-DI | 100 对 | 20 个上下文 × 5 个模型生成的摘要, hallucinations 由两名专家标注 | /hallucination_datasets |
| 衍生语料 | Original | 100 对 | 与 Hallucinations-MIMIC-DI 相同的样本 | /derived_datasets |
| 衍生语料 | Cleaned | 100 对 | 在无据事实被人工移除或替换之后的版本 | /derived_datasets |
| 衍生语料 | Cleaned & Improved | 100 对 | 在上一版基础上再修正错误与杂质的版本 | /derived_datasets |
三组之间的血缘关系是一条直线:预处理语料提供抽样池,抽样池里抽出 100 份做标注,标注结果又被人工改造出三套衍生语料。这条线决定了它们不能混在同一个实验里同时出现——否则你会在测试集里看到训练样本的干净版本(§7.3)。
2.2 字段字典:一行 JSONL 里到底有什么
官方页面对格式的说明很简短,但足以还原结构:所有文件都是 JSONL,每行一个 JSON 字典,上下文用键 text,摘要用键 summary;标注语料在此基础上多一个 labels 键。展开成一行的样子大致如下:
{"text": "更多上下文文本……", "summary": "更多出院医嘱摘要文本……",
"labels": [{"start": 312, "end": 386, "length": 74, "text": "被标出的片段原文", "label": "协议中十一类标签之一"}]}
逐个字段的含义与注意事项:
| 字段 | 所在层级 | 取值形态 | 含义 | 使用注意 |
|---|---|---|---|---|
text |
行顶层 | 字符串 | 上下文,即生成摘要所依据的病程 | 两个版本(-DI 与 -BHC)上下文长度不同 |
summary |
行顶层 | 字符串 | 目标摘要,即出院医嘱或被生成的内容 | 医生书写与模型生成的两份不可直接混排 |
labels |
行顶层 | 数组 | 该行的全部人工标注 | 预处理语料没有这个键 |
start |
labels 内 |
整数 | 被标片段的起始字符下标 | 相对于 summary 的偏移,不是全文偏移 |
end |
labels 内 |
整数 | 被标片段的结束字符下标 | 与 start 配套使用 |
length |
labels 内 |
整数 | 片段的字符数 | 应与首尾之差一致,可用于自检 |
text |
labels 内 |
字符串 | 被标片段的原文 | 便于核对偏移是否错位 |
label |
labels 内 |
字符串 | 协议中十一类标签之一 | 具体取值以官方发布的标注协议为准(§10) |
这里最值得强调的是 start / end 相对于哪一段文本。它们描述的是 summary 内部的字符位置,text(上下文)不在同一条坐标轴上。不少人在写评测脚本时误把它们当成整行的偏移,结果全部标错位置;另一个常见错误是在做分词后忘记把字符坐标换算回原始字符串,导致滑动窗口的结论与原文对不上。
2.3 一条记录的完整解剖
以 Hallucinations-MIMIC-DI 的某一行为例。读到的是一个 JSON 对象,含上下文、摘要与若干条标注。把它拆成可读的形式:
import json
#-- 逐行读,避免一次性把整份文件读进内存
with open('hallucinations_mimic_di.jsonl', encoding='utf-8') as f:
row = json.loads(f.readline())
print(row.keys()) #-- text / summary / labels
print(len(row['text']), len(row['summary']))
for lab in row['labels'][:3]:
print(lab['start'], lab['end'], lab['length'], lab['label'])
#-- 取出被标片段,核对偏移量是否自洽
print(repr(row['summary'][lab['start']:lab['end']]))
第三段的切片比对值得每次上手都跑一遍:如果 summary[start:end] 与 labels 里的 text 不一致,说明你的字符处理(编码、换行符、转义)与标注时的口径有差异,后面的评测数字都会偏。
再看 Hallucinations-Generated-DI。它的每一行同样是上下文—摘要对,但摘要由模型生成,并且同一份上下文会出现五次(五个模型各生成一次)。官方页面明确说明了它的排列规则,而这正是 1.0.1 版本专门补充的地方:
#-- Hallucinations-Generated-DI 的 100 行按模型分段,每段 20 行
#-- 1-20 llama_70b_original
#-- 21-40 llama_70b_cleaned
#-- 41-60 gpt4_zero_shot
#-- 61-80 gpt4_orig
#-- 81-100 gpt4_cleaned
这个分段规则只在解随机化(derandomize)之后的 .jsonl 里成立;同一批标注还有一个 MedTator 导出的 .xml 版本,里面的摘要顺序是随机打乱的,用来避免标注者看出来源是哪个模型。两个文件不能混用行数对应关系——这是 1.0.1 版本的更新说明里被点名澄清的那件事,感谢人署名是 Hiba Ahsan。
2.4 三套文件的映射与不可混用之处
| 你要做的事 | 用哪一份 | 不能用的原因 |
|---|---|---|
| 训练摘要生成模型 | 预处理语料(-DI 或 -BHC) | 标注语料只有 210 份,不够训练 |
| 评测自动幻觉检测方法 | Hallucinations-MIMIC-DI 与 Generated-DI | 衍生语料里的无据事实已被移除,没有「坏样本」 |
| 训练「更守规矩」的生成模型 | Cleaned 与 Cleaned & Improved | Original 保留了无据事实,等于把问题继续教给模型 |
| 做三套语料之间的对照 | Original / Cleaned / Cleaned & Improved 三套并列 | 样本编号对齐三份文件,顺序不能重排 |
| 校验配置与提示词 | Hallucinations-MIMIC-DI-Valid(10 对) | 规模太小,只能调参不能下结论 |
最后一行是这份数据里最容易被忽略的一件东西。10 份校验样本的数量对于任何统计结论都太小,但它的价值在于让你在动用那 100 份测试样本之前先把管线调通。常见做法是先在 10 份上调好分词与对齐逻辑,再一次性跑 100 份并冻结结果。
需要提醒的是:三套衍生语料共享同样的 100 个样本编号,因此它们之间不是独立的三个数据集。把它们当成三组不同的患者去做统计检验,等同于把同一份样本重复使用三次。
2.5 与同类资源的字段差异
临床文本的事实性标注没有统一格式,选定之前先看清别人的结构:
| 对比项 | ann-pt-summ | 通用摘要幻觉评测集 | 放射报告错误标注类资源 | 医疗问答评测基准 |
|---|---|---|---|---|
| 标注粒度 | 字符级跨度 | 多为句子级或整段二分类 | 多为整份报告的错误类型计数 | 多为整题得分 |
| 坐标方式 | start / end / length 字符下标 |
通常无坐标,只有句序号 | 通常无坐标 | 无坐标 |
| 标签数量 | 十一类,顶层三分类 | 常为二到三类 | 常为固定几类错误 | 常为准确率或评分 |
| 来源文本 | MIMIC-IV 出院医嘱 | 多为新闻或维基类文本 | 影像报告 | 考试题与问答对 |
| 是否含模型生成样本 | 含,且标注来源模型被随机化 | 多为人工改写生成样本 | 多为人工报告 | 不适用 |
| 是否需要凭证 | 需要 | 通常不需要 | 视来源而定 | 通常不需要 |
这张表要说明的只有一件事:字符级跨度是它最贵也最有用的部分。句子级标签便宜得多,但无法回答「模型是在哪几个词上开始跑偏的」;有了起止坐标,你可以把检测器的输出精细到词,也可以反过来研究错误片段在句中的分布位置(注意:本节不提供任何这类分布数字,需要的请自行在取得数据后计算并明示口径)。
2.6 标签体系:三类顶层,九个小类
官方页面对协议的说明有三句关键的:第一,他们区分无据(unsupported)、矛盾(contradicted)、**不正确(incorrect)**三类事实;第二,无据这一类又进一步细分为九个小类;第三,最终落在每条标注上的 label 取值来自「协议中引入的十一类标签」。
把这三层关系摆出来:
| 层级 | 内容 | 位置 |
|---|---|---|
| 第一层 | 无据、矛盾、不正确 | 官方页面「Methods」段明确列出 |
| 第二层 | 无据之下再分九个小类 | 官方页面「Methods」段明确列出 |
| 第三层 | 每条标注的 label 取十一类标签之一 |
官方页面「Data Description」段明确列出 |
三个数字(3、9、11)之间的关系,官方页面没有给出逐条对应的说明——「三加九减一等于十一」这类推算属于编者自己的猜测,本文不参与。想做细粒度对齐研究的人,应以作者公开在代码仓库里的标注协议为准。
这三层结构在使用上有明确含义。做大粒度评测时,把整个 labels 数组非空的行或其片段判为「有问题」即可,此时你得到的是一个二分类问题;做细粒度研究时,才需要区分矛盾与无据——这两者的纠错策略完全不同:矛盾的事实用上下文去纠正就能解决,无据的事实则往往需要补充上下文之外的知识或干脆删除。
第三层里「通用医学知识与常规建议被允许」这条例外,实际影响很大。官方页面举的例子是「请遵医嘱服药」这句话即便不在上下文里也允许出现。这意味着数据里存在一类看起来无据、实际被许可的句子;如果你的自动检测器不具备这个豁免能力,它的假阳性会被系统性高估。
§3 它是谁的数据:一个跨大西洋的合作,一份被反复筛选过的病案切片
3.1 贡献者与机构
署名作者共六人,分布在三个机构:Stefan Hegselmann、Florian Gierse、Xiaoyi Jiang 来自德国明斯特大学(University of Münster);Shannon Shen 与 David Sontag 来自麻省理工学院(MIT);Monica Agrawal 来自杜克大学(Duke University)。这个组合解释了数据里两处看似矛盾的气质:一边是德国医学教育与伦理审查的严谨(标注者是德国医学生、伦理依托于 MIMIC 的去标识审批),一边是 MIT 侧偏工程的系统性与可复现追求(整套流程与代码同步公开)。
托管方是 PhysioNet,页面底部标明由 MIT 计算生理实验室(MIT Laboratory for Computational Physiology)维护。需要区分两件事:贡献者负责做什么,平台负责什么。前者负责数据、协议与论文,后者负责长期保存、版本管理与凭证体系的运行。你在页面上看到的访问策略、DUA 签署、版本号,都是平台层的事情。
论文层面的出处也有两个层级:预印本为 arXiv:2402.15422,正式发表于机器学习会议文集 PMLR 第 248 卷《第五届健康、推断与学习会议》(Proceedings of the fifth Conference on Health, Inference, and Learning)第 339–379 页,2024 年。
3.2 时间线
| 时间 | 事件 | 意义 |
|---|---|---|
| 2023 | MIMIC-IV-Note v2.2 在 PhysioNet 发布 | 上游数据就位(331,793 份记录 / 145,915 名患者) |
| 2024-02 | 预印本公布(arXiv:2402.15422) | 方法、协议与实验结果先行公开 |
| 2024-04-28 | 版本 1.0.0 在 PhysioNet 上线 | 数据首次公开,与预印本同年 |
| 2024-06 | 正式版收录于 PMLR 第 248 卷 | 论文进入同行评议记录 |
| 2025-04-30 | 版本 1.0.1 发布 | 仅补充说明:生成摘要在 xml 与 jsonl 中的排序,致谢 Hiba Ahsan |
时间线上最值得注意的是最后一行。1.0.1 与 1.0.0 相差一年零两天,而改动只有一句说明——这说明数据本体从未变动。对使用者是好事:你在 2024 年跑出来的结果,到 2026 年仍应可复现;同时也意味着「版本更新」这件事本身不能期待会带来更多样本。
3.3 采集场景:波士顿一家医院的出院医嘱
数据本身的地理来源是马萨诸塞州波士顿的 Beth Israel Deaconess 医学中心。原始材料是那里的住院病历——具体来说,是把每份出院记录中的 Discharge Instructions(出院医嘱)一小节当作「摘要」,把 Brief Hospital Course(简要住院病程)当作「上下文」。
这两个小节的选择是有讲究的。出院医嘱是英文病历里唯一稳定、强制、且写给患者看的一段:它用相对平实的语言告诉患者回家后该做什么,天然就是「面向患者的摘要」。简要住院病程则是写给同行看的病情经过叙述,信息密度最高,与出院医嘱在时间上前后相接、在语义上高度相关。把它们配对,就得到了一份几乎不需要额外构造的自带标签语料。
从原始到可用,中间经历了一次大幅收缩:331,793 份记录经过清洗保留 100,175 份;再加上「上下文不超过 4,000 字符、摘要不少于 600 字符」的两道筛选,剩下 26,178 份作为人工标注的抽样池;最后从中随机抽取 100 份做正式标注、10 份做校验。三层筛下来,实际被逐字审阅的文本只占原始记录的很小一部分。
3.4 数据来源的四个层次
理解这份数据,要先分清四层:原始临床记录(去标识,未在本项目中直接公开)、预处理后的上下文—摘要对(公开的基本单位)、人工标注(公开的监督信号)、改写后的衍生语料(公开的模型训练素材)。
第一层不可直接取得——你得自己去申请 MIMIC-IV-Note。这一层之所以重要,是因为本项目的「事实依据」被限定为简要住院病程,而真实世界里一位患者的完整信息远不止这一小节。换句话说,这里的「无据」指的是「在这一小节里找不到出处」,而不是「在整份病案里找不到出处」。官方页面对此直言不讳:选择这种设计是为了降低标注负担,因为不能指望标注者通读一位患者的所有记录与结构化信息。
第二层决定了每个样本的边界——上下文切到哪里、摘要从哪一句开始,都是预处理管线定的。官方页面坦承清洗不彻底,残留的有问题样本可能仍然存在。
第三层决定了监督信号的时间粒度是字符,而不是句子或文档。这也是它与其他资源最直观的区别。
第四层是它独有的东西:同样的 100 个样本被人工改写了两遍,形成干净版本与改进版本。这三份并列的文件,本质上是一个「数据质量如何影响模型行为」的对照装置。
§4 它最独特的东西:把「事实依据是什么」先说清楚
4.1 稀缺性:医学文本幻觉的人工答案本来就少
「幻觉」这个词几乎每年换一个意思,但有一件事没变:可用的评测基准极少,且大多不含人工片段级标签。原因是简单而硬的——判读一份医疗文本的事实性,需要能读懂病程的人;而能读懂病程的人的时间成本高,通常以「每年几百份」为上限。用一个下午写完的合成判决书可以做十万条,真医生逐句划线的判读做不到。
ann-pt-summ 的稀缺性正来自这里:它把两名标注者的几百小时公开了出来。这个量级一点的代价是它不可能变大——再找两位愿意同样深读的医学背景标注者,成本与难度和学生一样大。
第二个稀缺点是「同一批上下文、五个模型的对称设计」。做模型对比的人都知道,难的不是跑五个模型,而是让五个模型在同一批输入上生成、并且让标注者在不知道来源的前提下评判。这里的解决方式是 MedTator 里随机化顺序、导出后再解随机化,让人工偏见不被模型名影响。这套流程写在方法描述里,是可复制的做法,而不只是一个结论。
4.2 差异化证据:它与相邻的医疗文本资源差在哪
| 对比维度 | ann-pt-summ | 面向患者的问答类资源 | 出院小结决策标注类资源 | 合成病历指令类资源 |
|---|---|---|---|---|
| 任务 | 事实一致性(忠实性) | 问答与文本简化 | 临床决策句识别 | 指令跟随与文本生成 |
| 是否需要阅读全文 | 需要精读承保关系 | 多数不需要 | 需要精读 | 不需要 |
| 标注单位 | 字符级跨度 | 句子级或问答对级 | 句级片段 | 通常无 span 标签 |
| 是否含模型生成样本 | 含,且标注过程随机化 | 多为人工编写 | 多为人工标注真人文本 | 全部为合成 |
| 标注者 | 两名第六年医学生 | 视资源而定 | 多为医学背景标注者 | 不需要标注者 |
| 样本量级 | 210 份 | 数百至数千 | 数百至数千 | 数万以上 |
这张表的第二行和第四行是它的两个支点。第二行意味着它的成本结构完全不同:别人可以靠人数与流程规模堆样本,它只能靠人的深度。第四行意味着它是少数几个能用来回答「机器的错和人的错是不是同一种错」的资源——因为它同时标注了人写的和机器写的两份。
4.3 案例:一句「看起来是建议」的话怎么被判出来
设想要看的这一类具体情形(以下为方法层面的描述,不是对某一条样本内容的引用)。一位冠状动脉旁路移植术后的患者,简要住院病程里写着:「术后第 3 天拔除引流管,第 5 天转出监护室。」模型生成的出院医嘱里写:「您将在术后 1 周内完全恢复日常活动。」
这句话从医学常识上看不离谱,也在隧汤的习惯里常见;问题在于依据。病程记录里没有关于恢复时间表的任何说明,也没有之前的活动耐量评估。按本项目的规则(上下文即唯一事实依据),它属于无据陈述——除非它落在「通用医学知识与常规建议」的豁免范围内。而这句恰恰是那种介于两者之间的模糊地带:它读起来是建议,内容却是具体的时间承诺。
这类边界案例正是这份数据的价值所在。它们不打算替你定答案,而是把这些含糊的句子一次挑出来,迫使使用者先说清自己的口径。下表把这几种情形摆在一起。
| 判断情形 | 按本项目规则 | 说明 |
|---|---|---|
| 摘要内容与上下文直接冲突 | 矛盾 | 官方定义的三类之一,处理方式为纠正 |
| 摘要内容错误且为事实判断 | 不正确 | 官方定义的三类之一 |
| 摘要内容在上下文中找不到出处、且属患者具体情况 | 无据 | 官方定义的三类之一,并再分九小类 |
| 摘要内容为通用医学知识或常规建议 | 有出处 | 官方明确许可,判断时不算幻觉 |
| 内容真实但写在上下文之外的其他病历小节 | 仍判为无据 | 官方明确认识到这一局限,见局限性段 |
最后一行是它最容易被批评也最值得讨论的地方。作者自己把它写进了局限性说明:整套判定的依据被限定在简要住院病程这一小节,所以它衡量的是「对这一小节的忠实程度」,而不是「对这位患者全部病案的忠实程度」。用它之前必须接受这个前提,论文里写方法节时要把它写出来。
4.4 标注粒度:字符级很清楚,改写对照很清楚,规模很小
字符级跨度给了三件事。第一是评测精度:自动检测器的输出可以精确到词,不必迁就句子边界。第二是错误定位:可以把错误的位置聚到句子的开头、中间还是结尾去看(本文不给这类分布数字)。第三是可以从错误反推改写策略:有多少无据片段通过删除就能解决,有多少必须改写才能解决——这需要使用者在取得数据后自行统计,并在论文里写明口径。
代价同样清楚。210 份摘要并不是一个人的多次住院记录,而是 100 份独立上下文加上另外 20 份上下文的生成结果。把它当成一次大样本意义上的统计推断,会高估结论的稳定性。
4.5 边界条件:什么情况下它不再适用
| 条件 | 是否适用 | 判断依据 |
|---|---|---|
| 评测英文咒语 released 国内书的医疗摘要幻觉检测器 | 适用 | 数据语言为英文,任务完全对齐 |
| 评测中文病历摘要的事实一致性 | 不适用 | 语料为英文住院记录 |
| 评测门诊、急诊或随访场景的摘要 | 不适用 | 全部为住院出院记录 |
| 研究通用医学知识是否应算幻觉 | 部分适用 | 数据里带豁免规则,但不能改变这一规则本身 |
| 研究单个螺 confidence 与摘要质量的关系 | 不适用 | 官方未给出标注者置信度的相关字段 |
| 观察同一份上下文被五个模型写出来的差异 | 适用 | 20 个上下文 × 5 个模型,且来源已随机化 |
| 做大样本训练集 | 不适用 | 人工标注仅 210 份 |
| 研究标注者间一致性 | 部分适用 | 官方未给出背对背多人的一致性度量(§7.2) |
| 测试完整病案层面的一致性 | 不适用 | 事实依据被限定为简要住院病程这一小节 |
§5 怎么拿到:一道需要排队的门,以及一份 UTF-8 的偏移约定
5.1 目录结构与访问面
官方页面标注为 Credentialed Access(凭证访问),加强制的伦理培训要求。与可以直接 wget 的公开库相比,它的获取方式更接近「申请」而不是「下载」。文件目录下的三个顶层分组已在 §2.1 给出,这里补充它在挂载之后的典型形态:
| 路径 | 内容 | 备注 |
|---|---|---|
/mimic-iv-note-ext-di/dataset/all.json |
全上下文版,100,175 对 | JSONL,每行一个 JSON 字典 |
/mimic-iv-note-ext-di-bhc/dataset/all.json |
简要住院病程版,100,175 对 | 同上 |
/mimic-iv-note-ext-di-bhc/dataset/*_4000_600_chars.json |
便于人工标注的子集,26,178 对 | 带文件名中缀 _4000_600_chars |
/hallucination_datasets/ |
三套人工标注语料 | 同时提供 JSONL 与 BioC XML |
/derived_datasets/ |
三套衍生语料 | 只有 JSONL |
官方并未提供整包压缩存档;需要整目录同步。由于本次核实时文件目录返回 403(凭证不足),上表的具体文件体积、以及各子文件的确切名称与数量,未能逐项核对,详见 §10 的未核验项。
5.2 凭证获取的四步
第一步,注册 PhysioNet 账号并完成身份验证。第二步,完成 CITI 的「Data or Specimens Only Research」课程并把证书关联到账号——官方页面把它列在 Required training 一栏,是强制项。第三步,在页面上签署 PhysioNet Credentialed Health Data Use Agreement 1.5.0。第四步,等待审核通过后再访问文件。
这里最容易被低估的是第二步与第四步的时间。很多团队把它当成「填个表」,结果卡在 CITI 课程与机构审批上。也正因为这道门槛,它天然不适合在时间紧的项目里充当第一站。
许可条款是 PhysioNet Credentialed Health Data License 1.5.0。它与常见的 CC 系列署名许可最大的区别在于再去标识化的禁止与转分发的限制:不能把内容分发给没有凭证的人。这意味着论文附录里不能粘贴样本原文,公开的代码仓库里也不能放数据。
5.3 读取 JSONL 的正确姿势
import json
#-- 逐行惰性读取,避免一次性载入
def iter_jsonl(path):
with open(path, encoding='utf-8') as f:
for line in f:
line = line.strip()
if line:
yield json.loads(line)
rows = list(iter_jsonl('hallucinations_mimic_di.jsonl'))
print(len(rows), len(rows[0]['summary']), len(rows[0]['labels']))
第二行打印的三个数字分别代表样本数、首条摘要长度、首条样本的标注条数。这里有两个坑:open 必须显式指定 encoding='utf-8',因为临床文本里大量出现度数符号、希腊字母与连字符,用系统默认编码读会在偏移计算上出错;strip() 只能去掉行尾换行,不能去掉中间的转义序列,否则 labels 里的 start 与 end 就会错位。
5.4 BioC XML 与字符偏移对齐
同一批标注同时以 BioC(BioCreative 的 XML 交换格式)发布。它的好处是可以直接被 BioC 生态的工具读取,弊端是行序被打乱:官方页面明确说明,hallucinations_generated_di.xml 里放的是 MedTator 导出的原始标注,摘要顺序是随机的;只有在 hallucinations_generated_di.jsonl 里,摘要才被解随机化成按模型分段的形式。
import json
MODELS = ['llama_70b_original', 'llama_70b_cleaned',
'gpt4_zero_shot', 'gpt4_orig', 'gpt4_cleaned']
def model_of(line_idx):
#-- 100 行按模型均分,每段 20 行;行序号从 1 起算
if not 1 <= line_idx <= 100:
raise ValueError('行序号超出范围')
return MODELS[(line_idx - 1) // 20]
rows = [json.loads(l) for l in open('hallucinations_generated_di.jsonl',
encoding='utf-8') if l.strip()]
print(len(rows), model_of(1), model_of(20), model_of(21), model_of(100))
上面这段依赖的是 1.0.1 版本更新说明里给出的规则。用早于 1.0.1 的副本时务必确认已经升级——否则模型与摘要的对应关系可能错位,而这类错位不会报错,只会让结果悄悄变差。
5.5 标签体系怎么用:从十一类到你自己需要的口径
把十一类标签压成更粗的口径,是大多数评测的第一步。常见做法有两种:二类(有标注片段即为阳性)与三类(按官方顶层的无据 / 矛盾 / 不正确分组)。两种都可行,但口径必须写进方法节,否则数字不可比。
TOP3 = {'unsupported': '无据', 'contradicted': '矛盾', 'incorrect': '不正确'}
def coarse(labels):
#-- 只保留顶层三分类;具体标签字符串以官方协议为准
return [TOP3.get(x['label'].split('_')[0], x['label']) for x in labels]
row = rows[0]
print(coarse(row['labels']))
这里刻意没有把十一类的具体取值写成常量表——官方页面只说「协议中引入的十一类标签」,没有逐个列出;照抄他人的猜测不如让用户自己去 protocol 文件里核。
5.6 五个最容易出错的地方
| 位置 | 错误写法 | 后果 | 正确做法 |
|---|---|---|---|
| 坐标基准 | 把 start 当作整行或整文件的偏移 |
全部标错位置 | 明确它是 summary 内的字符下标 |
| 文件读取 | 不指定 UTF-8、或在 strip 之后回填 |
偏移量漂移,切片与 text 对不上 |
显式编码;用切片结果反查校验 |
| 行序理解 | 认为 XML 与 JSONL 行序一致 | 模型来源归因错误 | XML 为随机序,JSONL 为解随机化的分段序 |
| 语料混用 | 把 Original 与 Cleaned 同时塞进训练与测试 | 测试集里出现「已经改好的版本」,结果虚高 | 三套衍生语料只选其一作为训练侧 |
| 评价口径 | 直接把生成侧与医生书写侧的比例相比 | 忽略两者性质不对称 | 明确二者为不同任务位面,分开报告 |
§6 与库内条目的关系
6.1 关系图谱
把站内的临床文本类资源按「是否有人工片段级标注」与「是否含模型生成样本」两轴排开,ann-pt-summ 的位置很清楚:
| 站内条目 | 标注粒度 | 含模型生成样本 | 与它的关系 |
|---|---|---|---|
| MIMIC-IV-Ext-BHC 简要住院病程标注数据集 | 句子/节段级 | 否 | 上游语境接近,同为简要住院病程;它没有事实性标签 |
| MeDiSumQA 患者出院摘要问答 | 问答对级 | 否 | 同为面向患者的出院摘要,任务是问答而非事实一致性 |
| MedDec 出院小结医疗决策标注集 | 句级片段 | 否 | 同为 MIMIC 出院小结的人工句级判读,判读目标不同 |
| 出院小结姓名去标识模板集 | 模板级 | 是(合成) | 同为文本生成材料,但处理的是隐私而非事实性 |
| EHRNoteQA 出院小结评测基准 | 问答对级 | 视配置 | 同为大模型评测,评测目标是答题正确率 |
| MedVAL-Bench 医学文本校验基准 | 任务级 | 视配置 | 同为「校验」主题,粒度更粗 |
| ReXPref-Prior 胸片报告幻觉偏好数据集 | 偏好对级 | 是 | 同名主题的相邻做法:它是偏好学习,本资源是片段级标签 |
| MIMIC-III 出院小结问题性阿片使用标注集 | 文档/片段级 | 否 | 同为 MIMIC 出院小结的人工标注,目标是临床变量抽取 |
| MIMIC-III 入院记录免疫抑制状态标注集 | 文档级 | 否 | 同上,任务为状态判定 |
| MIMIC-IV-Ext-22MCTS 临床事件时间序列 | 事件级 | 否 | 同为 MIMIC-IV 衍生资源,模态为时序而非文本 |
| Asclepius 合成病历指令集 | 指令级 | 是 | 对照的一面:它解决数据不可得,本资源解决标签不可得 |
这条关系线要说的只有一件事:在「细粒度事实性」这一格上,站内目前几乎没有替代品;而在「语料规模」「生成素材」「抽取式标注」这些格上,它都不占优。
6.2 检索路径
| 你要找的东西 | 检索词 | 会落到哪里 |
|---|---|---|
| 同一批上下文的其他加工版本 | BHC、labelled-notes-hospital-course |
§6.1 表第一行 |
| 面向患者的摘要问答 | medisumqa、Health literacy |
§6.1 表第二行 |
| 事实一致性 / 幻觉主题的其他做法 | rexpref-prior、hallucination |
§6.1 表第七行 |
| 大模型在临床文本上的评测基准 | ehr-notes-qa-llms、medval-bench |
§6.1 表第五、六行 |
| MIMIC 系的人工抽取标注 | annotation-opioid-use-notes、immunosuppressive-annotations |
§6.1 表第八、九行 |
| 合规替代:不想办凭证时 | asclepius、synthetic |
§6.1 表第十一行 |
6.3 与其他资源的分工判据
| 任务 | 主粮仓该用什么 | 它的位置 | 原因 |
|---|---|---|---|
| 训练一个能写摘要的模型 | 大尺度预处理语料(本资源的预处理部分即可) | 主力之一 | 100,175 对足以做监督微调 |
| 评测「有没有编造」 | 无可替代 | 主力 | 站内唯一带字符级事实性标签的组合 |
| 评测「回答得对不对」 | 问答类基准 | 不适用 | 它不评测答案正确性 |
| 抽取临床变量或状态 | 抽取式标注集 | 不适用 | 标注目标不同 |
| 研究偏好学习与对齐 | 偏好对类资源 | 辅助 | 可把它的片段标签转成偏好对 |
| 私域/合规场景的快速原型 | 合成指令集 | 不适用 | 它必须走凭证流程 |
| 多人一致性方法研究 | 多标注者判读资源 | 半适用 | 它只有两名标注者且最终协商一致 |
这张表里第二行是它唯一的主场。其余各行要么替代品更好,要么成本更高。
§7 质量评估与局限性
7.0 阅读本节前的一个前置校正
先纠正一个常见误判:「只有 210 份」不等于「质量差」。这是人力成本取舍的直接结果——医疗文本的事实性判读由人来做,人的时间天花板把规模锁死了。评价它时应该问「在它能回答的那个问题上是否够」,而不是「为什么不再多一些」。
这个校正会改变 §7.1 五维评分的读法:规模一项它拿不到高分,但在「任务唯一性」与「标注深度」上它几乎无可替代。把两件事混在一起评,就得出「不值得排队申请」的错误结论。
7.1 五维评分
按常用的数据适用性维度打分,每项 1–5 分,分数针对「作为医疗文本事实性评测基准」这个用途:
| 维度 | 分数 | 理由 |
|---|---|---|
| 数据规模 | 2 | 人工标注 210 份;预处理语料 100,175 对但无事实性标签 |
| 标注质量 | 4 | 两名医学背景标注者、独立标注后讨论一致、字符级跨度;但主观性未被量化 |
| 任务适配 | 5 | 同时覆盖人写与机器写、带字符级标签,站内缺乏替代品 |
| 文档完整 | 4 | 方法、抽样、衍生关系、局限写得清楚;文件级细节(体积、子文件名)未公开列出 |
| 可获取性 | 2 | 凭证访问加强制伦理培训,且文件目录对未授权者不可见 |
五项合计 17 分(满分 25)。这个分数结构的含义很清楚:中间那一项「任务适配」拉满了,两端「规模」与「可获取性」拖后腿。它是一个「少数人用得上、用上了就离不开」的资源,不是一个面向所有人的通用语料。
7.2 标注质量的两层
第一层是判得对不对。两名标注者都是第六年的德国医学生,已通过第二次国家考试(官方注明相当于 USMLE Step 2),并在医院工作。这是相当强的背景——比常见的众包或研究生标注高出一档,接近「能读懂病程」的门槛。
第二层是过程稳不稳。官方给出的训练流程是:用十二个例子训练,其中两个用于熟悉任务,另外两次各五个单独标注后讨论校准;正式标注时两人独立进行,分歧通过讨论达成一致。这个流程保证了两位标注者对协议的理解接近,但也意味着最终的标签是协商结果,而不是可以计算一致性的双份独立记录。官方页面把这一点直接写进了局限性:标注是主观的,不同的项目对幻觉的定义或理解不同,会影响可复现性与解释方式。
| 你会做的事 | 这一层的影响 | 建议 |
|---|---|---|
| 用答案做评测 | 小,黄金标准是协商后的共识 | 直接使用即可 |
| 研究标注者间一致性 | 大,没有背对背双份记录 | 需要自己补一份多标注者数据 |
| 用它训练判别器 | 中,标签里没有不确定性信息 | 把它当干净标签而非概率标签 |
| 与别的幻觉数据集合并 | 中到大的口径风险 | 先做标签映射并在文中写明 |
7.3 已知的、可枚举的偏差
| 偏差 | 表现 | 影响 |
|---|---|---|
| 单源数据 | 全部来自同一家医学中心的住院记录 | 写作风格、模块结构、术语习惯单一 |
| 语言偏差 | 英文 | 结论不能直接迁移到中文病历 |
| 上下文截取 | 事实依据只取简要住院病程一小节 | 「无据」的含义被限定,不等于「病案里没有」 |
| 抽样筛选 | 上下文≤4,000 字符、摘要≥600 字符 | 长上下文与极短摘要被系统性排除 |
| 清洗残留 | 官方承认仍可能残留有问题的样本 | 预处理语料的可用性受限于此 |
| 标注主观性 | 协商一致而非统计一致性 | 可复现性依赖你是否接受同一套协议 |
| 衍生依赖 | 三套衍生语料基于同一批标注 | 标注的偏差会传到下游改写版本 |
| 小样本 | 100 份 + 10 份校验 | 评测结论的波动可能大于模型之间的差异 |
最后一行最实用。210 份样本上,两个不同随机种子的差异完全可能与两个不同模型的差异同量级。合理的做法是固定划分与种子,在同一份划分上比较模型,而不是跨论文比绝对数值。
7.4 外部验证:它自己给出的那个对照结果
官方页面在摘要里给出了一组对照结果,是这份数据唯一自带的「有用性证据」:用这些数据集在无幻觉样本上训练,可以有效减少幻觉——Llama 2 从每份摘要 2.60 个降到 1.55 个,GPT-4 从 0.70 个降到 0.40 个。这是作者在自己的实验里得到的结果,属于「可以这样做并且这样做有效」的证据,而不是「任何方法在任何数据上都会有效」的保证。
| 验证角色 | 做法 | 讲得通的地方 | 风险 |
|---|---|---|---|
| 自动幻觉检测的评测 | 用它当黄金标准给检测器打分 | 字符级坐标允许精确匹配 | 样本小,分数波动大 |
| 数据中心的幻觉削减 | 用 Cleaned / Cleaned & Improved 训练 | 三套语料形成天然对照 | 效果可能部分来自「文本变干净」而非「事实性提高」 |
| 摘要质量评测 | 用改进版作为参考侧 | 参考侧质量更高,指标更有意义 | 改进过程是主观的 |
| 跨模型比较 | 用 20 个上下文 × 5 个模型的对称设计 | 输入固定,来源随机化 | 只有 20 个上下文,换一批可能重排 |
第二种用法最微妙:三套语料的差异既有「事实性」也有「语言质量」(Cleaned & Improved 在移除无据片段之外还修正了错误与杂质)。把观察到的改善全归给「去掉幻觉」,会高估单一因素的作用。
7.5 它为何能持续:稀缺的不是数据是那个组合
它没有扩版计划(1.0.1 距首发一年只补了一句说明),却不会很快过时,原因是它占着一个别人不太愿意同时占的两样东西:能读懂病程的人的判断加同一批上下文的多模型对称生成。前者靠时间堆,后者靠工程纪律。只要医学摘要的事实性问题仍然是未解问题,这个组合就仍然有价值。
§8 生态位与历史
8.1 历史沿革
它诞生的时间点很能说明问题。2023 年前后,大模型开始被系统地引入临床文书场景,学界很快意识到评测跟不上:已有的指标(ROUGE 一类)衡量的是字面重合,与事实性几乎无关。而事实性又是医疗文本的红线。于是「够不够忠实」从一个附属课题变成了前沿课题。
这个项目采取的路径是典型的「数据中心」路线:不先改模型,先改数据——把事实性质量标准建立起来,再把干净数据喂给同一个模型,看差异。这条路径的产物自然是一份标注资源加三套衍生语料,而不是一个新模型。
8.2 与那篇论文的关系
它不是一个独立于论文而存在的数据集,而是论文的伴生发布物。这一点决定了两件事:第一,理解它的最好材料是那篇论文(arXiv:2402.15422 与其正式版);第二,论文里报告的结果,前提条件就是这套数据与设计,脱离它复现会打折扣。
反过来,它也因为论文的存在获得了比一般伴生数据更好的可用性:方法与抽样规则被写得很清楚,代码同步公开在 GitHub,官方页面标注的项目网址为 https://github.com/stefanhgm/patient_summaries_with_llms。这种「论文 + 数据 + 代码」三者齐备的发布形态,比只放数据或只放代码的做法更值得模仿。
8.3 生态位:评测尺而不是训练粮
| 角色 | 训练粮 | 评测尺 |
|---|---|---|
| 典型用法 | 大规模预训练与微调 | 给方法打分、形成对照 |
| 需要的前提 | 数据量大、标签稳定 | 定义明确、人为链条清晰 |
| 代表资源 | 预处理语料、合成指令集 | 本资源的标注部分 |
| 失败模式 | 过拟合、标签噪声累积 | 样本太少导致结论不稳 |
它在同一个项目里同时扮演了两种角色:十万的预处理语料是训练粮,两百份标注是评测尺。这也是为什么同一个 slug 下会出现两类完全不同的评价——取决于用户在讨论哪一半。
8.4 谁在用它,用来做什么
从它的用途说明看,作者预设了三类使用者:做幻觉检测的人(把标注当黄金标准)、做幻觉削减的人(把衍生语料当干净训练数据)、做摘要评测的人(把改进版当更高质量的参考)。第三类最少被提及,但随着自动评测逐步转向模型裁判,高质量的参考侧会越来越重要。
§9 使用指引
9.1 三种角色的路径
| 角色 | 第一天 | 第一周 | 注意事项 |
|---|---|---|---|
| 幻觉检测研究者 | 读完官方页面的 Methods 与 Data Description,确认路径是否已开通访问 | 按 §5.3 读出样本,用 §5.4 的规则绑定模型来源 | 先在 10 份校验集上调通管线 |
| 摘要生成工程师 | 取预处理语料做基线微调 | 用三套衍生语料跑对照,固定训练配方 | 不要让 Original 进训练侧再拿 Cleaned 评测 |
| 医学信息学教学 | 用它讲「事实依据」的定义与边界 | 挑几条例外的许可建议做课堂讨论 | 数据不可对外分发,课堂材料要自己改写 |
9.2 一条最短的可用流程
#-- 1. 确认访问已开通(未开通时返回 403,属预期行为)
curl -sL -o /dev/null -w "%{http_code}\n" \
https://physionet.org/files/ann-pt-summ/1.0.1/
#-- 2. 用官方推荐的同步方式拉取整目录(须已登录并带凭证)
#-- 这里只示意目录层级,具体认证参数以官方页面为准
wget --user=<账号> --ask-password \
--no-parent --recursive --level=3 \
https://physionet.org/files/ann-pt-summ/1.0.1/
#-- 3. 抽样核对行数与字段完整
python3 - <<'PY'
import json
n = 0
for line in open('hallucinations_mimic_di.jsonl', encoding='utf-8'):
row = json.loads(line)
n += 1
#-- 用切片反查每一条偏移是否自洽
for lab in row['labels']:
assert row['summary'][lab['start']:lab['end']] == lab['text']
print('rows =', n)
PY
第三步的断言是整个流程里最值得保留的一行:它用一个极便宜的检查,排掉了编码、转义与偏移口径三类错误。很多人是在评测结果「明显不合理」之后才回头发现自己早在读取环节就错了。
import json
#-- 把 100 行按模型分段,得到「模型 -> 摘要列表」的映射
rows = [json.loads(l) for l in open('hallucinations_generated_di.jsonl',
encoding='utf-8') if l.strip()]
MODELS = ['llama_70b_original', 'llama_70b_cleaned',
'gpt4_zero_shot', 'gpt4_orig', 'gpt4_cleaned']
buckets = {m: rows[i * 20:(i + 1) * 20] for i, m in enumerate(MODELS)}
for m, v in buckets.items():
print(m, len(v), len(v[0]['summary']))
9.3 引用方式
PhysioNet 的惯例是同时引用数据与平台,作者另外要求同时引用原论文:
| 引用对象 | 内容 |
|---|---|
| 数据集 | Hegselmann, S., Shen, S., Gierse, F., Agrawal, M., Sontag, D., & Jiang, X. (2025). Medical Expert Annotations of Unsupported Facts in Doctor-Written and LLM-Generated Patient Summaries(version 1.0.1). PhysioNet. https://doi.org/10.13026/gedc-j464 |
| 原始论文 | 同作者(2024). A Data-Centric Approach To Generate Faithful and High Quality Patient Summaries with Large Language Models. PMLR 248: 339–379;预印本 arXiv:2402.15422 |
| 平台 | PhysioNet 平台综述(2026,Nature Health),按页面 Cite 按钮生成 |
| 上游 | 使用时应一并致谢 MIMIC-IV-Note v2.2 的贡献与 PhysioNet 的凭证体系 |
写论文时建议同时注明:使用的版本号(1.0.0 还是 1.0.1)、用的是哪一半数据(预处理语料 / 标注 / 衍生语料)、以及标签口径是二类还是三类。这三件事不写清楚,别人就没法复现你的数字。
§10 AI 使用声明
| 项目 | 声明 |
|---|---|
| 文本生成 | 本文由 AI 辅助撰写,编辑把关结构与事实 |
| 数字来源 | 规模、结构、边界三类数字来自 PhysioNet 官方项目页 |
| 文件核验 | 项目页可访问;文件目录对未授权访问返回 403,未能逐个文件核对 |
| 不一致说明 | 官方页面未逐一列出十一类标签的具体字符串,正文只写「十一类」而不做猜测 |
| 论文信息 | 仅依据官方页面摘要与参考文献列表,未读全文 |
| 未核验内容 | 各文件的具体体积、派生目录下的确切文件名与数量、十一类标签的逐类名称、各模型的实际生成配置、默认的自动评测基准线 |
| 图像 | 无配图;封面为生成式提示词,不含真实病历内容 |
| 免责 | 本文不构成临床建议;使用数据须遵守 PhysioNet Credentialed Health Data License 1.5.0 与使用协议,不得二次分发 |
常见误读(避坑清单)
| 说法 | 实际 | 证据 |
|---|---|---|
| 「它是十万个幻觉标注」 | 十万个是预处理的上下文—摘要对,人工标注只有 210 份 | 官方页面把三组九个文件分开列出 |
| 「下载就能用」 | 凭证资源,需 CITI 培训、签署 DUA,审核通过后才可访问 | 页面 Access 段标注 Required training 与 License |
| 「XML 里的行序和 JSONL 一致」 | XML 为随机序,jsonl 为解随机化后的按模型分段序 | 1.0.1 版本更新说明专门澄清此事 |
| 「start 是文件里的字符位置」 | 是 summary 字段内部的字符下标 |
官方对 labels 结构的描述 |
| 「医生写的比机器写的少幻觉」 | 两者的「无据」性质不对称,不能只比条数 | 官方强调医生书写中的无据事实是常态而非错误 |
| 「十一类标签可以自己拼出来」 | 十一类的具体取值需以公开的标注协议为准 | 官方页面只给出数量,未逐条列出 |
| 「用完可以在附录里贴样本」 | 凭证许可禁止再分发 | 许可与使用协议条款 |
| 「三套衍生语料是三个数据集」 | 它们共享同一批 100 个样本编号 | 官方对 Original/Cleaned/Cleaned & Improved 的描述 |
| 「超过了上下文就自动算有据」 | 事实依据只有简要住院病程这一小节 | 官方 Methods 段明确把 BHC 作为唯一事实来源 |
| 「通用医学建议也都会被划出来」 | 通用医学知识与常规建议被明确豁免 | 官方以「请遵医嘱服药」为例说明 |
FAQ
Q1:它到底是什么?一句话能说清吗?
它不是一个用来训练大模型的语料,而是一份给「摘要有没有编造」这个问题做的人工答案。官网全名可以拆成三段读:由医学专家(Medical Expert)做出的标注(Annotations),对象是缺乏出处的事实(Unsupported Facts),材料是医生书写的与大模型生成的两类患者摘要。
Q2:为什么必须办凭证?不能直接下载吗?
不能。它的上游是 MIMIC-IV-Note,属于去标识的临床自由文本,PhysioNet 对这类资源统一采用凭证访问。流程包括完成 CITI「Data or Specimens Only Research」培训、签署 PhysioNet Credentialed Health Data Use Agreement 1.5.0,并取得审批。未授权访问文件目录会返回 403。
Q3:才两百来份标注,够做什么?
够评测,不够训练。字符级的跨度标签可以用来给自动幻觉检测器打分、比较不同模型的编造倾向、或者改编成偏好对;但指望 210 份训练出一个稳的判别模型,样本量远远不够。真正能拿来当训练粮的是它的预处理那十万个上下文—摘要对,只是那部分没有事实性标签。
Q4:为什么不能把 Cleaned 和 Original 混着用?
三套衍生语料共享同一批 100 个样本编号,Original 里留有被标注出来的无据片段,Cleaned 把它们移除或替换了,Cleaned & Improved 在 Cleaned 的基础上又修了错误与杂质。把它们混在同一个实验的训练侧与评测侧,等于让模型在测试时看到自己已经改好的答案,结果一定虚高。
Q5:它的「幻觉」定义跟别处不一样怎么办?
不一样是常态。它把上下文中的简要住院病程当作关于这位患者的唯一事实依据,并对通用医学知识与常规建议设有豁免。别的资源可能用整份病案或全文作依据、或不设豁免。跨平台比较前必须先做标签映射,并在方法节写明自己的口径;否则数字不可比。
术语表
| 术语 | 解释 |
|---|---|
| 幻觉 | 模型生成的、在给定上下文中找不到依据的内容 |
| 无据事实 | 摘要中提到但上下文未支持的内容,本项目中再分九个小类 |
| 矛盾事实 | 与上下文直接冲突的内容 |
| 不正确事实 | 事实判断本身有误的内容 |
| 字符级跨度 | 用起止字符位置标出的一段文本,比句级更细 |
| JSONL | 每行一个 JSON 对象的文本格式,适合流式读取 |
| BioC | 生物医学文本标注的 XML 交换格式 |
| MedTator | 用于文本片段标注的工具,本项目用它采集标注 |
| 解随机化 | 把随机打乱的顺序还原为按来源分组的顺序 |
| 上下文 | 生成摘要的依据文本,本项目指简要住院病程 |
| 摘要 | 目标文本,本项目指出院医嘱或模型生成的内容 |
| 出院医嘱 | 英文病历中写给患者的、说明回家后注意事项的一节 |
| 简要住院病程 | 写给同行看的病情经过叙述,本项目用作事实依据 |
| MIMIC-IV-Note | 波士顿 BIDMC 的去标识自由文本临床记录集合 |
| 凭证访问 | 需完成培训、签署协议并通过审核后才能取得的数据访问方式 |
| DUA | Data Use Agreement,数据使用协议 |
| CITI | 提供人体研究伦理培训的机构,其课程是访问的前置条件 |
| 数据中心的做法 | 不先改模型,先改训练数据来改善行为 |
| PMLR | Proceedings of Machine Learning Research,机器学习会议文集 |
| 事实依据 | 本项目中被当作判定基准的上下文,即简要住院病程 |
| 黄金标准 | 用于给自动方法打分的人工答案 |
附录 A:核心数字核对表
| 项 | 值 | 来源 |
|---|---|---|
| 记录/受试者基数 | 331,793 份记录、145,915 名患者(上游) | 官方页面 Methods 段 |
| 预处理语料规模 | MIMIC-IV-Note-Ext-DI 与 -BHC 各 100,175 对 | 官方页面 Data Description 段 |
| 便于标注的子集 | MIMIC-IV-Note-Ext-DI-BHC-Anno 26,178 对 | 官方页面 Data Description 段 |
| 筛选边界 | 上下文 ≤ 4,000 字符、摘要 ≥ 600 字符 | 官方页面 Methods 段 |
| 医生书写侧标注 | Hallucinations-MIMIC-DI 100 对 | 官方页面 Data Description 段 |
| 校验集 | Hallucinations-MIMIC-DI-Valid 10 对 | 官方页面 Data Description 段 |
| 生成侧标注 | Hallucinations-Generated-DI 100 对 | 官方页面 Data Description 段 |
| 生成侧结构 | 20 个上下文 × 5 个模型 | 官方页面 Methods 段 |
| 生成侧分段 | 每 20 行对应一个模型(1-20 / 21-40 / 41-60 / 61-80 / 81-100) | 1.0.1 版本更新说明 |
| 衍生语料规模 | Original / Cleaned / Cleaned & Improved 各 100 对 | 官方页面 Data Description 段 |
| 标签数量 | 十一类;顶层三类(无据、矛盾、不正确),无据再分九小类 | 官方页面 Methods 段 |
| 标注者 | 2 名第六年德国医学生,已通过第二次国家考试 | 官方页面 Methods 段 |
| 培训规模 | 12 个例子(2 熟悉 + 2×5 单独标后讨论) | 官方页面 Methods 段 |
| 文件格式 | JSONL 与 BioC XML | 官方页面 Data Description 段 |
| 版本 | 1.0.0(2024-04-28)、1.0.1(2025-04-30) | 官方页面版本列表 |
| DOI | 10.13026/gedc-j464(v1.0.1)、10.13026/m6hf-dq94(最新版本) | 官方页面 Discovery 段 |
| 许可 | PhysioNet Credentialed Health Data License 1.5.0 | 官方页面 Access 段 |
| 前置培训 | CITI Data or Specimens Only Research | 官方页面 Access 段 |
| 论文出处 | PMLR 第 248 卷 339–379 页;arXiv:2402.15422 | 官方页面引用区 |
| 对照结果 | Llama 2 每份摘要 2.60 → 1.55;GPT-4 0.70 → 0.40 | 官方页面摘要段 |
编辑说明
本文的核验时间为 2026 年 10 月 28 日。核验方式为直接访问 PhysioNet 项目页,逐段对照 Abstract、Background、Methods、Data Description、Usage Notes、Limitations、Release Notes、Ethics、Acknowledgements 与 References 的表述;同一批次的 Web 检索结果复核对规模数字一致。未能核验的部分包括:文件目录的实际内容(未授权访问时返回 403)、各文件的体积、衍生目录下的确切文件名、十一类标签的逐类名称,以及论文的全文细节——均已在 §10「未核验内容」一行列出。本文按要求只收录规模、结构、边界三类数字,不对样本做任何分布性统计;凡官方未给出的关系一律不做推算,细节留白而不猜测,避免把推断伪装成事实。
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- mednli — 共享标签:医疗NLP / 临床文本 / 电子健康记录 / 医学问答与基准 / 评测基准
- er-reason — 共享标签:医疗NLP / 临床文本 / 电子健康记录 / 医学问答与基准 / 评测基准
- tcm-sd — 共享标签:医疗NLP / 临床文本 / 电子健康记录 / 医学问答与基准 / 评测基准
- mietic — 共享标签:医疗NLP / 临床文本 / 电子健康记录 / 医学问答与基准 / 评测基准
- synsum — 共享标签:医疗NLP / 临床文本 / 电子健康记录 / 医学问答与基准 / 评测基准
- blue-benchmark — 共享标签:医疗NLP / 临床文本 / 医学问答与基准 / 评测基准
- care-bench — 共享标签:医疗NLP / 临床文本 / 医学问答与基准 / 评测基准
- asclepius — 共享标签:医疗NLP / 临床文本 / 电子健康记录 / 医学问答与基准
- radqa — 共享标签:医疗NLP / 临床文本 / 电子健康记录 / 医学问答与基准
- rarebench — 共享标签:临床文本 / 电子健康记录 / 医学问答与基准 / 评测基准
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

