2600 万条医疗问答,超第二名两个数量级:华佗 Huatuo-26M 怎么炼成的

2600 万条医疗问答,超第二名两个数量级:华佗 Huatuo-26M 怎么炼成的

医疗是 AI 落地最有价值、也最困难的领域之一。而医疗 AI 最大的瓶颈,往往不是模型,而是数据——医疗知识专业性强、安全敏感、且通用语料(Wikipedia、Common Crawl)根本覆盖不到。Huatuo-26M 就是为了填补这个空白而生的一份数据:它把中文医疗问答数据的规模,从「几万条」直接推到了「2600 万条」,比此前最大的中文医疗 QA 数据集高了整整两个数量级,并以 Apache 2.0 开源。

数据集速览卡

项目内容
数据集名称Huatuo-26M
发布机构香港中文大学(深圳)、深圳大数据研究院、北京智源研究院等
发布时间2023 年 5 月(arXiv:2305.01526)
规模超过 2600 万条中文医疗问答对
许可证Apache 2.0
用途定位中文医疗问答、检索、RAG、医疗模型继续预训练

背景:医疗 AI 的「数据荒漠」

要理解 Huatuo-26M 的价值,得先理解医疗 AI 面对的那个根本困境。

预训练语言模型(PLM)在通用 NLP 上已经取得巨大成功,但医疗领域需要的是「专业化的、高质量的」知识,而通用数据集(Wikipedia、Common Crawl)并不完全覆盖这些知识。对于全球 14 亿中文使用者来说,这个问题更严重——中文的医疗资源,本来就比英文的更难获取。

在 Huatuo-26M 出现之前,已有的中文医疗 QA 数据集规模都很小,大约在 2500 条到 10.8 万条之间(比如 cMedQA2、webMedQA)。这个量级,对于训练一个「真正能用的」医疗模型来说,远远不够。Huatuo-26M 的目标,就是「提供医疗领域所需的规模」——把数据量推到一个足以支撑严肃研究和应用的水平。

数据构成与规模

Huatuo-26M 的 2600 多万条数据,是通过三条互补的路径采集的:

  • 在线问诊记录(huatuo_consultation_qa):这是占比最大的部分——超过 2500 万条来自医疗问诊网站的真实问答对。这部分数据最贴近「真实的患者提问 + 医生回答」。
  • 医学百科(huatuo_encyclopedia_qa):从中文 Wikipedia 和健康类网站的结构化信息,通过人工模板转换成问答对。
  • 医学知识图谱(huatuo_knowledge_graph_qa):把三个中文医疗知识图谱(CPubMed-KG、39Health-KG、Xywy-KG)里的三元组,用 43 种不同的问题模板转换成问答对。

这三条路径的互补性很巧妙:问诊记录提供「真实的、口语化的患者提问」;百科提供「结构化的医学知识」;知识图谱提供「可推理的实体关系」。合起来,数据既「接地气」又「有知识深度」。

每条问答对包含两个核心字段:question(问题描述)和 answer(医生/专家的回答)。此外还有一个由多来源随机采样组成的测试集(huatuo26M-testdatasets,约 6000 条)。

一个需要特别说明的细节是:由于某些原因,占比最大的「在线问诊记录」部分,目前只公开了 URL 形式(而非文本形式)。也就是说,你可以拿到这些问答的「链接」,但实际的文本内容需要你自己去对应网站抓取。这对使用者来说是一个实际的门槛。

清洗与构建方法

Huatuo-26M 的构建方法,最有价值的是它揭示的一个「语义桥梁」现象。

数据集刻意捕捉了「口语化、症状导向的患者提问」到「专业的医学回答」之间的转换——这正是医疗 AI 最难、也最有价值的场景:患者不会用专业术语,他们说的是「我最近老觉得头晕、胸口闷」,而医生回答的是「建议检查血压、心电图,排除……」。这种「从俗语到术语」的映射,是 Huatuo-26M 数据里最珍贵的部分。

