医学大模型的训练路径:从通用模型到医疗专家,需要多少领域数据?

有一个问题困扰了我很久:要让通用大模型变成医学专家,到底要给它塞多少医学数据?十万篇论文?一百万份病历?还是把整个 PubMed 都喂进去?

AI technology illustration

我最早以为答案是“越多越好”,直到我对比了不同医学大模型的训练数据量,才发现“多”只是答案的一半。另一半是:你选择在哪个训练阶段喂。

先说两个拉大反差的事实:PubMedBERT 在超过 2000 万篇 PubMed 摘要上继续预训练,才把 BERT 变成生物医学专用模型;而 ChatDoctor 只用了数万条医生对话微调,就让 LLaMA 能够和病人进行简单的问诊。同样是“医学模型”,数据量差了三个数量级。差别这么大,不是因为谁对谁错,而是因为它们走的是完全不同的训练路径。

在往下拆之前,你需要先接受一个反直觉的设定:通用模型并不是“不懂医学”,它只是“不会用医学知识”。GPT-4 在美国执业医师资格模拟考试中能取得高分,靠的不是专门的医学训练,而是它爬取了互联网上大量医学相关文本——医学知识早已以参数形式存在,只是淹埋在泛化能力里。所谓“医学大模型”,不是从零学医,而是让已有的知识“聚焦”到医学场景。

阶段一:继续预训练——用千万级语料给模型“泡澡”

继续预训练,也叫领域自适应预训练。做法很简单:在通用模型的基础上,用领域语料继续执行“下一词预测”任务。看起来和原来的预训练没什么区别,但数据分布从“整个互联网”缩窄到了“医学文本”。

PubMedBERT 的例子最能说明问题。它在 2000 万篇 PubMed 摘要上继续训练,模型对生物医学词汇的表示能力显著强于原始 BERT。BioGPT 也是同样思路,在超过 1500 万篇医学文献上训练后,可以生成流畅的医学句子。

这一步为什么需要这么多数据?因为模型在“重新校准”它的词表语义。比如“expression”这个词,在通用语料里可能指“表达”,但在医学语料里多指“表达量”。只有看到足够多上下文,模型才能把这类语义迁移过来。所以,继续预训练的数据量级通常是:百万到千万篇。

但注意:继续预训练不等于“会回答医学问题”。你拿一个刚泡完澡的模型去问“头痛怎么办”,它大概率会给你续写一篇关于头痛的论文,而不是告诉你该不该吃药。

阶段二:指令微调——用几万条问答教会模型“回答问题”

指令微调解决的就是“会写论文不会答题”的问题。你将任务转换成指令和回答的形式,让模型学习如何从“询问-回答”的角度输出。

这个阶段的数据需求小得多,通常只需要数万条高质量问答对。原因是:模型已经具备医学知识,指令微调只是给知识装上“调用接口”。它学的是行为模式,而不是知识本身。

我最初不理解这一点。做医学问答时,模型经常胡说八道,我第一反应是“数据不够”,于是打算搜集更多资料去补。后来看了 Med-PaLM 的技术报告,才想通:模型缺的不是知识,而是“在医学语境下谨慎作答”的行为。指令微调的本质,就是把你期望的行为写进训练数据里。

所以,指令微调的数据量级是:万到十万条。但有一个前提:这些数据要覆盖你关心的任务分布。如果你想让它看懂化验单,就要给化验单问答的样本;如果想让它写病历,就要给病历生成的样本。

有一个经常被忽视的细节:指令微调的数据“质量”比“数量”重要得多。有实践发现,用 1000 条经过医生逐字审核的问答微调,效果可能比 5 万条从网络爬虫自动生成的问答更好。因为后者带着大量噪音和错误,模型学会的是“流畅地错”。这一点,我在自己微调医疗模型时体会很深。

阶段三:偏好对齐——用几千条比较数据让模型“不任性”

指令微调能保证模型“回答”,但无法保证“回答得靠谱”。医学场景尤其危险:模型一本正经地给出一个错误的服药建议,比它直接说“不知道”更糟。偏好对齐(RLHF)就是用来压制这种风险的。

这一阶段的数据不再是人写答案,而是人对多个模型回答进行偏好排序:“这句回答更专业、更安全、更像一个严谨的医生”。模型的目标变成“尽量选择人类偏好的那一种回答方式”。

偏好数据量级继续下降,通常是千到万条。因为模型已经知道什么是对错,对齐只是把“人类更信任的风格”灌输进去。GPT-3 完成预训练后,用几千到几万条人类比较数据就能显著提升可信度,医学模型也是一样。

这里有一个容易踩的坑:很多人把偏好对齐当作“修错”,希望它能消除幻觉。实际上,RLHF 无法让模型知道它不知道的知识,它只能减少“乱答”的行为。知识盲区依然存在,这是模型的参数容量和训练语料决定的。

一张表看清三个阶段的“数据胃口”

训练阶段 数据量级 数据形式 让模型学到什么 典型代表
继续预训练 百万 ~ 千万篇 医学论文、病历、教科书 医学词汇和文本背后的事实 PubMedBERT、BioGPT
指令微调 万 ~ 十万条 医学问答对、对话记录 用医生口吻回答问题 Med-Alpaca、ChatDoctor
偏好对齐 千 ~ 万条 人类偏好比较 不胡说、不越界、更可信 RLHF 范式下的医学模型

注意,三个阶段不是“必须全做”。如果你的任务只是“文献检索”,继续预训练就够了。如果你要做“临床辅助决策”,三个都跑不掉。

关于医学数据数量的三个常见误解

  • 误解一:数据越多越好。真正的瓶颈是数据覆盖度和标注一致性。几万条覆盖常见病的高质量问答,胜过几百万条重复的科普文章。
  • 误解二:只要有医学语料就行。没有指令微调,模型只会续写不会回答;没有对齐,它可能自信地犯大错。
  • 误解三:领域数据能弥补基座模型的能力。如果通用模型本身推理能力薄弱,喂再多病历也只能得到一个“会掉书袋”的弱者。

那到底需要多少数据?先问自己三个问题

第一个问题:你的任务离语言有多远?如果只是读懂病历、抽取信息,继续预训练或轻量微调即可,千万级到百万级语料就够。如果是生成诊断建议,需要指令微调+对齐,万级指令和千级偏好必不可少。

第二个问题:你的基座模型已经掌握了多少医学知识?LLaMA 这类通用模型在医学问答上已有一定基础,你需要的是激活能力;如果你的基座模型是自己从零训练的,那数据需求要翻一个数量级。

第三个问题:你的容错率有多高?面向医生的辅助工具,可以接受模型偶尔不懂;面向患者的问答系统,需要更高比例的安全边界数据,这会让偏好对齐的数据量显著增加。

用基准测试当“数据体温表”

实际操作中,没人能提前知道“够不够”。我的建议是:先准备一个基准测试集,比如 MedQA 或 MMLU 的医学子集,然后分轮次加数据。每轮把新数据参与训练,再看基准分数是否提升。如果分数不再动了,说明当前数据形态已经到瓶颈,这时候需要换新数据形态,而不是继续堆量。医学大模型的下一个突破,大概率不是来自更大的数据集,而是来自更聪明的数据选择,以及对模型不确定性的建模。后者,才是真正的临床门槛。

原创文章,作者:guanweilu,如若转载,请注明出处:https://guanweilu.cn/article/2338.html

赞 (0)
上一篇 21小时前
下一篇 21小时前

相关推荐