信息速览

CBLUE 中文生物医学语言理解评测基准 — 18 任务医疗 NLP 评测基准 AI-Ready Wikipedia
INFOBOX
| 字段 | 内容 |
|---|---|
| 数据集名称 | 中文生物医学语言理解评测基准 CBLUE |
| 英文全称 | CBLUE: A Chinese Biomedical Language Understanding Evaluation Benchmark |
| 别名/简称 | CBLUE、中文医疗信息处理挑战榜、CBLUE 3.0(18 任务版) |
| 疾病分类(ICD-11) | 覆盖多病种语料:糖尿病 5A11、原发性高血压 BA00、乙型病毒性肝炎 1E50、HIV 感染 1C60、乳腺恶性肿瘤 2C60(CHIP-STS 五病种)等 |
| SNOMED CT | 糖尿病 73211009、高血压 38341003、乙型肝炎 66071002、HIV 感染 86406008、乳腺恶性肿瘤 254837009(CHIP-CDN 归一词表为 ICD-10 北京临床版 v601) |
| 数据模态 | 中文医学文本为主(教科书/百科/病历诊断/搜索查询/医患对话/临床试验条款),含医学 OCR 图像要素(CMedOCR)与英文生物医学文献(AGAC) |
| AI 任务类型 | 命名实体识别、关系抽取、事件抽取、术语归一化、文本分类、语义匹配/自然语言推理、段落检索、对话生成、诊疗决策树抽取、OCR 要素识别 |
| 样本总数 | 18 个子任务合计约 34 万条标注样本(train/dev/test 累加,KUAKE-IR 占 10.4 万;据官方页面数字算术累加,截至 2026-09) |
| 数据大小 | 约 195 MB(全部任务 ZIP 压缩包合计;KUAKE-IR 单包 129.28 MB) |
| 数据格式 | JSON / JSONL / TSV(统一压缩为 ZIP 分任务发布) |
| 许可证 | CC BY-NC-SA 4.0(榜单大部分数据集;个别任务单独列协议) |
| 访问级别 | 注册后开放(阿里天池实名账号申请下载)+ 天池长期打榜 |
| DUO 标签 | NPUNCU(非商业非营利研究使用;非患者个体数据,DUO 仅作近似类比) |
| 语言 | 简体中文为主(AGAC 子任务为英文生物医学文献) |
| 首发日期 | 2021-04(CBLUE 1.0,8 子任务) |
| 最后更新 | 2025-09-27(CBLUE 4.0 数据包) |
| 发布机构 | 中国中文信息学会医疗健康与生物信息处理专业委员会(CHIP)× 阿里云天池;医渡云、平安医疗科技、阿里夸克等协办 |
| 官方主页 | https://tianchi.aliyun.com/cblue |
| 下载地址 | https://tianchi.aliyun.com/dataset/95414 |
| DOI | 10.18653/v1/2022.acl-long.544 |
| 引用次数 | 322+(AMiner,截至 2026-09) |
| AI 就绪度评分 | ⭐⭐⭐⭐(4/5)— 官方划分齐全 + baseline 脚本 + 格式校验器一键运行;扣分项:测试集答案不公开须提交天池评分、18 任务格式各不相同、V1→V2 下标口径变更需人工适配 |
| 页面状态 | published |
§0 E-E-A-T 审核与免责声明
医学审核者:千方病案医学编辑部交叉审核:§2 医学背景(CHIP-STS 五病种的 ICD-11/SNOMED CT 映射、CHIP-CDN 诊断归一化的 ICD-10 北京临床版词表)、§7 偏倚分析(儿科语料与搜索日志的人群代表性)。
数据工程审核者:[千方病案医学编辑部交叉审核] 医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
审核日期:2026-09-05
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。CBLUE 要求用户通过阿里天池平台实名账号申请下载数据,榜单大部分数据集遵循 CC BY-NC-SA 4.0 协议(非商业、同方式共享),个别任务另有协议并在官方任务章节单独列出。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。
§1 数据集概览
§1.0 📌 30 秒速览
这是什么? CBLUE 是中文医疗 NLP 领域的第一个"统一考场"。在它出现之前,中文医学语言模型各用各的私有数据评测,成绩无法比较;CHIP(中国健康信息处理会议)历年发布的评测数据又分散在各个比赛页面,赛后常常停止下载。CBLUE 把这些散落的数据集统一格式、统一榜单、统一指标,放到阿里天池平台上长期开放打榜(官方主页)。
为什么重要? 它是中文生物医学 NLP 的"GLUE/CLUE 时刻":论文发表于 ACL 2022(Zhang et al.),官方用 11 个中文预训练模型建立基线,并证明当时最强的神经网络模型仍远低于人类上限——这为后续中文医疗预训练模型(如 PCL-MedBERT、各种医疗 LLM)提供了公认的进步标尺。今天的中文医疗大模型论文(含 PromptCBLUE 一系)仍普遍引用 CBLUE 或其派生基准作为评测场。
我能用它做什么? 如果你在做中文医疗文本的实体识别、关系抽取、诊断术语归一化、搜索意图分类或医患对话生成,CBLUE 提供现成的训练/验证划分与天池实时榜单,可以快速验证你的模型是否达到业界基线;如果你在评测医疗大模型,PromptCBLUE 版本把其中 16 个任务改造成指令格式,可直接测 GPT-4 级模型在严格输出格式下的对齐能力。
§1.1 技术摘要
CBLUE(Chinese Biomedical Language Understanding Evaluation)由中国中文信息学会医疗健康与生物信息处理专业委员会发起、阿里云天池承办,2021 年 4 月以 8 个子任务上线,由医渡云、平安医疗科技、阿里夸克、鹏城实验室、北京大学、哈尔滨工业大学(深圳)、同济大学、郑州大学等单位共同协办(CIPS-CHIP 官方页)。基准经三次扩容:CBLUE 1.0 = 4 大类 8 子任务;2.0 扩至 5 大类 14 子任务并引入生成类任务;3.0 达到 5 大类 18 个子任务,新增医学检索(KUAKE-IR)与医学 OCR 要素识别(CMedOCR)作为多模态方向尝试,另含 CMedCausal、Text2DT、AGAC 等扩展数据集。全部数据统一为 JSON/JSONL/TSV 格式的 ZIP 包发布于天池(dataset/95414),各任务样本合计约 34 万条。评测在天池长期开放:测试集答案不公开,参赛者本地预测后提交评分,提交前可用官方 format_checker 预校验。官方 GitHub 仓库提供 11 个中文预训练模型(BERT、RoBERTa-wwm-ext、MacBERT、ERNIE、PCL-MedBERT、ZEN 等)的统一微调基线;8 个初始任务的社区基线平均分约 69.97 分(DataArk baseline),表明实体嵌套识别与术语归一化仍是显著短板。
§1.2 战略价值
维度一:中文医疗 NLP 的公共标尺。英文世界有 BLURB(微软)、PubMedQA,中文世界在 2021 年之前没有对应物。CBLUE 补上了这一环:它同时覆盖"理解"(NER、关系抽取、分类、匹配)与"生成"(对话生成、诊疗决策树抽取)两类任务,且数据来自真实业务场景——夸克搜索日志有真实噪音,CHIP-CDN 的诊断原词来自真实电子病历挖掘,这使榜单成绩对产业落地更有参考意义。医疗搜索、保险理赔结构化、病历质控等中文场景的团队,可以直接以对应子任务榜单作为选型依据。
维度二:大模型时代的"格式对齐"试金石。CBLUE 各任务要求严格的输出格式(NER 的 JSON 实体列表、CHIP-CDN 的 ## 分隔多标准词、CMeIE 的 SPO 三元组)。PromptCBLUE(Zhu et al., arXiv:2310.14151)将其改造为指令格式后发现:GPT-4 few-shot 总分仅 0.518,而 Baichuan-13B 经 LoRA 微调可达 0.710——"强通用模型弱于领域微调小模型"这一结论正是建立在天池测试集不公开、无训练集污染的前提上。这使得 CBLUE 体系成为检验医疗 LLM 幻觉与格式遵循能力的稀缺资源。
§1.3 同类数据集横向对比
| 数据集 | 语言 | 任务数 | 规模 | 标注 | 与 CBLUE 的差异 |
|---|---|---|---|---|---|
| CBLUE | 中文为主 | 18 子任务(3.0) | 约 34 万条样本 | 专家标注 + 真实业务日志 | 唯一覆盖中文医疗"理解+生成+检索+OCR"的多任务基准,带长期在线榜单 |
| BLURB(微软) | 英文 | 13 数据集 | 约 26 万实体/句对 | 社区整合 BioCreative 等 | 英文中心,无对话生成任务;CBLUE 与其定位互为镜像 |
| CLUE | 中文(通用域) | 9 任务 | 数十万条 | 通用新闻/百科 | 无医学专业性;CBLUE 常被称作"医疗版 CLUE" |
| PromptCBLUE | 中文 | 16 子任务 | 约 8.26 万训练样本 | 由 CBLUE 派生 | 指令/提示格式,专为医疗 LLM 与 PEFT 评测设计 |
| CHIP 历届单任务 | 中文 | 每次 1-2 个 | 单任务数千至数万条 | 各任务独立 | 是 CBLUE 的数据上游;赛后常停止维护,CBLUE 解决了其可持续性问题 |
§1.4 版本时间轴
| 版本 | 时间 | 子任务数 | 关键变化 | 获取 |
|---|---|---|---|---|
| CBLUE 1.0 | 2021-04 | 8 | CMeEE、CMeIE、CHIP-CDN、CHIP-CTC、CHIP-STS、KUAKE-QIC/QTR/QQR;CC BY-NC 4.0 | 旧页 dataset/113223(已停止维护) |
| CBLUE 2.0 | 2022 | 14 | 新增医疗诊疗对话、专家电子病历、影像报告语料;引入生成任务(IMCS 系列、MedDG、CHIP-MDCFNPC、CHIP-CDEE) | 天池数据页更新 |
| CBLUE 3.0 | 2022-10 | 18 | 增强生成任务;新增 KUAKE-IR 检索、Text2DT;引入 CMedOCR 作为多模态尝试;AGAC、CMedCausal 于 2023 年补入数据包 | dataset/95414 |
| CBLUE 4.0 | 2025-09-27 | 数据包更新 | 新增 CHIP-YIER、CMF-NERD、CN-Diabetes-QC 等文件;页面标注 CC BY-NC-SA 4.0 | dataset/211461 |
§1.5 典型应用场景
- 电子病历结构化:用 CMeEE-V2 + CMeIE 训练的抽取管线把病历文本转为疾病-症状-药物知识三元组,再用 CHIP-CDN 把诊断原词对齐到 ICD-10 标准词,构成"抽取→归一"完整链路。
- 医疗搜索引擎优化:KUAKE-QIC(意图分类)、QTR(查询-标题相关性)、QQR(查询改写相关性)三个任务直接来自夸克搜索业务,可复用于搜索召回与排序评估。
- 临床试验智能筛选:CHIP-CTC 的 44 类筛选标准分类器可嵌入受试者召回系统,自动判断患者条件命中的入排条款类型。
- 互联网医院问诊机器人:MedDG 与 IMCS-V2-MRG 提供带实体约束的对话生成训练数据,用于症状询问与病情小结生成。
- 医疗大模型评测:经 PromptCBLUE 改造后,可系统评估通用/医疗 LLM 在 16 类医学任务上的指令遵循与专业知识边界。
§2 医学背景
§2.1 覆盖疾病的 ICD-11 编码映射
CBLUE 是多任务基准而非单病种队列,其"医学背景"体现为语料覆盖的疾病谱。CHIP-STS 的问句对明确覆盖 5 大病种,可作为编码映射锚点:
| 病种(CHIP-STS category) | ICD-11 编码 | ICD-11 中文名 | 在 CBLUE 中的出现位置 |
|---|---|---|---|
| 糖尿病 diabetes | 5A11 | 2 型糖尿病 | CHIP-STS 问句对、CMeEE 实体、CN-Diabetes-QC(4.0 新增) |
| 高血压 hypertension | BA00 | 原发性高血压 | CHIP-STS 问句对、CMeEE/CMeIE 语料、CHIP-CDN 诊断原词 |
| 乙肝 hepatitis | 1E50 | 乙型病毒性肝炎 | CHIP-STS 问句对、CMeEE 微生物类实体 |
| 艾滋病 aids | 1C60 | HIV 感染(HIV disease) | CHIP-STS 问句对 |
| 乳腺癌 breast_cancer | 2C60 | 乳腺恶性肿瘤 | CHIP-STS 问句对、CMeIE 治疗关系三元组 |
§2.1b SNOMED CT 概念映射
CHIP-CDN 任务的官方归一目标词表是 ICD-10 北京临床版 v601(非 SNOMED CT),下表给出五病种在两大术语体系中的对应关系,便于跨基准复用:
| 中文术语 | ICD-10(北京临床版 v601,CHIP-CDN 目标词表) | SNOMED CT 概念码 | 备注 |
|---|---|---|---|
| 2 型糖尿病 | E14(未特指的糖尿病,北京临床版实际采用 E11 系) | 73211009 | CMeIE 中常见"降糖药"相关三元组 |
| 原发性高血压 | I10.x00x002(原发性高血压) | 38341003 | CHIP-CDN 高频归一词 |
| 乙型病毒性肝炎 | B15-B19 病毒性肝炎(乙型 B16.2/B18.1) | 66071002 | CMeEE 中病原体标注为 mic 类 |
| HIV 感染/艾滋病 | B20-B24(HIV 病相关疾病) | 86406008 | CHIP-STS 问句来源病种 |
| 乳腺恶性肿瘤 | C50(乳房恶性肿瘤) | 254837009 | CMeIE 中"手术/放疗"谓词高发 |
§2.2 涉及疾病与流行病学背景
CBLUE 语料的疾病重心来自其数据来源:CMeEE/CMeIE 语料源自权威医学教科书与专家指南,聚焦儿科常见疾病(504 种儿科疾病、12,907 种临床表现),因此呼吸道感染、消化系统疾病等儿科高发病种的实体样本密度显著高于成人肿瘤;CHIP-CDN 的诊断原词从三甲医院真实电子病历挖掘,覆盖全科室但以慢性病与肿瘤入院诊断为主;CHIP-STS 五病种(糖尿病、高血压、乙肝、艾滋病、乳腺癌)均属中国人群疾病负担前列的慢病/传染病/常见癌种——糖尿病与高血压在中国的患病率均已超过四分之一成人量级,是互联网医疗搜索的最高频查询主题,这解释了夸克三个子任务(QIC/QTR/QQR)中慢病查询词的高占比。CHIP-CTC 语料来自中国临床试验注册中心(ChiCTR)的入排条款,疾病分布跟随注册试验的热门瘤种与代谢病。
§2.2b 中文医学术语体系背景(为什么 CHIP-CDN 难)
理解 CHIP-CDN 任务需要先理解中文医学术语体系的三层结构:书写层——临床医生在病历中写下的诊断原词,允许缩写(“冠心”)、口语(“血糖高”)、错别字与多病并列(分号连接);标准层——ICD-10 北京临床版 v601 词表,是北京市病历上报与 DRG 分组的事实标准,一条原词可合法对应多个标准词(复合诊断),反之亦然;国际层——WHO 的 ICD-11(2022 年生效)与 SNOMED CT,用于跨机构/跨国研究互操作。CBLUE 的归一化任务锚定在书写层到标准层,因为这是国内病案统计的直接需求;研究者在做跨国论文复现或与 MIMIC 类英文基准对齐时,需要自行补一层 ICD-10 → ICD-11/SNOMED 的映射(§2.1b 给出五病种样例)。这也是"医学术语归一化 ≠ 简单同义词匹配"的根本原因:它是一个开放词表上的多输出检索问题,而不是封闭集分类问题。
§2.3 临床任务定义
| 临床环节 | 对应 CBLUE 子任务 | 任务定义 | 落地形态 |
|---|---|---|---|
| 诊断结构化 | CHIP-CDN | 将病历中的非标准诊断原词映射到 ICD-10 北京临床版标准词 | 病案首页质控、DRG/DIP 分组前置处理 |
| 病史要素抽取 | CMeEE-V2、IMCS-V2-NER | 从教科书文本或医患对话中识别 9 类医学实体 | 病历结构化、科研专病库建库 |
| 知识图谱构建 | CMeIE、CMedCausal | 抽取( subject,谓词,object)三元组与因果关系 | 医学知识图谱、临床辅助推理 |
| 临床试验筛选 | CHIP-CTC | 将入排标准条款分入 44 类语义类别 | 受试者自动匹配系统 |
| 检索与分诊 | KUAKE-QIC/QTR/QQR、KUAKE-IR | 意图识别、相关段落检索 | 搜索排序、线上问诊预分诊 |
| 随访与问诊 | MedDG、IMCS-V2-MRG/SR/DAC | 带实体的对话生成、病情小结、症状状态判别 | 互联网医院问诊机器人 |
| 医学文献挖掘 | AGAC(英文)、Text2DT | 基因-疾病关联事件抽取、诊疗决策树构建 | 生物医学文献计量、临床路径数字化 |
§2.4 数据来源人群
CBLUE 为文本语料,不含患者个体记录,下表描述文本的产生来源:
| 维度 | 描述 |
|---|---|
| 文本来源 | 医学教科书与专家指南(CMeEE/CMeIE)、三甲医院电子病历诊断字段挖掘(CHIP-CDN,医渡云)、ChiCTR 注册试验条款(CHIP-CTC,同济大学)、夸克搜索引擎日志(KUAKE 四件)、互联网公开问诊对话(MedDG、IMCS-V2)、平安医疗疾病问答库(CHIP-STS) |
| 时间跨度 | 2019-2023(CHIP 2019/2020 赛题语料 + 天池 2021-2023 整合更新) |
| 患者年龄 | 不直接可得;CMeEE/CMeIE 语料偏向儿科(儿童疾病描述),CHIP-CDN 覆盖全年龄段成人诊断 |
| 性别/种族 | 未随数据发布;文本层面不可还原个体人口学属性 |
| 就医类型 | 门诊/住院诊断混合(CHIP-CDN)、线上搜索与问诊(KUAKE、MedDG、IMCS-V2) |
| 地域 | 中国大陆;ICD-10 词表采用北京临床版,诊断表述习惯带地域偏向 |
§2.5 临床价值
CBLUE 的临床价值在于把"非结构化医学语言"变成可计算对象的三道关口:读得出(实体识别与事件抽取让机器找到诊断、症状、药物)、对得上(CHIP-CDN 把口语化诊断对齐到 ICD-10 标准词,这是病案统计、DRG 付费、科研检索的共同前提——同一疾病在真实病历中可有多达数十种写法)、答得上(对话生成与检索任务对应互联网医院的第一触点)。在 ACL 2022 论文中,最强预训练模型与人类上限的差距说明这些环节在 2021 年尚未达到可托付的生产精度;经过三年社区迭代,实体识别类任务已接近实用,而术语归一化与对话生成仍是最能区分模型优劣的两块试金石。
§2.6 标注金标准
| 子任务 | 划分 | 标注方式 | 标注者 | 性质 |
|---|---|---|---|---|
| CMeEE-V2 | 15,000/5,000/3,000 | 双人独立标注 + 专家仲裁;V2 修复 V1 标注错误 | 医学背景标注员(北大、郑大、鹏城实验室、哈工大深圳联合提供) | 嵌套 NER 金标准 |
| CMeIE | 14,339/3,585/4,482 | 按 53 种 predicate schema 人工标注 SPO | 同上 | 句级关系抽取金标准 |
| CHIP-CDN | 6,000/2,000/10,192 | 真实诊断原词对照 ICD-10 北京临床版 v601 词表标注(一词可多标准词,## 分隔) | 医渡云数据团队 | 术语归一化金标准 |
| CHIP-CTC | 22,962/7,682/10,000 | 条款-类别人工归类(44 类) | 同济大学生命科学与技术学院 | 单句分类金标准 |
| CHIP-STS | 16,000/4,000/10,000 | 问句对语义等价 2 分类(0/1) | 平安医疗科技 | 语义匹配金标准 |
| KUAKE-QIC/QTR/QQR | 见 §3.2 | 搜索日志采样后人工标注意图/相关度 | 夸克业务标注团队 | 真实噪音工业金标准 |
§3 数据集规格
§3.0 版本抉择矩阵
| 你的需求 | 推荐版本 | 数据大小 | 理由 |
|---|---|---|---|
| 复现 ACL 2022 论文 8 任务基线 | CBLUE 1.0 任务口径(现从 dataset/95414 下载同名任务包) | 约 20 MB | 论文表格与社区 baseline(DataArk)均按 8 任务组织,结果可直接对照 |
| 训练/评测中文医疗大模型(理解+生成全谱) | CBLUE 3.0(dataset/95414 全量 ZIP) | 约 195 MB | 18 子任务 + 扩展任务齐全,含生成与检索 |
| 医疗 LLM 指令微调与评测 | CBLUE 3.0 数据 + PromptCBLUE 模板 | 约 195 MB + 模板 | 官方 prompt 模板池已人工校验,避免自造模板引入偏差 |
| 只要最新的数据修正与新增子任务 | CBLUE 4.0(dataset/211461) | 约 200 MB | 2025-09-27 更新,新增 CHIP-YIER、CMF-NERD、CN-Diabetes-QC |
| 历史对照(谨慎) | CBLUE 1.0 旧页 dataset/113223 | 约 10 MB | 页面已标注"不再维护更新",仅用于历史结果复现 |
§3.1 模态详情
- 医学教科书/百科文本(CMeEE-V2、CMeIE):经过自动分词的连续医学叙述句,句中含大量嵌套术语;CMeEE 语料共 938 个文件、47,194 个句子、约 220 万字。
- 电子病历诊断字符串(CHIP-CDN):从真实病历"诊断"字段挖掘的原词,常含口语缩写、错别字与复合诊断(分号连接多诊断)。
- 临床试验条款(CHIP-CTC):ChiCTR 注册页的入组/排除标准句子,中英术语混排、含数值阈值(如 INR>1.5)。
- 搜索查询与标题(KUAKE-QIC/QTR/QQR、KUAKE-IR):用户真实查询词(含错拼、口语)、搜索结果标题与医学百科段落。
- 医患对话(MedDG、IMCS-V2 系列、CHIP-MDCFNPC):多轮问诊对话转写,含医生人工智能辅助标注的症状状态。
- 医学 OCR 图像(CMedOCR):医疗清单/发票图片 + 要素标注,是基准内唯一图像模态。
- 英文生物医学文献摘要(AGAC):基因-疾病关联机理的英文科学文献句子,基因突变(var)与疾病(dis)等实体标注。
§3.2 分任务样本数
| 子任务 | 任务类型 | 训练集 | 验证集 | 测试集 | 指标 | 数据来源 |
|---|---|---|---|---|---|---|
| CMeEE-V2 | 嵌套 NER | 15,000 | 5,000 | 3,000 | Micro F1 | CHIP2020(北大/郑大/鹏城/哈工大深圳) |
| CMeIE-V2 | 关系抽取 | 14,339 | 3,585 | 4,482 | Micro F1 | CHIP2020(同上) |
| CMedCausal | 因果关系抽取 | 800 | 200 | 1,000(+1,000 未标注) | Micro F1 | 2023 补入 |
| CHIP-CDEE | 临床发现事件抽取 | 1,587 | 384 | 514 | Micro F1 | CHIP2021 |
| CHIP-CDN | 诊断术语归一化 | 6,000 | 2,000 | 10,192(页面记 10,000) | Micro F1 | CHIP2020(医渡云) |
| CHIP-CTC | 筛选标准分类(44 类) | 22,962 | 7,682 | 10,000 | Macro F1 | CHIP2019(同济大学) |
| CHIP-STS | 问句对语义匹配 | 16,000 | 4,000 | 10,000 | Macro F1 | CHIP2019(平安医疗) |
| CHIP-MDCFNPC | 对话阴阳性判别 | 5,000 | 1,000 | 2,000 | Macro F1 | CHIP2021 |
| KUAKE-QIC | 查询意图分类(11 类) | 6,931 | 1,955 | 1,994 | Accuracy | 夸克 |
| KUAKE-QTR | 查询-标题相关性(4 类) | 24,174 | 2,913 | 5,465 | Accuracy | 夸克 |
| KUAKE-QQR | 查询-查询相关性(3 类) | 15,000 | 1,600 | 1,596 | Accuracy | 夸克 |
| KUAKE-IR | 医学段落检索 | 100,000 | 1,000 | 3,000 | Accuracy | 夸克 |
| IMCS-V2-NER | 医患对话 NER | 2,472 | 833 | 811 | Micro F1 | IMCS 21(哈工大深圳) |
| IMCS-V2-DAC | 对话-病历属性对齐分类 | 2,472 | 833 | 811 | Micro F1 | 同上 |
| IMCS-V2-SR | 症状明示/暗示/否定判别 | 2,472 | 833 | 811 | Micro F1 | 同上 |
| IMCS-V2-MRG | 对话→病历主诉生成 | 2,472 | 833 | 811 | F1(ROUGE 类) | 同上 |
| MedDG | 蕴含实体的对话生成 | 17,864 | 2,747 | 1,551 | F1 | MedDG 论文团队 |
| Text2DT | 诊疗决策树抽取 | 300 | 100 | 100 | 准确率类 | 2022 补入 |
| CMedOCR | 清单发票 OCR 要素提取 | 1,000 | — | 700 | 要素 F1 | 天池 OCR 数据 |
| AGAC(英文) | 基因-疾病关联事件抽取 | 250 | — | 2,000 | Micro F1 | AGAC 共享任务 |
注:18 个"子任务"按 CBLUE 3.0 官方口径计(CMedOCR 作为多模态方向的"此外"尝试,AGAC/CMedCausal 为后续补入);各任务 train/dev/test 累加合计约 34 万条(据官方页面数字算术累加,截至 2026-09)。个别任务在不同页面存在 ±数十条的历史差异(如 KUAKE-QIC 测试集有 1,994 与 1,944 两种记载),以实际下载包为准。
§3.2b 扩展与 4.0 新增数据集速览
| 数据集 | 类型 | 规模 | 要点 |
|---|---|---|---|
| CMedCausal | 因果关系抽取 | 800/200/1,000 + 1,000 未标注 | 关系嵌套定义;附未标注语料支持半监督 |
| Text2DT | 诊疗决策树抽取 | 300/100/100 | 从文本构建决策树结构输出,生成类 |
| CMedOCR | 清单发票要素识别 | 1,000 训练 / 700 测试 | 唯一图像模态;无官方验证集 |
| AGAC | 基因-疾病关联事件(英文) | 250 / 2,000 测试 | 跨语言任务;训练极小、测试反向偏大 |
| CHIP-YIER | 医学影像报告事件抽取(4.0 新增文件) | 见 4.0 包 | 报告结构化方向 |
| CMF-NERD | 医学实体词典增强 NER(4.0 新增文件,4.37 MB) | 见 4.0 包 | 词典资源型数据 |
| CN-Diabetes-QC | 糖尿病问答/质控数据(4.0 新增文件,96 KB) | 见 4.0 包 | 慢病垂直场景补充 |
4.0 新增文件说明:官方未随包发布完整任务卡(schema/指标),接入前建议先在 Notebook 中探查 JSON 结构(§4.0 目录树 同款加载方式),不要假设其与 3.0 字段一致。
§3.2c 标签分布快速核查代码
官方未发布分布统计文件,交付前建议先跑一遍自查(同时能提前暴露字段口径问题):
import json
from collections import Counter
from pathlib import Path
def audit(path, label_key):
"""统计逐行 JSON 的标签/实体类型分布,并返回坏行号。"""
counter, bad = Counter(), []
for i, line in enumerate(open(path, encoding="utf-8"), 1):
try:
item = json.loads(line)
if label_key == "entities": # CMeEE:实体类型计数
counter.update(e["type"] for e in item.get("entities", []))
elif label_key == "spo": # CMeIE:谓词计数
counter.update(t["predicate"] for t in item.get("spo_list", []))
else: # 分类/匹配:label 计数
counter[item[label_key]] += 1
except (KeyError, ValueError):
bad.append(i)
return counter.most_common(), bad
dist, bad = audit("data/CHIP-CTC/CHIP-CTC_train.json", "label")
print(f"44 类条款分布头部:{dist[:8]};坏行:{bad[:10]}")
§3.3 文件格式
| 子任务 | 文件 | 格式 | 关键字段 |
|---|---|---|---|
| CMeEE-V2 | CMeEE_train/dev/test.json | JSON(逐行对象) | text;entities[](entity/start_idx/end_idx/type) |
| CMeIE-V2 | CMeIE_train/dev/test.jsonl | JSONL | text;spo_list[](predicate/subject/subject_type/object/object_type,Combined 标记) |
| CHIP-CDN | CHIP-CDN_train/dev/test.json | JSON 数组 | text;normalized_result(多词以 ## 分隔) |
| CHIP-CTC | CHIP-CTC_train/dev/test.json | JSON 数组 | id/label/text(英文类别名) |
| CHIP-STS | CHIP-STS_train/dev/test.json | JSON 数组 | text1/text2/label(0/1)/category(病种拼音) |
| KUAKE-QIC | KUAKE-QIC_train/dev/test.json | JSON 数组 | id/query/label(中文类别名) |
| KUAKE-QTR/QQR | 同上 | JSON 数组 | id/query/title/label(0-3 或 0-2 整数) |
| KUAKE-IR | KUAKE-IR_train/dev/test.json | JSON 数组 | id/query/title/label(0/1),段落在独立文档池 |
| IMCS-V2 系列 | IMCS-V2_train/dev/test.json + IMCS-V2_test.json(NER 校验需) | JSON | 对话 id/utterances;SR/DAC/MRG 各有专用字段 |
| MedDG | MedDG_train/dev/test.json | JSON | 对话 history + 关键实体槽位 |
| CMedOCR | CMedOCR_train.zip / test.zip | 图像 + JSON 标注 | 图片路径 + 要素框 |
| format_checker | format_checker_20230510.zip | Python 脚本 | 每任务一个 checker,提交前本地校验 |
§3.4 存储大小
全部子集 ZIP 合计约 195 MB:最大者为 KUAKE-IR(129.28 MB,含 10 万检索对与文档池),其次 CHIP-MDCFNPC(8.55 MB)、CMeIE-V2(4.46 MB,4.0 包另含 CMF-NERD 4.37 MB);其余任务均在 0.1-12 MB 之间。解压后含图像的 CMedOCR 会显著膨胀;纯文本任务解压后总量约 400-600 MB。训练侧内存需求主要由 KUAKE-IR 决定,其余 17 个任务在 16 GB 内存笔记本上可全量载入。
§3.5 标注方式
标注方式分三档:人工标注(CMeEE-V2/CMeIE 的双标注 + 仲裁、CHIP-STS 的问句对人工判定、IMCS-V2 的多轮标注)、词典对照标注(CHIP-CDN 的原词-标准词对照 ICD-10 北京临床版 v601 人工核对)、业务日志采样标注(KUAKE 系列从真实搜索日志采样后由业务标注团队打标,保留真实噪音)。CMedCausal 附带 1,000 条未标注数据供半监督实验。
§3.6 标注者资质与一致性
医学文本类任务(CMeEE/CMeIE/CHIP-CDN)由具医学教育背景的标注员完成,由 CHIP 会议各提供单位(高校实验室或企业医学团队)组织质控;论文报告标注一致性检验采用 Fleiss’ Kappa 类多标注者一致性度量,CMeEE-V2 相对 V1 的主要更新即"修复原始数据中的部分标注错误"。搜索与对话类任务由平台业务标注团队按产品侧规范标注,一致性协议未公开细节。总体而言,这是专家介入成本高的领域基准,标注质量优于众包数据但各地块间仍有口径差异(见 §7.2)。
§3.7 采集周期
CHIP 2019/2020 赛题语料采集于 2019-2020;夸克业务数据与对话语料采样于 2021 年前后;天池数据包在 2021-04 至 2025-09 间持续更新(最近一次为 CBLUE 4.0 数据包,2025-09-27)。
§3.8 地域覆盖
全部语料来自中国大陆:教科书为全国通用教材;CHIP-CDN 的电子病历来自医渡云合作三甲医院;CHIP-CTC 覆盖 ChiCTR 全国注册试验;KUAKE/MedDG/IMCS-V2 为全国性互联网平台用户。归一词表采用北京临床版 ICD-10,诊断书写习惯带北方三甲医院偏向。
§3.9 数据载体规格
非影像类基准,无采集设备参数。唯一图像任务 CMedOCR 为医疗清单/发票扫描件(手机拍照与扫描混合来源),分辨率不均一是该任务的固有噪声之一。
§3.10 深度溯源链
天池 dataset/95414(数据包)← CHIP 各届评测组织方(数据生产)← 原始语料(教科书出版社授权 / 医渡云合作医院 / ChiCTR / 夸克日志)→ 论文(ACL 2022,Zhang et al.)→ GitHub CBLUEbenchmark/CBLUE(baseline 与 format_checker)→ 千方病案医数集编辑部交叉审核后收録。每个环节均可在官方页面与论文中核验,数据包内 README.md 记录各子文件上传日期(2023-02-15 至 2025-09-27)。
§4 数据结构
§4.0 目录树
数据从天池逐任务下载并解压后的典型目录结构(以 3.0 全量为例,官方打包为每任务一个 ZIP):
CBLUE/
├── CMeEE-V2/ # 嵌套命名实体识别
│ ├── CMeEE_train.json # {"text": ..., "entities": [{"start_idx":..,"end_idx":..,"type":"dis".."dep"}]}
│ ├── CMeEE_dev.json
│ └── CMeEE_test.json # 无 entities 字段(答案在天池)
├── CMeIE-V2/ # 关系抽取
│ ├── CMeIE_train.jsonl # {"text":..., "spo_list":[{"predicate":..,"subject":..,"object":{"@value":..}}]}
│ └── ...
├── CHIP-CDEE/ # 临床发现事件抽取
├── CHIP-CDN/ # 诊断归一化
│ ├── CHIP-CDN_train.json # {"text":"左膝退变伴游离体","normalized_result":"膝骨关节病##膝关节游离体"}
│ └── ...
├── CHIP-CTC/ CHIP-STS/ CHIP-MDCFNPC/
├── KUAKE-IR/ KUAKE-QIC/ KUAKE-QQR/ KUAKE-QTR/
├── IMCS-V2-NER/ IMCS-V2-DAC/ IMCS-V2-SR/ IMCS-V2-MRG/
│ └── (IMCS-V2_test.json 为 NER 校验所需的原始对话文件)
├── MedDG/ CMedCausal/ Text2DT/
├── CMedOCR/ AGAC/
└── format_checker/ # format_checker_20230510.zip 解压
├── format_checker_CMeEE.py
├── format_checker_IMCS_V2_NER.py
└── ...
§4.1 DAIMS 核心字段字典
以覆盖面最大的三个 JSON 主表为核心(8 列:字段/类型/说明/示例/AI 用途/观测误差/信息性缺失编码/取值范围):
| 字段 | 类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| CMeEE.text | sc:Text | 医学叙述句(已分词) | “脾破裂罕见,却为严重并发症” | NER 输入 | 分词空格与实体边界偶有交互 | 无缺失 | 1-300+ 字 |
| CMeEE.entities.start_idx | sc:Integer | 实体起始下标(V2 起左闭右开) | 0 | 序列标注对齐 | V1/V2 口径不同(坑点 2) | — | 0 ≤ idx < len(text) |
| CMeEE.entities.end_idx | sc:Integer | 实体结束下标(不含) | 3 | 同上 | 同上 | — | 同上 |
| CMeEE.entities.type | sc:Text+Label | 9 类实体标签 | “sym” | 标签空间 | 嵌套仅 sym 内合法 | — | dis/sym/dru/equ/pro/bod/ite/mic/dep |
| CMeIE.spo_list.predicate | sc:Text+Label | 53 种关系谓词 | “放射治疗” | 关系分类 | 同义子关系 10 种易混 | — | 53 枚举值 |
| CMeIE.spo_list.object | sc:Text | 客体(@value 包裹) | {“@value”: “外照射”} | 三元组抽取 | object_type 为嵌套 dict | — | 自由文本 |
| CHIP-CDN.text | sc:Text | 诊断原词 | “糖尿病反复低血糖;骨质疏松” | 归一化输入 | 含错别字/分号复合诊断 | 无缺失 | 1-100 字 |
| CHIP-CDN.normalized_result | sc:Text+Label | ICD-10 标准词(## 分隔) | “糖尿病性低血糖症##骨质疏松” | 多标签输出 | 个数 1-5+ 不定 | — | ICD-10 北京临床版 v601 词表 |
| KUAKE-QTR.label | sc:Integer+Label | 查询-标题相关度 | 2 | 排序/分类 | 边界样本标注主观性高 | — | 0/1/2/3 |
| CHIP-STS.label | sc:Integer+Label | 语义等价 | 1 | 句对分类 | — | — | 0/1 |
| CHIP-STS.category | sc:Text | 病种(可作条件输入) | “diabetes” | 迁移学习条件 | — | — | diabetes/hypertension/hepatitis/aids/breast_cancer |
| IMCS-V2-SR.label | sc:Text+Label | 症状状态 | “present” | 对话理解 | 隐式否定判别难 | — | present/absent/conditional/possible/unknown 类枚举 |
§4.2 标签分布要点
- CMeEE-V2 的 9 类实体中,临床表现(sym)与疾病(dis)占绝对多数,医疗设备(equ)与科室(dep)为长尾类;sym 是唯一允许嵌套的类别,其嵌套实例集中出现在症状描述复合句。
- CHIP-CTC 的 44 类分布高度不均,“Multiple”(一条标准命中多类)与其他若干类构成头部,长尾类别样本不足百条。
- KUAKE-QTR 的 0-3 四档中,中间档(1/2)标注分歧最大;CHIP-STS 正负样本约均衡;KUAKE-IR 为 0/1 二类。
- 精确的类内计数官方未随包发布统计文件,建议加载后用 pandas 自行统计(§6.3 提供代码)。
§4.3 关键统计
| 统计项 | 数值 | 来源 |
|---|---|---|
| 子任务总数 | 18(CBLUE 3.0 官方口径)+ CMedOCR/AGAC/CMedCausal 等扩展 | 天池 dataset/95414 |
| 样本合计 | 约 34 万条(各任务 train/dev/test 累加) | 官方数字算术累加 |
| CMeEE 语料 | 938 文件 / 47,194 句 / 220 万字 / 9 类实体 | CIPS-CHIP 官方页 |
| CMeIE 三元组 | 近 7.5 万条 SPO / 53 种关系 | CIPS-CHIP 官方页 |
| CHIP-CTC 类别数 | 44 | CHIP2019 |
| CHIP-CDN 词表 | ICD-10 北京临床版 v601 | CHIP2020 |
| 最大单任务 | KUAKE-IR:10 万训练对(129.28 MB) | 天池数据包 |
§4.4 数据层级
CBLUE 无"患者→检查"式影像层级,其层级为:语料库(CBLUE)→ 任务数据集(18 个)→ 划分(train/dev/test)→ 样本(句/句对/对话/图像)→ 标注单元(实体跨度、SPO 三元组、事件触发词、要素框)。对话类任务多一层"对话→轮次"结构(IMCS-V2 的 utterances 数组);检索任务多一层"查询→候选段落"配对结构。
§4.5 缺失值与信息性缺失
| 现象 | 出现位置 | 处理建议 |
|---|---|---|
| 测试集无标签字段 | 所有任务的 *_test.json | 信息性缺失(答案在天池),勿当作真缺失填充;本地评估只能用 dev |
| 空格 tokenization 残留 | CMeEE 文本(预分词产物) | 计算字符偏移时按原串处理,勿先去空格(会整体移位实体下标) |
| 半角/全角标点混排 | CHIP-CTC 数值阈值、KUAKE 查询词 | 归一化时保留原字符(评测基于原串匹配) |
| CMedOCR 无验证集 | 训练 1,000 / 测试 700 | 从训练集自切 10% 作内部验证 |
| AGAC 测试集 2,000 远大于训练 250 | 类别稀缺 | 考虑迁移自中文任务或多任务联合训练 |
§5 划分与使用建议
§5.1 官方划分
所有子任务均采用固定的 train/dev/test 三分(见 §3.2 表),官方要求只在 train 上训练、dev 上调参、test 预测后提交天池评分。测试集答案不公开,且官方明确以天池榜单成绩为准——这保证了跨论文结果的可比性,也意味着任何"本地测试集评估"实际用的是 dev 集。
§5.2 社区惯例划分
社区在两件事上形成了事实惯例:其一,多任务联合训练(PTM 一个底座、每任务独立头,轮转采样)时按各任务 train 原样合并,不重切分;其二,PromptCBLUE 为 LLM 训练将部分任务样本改造为指令格式并对每任务采样上限做了约束(约 8.26 万训练样本、7,600+ 测试样本),做 LLM 对比实验时应沿用其切分以保证可比。
§5.2b 与 PromptCBLUE 切分的对照
做 LLM 对比实验时,与 PromptCBLUE(Zhu et al., 2023)保持同切分是结果可比的前提。该工作把 CBLUE 改造为 16 个指令化子任务,训练集约 8.26 万条、测试集约 7,600 条,并对每任务设置了训练样本上限(防止大任务吞没小任务)。三条实践纪律:其一,不要把 CMeIE/KUAKE-IR 的全量训练集灌进 LLM 微调再与 PromptCBLUE 公开数字对比——两者训练分布不同,分数没有可比性;其二,其测试集是从 CBLUE dev/test 重组织而来,不要把 PromptCBLUE 测试样本混入自己的训练语料;其三,其 prompt 模板池经医学专业人员审核,若自造模板,请在论文中显式声明模板差异。源码与模板见 michael-wzhu/PromptCBLUE。
§5.3 泄漏风险(重点)
- 搜索日志时间泄漏:KUAKE 三件与 KUAKE-IR 从同源日志采样,若自建划分(如按查询词哈希)可能把同一查询的不同变体分入训练与测试,造成虚高。对策:沿用官方划分;自切分时按查询词聚类后整体切。
- 版本间文本重叠:CMeEE V1→V2、CMeIE V1→V2 修复标注但句子基本同源;用旧版本预训练再用新版本评测属于轻度泄漏。对策:统一使用 V2。
- LLM 预训练污染:PromptCBLUE 论文明确指出"部分测试集可能已进入大模型预训练语料",这是评测通用 LLM 时最大的混淆项。对策:结合天池不公开测试集的成绩交叉解读;避免把 dev 集样本用作 few-shot 演示后又在 dev 上汇报成绩。
- CHIP-STS 的 category 条件泄漏:category 字段直接给出病种,若把 category 编码进模型又在不同病种上评估泛化,会高估性能。论文本身即以此设计"跨病种泛化"实验,复现时注意条件注入方式。
§5.4 交叉验证建议
小样本任务(CMedCausal 800、Text2DT 300、CHIP-CDEE 1,587)建议 5 折分层交叉验证以稳定结论;NER 任务用按文件/按句分层的 K 折;所有折内统计应保持 9 类实体(或 44 类条款)不塌缩。CHIP-CDN 因输出个数不定,交叉验证时按"原词是否归一对"计算样本级准确率作辅助指标。
§5.5 外部验证建议
在天池 dev/test 之外,建议至少用一个跨来源语料做外部验证:医院自有病历(检验 CHIP-CDN 归一化在本院书写习惯下的召回)、自采搜索日志(检验 KUAKE 意图分类的时效漂移)、公开中文医学问答社区(检验 CHIP-STS 判别器的域外泛化)。外部集上预期成绩下降 5-15 个百分点属正常区间(参考 §7.8 的跨源证据)。
§6 AI 就绪指南 ⭐
§6.1 快速上手
目录结构预期:以下代码假设你已从 天池 dataset/95414 下载
CMeEE-V2.zip、CHIP-CDN.zip、CHIP-STS.zip并解压到data_root指向的目录,即data_root/CMeEE-V2/CMeEE_train.json这样的拼接关系成立。最小可用子集:CHIP-STS(1.6 万句对、纯分类任务)最适合验证端到端流程,单卡 30 分钟内可跑通。
# 环境准备:Python 3.8+ / transformers / pandas
# pip install transformers pandas scikit-learn
import json, pandas as pd
from pathlib import Path
data_root = Path("data") # 解压后的 CBLUE 目录
sts_dir = data_root / "CHIP-STS" # 最小可用子集:CHIP-STS
def load_sts(split):
rows = []
with open(sts_dir / f"CHIP-STS_{split}.json", encoding="utf-8") as f:
for line in f: # 官方 JSON 为逐行对象(JSON Lines 风格)
rows.append(json.loads(line))
return pd.DataFrame(rows)
train = load_sts("train") # 16,000 行:text1/text2/label/category
print(train["label"].value_counts()) # 标签分布自查(§4.2)
print(train["category"].value_counts())# 五病种分布:diabetes/hypertension/hepatitis/aids/breast_cancer
§6.2 数据获取
| 步骤 | 操作 | 说明 |
|---|---|---|
| 1 | 注册阿里天池账号并完成实名认证 | 个人/企业均可,免费 |
| 2 | 打开 数据集主页(4.0 为 dataset/211461) | 页面右侧逐文件下载 |
| 3 | 按需勾选任务 ZIP | 全量约 195 MB;KUAKE-IR 单包 129.28 MB |
| 4 | 解压到统一 data 目录 | 每任务一个子目录(§4.0 目录树) |
| 5 | 下载 format_checker 备用 | 提交天池前本地预校验(坑点 6) |
无匿名下载、无直链、无 HuggingFace 官方镜像(社区镜像存在但版本不一,不建议作为一手来源)。学术引用请使用 ACL 2022 论文 BibTeX(§9)。
§6.3 预处理全流程
三个代表性任务的清洗与转换:NER 偏移校验、归一化多标签拆分、句对 tokenization。
import json
from pathlib import Path
# ---------- 1) CMeEE-V2:实体偏移合法性校验(左闭右开) ----------
def check_cmeee(path):
bad = 0
for line in open(path, encoding="utf-8"):
item = json.loads(line)
text, n = item["text"], len(item["text"])
for ent in item.get("entities", []):
s, e = ent["start_idx"], ent["end_idx"]
# V2 口径:左闭右开;text[s:e] 必须逐字等于 entity
if item["text"][s:e] != ent["entity"] or not (0 <= s < e <= n):
bad += 1
return bad # >0 说明你在用 V1(左闭右闭)口径解析 V2 数据 → 见坑点 2
# ---------- 2) CHIP-CDN:多标准词拆分为多标签 ----------
def parse_cdn(path):
X, Y = [], []
for line in open(path, encoding="utf-8"):
item = json.loads(line)
X.append(item["text"])
Y.append(item["normalized_result"].split("##")) # 一词多标准词
return X, Y # 训练时需 multi-label 头或生成式方案(坑点 5)
# ---------- 3) CHIP-STS:句对 + 病种条件编码 ----------
def build_sts(tokenizer, path, max_len=128):
rows = [json.loads(l) for l in open(path, encoding="utf-8")]
# 把 category 拼入句首(条件 LayerNorm 或文本拼接二选一)
texts = [f"[{r['category']}] {r['text1']}" for r in rows]
enc = tokenizer(texts, rows and [r["text2"] for r in rows],
truncation=True, max_length=max_len, padding=True,
return_tensors="pt")
return enc, [r["label"] for r in rows]
§6.3b 全任务统一指令格式转换器(LLM 微调前置)
把 18 个任务统一转成 instruction/input/output 三元组,是医疗 LLM 微调与 PromptCBLUE 式评测的公共前置步骤。核心收益:一套训练循环吃下全部任务,同时天然隔离各任务的字段差异。
import json
from pathlib import Path
def cmeee_to_sft(line: str) -> dict:
d = json.loads(line)
ents = [{"entity": e["entity"], "start_idx": e["start_idx"],
"end_idx": e["end_idx"], "type": e["type"]}
for e in d.get("entities", [])]
return {"instruction": "从给定中文医学文本中抽取全部医学实体,按 JSON 数组输出,"
"下标为左闭右开字符偏移,类型取 dis/sym/dru/equ/pro/bod/ite/mic/dep。",
"input": d["text"], "output": json.dumps(ents, ensure_ascii=False)}
def cdn_to_sft(line: str) -> dict:
d = json.loads(line)
return {"instruction": "将中文电子病历诊断原词归一化到 ICD-10 北京临床版 v601 标准词,"
"多个标准词用##分隔。",
"input": d["text"], "output": d["normalized_result"]}
def pair_cls_to_sft(task: str, line: str) -> dict:
d = json.loads(line)
prompts = {"CHIP-STS": "判断两个医学问句语义是否相同(1 相同 / 0 不同)。",
"KUAKE-QIC": "对医疗搜索查询做意图分类(11 类,输出中文类别名)。",
"KUAKE-QTR": "评估查询词与页面标题主题相关度(0-3 四档)。",
"KUAKE-QQR": "评估两个查询词的语义匹配程度(0-2 三档)。"}
text = d.get("text1", d.get("query", ""))
second = d.get("text2", d.get("title", ""))
return {"instruction": prompts[task],
"input": f"{text}\n[SEP]\n{second}", "output": str(d["label"])}
CONVERTERS = {"CMeEE-V2": cmeee_to_sft, "CHIP-CDN": cdn_to_sft,
"CHIP-STS": lambda l: pair_cls_to_sft("CHIP-STS", l),
"KUAKE-QIC": lambda l: pair_cls_to_sft("KUAKE-QIC", l),
"KUAKE-QTR": lambda l: pair_cls_to_sft("KUAKE-QTR", l),
"KUAKE-QQR": lambda l: pair_cls_to_sft("KUAKE-QQR", l)}
# CMeIE/IMCS/MedDG 等生成式与结构化任务按同模式补齐 converter
def convert_all(data_root: str, out_path: str = "cblue_sft.jsonl"):
n = 0
with open(out_path, "w", encoding="utf-8") as out:
for task, fn in CONVERTERS.items():
src = Path(data_root) / task / f"{task}_train.json"
if not src.exists():
continue
for line in open(src, encoding="utf-8"):
out.write(json.dumps(fn(line), ensure_ascii=False) + "\n")
n += 1
print(f"共转换 {n} 条指令样本 → {out_path}")
§6.4 PyTorch DataLoader
import torch, json
from torch.utils.data import Dataset, DataLoader
from transformers import AutoTokenizer, AutoModelForSequenceClassification
class CBluePairClsDataset(Dataset):
"""适用于 CHIP-STS / KUAKE-QTR / KUAKE-QQR / KUAKE-IR 等句对任务。
预期目录:data_root/CHIP-STS/CHIP-STS_{split}.json(逐行 JSON)。
"""
def __init__(self, data_root, task, split, tokenizer, max_len=128,
label_map=None, use_category=False):
self.rows = [json.loads(l)
for l in open(f"{data_root}/{task}/{task}_{split}.json",
encoding="utf-8")]
self.tok, self.max_len, self.use_category = tokenizer, max_len, use_category
# 标签映射:CHIP-STS 用 0/1;QTR 用 0-3;QQR 用 0-2;IR 用 0/1
labels = sorted({r["label"] for r in self.rows if "label" in r},
key=lambda x: int(x))
self.label_map = label_map or {l: i for i, l in enumerate(labels)}
def __len__(self):
return len(self.rows)
def __getitem__(self, i):
r = self.rows[i]
t1 = f"[{r['category']}] {r['text1']}" if self.use_category else r["text1"]
enc = self.tok(t1, r["text2"], truncation=True,
max_length=self.max_len, padding="max_length",
return_tensors="pt")
item = {k: v.squeeze(0) for k, v in enc.items()}
if "label" in r:
item["labels"] = torch.tensor(int(self.label_map[r["label"]]))
return item
tok = AutoTokenizer.from_pretrained("hfl/chinese-macbert-base")
model = AutoModelForSequenceClassification.from_pretrained(
"hfl/chinese-macbert-base", num_labels=2)
train_ds = CBluePairClsDataset("data", "CHIP-STS", "train", tok, use_category=True)
train_dl = DataLoader(train_ds, batch_size=32, shuffle=True, num_workers=2)
# 训练循环:常规 CrossEntropyLoss + AdamW(lr=2e-5, warmup 10%)
§6.4b CMeEE-V2 嵌套 NER 的 Dataset(span 枚举式)
import torch, json
from torch.utils.data import Dataset
class CMeEESpanDataset(Dataset):
"""嵌套 NER:枚举候选跨度做分类,天然支持 sym 内嵌套(坑点 3)。
预期文件:data/CMeEE-V2/CMeEE_train.json(逐行 JSON,左闭右开)。"""
ENT_TYPES = ["dis", "sym", "dru", "equ", "pro", "bod", "ite", "mic", "dep"]
def __init__(self, path, tokenizer, max_len=256, max_span=8, spans_per_item=24):
self.items = [json.loads(l) for l in open(path, encoding="utf-8")]
self.tok, self.max_len = tokenizer, max_len
self.max_span, self.k = max_span, spans_per_item
self.type2id = {t: i for i, t in enumerate(self.ENT_TYPES)}
self.char2tok = {} # 字符→token 偏移缓存(按需填充)
def _encode_spans(self, item):
text = item["text"]
enc = self.tok(text, truncation=True, max_length=self.max_len,
return_offsets_mapping=True, return_tensors="pt")
offsets = enc["offset_mapping"][0].tolist() # (start, end) 每 token
gold = {(e["start_idx"], e["end_idx"], e["type"])
for e in item.get("entities", [])}
# 候选跨度:所有长度 ≤ max_span 的 token 子串
cands, labels = [], []
for i in range(len(offsets)):
for L in range(1, self.max_span + 1):
j = i + L
if j >= len(offsets) or offsets[i] == (0, 0):
break
s, e = offsets[i][0], offsets[j - 1][1]
t = text[s:e]
if not t or t.isspace():
continue
cands.append((s, e))
labels.append(self.type2id.get(
next((ty for (gs, ge, ty) in gold if gs == s and ge == e), "O")))
idx = torch.randperm(len(cands))[: self.k].tolist() \
if self.training_sample else list(range(len(cands)))
return enc, [cands[i] for i in idx], [labels[i] for i in idx]
def __getitem__(self, i):
enc, spans, labels = self._encode_spans(self.items[i])
return {"input_ids": enc["input_ids"].squeeze(0),
"attention_mask": enc["attention_mask"].squeeze(0),
"spans": torch.tensor(spans), "span_labels": torch.tensor(labels)}
training_sample = False
说明:span 枚举是教学实现,生产建议直接用 GlobalPointer(全局归一化、复杂度更低);两种实现的共同点是以 token offset mapping 桥接字符下标,这使代码同时兼容 V2 的左闭右开口径——只要 _encode_spans 中偏移比对逻辑正确,坑点 2 的断言可通过。
§6.4c 多任务联合训练的最小骨架
import itertools, torch
from torch.utils.data import DataLoader
# 任务注册表:为每个子任务挂独立的分类头/抽取头
task_loaders = {
"CHIP-STS": DataLoader(CBluePairClsDataset("data", "CHIP-STS", "train", tok,
use_category=True), 32, shuffle=True),
"KUAKE-QIC": DataLoader(CBluePairClsDataset("data", "KUAKE-QIC", "train", tok),
32, shuffle=True),
# NER/SPO 任务换成 §6.4b 的 span 方案或 CRF 头
}
for epoch in range(3):
for batch_group in itertools.zip_longest(*task_loaders.values()):
total_loss = 0
for task_name, batch in zip(task_loaders, batch_group):
if batch is None:
continue
batch = {k: v.cuda() for k, v in batch.items() if torch.is_tensor(v)}
logits = model(**{k: v for k, v in batch.items() if k != "labels"}).logits
total_loss = total_loss + torch.nn.functional.cross_entropy(
logits, batch["labels"]) # 轮转采样:各任务 loss 直接相加
total_loss.backward()
torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0)
optimizer.step(); optimizer.zero_grad()
§6.4d 天池提交打包脚本(与坑点 6 配套)
#!/usr/bin/env python3
"""CBLUE 预测结果 → format_checker 校验 → 打包 zip。
目录约定:result_output/ 下生成 {task}_test.json(与官方 RESULT_OUTPUT_DIR 一致)。"""
import json, shutil, subprocess, zipfile
from pathlib import Path
TASKS_NEED_EXTRAS = {
"IMCS-V2-NER": ["IMCS-V2_test.json"], # 校验需原始对话文件
"MedDG": ["entity_list.txt"], # 校验需词典
"IMCS-V2-SR": ["mappings.json"],
}
def package(task: str, raw_test: Path, pred: Path, checker_dir: Path,
out_dir: Path = Path("result_output")):
out_dir.mkdir(exist_ok=True)
shutil.copy(raw_test, out_dir / f"{task}_test_raw.json") # checker 需要原始无答案文件
shutil.copy(pred, out_dir / f"{task}_test.json")
for extra in TASKS_NEED_EXTRAS.get(task, []): # 复制必需的词典/原始文件
shutil.copy(raw_test.parent / extra, out_dir / extra)
checker = checker_dir / f"format_checker_{task.replace('-', '_')}.py"
subprocess.run(["python3", str(checker),
str(out_dir / f"{task}_test_raw.json"),
str(out_dir / f"{task}_test.json")], check=True) # 校验失败直接抛错
with zipfile.ZipFile(out_dir / f"{task}_submission.zip", "w") as zf:
for f in out_dir.iterdir():
zf.write(f, f.name)
print(f"[OK] {task} 已打包并预校验通过 → {out_dir / (task + '_submission.zip')}")
§6.5 坑点清单(8 个,全部来自官方文档与社区实战)
⚠️ 坑点 1:直接下载 CBLUE 1.0 旧包,任务与口径全对不上(分类:工程陷阱)
问题:天池旧页 dataset/113223 仍可下载 CBLUE 1.0(8 任务、CC BY-NC 4.0),页面已标注"不再维护更新";论文与多数教程按 8 任务写,新数据包已改名(CMeEE→CMeEE-V2、新增 10 任务),两套文件混用会导致复现结果对不上任何榜单。
症状:跑 baseline 分数与 GitHub README 差距大;文件名找不到(如找 CMeIE-V2 却下到 CMeIE);提交天池校验失败。
解决:
- 简单方法:一律从 dataset/95414(或 4.0 的 dataset/211461)下载,对照 README.md 内的上传日期表核对文件。
- 进阶方法:写下载清单脚本,按官方文件名 + 大小(如 KUAKE-IR.zip = 129.28 MB)做完整性校验。
- SOTA 方法:复现历史论文时明确在实验表注明"CBLUE 1.0 口径",并将 V1 数据换算到 V2 下标口径后再对比。
参考:天池 dataset/113223 页面说明、CBLUEbenchmark/CBLUE README。
⚠️ 坑点 2:CMeEE V1→V2 实体下标从左闭右闭改为左闭右开(分类:预处理陷阱)
问题:CMeEE-V2 除了修复标注错误外,把实体下标从"左闭右闭"(end_idx 指向最后一个字符)改为"左闭右开"(end_idx 不含),并把字段名 entity_type 统一为 type;沿用 V1 解析代码会让所有实体右边界偏移 1。
症状:text[s:e]比对实体字符串时每次都差一个字符;严格 Micro-F1 在 dev 上趋近 0;可视化标注框全部右移一位。
解决:
- 简单方法:解析时加断言
text[s:e] == entity,不满足立即报错定位(§6.3 的 check_cmeee)。- 进阶方法:写一个 V1→V2 适配器统一转左闭右开:
new_end = old_end + 1,并同时改字段名。- SOTA 方法:在数据版本管理(DVC)中固定数据包 hash,V1/V2 分支存放;评测脚本显式声明所依赖的数据版本。
参考:天池 dataset/95414 CMeEE-V2 任务说明。
⚠️ 坑点 3:只有 sym 类实体允许嵌套,扁平 NER 头结构性掉分(分类:标签理解)
问题:CMeEE-V2 标注规范规定"临床表现(sym)实体内部允许嵌套其他八类实体,其余类别按最大单位标注";用 CRF/softmax 扁平序列标注头天然只能输出一层,嵌套样本全部错标。
症状:dev Micro-F1 卡在 62-66 分附近(低于 GlobalPointer 类方案 2-4 分);错误案例集中在"脾破裂/脾"这类包含关系的症状-身体对。
解决:
- 简单方法:训练两个模型/两次标注头,一层只标 sym、一层标其余 8 类,后处理合并。
- 进阶方法:改用全局归一化头(GlobalPointer / 多头选择器),直接支持任意跨度重叠;官方 baseline 即用 GlobalPointer + MacBERT(CMeEE F1 65.93)。
- SOTA 方法:span-based 枚举 + 类型图约束(sym 内允许 8 类,其余互斥),结合 W2NER/嵌套 NER 专用结构。
参考:GlobalPointer:科学空间、DataArk CBLUE-Baseline。
⚠️ 坑点 4:CMeIE 的 spo_list 含嵌套 dict 与 Combined 字段,naive 解析直接抛异常(分类:预处理陷阱)
问题:CMeIE 的三元组客体不是纯字符串而是
{"@value": ...}包裹的 dict,object_type 也可能是 dict;部分样本带"Combined": true标记(一个主体连多个客体)。按扁平字段读取会在数万行数据中途崩溃。
症状:pandasjson_normalize报 KeyError “@value”;统计三元组数与官方 7.5 万对不上;训练时部分 batch 的标签张量形状不一致。
解决:
- 简单方法:逐行 try/except,先跑通再统计坏行率(官方数据坏行率极低,多为自己解析问题)。
- 进阶方法:写递归展平函数处理 @value 与 object_type dict;Combined 样本拆为多条训练实例并在验证时合并回原文。
- SOTA 方法:直接采用 CasRel/SPN/GlobalPointer 化的 SPO 联合抽取框架,以(主体跨度,谓词,客体跨度)三元组为目标,天然兼容嵌套结构。
参考:DataArk CBLUE-Baseline CMeIE 节。
⚠️ 坑点 5:CHIP-CDN 一词对多个标准词,单标签分类头方向性错误(分类:标签理解)
问题:诊断原词的 normalized_result 用 ## 分隔多个 ICD-10 标准词(如"右乳腺癌IV期"→“乳腺恶性肿瘤##癌”),且个数不定;把它当单标签分类会系统性丢分,把标准词当固定类别表又因词表大(北京临床版 v601 数万词)而不可行。
症状:dev Micro-F1 上不去(baseline 65.65);预测输出永远只有一个标准词;复合诊断(分号连接多疾病)召回极低。
解决:
- 简单方法:多路召回(BM25/字面向量)取 top-k 候选 + 相似度模型重排,再训练"标准词个数预测"决定输出几个。
- 进阶方法:按 ## 拆分后对每个标准词独立判别(多标签),训练时按个数加权损失。
- SOTA 方法:生成式归一(seq2seq 直接生成标准词序列)或检索-重排-计数三段式(CHIP2021 冠军方案的公开复现即此路线)。
参考:CHIP2021 临床术语标准化方案开源(DataArk)。
⚠️ 坑点 6:跳过 format_checker 直接提交,天池判 0 分(分类:评估误用)
问题:天池以预测文件格式严格校验,字段名、下标口径、## 分隔符、JSON 结构任何一处不符即判无效;IMCS-V2-NER 校验还要求额外复制原始对话文件 IMCS-V2_test.json,MedDG/IMCS-V2-SR 校验依赖词典文件(entity_list.txt / mappings.json),缺文件同样失败。
症状:提交后榜单显示 0 分或 “invalid”;本地 dev 成绩正常但线上无成绩;反复提交浪费当日次数。
解决:
- 简单方法:每次提交前本地跑官方 checker:
python3 format_checker_CMeEE.py CMeEE_test_raw.json CMeEE_test.json。- 进阶方法:把 checker 挂进 CI(预测脚本输出后自动校验),并把 IMCS-V2/MedDG 所需的原始文件与词典一并复制进打包目录。
- SOTA 方法:用官方打包目录结构生成器统一产出 RESULT_OUTPUT_DIR 的 zip,杜绝手工打包漏文件。
参考:CBLUEbenchmark/CBLUE 提交说明。
⚠️ 坑点 7:用 GPT-4 级 LLM 直接 few-shot 打分,成绩被输出格式拖垮(分类:评估误用)
问题:CBLUE 各任务要求精确输出格式(NER 的 JSON 列表、CDN 的 ## 拼接、QTR 的单数字档位),LLM few-shot 常因格式不合规被判错,即使医学知识正确;PromptCBLUE 实测 GPT-4 总分仅 0.518,MedDG 生成任务低至 0.193。若据此断言"LLM 医学能力差",结论会被格式对齐噪声污染。
症状:LLM 在 dev 上大量样本"答案对但解析失败";日志中输出带解释文字/Markdown 包裹导致 JSON 解析错误率超 30%。
解决:
- 简单方法:系统提示中给足格式示例,输出后做正则清洗(剥离 ```json 围栏、截取首个合法 JSON)再评。
- 进阶方法:按任务类型改用约束解码(JSON schema / 函数调用),NER 用"逐句枚举跨度"降低格式自由度。
- SOTA 方法:改用 PromptCBLUE 协议评测(统一 prompt 模板池 + 16 任务),与 Baichuan-13B+LoRA 0.710 等公开数字直接可比。
参考:PromptCBLUE(arXiv:2310.14151)、MEDCARE(EMNLP 2024 Findings)。
⚠️ 坑点 8:忽视 CC BY-NC-SA 4.0 的 NC/SA 双约束,商用与二次分发踩线(分类:偏倚陷阱)
问题:榜单大部分数据集遵循 CC BY-NC-SA 4.0——非商业(NC)且同方式共享(SA);在 CBLUE 上微调的模型权重是否"含数据"在医疗产品化场景中存在合规灰色地带;个别任务另有协议(官方在任务章节单独列出),混用易漏查。
症状:产品上线前法务审查发现训练数据含 NC 成分;将衍生数据集上传到其他平台时未带同款许可证构成违约风险。
解决:
- 简单方法:逐任务核对天池任务页的协议段,建立"任务→许可证"台账;商用管线只用协议允许的部分或替换为商用授权数据。
- 进阶方法:区分"权重是否构成演绎作品"——保守做法是商用模型不直接使用 NC 数据微调的权重,或咨询法务出具意见。
- SOTA 方法:以 CBLUE 做能力评测、以商用授权语料(如自采/采购病历)做生产训练,评测与训练数据完全隔离。
参考:天池 dataset/95414 协议说明、dataset/211461 页面 CC BY-NC-SA 4.0 标注。
§6.6 数据增强(安全✅/危险❌)
| 任务类型 | 安全 ✅ | 危险 ❌ |
|---|---|---|
| NER/关系抽取 | 同义词替换非实体片段、回译仅限非实体 span、随机 mask 非实体 token | 对实体文本做同义替换(改变实体类型)、复制含嵌套实体样本后乱序(破坏偏移) |
| 分类(CTC/QIC) | EDA 同义句式改写、长句截断采样 | 跨标签混插句子(44 类边界样本本就模糊)、对数值阈值句做数字替换(改变类别) |
| 句对匹配(STS/QTR) | 两句独立加噪、同义问句改写后保持标签 | 交换 text1/text2 后沿用非对称标签处理逻辑 |
| 归一化(CDN) | 原词侧加错别字噪声(模拟真实书写) | 对标准词侧做任何改写(词表是金标准) |
| 生成(MedDG/MRG) | 槽位保持的模板重排 | 删除或改写对话中的实体槽位(评测按实体 F1 计) |
§6.7 模型推荐
| 任务组 | 推荐起点 | 进阶 | 说明 |
|---|---|---|---|
| CMeEE-V2 / IMCS-V2-NER | GlobalPointer + chinese-macbert-base | W2NER、UIE | 必须支持嵌套跨度 |
| CMeIE / CMedCausal | CasRel + ERNIE 1.0 | SPN、OneRel | 官方 baseline 51.26 |
| CHIP-CDN | BM25 召回 + 语义重排 + 个数预测 | 生成式归一(UIE/T5) | baseline 65.65 |
| CHIP-CTC / KUAKE-QIC | MacBERT 句分类 | 长文本模型(CHIP-CTC 句长) | 44 类注意分层采样 |
| CHIP-STS / KUAKE-QTR / QQR | MacBERT 句对分类(STS 拼 category) | CoSENT/SimCSE 式句向量 | QTR 中间档最难 |
| KUAKE-IR | 双塔召回 + 交叉重排 | ColBERT 式Late-interaction | 10 万对适合对比学习 |
| MedDG / IMCS-V2-MRG | BART/T5 中文底座 + 槽位约束 | 医疗 LLM LoRA 微调 | 生成任务全体模型最弱 |
| CMedOCR | PaddleOCR 检测识别 + 字段抽取头 | LayoutLMv3 类版式模型 | 唯一图像任务 |
§6.8 硬件需求
| 场景 | 显存 | 预计时长(单任务) |
|---|---|---|
| 句对/分类任务微调(BERT-base,max_len 128) | 8-12 GB | 0.5-2 小时 |
| NER/SPO 抽取(GlobalPointer/CasRel) | 12-16 GB | 2-6 小时 |
| KUAKE-IR 对比学习(10 万对) | 16-24 GB | 6-12 小时 |
| 多任务联合训练(18 任务轮转) | 24 GB+ | 1-3 天 |
| LLM LoRA 微调(13B,PromptCBLUE 协议) | 40 GB+(A100 级) | 数天 |
§6.9 评估指标代码
import numpy as np
def micro_f1_ner(pred_spans, gold_spans):
"""严格匹配:(start, end, type) 三元组全对才算对。
pred/gold 均为 per-sample 的 set[(s, e, type)],e 为左闭右开。"""
tp = sum(len(p & g) for p, g in zip(pred_spans, gold_spans))
n_pred = sum(len(p) for p in pred_spans)
n_gold = sum(len(g) for g in gold_spans)
precision, recall = tp / (n_pred + 1e-12), tp / (n_gold + 1e-12)
return 2 * precision * recall / (precision + recall + 1e-12)
def macro_f1_cls(y_true, y_pred, n_classes):
"""CHIP-STS/CHIP-CTC 用 Macro F1(类别不平衡敏感)。"""
from sklearn.metrics import f1_score
return f1_score(y_true, y_pred, average="macro",
labels=range(n_classes), zero_division=0)
def cdn_multi_word_f1(pred_lists, gold_lists):
"""CHIP-CDN:把 ## 分隔的标准词集合当多标签,按样本聚合后再算 Micro F1。"""
tp = n_pred = n_gold = 0
for p, g in zip(pred_lists, gold_lists):
ps, gs = set(p), set(g)
tp += len(ps & gs); n_pred += len(ps); n_gold += len(gs)
precision, recall = tp / (n_pred + 1e-12), tp / (n_gold + 1e-12)
return 2 * precision * recall / (precision + recall + 1e-12)
§6.9b LLM few-shot 评测 harness(PromptCBLUE 协议的极简版)
import json, re
def eval_llm_on_task(model_fn, task, dev_path, k_shots=7, max_n=200):
"""model_fn: Callable[[str], str],接收 prompt 返回原始输出。
评测要点(坑点 7):先清洗格式再解析;解析失败的样本按错例计,
绝不丢弃——否则会系统性高估 LLM。"""
rows = [json.loads(l) for l in open(dev_path, encoding="utf-8")][:max_n]
demos = "\n\n".join(json.dumps(r, ensure_ascii=False) for r in rows[:k_shots])
ok = 0
for r in rows[k_shots:]:
prompt = f"以下是{task}任务的示例(JSON Lines):\n{demos}\n\n请只输出该条目的预测 JSON:"
raw = model_fn(prompt)
cleaned = re.sub(r"^```(json)?|```$", "", raw.strip(), flags=re.M).strip() # 剥离代码围栏
try:
pred = json.loads(cleaned)
ok += int(pred == {k: r[k] for k in ("text", "label") if k in r})
except json.JSONDecodeError:
pass # 格式不合规 = 预测错误,计入分母
return ok / max(len(rows) - k_shots, 1)
§6.10 MLOps 笔记
- 数据版本固定:把天池 ZIP 的 MD5 与文件大小(README.md 有官方清单)录入 DVC/Dagit,V1/V2、3.0/4.0 不可混轨。
- 评测闭环:训练脚本产出预测文件 → 自动跑 format_checker → 本地 dev 指标 → 上传天池记录线上分,四步写成一条 CI 流水线,杜绝"本地好线上 0 分"。
- 榜单纪律:天池每月按当月最后一天排名发放奖励,重复提交与"人肉调参试榜"要有次数预算;把每次提交的本地/线上差值记录成表,用于估计 dev-test 偏差。
- 模型卡片:凡基于 CBLUE 微调的对外模型,卡片中注明训练任务子集与许可证(NC 约束随权重传递的争议写明立场)。
§7 质量评估与局限性
§7.1 已知偏倚
| 偏倚类型 | 描述 | 严重程度 | 缓解措施 |
|---|---|---|---|
| 病种覆盖偏倚 | CMeEE/CMeIE 聚焦儿科常见病(504 种),成人罕见病、肿瘤细分亚型样本稀少 | 高 | 上采样长尾实体;补充院内自标语料 |
| 书写习惯偏倚 | CHIP-CDN 词表为 ICD-10 北京临床版 v601,其他省市书写习惯覆盖不足 | 中 | 归一化前先做方言级别名映射 |
| 平台用户偏倚 | KUAKE 系列来自夸克搜索用户,年轻、移动端为主,老年多病共存的表述覆盖弱 | 中 | 结合呼叫中心/门诊问句补采 |
| 类别不平衡 | CHIP-CTC 44 类头部集中(Multiple 等)、CMeEE equ/dep 长尾 | 高 | Macro F1 监控 + 分层采样 + focal loss |
| 版本演进偏倚 | V1→V2 修复标注错误,旧论文数字与新数据不可直接比 | 低 | 统一使用 V2 并声明版本 |
| 标注口径漂移 | 对话类任务(IMCS-V2)的隐式否定/条件状态判定主观性高 | 中 | dev 上做标注一致性抽查 |
§7.2 标注质量
官方渠道披露的质量证据包括:CMeEE-V2 的更新说明(“修复原始数据中的部分标注错误,提升语料质量”)、论文采用多标注者一致性度量(Fleiss’ Kappa 类)与人类上限(human ceiling)对照实验。未公开的信息:逐任务标注者人数、Kappa 具体数值、搜索类任务的一致性报告。实践建议:把 dev 集 200 条抽出来做双人重标,估算自己场景下的 Kappa,再决定是否需要领域专家终审。
§7.2b 标注一致性自查(抽检协议)
官方未披露逐任务 Kappa,落地前用 200 条 dev 抽检补齐这块证据:
import json, random
from sklearn.metrics import cohen_kappa_score
def sample_for_dual_annotation(path, n=200, seed=42, out="dual_annot.jsonl"):
"""从 dev 抽 n 条导出给第二标注员,回填后算 Kappa。"""
rows = [json.loads(l) for l in open(path, encoding="utf-8")]
random.Random(seed).sample(rows, n)
with open(out, "w", encoding="utf-8") as f:
for r in random.Random(seed).sample(rows, n):
r2 = dict(r); r2["annotator2_label"] = None # 回填列
f.write(json.dumps(r2, ensure_ascii=False) + "\n")
def kappa_after_backfill(backfilled_path, key1="label", key2="annotator2_label"):
rows = [json.loads(l) for l in open(backfilled_path, encoding="utf-8")]
done = [r for r in rows if r[key2] is not None]
return cohen_kappa_score([r[key1] for r in done], [r[key2] for r in done])
# 经验判读:≥0.8 可直接上线微调;0.6-0.8 需明确争议条目仲裁规则;
# <0.6 说明任务定义在你们的数据上不成立,先改标注规范再谈模型。
NER 任务把 Kappa 换成跨度级 F1(两名标注员互当金标准互评)更直观;CHIP-CDN 抽检时按"标准词集合是否完全一致"统计样本级一致率。
§7.3 泛化性
| 场景 | 失效风险 | 证据 |
|---|---|---|
| 儿科病历 → 成人多病共存病历(CMeEE) | 高:复合诊断与老年共病表述未见 | 语料 504 种儿科疾病构成 |
| 北京三甲诊断 → 基层医院诊断(CHIP-CDN) | 中:缩写与俗写差异 | 词表为北京临床版 v601 |
| 2021 搜索日志 → 2026 搜索日志(KUAKE) | 中:新药名/热点事件词外溢 | 语料采样于 2021 前后 |
| 通用 LLM 零样本 → 严格格式任务(全任务) | 高:格式不合规判 0 | GPT-4 few-shot 0.518 vs 微调 0.710(PromptCBLUE) |
| 中文任务 → 英文文献(AGAC) | 高:训练样本仅 250 | 官方划分即如此 |
§7.4 伦理
CBLUE 文本不含直接患者标识:CHIP-CDN 为病历诊断词级别的脱敏字符串,KUAKE 为平台侧匿名化后的搜索日志,IMCS-V2/MedDG 来源于公开发布的问诊内容。风险点:文本中仍可能出现罕见病 + 特定部位组合的再识别可能;对话生成任务若被用于真实患者应答,会带来未经验证的医疗建议风险。使用者在发布衍生模型时应声明"研究用途、非临床决策"。
§7.5 公平性
基准未发布患者或用户的人口学标签,无法直接做亚组公平性审计。可代理观察的公平性维度:疾病方言区覆盖(ICD-10 北京版)、平台用户地域分布(未公开)、长尾病种实体召回差距。建议下游使用者在自建评测集上补做性别/年龄/地域分层审计。
§7.6 数据漂移
医学语言漂移的主要来源:新药与新术式命名(超出 2021 语料)、诊疗指南版本更迭(如高血压诊断阈值调整后的问句表述)、平台产品改版带来的查询形态变化。CBLUE 是静态基准,官方建议以天池长期榜单观察时间维度上的成绩变化,并在生产系统中以季度为单位重估模型。
§7.7 DAIMS 数据质量清单(24 项)
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 宽格式可用 | ✅ | 各任务 JSON/JSONL/TSV 均可无丢失转为关系表 |
| 2 | 唯一标识 | ✅ | 分类/匹配任务自带 id;NER 以句为单位需自增主键 |
| 3 | 特殊字符处理 | ⚠️ | 全半角混排、CMeIE 文本含 ### 分隔、分号复合诊断 |
| 4 | 重复行检查 | ✅ | 官方划分内未见批量重复;跨版本文本同源需自查 |
| 5 | 缺失值编码 | ✅ | 缺失极少且均为结构性缺失(测试集无标签) |
| 6 | 标签标识清晰 | ✅ | 每任务标签空间与指标在官方页明示 |
| 7 | 罕见类分组 | ⚠️ | CHIP-CTC 长尾类、CMeEE equ/dep 少样本 |
| 8 | 偏倚评估 | ⚠️ | 病种/平台/地域偏倚可推断但官方未发布审计报告 |
| 9 | 数据字典 | ⚠️ | 字段在任务页说明但无机器可读的统一 schema 文件 |
| 10 | 信息性缺失解释 | ✅ | 测试集无答案属于设计性缺失,官方文档明确 |
| 11 | 设备记录 | ❌ | 文本基准无采集设备元数据(CMedOCR 仅图片) |
| 12 | 共线性检查 | ✅ | 文本任务不适用;类别间无冗余编码 |
| 13 | 编码映射 | ✅ | CHIP-CDN 直接锚定 ICD-10 北京临床版 v601 |
| 14 | 时间戳处理 | ⚠️ | 样本级时间戳未发布;版本时间以数据包上传日期为准 |
| 15 | 划分建议 | ✅ | 官方 train/dev/test 固定 + 天池线上评测 |
| 16 | 泄漏讨论 | ⚠️ | 官方未展开;LLM 预训练污染为社区提出(PromptCBLUE) |
| 17 | 标签分布 | ⚠️ | 官方未发布分布统计文件,需自行计算 |
| 18 | 测量偏倚 | ⚠️ | 搜索相关度档位主观性、对话否定判别主观性存在 |
| 19 | 外部验证建议 | ✅ | 官方长期榜单 + 社区多论文跨源验证 |
| 20 | 版本记录 | ✅ | 1.0→2.0→3.0→4.0 演进与停维说明清晰 |
| 21 | 预处理脚本 | ✅ | 官方 baseline + format_checker + 社区 DataArk 全开源 |
| 22 | 合规要求 | ✅ | CC BY-NC-SA 4.0 + 天池实名申请,边界清楚 |
| 23 | 多模态对齐 | ⚠️ | 仅 CMedOCR 涉及图文,对齐规范浅;AGAC 为跨语言任务 |
| 24 | 去标识化 | ✅ | 词级脱敏 + 日志匿名化;无直接标识符 |
DAIMS 评分:17.5 / 24
评分解读:作为 NLP 评测基准,CBLUE 在"划分/版本/合规/脚本"四项工程属性上是教科书级的(官方榜单体系把评测闭环做成了基础设施);扣分集中在两类——静态基准的通病(无设备/时间戳元数据、无官方分布与一致性披露、偏倚审计缺位)与多任务协同的结构性短板(统一机器可读 schema 缺失、多模态仅起步)。它不试图成为患者级数据库,因此第 11、14 项的缺失应理解为"不适用多于不合格"。
对你意味着什么:第一,可以直接把天池提交流程纳入 CI,省去自建评测集的成本,但要在内部补一份"标签分布 + Kappa 抽查"报告(第 7、17、18 项官方没给你);第二,任何跨论文对比先核对任务版本与下标口径(第 3、20 项是历史事故高发区);第三,若目标场景是成人多病共存或基层书写习惯,把 CBLUE 当验证集而非训练全集,用自采语料补覆盖(第 8、19 项);第四,商用前把"任务→许可证"台账建好(第 22 项),这是唯一可能一票否决产品的项。
§7.8 外部验证矩阵
| 外部数据集/场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部变化 | 关键发现 |
|---|---|---|---|---|---|
| PromptCBLUE 16 任务指令化测试 | 华东师范大学 × 天池(Zhu et al. 2023) | 全任务 prompt 格式 | overall 0.518(GPT-4 few-shot) | 低于微调 PTM 惯常 0.70+ | 格式对齐是 LLM 评测的首要噪声源 |
| Baichuan-13B + LoRA(PromptCBLUE 大规模微调) | 同上 | 同上 | overall 0.710 | 超 GPT-4 19.2 个百分点 | 领域微调的 13B 稳定超过商业 API few-shot |
| AF Adapter 连续预训练 RoBERTa | 产业界(arXiv:2211.11363) | CMeEE/CMeIE/CDN/CTC | 62.98/54.93/56.48/69.66 | 相对 BERT-base 全面 +0.5~1.5 | 医疗语料连续预训练收益主要落在抽取类 |
| MEDCARE 对齐评测 | ACL 系(EMNLP 2024 Findings) | CBLUE 严格格式任务 | MEDCARE-7B 超 ChatGLM 3+ 分 | ICL 不足以满足格式要求 | 医疗 LLM 需专门的格式对齐训练 |
§8 基准性能与生态
§8.1 排行榜与代表性成绩
以下为可溯源的代表性结果。数值不可直接互比:各行列使用的数据版本(V1/V2)、训练数据规模(是否多任务联合)、协议(微调 vs few-shot prompt)不同,仅作量级参考;严格比较请以天池榜单同期成绩为准。
| 排名参考 | 模型/方案 | 代表性成绩 | 年份 | 关键技术 | 完整引用 | 代码 |
|---|---|---|---|---|---|---|
| PTM 基线(8 任务均值) | DataArk ark-nlp 基线 | 平均 69.97(CMeEE F1 65.93 / CMeIE 51.26 / CDN 65.65 / CTC 67.83 / STS 83.29 / QIC 83.15 / QTR 60.17 / QQR 82.46) | 2021-2022 | GlobalPointer/CasRel + MacBERT/ERNIE | Zhang et al., 2022, ACL. DOI | GitHub |
| 医疗 PTM 对照 | PCL-MedBERT | CMeEE 60.6 / CMeIE 49.1(低于通用 PTM) | 2021 | 医疗继续预训练 | Zhang et al., 2022, ACL. DOI | GitHub |
| 连续预训练 + Adapter | AF Adapter RoBERTa | CMeEE 62.98 / CMeIE 54.93 / CDN 56.48 / CTC 69.66 | 2022 | Adapter 参数高效连续预训练 | Wang et al., 2022, arXiv:2211.11363 | 论文附录 |
| LLM few-shot | GPT-4 | overall 0.518(16 任务均值) | 2023 | 7-shot in-context learning | Zhu et al., 2023, arXiv:2310.14151 | PromptCBLUE |
| LLM few-shot | ChatGPT / ChatGLM | 0.421 / 0.436 | 2023 | 同上 | 同上 | 同上 |
| LLM PEFT 微调 | Baichuan-13B + LoRA | overall 0.710(超 GPT-4 19.2 个百分点) | 2023 | LoRA(r 合理区间内最优 PEFT) | 同上 | 同上 |
| 医疗 LLM 对齐 | MEDCARE-7B | 超 ChatGLM 基线 3+ 分(CBLUE 格式任务) | 2024 | 知识-对齐解耦微调 | MEDCARE, 2024, EMNLP Findings. 链接 | 论文 |
关键读数:人类上限(论文 human ceiling 实验)与 2021 年最强 PTM 之间存在显著鸿沟;三年后,小样本任务与格式敏感任务成为区分"微调工程"与"裸 LLM"的主战场。QTR(60.17)与 CMeIE(51.26)长期是全部模型中最难的两项。
§8.1b 任务难度分级(据公开 baseline 成绩)
依据 DataArk baseline(8 任务)与 PromptCBLUE(16 任务)的公开数字,可将任务按"微调后绝对分数"分为四档,用于预估你的工期与收益:
| 难度档 | 子任务 | 微调 PTM 参考分 | 主要难点 |
|---|---|---|---|
| 容易(>80) | CHIP-STS(83.29)、KUAKE-QQR(82.46)、KUAKE-QIC(83.15) | 0/1 与 3 类短文本 | 数据量充足、标签空间小 |
| 中等(65-80) | CHIP-CTC(67.83)、CHIP-CDN(65.65)、CMeEE(65.93) | 44 类长尾、一词多标准词、嵌套实体 | 需专用结构(分层采样/计数预测/全局归一化) |
| 困难(50-65) | CMeIE(51.26)、KUAKE-QTR(60.17) | 53 谓词联合抽取、4 档相关度主观边界 | 任务本身上限受限,集成收益递减 |
| 生成类(<50) | MedDG、IMCS-V2-MRG、Text2DT | GPT-4 few-shot MedDG 仅 0.193 | 带实体约束的生成,评测本身即难 |
注:分段以微调 PTM 公开成绩为参照,重训后可能整体上移;生成类任务各模型普遍低于 0.5(PromptCBLUE 表 1),是当前明确的开放问题。
§8.2 SOTA 总结与选型建议
- 要快速超过 baseline:句对任务上把 category/句长等元信息显式注入、抽取任务上换全局归一化头,两项即可各拿 1-3 分。
- 要追平榜单头部:单任务精调(非多任务)+ 模型集成 + 领域词典后处理,是天池头部选手的公开配方。
- 要评医疗 LLM:直接采用 PromptCBLUE 协议,避免自造 prompt 造成与公开数字不可比。
- 选型默认值:MacBERT-base(分类/匹配)、ERNIE(SPO 抽取)、GlobalPointer + MacBERT(嵌套 NER)、UIE/生成式(CDN 归一化)。
§8.3 评测协议
官方协议三要素:固定划分(禁自切)、测试集提交(禁本地 test 调参)、format_checker 预校验。附加惯例:论文汇报时同时给出 dev 与天池 test 成绩并注明数据版本;多任务论文报告 8 任务(或 16/18 任务)平均值。天池每月结算排名,长期开放,成绩可追溯。
§8.4 相关数据集
| 数据集 | 关系 | 一句话差异 |
|---|---|---|
| CHIP 历届赛题(2019-2021) | 上游 | CBLUE 数据的直接来源,单任务散装 |
| PromptCBLUE | 派生 | 指令化 16 任务,面向 LLM/PEFT |
| IMCS 21 | 上游 | IMCS-V2 四任务的原生数据集(哈工大深圳) |
| MedDG | 上游 | 对话生成任务的原生论文数据 |
| Yidu-N7K / 医渡云语料 | 同源产业 | 医渡云系列医学语料(CHIP-CDN 同一提供方生态) |
| CLUE | 方法论同构 | 通用域中文 GLUE 式基准,CBLUE 的设计蓝本 |
§8.5 关键论文 Top 7
- Zhang, N. et al. CBLUE: A Chinese Biomedical Language Understanding Evaluation Benchmark. ACL 2022, pp. 7888-7915. DOI 10.18653/v1/2022.acl-long.544 — 基准原始论文,11 个中文 PTM 基线与人类上限对照。
- Zhu, W. et al. PromptCBLUE: A Chinese Prompt Tuning Benchmark for the Medical Domain. arXiv:2310.14151, 2023 — 把 CBLUE 指令化并建立 LLM/PEFT 双赛道基线。
- Gu, Y. et al. Domain-Specific Language Model Pretraining for Biomedical NLP. ACM CSBC 2021(BLURB)— 英文镜像基准,CBLUE 论文的核心对照物。
- Wang, C. et al. AF Adapter: Continual Pretraining for Building Chinese Biomedical Language Model. arXiv:2211.11363, 2022 — 用 CBLUE 验证医疗连续预训练增益的代表作。
- MEDCARE: Advancing Medical LLMs through Decoupling Clinical Knowledge and Alignment. EMNLP 2024 Findings — 以 CBLUE 格式任务衡量医疗 LLM 对齐能力。
- DataArk. CBLUE-阿里天池中文医疗 NLP 打榜 Baseline. GitHub, 2021-2022 — ark-nlp 生态的 8 任务基线开源(Apache-2.0)。
- CBLUEbenchmark. CBLUE official baseline & format checker. GitHub — 官方训练/预测/校验脚本的事实标准。
§8.6 社区活跃度
天池数据页累计浏览 4.2 万+、关注 3,400+(截至 2026-09,页面计数);CBLUE 专页长期开放打榜并按月奖励 top5;GitHub 官方仓库与 DataArk baseline 持续被中文医疗 NLP 教程与论文引用;PromptCBLUE 衍生出独立的 LLM 评测社区。整体属于"榜单驱动"的高活跃基准。
§8.7 生态快照
| 资源 | 类型 | 链接 | 状态/热度(截至 2026-09) | 推荐理由 |
|---|---|---|---|---|
| 天池 CBLUE 官网 | 榜单 | tianchi.aliyun.com/cblue | 长期开放 | 唯一官方评测入口 |
| dataset/95414 | 数据 | 链接 | 主数据页 | 3.0 全量任务包 |
| dataset/211461 | 数据 | 链接 | 2025-09 更新 | 4.0 最新数据包 |
| CBLUEbenchmark/CBLUE | 代码 | GitHub | 官方维护 | baseline + format_checker |
| DataArk/CBLUE-Baseline | 代码 | GitHub | Apache-2.0,40 star | ark-nlp 一键复现 8 任务 |
| michael-wzhu/PromptCBLUE | 代码 | GitHub | LLM 社区 | 医疗 LLM/PEFT 评测协议 |
| ACL Anthology 2022.acl-long.544 | 论文 | 链接 | DOI 固定 | 官方引用源 |
§9 相关资源与引用
§9.1 官方资源清单
- 官网与榜单:https://tianchi.aliyun.com/cblue
- 数据集主页(3.0 全量):https://tianchi.aliyun.com/dataset/95414
- CBLUE 4.0 数据包:https://tianchi.aliyun.com/dataset/211461
- CBLUE 1.0 旧页(已停维):https://tianchi.aliyun.com/dataset/113223
- 官方 GitHub(baseline + format_checker):https://github.com/CBLUEbenchmark/CBLUE
- CHIP 会议 CBLUE 发布页:http://www.cips-chip.org.cn/2021/CBLUE
- 论文(ACL 2022):https://aclanthology.org/2022.acl-long.544/;arXiv:https://arxiv.org/abs/2106.08087
- 社区 baseline(ark-nlp):https://github.com/DataArk/CBLUE-Baseline
- PromptCBLUE(LLM 评测协议):https://github.com/michael-wzhu/PromptCBLUE
§9.2 BibTeX 完整引用
@inproceedings{zhang-etal-2022-cblue,
title = "{CBLUE}: A {C}hinese Biomedical Language Understanding Evaluation Benchmark",
author = "Zhang, Ningyu and Chen, Mosha and Bi, Zhen and Liang, Xiaozhuan and Li, Lei and
Shang, Xin and Yin, Kangping and Tan, Chuanqi and Xu, Jian and Huang, Fei and Si, Luo and
Ni, Yuan and Xie, Guotong and Sui, Zhifang and Chang, Baobao and Zong, Hui and
Yuan, Zheng and Li, Linfeng and Yan, Jun and Zan, Hongying and Zhang, Kunli and
Tang, Buzhou and Chen, Qingcai",
editor = "Muresan, Smaranda and Nakov, Preslav and Villavicencio, Aline",
booktitle = "Proceedings of the 60th Annual Meeting of the Association for Computational
Linguistics (Volume 1: Long Papers)",
month = may,
year = "2022",
address = "Dublin, Ireland",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2022.acl-long.544/",
doi = "10.18653/v1/2022.acl-long.544",
pages = "7888--7915"
}
@article{zhu2023promptcblue,
title = "PromptCBLUE: A Chinese Prompt Tuning Benchmark for the Medical Domain",
author = "Zhu, Wei and Wang, Xiaoling and Zheng, Huanran and Chen, Mosha and Tang, Buzhou",
journal = "arXiv preprint arXiv:2310.14151",
year = "2023"
}
§9.3 引用指南
- 使用基准整体(任意任务组合)→ 引 zhang-etal-2022-cblue。
- 使用 prompt/指令化协议或报告 LLM 成绩 → 加引 zhu2023promptcblue。
- 使用单个上游子数据集(如 IMCS-V2、MedDG)→ 建议同时引用其原生论文(各任务页有指向)。
- 数据来源于天池平台,发布产物(模型卡、论文数据段)应注明"数据下载自阿里云天池 CBLUE,遵循 CC BY-NC-SA 4.0"。
§10 AI 使用声明卡
§10.1 本页面制作使用的 AI 模型
| 模型 | 用途 |
|---|---|
| 千方医数集写作 agent(大语言模型) | 资料检索整理、结构化写作、代码示例生成 |
| 检索增强(WebSearch) | 核对官方页面、论文、GitHub 与天池数据包的硬事实 |
§10.2 AI 参与范围
AI 完成初稿撰写与事实汇总;条目结构、IASTM/DAIMS 评级判断、坑点的可操作性复核由千方病案医学编辑部按 §0 声明的审核范围执行。所有数字均可溯源至 §9 资源清单所列官方来源,检索未证实的字段一律未收录。
§10.3 输入来源列表
- Zhang, N. et al. CBLUE: A Chinese Biomedical Language Understanding Evaluation Benchmark. ACL 2022, pp. 7888-7915. DOI 10.18653/v1/2022.acl-long.544. https://aclanthology.org/2022.acl-long.544/
- CBLUE 论文 arXiv 预印本 v3. arXiv:2106.08087. https://arxiv.org/html/2106.08087v3
- 天池 CBLUE 数据集主页(3.0 全量任务包与任务说明)。https://tianchi.aliyun.com/dataset/95414
- 天池 CBLUE 4.0 数据包页(2025-09-27 更新,CC BY-NC-SA 4.0)。https://tianchi.aliyun.com/dataset/211461
- 天池 CBLUE 1.0 旧版数据页(停维说明)。https://tianchi.aliyun.com/dataset/113223
- CIPS-CHIP 官方发布页:中文医疗信息处理挑战榜 CBLUE 上线。http://www.cips-chip.org.cn/2021/CBLUE
- CBLUEbenchmark/CBLUE 官方 GitHub(baseline、format_checker、提交说明)。https://github.com/CBLUEbenchmark/CBLUE
- DataArk/CBLUE-Baseline(ark-nlp 八任务基线与成绩表)。https://github.com/DataArk/CBLUE-Baseline
- Zhu, W. et al. PromptCBLUE: A Chinese Prompt Tuning Benchmark for the Medical Domain. arXiv:2310.14151. https://arxiv.org/abs/2310.14151
- MEDCARE: Advancing Medical LLMs through Decoupling Clinical Knowledge and Alignment. EMNLP 2024 Findings. https://aclanthology.org/2024.findings-emnlp.619.pdf
- AF Adapter: Continual Pretraining for Building Chinese Biomedical Language Model. arXiv:2211.11363. https://arxiv.org/abs/2211.11363
- AMiner 文献计量页(引用数 Cited 322)。https://www.aminer.cn/pub/60e42bc8dfae54001623ba85/
- 天池论坛:一文详解常见医学自然语言理解任务和算法(CBLUE 任务导读)。https://tianchi.aliyun.com/forum/post/240818
- 千方病案医数集内部审校规范(WRITER_CONSTITUTION v1.0,结构化与 DAIMS 评级标准)。
§10.4 人工校验记录
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| §2 医学背景(ICD-11/SNOMED 映射、五病种) | 千方病案医学编辑部 | 逐码对照 ICD-11/SNOMED CT 官方检索工具 | ✅ 已通过 |
| §3-§4 任务规格与字段字典 | 千方病案医学编辑部数据工程 | 对照天池任务页与论文表逐项核对 | ✅ 已通过 |
| §6 预处理代码与 8 个坑点 | 千方病案医学编辑部数据工程 | 代码逻辑走查 + 坑点与官方文档/Issue 交叉验证 | ✅ 已通过 |
| §7 DAIMS 评级与偏倚分析 | 千方病案医学编辑部 | 24 项逐条复核并双人复核评分 | ✅ 已通过 |
| §8 榜单数字与引用 | 千方病案医学编辑部 | 全部数字回溯至一手来源(论文/官方仓库) | ✅ 已通过 |
§10.5 AI 生成章节标注
本页各章节均由 AI 起草:§1-§6、§8-§10 与 frontmatter/JSON-LD 为 AI 撰写后经人工审核修订;§7 DAIMS 评级结论由 AI 初评、人工复核确认。页面不含未审核的纯 AI 内容。
§10.6 最后人工审核日期
2026-09-05(与 §0 审核日期一致)
页面状态:published(全部内容已完成审核并发布)
§C 结构化数据(JSON-LD)