在构建上,百科和知识图谱部分用了「模板化转换」——把结构化的医学信息,通过人工设计的模板,批量转成问答对。知识图谱部分用了 43 种问题模板,把「实体-关系-实体」的三元组变成自然语言问答。这种「模板化」虽然不如人工逐条标注精细,但能低成本地规模化,这正是它能做到 2600 万条的关键。

在评测上,团队用检索和生成两类模型做了基准测试,得出一个很能说明问题的结论:检索在这个规模下极其困难。用 2600 万条作为候选,即使是密集检索模型 DPR,召回率也低得可怜(Recall@5 只有约 6.79%)。这说明「医疗搜索空间」的复杂度,远高于通用网页搜索——患者在问「头晕」时,背后可能是上百种不同的疾病和情境。

下载与使用

Huatuo-26M 在 Hugging Face 上以 FreedomIntelligence/huatuo_* 系列发布,加载方式:

from datasets import load_dataset

# 知识图谱部分
kg = load_dataset("FreedomIntelligence/huatuo_knowledge_graph_qa")
# 百科部分
ency = load_dataset("FreedomIntelligence/huatuo_encyclopedia_qa")
# 问诊记录部分(仅 URL)
cons = load_dataset("FreedomIntelligence/huatuo_consultation_qa")
# 测试集(约 6000 条)
test = load_dataset("FreedomIntelligence/huatuo26M-testdatasets")

数据的主要用途有三类:一是训练医疗问答/生成模型;二是作为「检索增强生成」(RAG)的外部知识库——论文证明了 Huatuo-26M 作为 RAG 知识库对提升回答质量有效;三是作为「继续预训练」的语料——用这些问答对继续预训练,能提升现有模型在中文医疗任务上的表现(论文里 RoBERTa-base 继续预训练后,CBLUE 基准平均分从 69.3 提升到 70.1)。

许可证与商用注意

Huatuo-26M 采用 Apache 2.0 许可证,这是一个对商用相当友好的协议——允许自由使用、修改、分发,且可以商用。

但医疗数据的「商用注意」远不止许可证这么简单。最大的问题是安全:2600 万条数据无法逐条人工验证,其中可能存在错误的、过时的、甚至有害的医学信息。而且医学知识是动态的——今天正确的治疗方案,明天可能就过时了。更关键的是,生成式医疗问答用于临床部署时,如果没有「人工在环」(human-in-the-loop)的验证,误导性的 AI 建议可能带来严重的健康后果。所以,Huatuo-26M 适合「研究、辅助、RAG」,但绝不适合「直接当成医疗诊断的最终依据」。

横向对比同类数据集

把 Huatuo-26M 和同赛道的医疗数据集对比,能更清楚它的位置。

cMedQA2 / webMedQA(此前的最大中文医疗 QA)比,Huatuo-26M 的规模是它们的两个数量级以上——这是一个「量级」的跃迁,而非「增量」。和 MedQA / MedMCQA(英文医疗评测基准)比,那些是「评测基准」(用于打分),而 Huatuo-26M 是「训练语料」(用于训练/检索)——用途不同。和 Huatuo-Lite(它自己的精炼版)比,Huatuo-Lite 是对 Huatuo-26M 做了「多轮净化和重写」的优化版,数据维度更多、质量更高,适合「追求质量而非规模」的场景。

一个可以提炼的规律是:中文医疗数据的「规模瓶颈」被 Huatuo-26M 打破了,但「质量瓶颈」和「安全瓶颈」仍然存在——这正是后续工作(如 Huatuo-Lite、以及各种医疗 LLM)要解决的。

局限与争议

Huatuo-26M 的局限,集中在三个「医疗数据特有的」问题上。

第一是质量无法保证。2600 万条数据无法逐条人工验证,其中可能混入错误或不准确的医学信息。这对医疗场景尤其危险——一个错误的心电图解读建议,后果可能很严重。

第二是知识时效性。医学知识更新很快,静态数据集天然存在「过时」的风险。用 Huatuo-26M 训练出的模型,可能「不知道」最新的诊疗指南。

第三是临床部署的安全鸿沟。论文自己也强调,生成式医疗问答在没有人工在环验证的情况下用于临床,是有风险的。这份数据的正确定位是「研究和辅助」,而非「替代医生」。

三条采集路径,藏着「领域数据怎么造」的方法论

Huatuo-26M 最有价值的,不只是「它有多少数据」,而是它那「三条采集路径」背后体现的「领域数据构建方法论」。对任何想「自建垂直领域数据」的团队,这套方法论都有直接的参考价值。

第一条路径是「真实问诊记录」——占比最大,超过 2500 万条。它的价值在于「真实性」:这些是真实的患者提问 + 医生回答,天然包含了「口语化的症状描述 → 专业化的医学解释」这个转换。但它的代价也很明显:真实问诊数据里,充斥着口语、错别字、模糊表述、甚至误导性的信息,清洗和利用的难度不低。这条路径的启示是:「真实数据」最有价值,但也最「脏」,需要付出最多的清洗成本。

第二条路径是「医学百科」——从 Wikipedia 和健康网站的结构化信息,通过模板转成问答对。它的价值在于「知识准确性」:百科的内容相对权威、结构化,转成的问答对「知识密度」高。这条路径的启示是:「结构化知识」可以低成本地转成「训练数据」,前提是有好的模板设计。

第三条路径是「知识图谱」——把 CPubMed-KG、39Health-KG、Xywy-KG 三个中文医疗知识图谱的三元组,用 43 种问题模板转成问答对。这条路径最巧妙:知识图谱里的「实体-关系-实体」三元组(比如「阿司匹林 – 治疗 – 头痛」),是「可推理」的结构化知识,用模板转成「阿司匹林能治什么?」「什么能治头痛?」这类问答,就得到了「可推理」的训练数据。这条路径的启示是:「知识图谱」是「领域数据」的一座金矿,用模板化转换可以高效开采。

把三条路径合起来,能看到一个清晰的「领域数据构建」方法论:「真实数据」提供「接地气」,「结构化知识」(百科+图谱)提供「知识深度」,两者互补。Huatuo-26M 之所以能做到 2600 万条,正是因为它把这三条路径「并联」起来,各自发挥所长。这个「多路径并联」的思路,是「领域数据」从「小作坊」走向「大规模」的关键。

「26 万候选下召回率只有 6.79%」:一个被低估的残酷现实

Huatuo-26M 的论文里,有一个数字特别值得单独拿出来说,因为它揭示了一个很多「做医疗 AI」的人会低估的残酷现实。

这个数字是:在 Huatuo-26M 的检索基准测试里,用 2600 万条作为候选,即使是密集检索模型 DPR,Recall@5 也只有约 6.79%。这意味着什么?意味着「在 2600 万条医疗问答里,找到和当前问题最相关的那 5 条」,正确率只有不到 7%——绝大多数的「相关问答」,检索模型根本找不到。

这个「低得惊人」的召回率,说明了一个医疗领域特有的难题:医疗检索的「语义空间」,远比通用网页检索复杂。一个患者说「我头晕」,背后可能是低血糖、高血压、贫血、耳石症、颈椎病……上百种不同的疾病和情境。同一个「症状词」,对应着海量的、差异巨大的「正确答案」。这种「一对多」的语义映射,让「找到真正相关的知识」这件事,比在通用网页里「找到相关的网页」难得多。

这个现实,对「医疗 RAG」(检索增强生成)的从业者是一个重要提醒:别以为「堆一个大规模医疗知识库 + 一个通用检索器」就能解决医疗问答。医疗检索的「低召回」,意味着你的 RAG 系统很可能「找不到该找的知识」,从而让生成部分「无米下锅」或「用错米」。解决这个问题,需要医疗领域特定的检索技术——比如「症状归一化」(把「头晕」映射到标准医学术语)、「疾病候选生成」(先猜可能的疾病,再检索)、「多跳检索」(症状 → 检查 → 疾病的分步检索)等。

这个数字也反过来解释了为什么「医疗大模型」那么难做:它不只是「生成」难,连「检索」这个前置环节都很难。Huatuo-26M 的价值之一,恰恰在于它用「规模」把这个「检索难题」暴露了出来——有了 2600 万条的规模,你才能看到「召回率 6.79%」这个残酷现实;如果只有几万条,这个难题根本「显现不出来」。

医疗数据的「安全红线」:为什么它不能随便用

Huatuo-26M 虽然是 Apache 2.0 开源、可商用,但「医疗数据」这个品类,有一条比其他领域都更「硬」的安全红线,值得单独讲清楚。

这条红线的核心是:医疗 AI 的错误,代价可能是健康甚至生命。一个通用的对话模型「胡编」一个答案,最多是「不靠谱」;但一个医疗模型「胡编」一个用药建议或诊断结论,可能导致患者「误诊误治」。这个「代价的不对称」,让医疗数据的「质量」和「安全」要求,比任何领域都高。

具体到 Huatuo-26M,有几个「安全」层面的问题必须清醒认识:第一,2600 万条数据无法逐条人工验证,其中必然存在「错误、过时、甚至有害」的医学信息——比如过时的用药建议、错误的疾病对应关系。第二,医学知识是「动态」的,静态数据集天然存在「过时」风险——今天正确的方案,明天可能被新指南推翻。第三,「生成式医疗问答」用于临床部署时,如果没有「人工在环」的验证,误导性的建议可能造成实际伤害。

所以,Huatuo-26M 的正确定位,是「研究、辅助、RAG 的知识源」,而不是「医疗诊断的最终依据」。论文作者自己也明确强调了这个边界。对使用者来说,这意味着:你可以用它训练模型、做检索增强、做医学 NLP 研究,但绝不应该让「直接用 Huatuo-26M 训练出的模型」去「替代医生」做诊断。

这个「安全红线」的启示,其实超出了医疗领域:任何「高风险领域」(医疗、法律、金融)的数据,其「开源可商用」的许可证,都不等于「可以无脑用于高风险决策」。许可证管的是「能不能用」,而「安全」管的是「敢不敢用」,两者是完全不同的两个维度。做高风险领域的数据和模型,必须把「安全」当作一个独立的、前置的考量,而不是「事后补的合规动作」。

Huatuo-26M 之后:中文医疗大模型的一条清晰脉络

Huatuo-26M 的价值,还可以从「它之后发生了什么」这个角度来印证——它实际上是「中文医疗大模型」这条脉络的一个关键起点。

Huatuo-26M 发布之后,中文医疗大模型领域迎来了一波「爆发」。基于 Huatuo-26M 的「规模」和「开源」,后续涌现出了一批中文医疗大模型——这些模型大多以 Huatuo-26M(或其精炼版 Huatuo-Lite)作为核心训练语料,在此基础上做继续预训练或微调。也就是说,Huatuo-26M 不仅是一份「数据」,更是一块「地基」——它把「中文医疗数据的规模瓶颈」打破了,让「训练一个像样的中文医疗大模型」从「不可能」变成了「可能」。

团队后来还推出了 Huatuo-Lite,这是 Huatuo-26M 的一个「精炼和优化」版本——经过多轮净化和重写,数据维度更多、质量更高。这个「从规模到质量」的迭代,本身就说明了一个规律:领域数据的发展,往往是「先解决规模、再解决质量」——先用规模打开局面,再用质量收敛价值。Huatuo-26M 解决了「有没有」,Huatuo-Lite 在解决「好不好」。

这条脉络给「领域数据」建设者的启示很实在:「规模」是「入场券」,「质量」是「护城河」。先用一个「够大」的数据集,把这个领域「撬开」(让研究者有东西可用、让模型有数据可训);再在这个基础上,投入精力做「质量优化」,建立起真正的竞争优势。Huatuo-26M 走完了前半程,它的后续(Huatuo-Lite、以及各种医疗大模型)在走后半程。

参考来源

  • Li et al.《Huatuo-26M, a Large-scale Chinese Medical QA Dataset》(arXiv:2305.01526)
  • GitHub:FreedomIntelligence/Huatuo-26M
  • Hugging Face:FreedomIntelligence/huatuo_knowledge_graph_qa 等系列
  • OpenDataLab:Huatuo-26M
主要菜单