知识增强数据合成激发医疗推理:一种半监督强化学习方法 Eliciting Medical Reasoning with Knowledge-enhanced Data Synthesis: A Semi-Supervised Reinforcement Learning Approach
用医学知识库合成可控分布的推理题并通过半监督RL缓解罕见病数据稀缺。
前置知识
GRPO(Group Relative Policy Optimization)
GRPO 是一种为推理型 LLM 设计的强化学习算法,与 PPO 不同,它不需要单独训练 value/critic 模型,而是对每个问题采样一组 G 个 response,将组内 reward 做归一化(减去组均值 $\mu$ 除以组标准差 $\sigma$)得到组内相对 advantage $\hat{A}_i$,再以 PPO 风格的 clipped objective 最大化这些相对优势。它的优势是训练稳定、显存占用低,已成为 DeepSeek-R1 等模型的核心 RL 阶段算法。
本文的两个训练阶段(self-supervised 和 supervised)都基于 GRPO 优化同一个策略 $\pi_\theta$,理解组内归一化是看懂损失函数 $\mathcal{L}=\sum_i \min(c_i\hat{A}_i, \text{clip}(c_i,1-\epsilon,1+\epsilon)\hat{A}_i)-\beta\text{KL}(\pi_\theta\|\pi_{ref})$ 的关键。
Chain-of-Thought 蒸馏与 self-instruct 数据合成
CoT 蒸馏指用 GPT-4 等大模型为问题生成完整的多步推理过程,再以 SFT 训练小模型模仿。Self-instruct 是更轻量的形式:给定 seed 问题,让 LLM 直接生成新问题(不必写长推理链)。本工作正是 self-instruct 路线的延伸,但额外注入了医学知识。
本文的对比基线 HuatuoGPT-o1、m1、MedReason 都属于「CoT 蒸馏 + RL」范式,缺点是每条样本需调用 GPT-4 消耗 >1300 tokens;MedSSR 只让 GPT-4.1 生成「问题」不生成「推理链」,单样本 token 消耗降到 350 以下,这是效率提升的根源。
罕见病数据稀缺与 representation 偏差
罕见病(rare disease)指发病率极低的疾病(通常 < 1/2000),全球已识别超过 7000 种。在 MedQA 等主流医学 QA 数据集中,78% 是「记忆型」问题(直接回忆知识点),只有 22% 是「推理型」,而其中涉及罕见病的仅 3%。这种长尾分布导致在通用 RL 后罕见病指标提升普遍不到 3%。
这是本文的核心问题动机:Figure 1 揭示 22% 推理题中 3% 才涉及罕见病,本文正是要打破「罕见病提升上限 3%」的瓶颈,最终实现了 +5.93% 的突破。
奖励 hacking 与 self-rewarding collapse
在自监督 RL 中,当 reward 由模型自身通过 online majority voting 给出时,模型会逐渐学会「对所有问题输出相同答案」以最大化 reward,因为多数派的票数本身会被强化,导致 reward 飙升至 1.0 而实际性能崩溃。
本文的 self-supervised 阶段同样依赖 self-labeling,但作者通过把 label 抽离到训练循环之外(offline voting)的方式规避了这一陷阱,Figure 6 的对比是论文里最戏剧性的实验之一。
研究动机
现有的医疗推理 LLM 训练范式普遍采用「CoT 蒸馏 + 强化学习」两步走:先用 GPT-4o 等闭源大模型为每个问题生成平均超过 1300 tokens 的长链式推理过程,再用 SFT 让小模型模仿,最后做 RL 进一步提升。然而这一路线面临两个尖锐问题。第一,推理数据稀缺且长尾:作者在 11 个公开医学 QA 数据集(合计约 20 万题)上做统计,发现 78% 是只需回忆单条知识点的「memorization」题,只有 22% 涉及多步推理,而其中关于罕见病的仅占 3%(Figure 1)。这种分布严重偏向记忆题型,导致模型在真正考察临床推理的少见病题目上能力薄弱。第二,所有现有方法(HuatuoGPT-o1、MedReason、m1-23K、MedPRM、UltraMedical、GRPO 全监督基线)在 Llama-3.1-8B 上的罕见病增益都被卡在 +3% 的上限之下(Figure 2 右),说明单纯堆叠真实数据无法突破这一长尾瓶颈。此外,调用闭源 API 蒸馏 1300+ tokens 推理链的成本极高,难以规模化。
本文的目标是本文旨在以更低成本构建一个既能显著提升罕见病推理能力、又不牺牲通用医疗表现的训练框架。具体目标有三:在不蒸馏长推理链的前提下,把 8B 级开源 LLM 在罕见病测试集上的平均准确率提升至 75% 以上(Qwen 73.40%、Llama 75.19%);在 9 个通用医学基准上同时实现 +3% 量级的提升(Qwen +3.91%、Llama +2.27%);并把单样本的 API token 消耗从 >1300 压缩到 <350,使得大规模数据合成在算力与成本上可持续。
与已有工作不同的是,现有方法的核心局限是把「数据」和「训练范式」绑死:必须借助昂贵的闭源长 CoT 蒸馏才能获得可用的训练信号,一旦去掉这条 pipeline,模型就只能被卡在真实数据的分布里。MedSSR 切入了两个独特的角度。其一是用「知识增强的可控问题合成」替代 CoT 蒸馏:只让 GPT-4.1 生成「问题」而非「整条推理链」,并通过罕见病实体驱动的检索把稀有主题显式注入 prompt,从而能用 <350 tokens 制造大量覆盖罕见病的高质量题目。其二是「半监督 + intrinsic-to-extrinsic」的训练范式:先用 self-supervised RL 在自标注合成数据上激发模型的「内在能力」,再用 supervised RL 在真实标签数据上把它推到「外在能力」边界,作者通过 offline voting 而非 online voting 解决了 self-RL 经典的 reward hacking 退化问题。这两点组合起来,是已有方法(无论 HuatuoGPT-o1 的蒸馏 + RL、MedReason 的 KG+RL,还是 MedS3/MedPRM 的过程奖励模型)都未系统做过的。
核心方法
MedSSR 的核心思路是「让 GPT-4.1 只负责出题,策略模型自己打标,RL 既要在合成题上自学又要在真实题上精修」。直觉上,传统方法相当于「老师写好完整解题步骤、让学生抄」,成本高且学生只能学到老师的字迹;MedSSR 相当于「老师只负责出题、学生自己对答案打标、做完题再做考试题」。技术上分两大模块。第一是 Knowledge-enhanced Data Synthesis:以 MedMCQA、MedQA 等 5 个数据集里的推理型样本作为 seed,对每对种子 $(x_1^s, x_2^s)$ 都掷一次骰子 $\rho\sim\text{Uniform}(0,1)$,当 $\rho<\alpha$ 时从 12,445 个罕见病实体中随机抽一个 $e\in E_{rare}$,用 MedCPT 检索器从 PubMed/Wikipedia/StatPearls/Textbooks 四大医学知识库中取出 top-4 相关文档 $C(e)$,连同种子一起交给 GPT-4.1 合成新问题 $x^{syn}$。$\alpha$ 默认设为 0.25 即可控地把罕见病比例从自然分布的 13% 抬到 25%。第二是 Semi-supervised RL Training:先用策略模型 $\pi_\theta$ 本身对每个 $x^{syn}$ 采样 $G=8$ 个 response,做 offline 多数投票得到伪标签 $y^{majority}$,组成自标注数据集 $D_{syn}$,用 GRPO 在其上做 self-supervised RL;然后在真实带标签的 43K 样本上做 fully-supervised RL 继续训练。这套 intrinsic-to-extrinsic 范式实现了「先用合成数据激发能力、再用真实数据校准能力」的两段递进。
与已有方法的本质区别在于三件事。一是「question-only 合成」:HuatuoGPT-o1、m1 等用 GPT-4o 生成完整 1300+ tokens 的 CoT 再蒸馏,本文只让 GPT-4.1 生成平均 350 tokens 不到的问题,下游完全靠 RL 自学推理;Figure 7 显示这种「只学问题、答案自己拿 RL 跑出来」的方式在 Llama 上对所有 7 类罕见病子任务都优于 HuatuoGPT-o1 的 20K SFT 数据。二是「offline 多数投票」:传统 self-RL 每步都重新投票(online voting),极易触发 reward hacking,Figure 6 显示 300 步内 reward 就飙到 1.0、性能反而骤降;本文把所有伪标签提前算好固化下来,使训练曲线与 ground-truth 监督高度相似并能稳定 1000+ 步(图 8)。三是「可调节的稀有知识注入」:阈值 $\alpha$ 把「罕见病占比」变成一个可解释的超参,结合 12,445 个罕见病条目与 MedCPT 检索,实现了无需新增人工标注就能把罕见病信号显式注入合成数据,从而打破了 Figure 2 中「+3%」的罕见病提升天花板。
方法步骤详情
具体流程可拆为四步。第一步,筛选与构造 seed:从 MedMCQA、MedQA、BioASQ、HeadQA、PubMedQA 中以 prompt F.3 筛出「推理型」样本(22% 子集),再用 GPT-4.1/4o 等配合 prompt F.1/F.2 生成 novel 问题。第二步,问题合成:对每对种子掷 $\rho$,若 $\rho<\alpha$ 则从 $E_{rare}$ 采样实体 $e$,用 MedCPT 编码后与知识库 $P$ 中所有文档 $p$ 做点积相似度 $\text{Sim}(e,p)$ 取 top-4 作为上下文 $C(e)$,把 $C(e)$ 拼到 prompt F.2 里交 GPT-4.1 生成 $x^{syn}=\text{LLM}_{gen}(x_1^s, x_2^s, C(e))$;若 $\rho\geq\alpha$ 则按 prompt F.1 不注入知识。$\alpha=0.25$ 时罕见病占比可由自然 13% 抬到 25%。第三步,自标注:策略模型 $\pi_\theta$ 对每个 $x^{syn}$ 采样 $G=8$ 个 answer $a_i^{syn}=\text{ans}(y_i^{syn})$,offline 多数投票 $y^{majority}=\arg\max_a \sum_{i=1}^G \mathbb{I}[a_i^{syn}=a]$,组成 $D_{syn}=\{(x^{syn}, y^{majority})\}$。第四步,两阶段 RL:阶段 I 在 $D_{syn}$ 上用 GRPO 优化 $J_{self}(\theta)$,reward $r(y^{majority}, y_i^{syn})=\mathbb{I}[\text{ans}(y_i^{syn})=y^{majority}]$,组内 advantage $\hat{A}_i^{syn}=(r-\mu^{syn})/\sigma^{syn}$;阶段 II 在真实 43K 样本 $\mathcal{D}$ 上把 reward 替换为 $r(y,y_i)=\mathbb{I}[\text{ans}(y_i)=y]$ 继续 GRPO。Qwen 用 lr=2e-6、KL 系数 1e-3,Llama 用 lr=3e-7、关 KL 避免塌缩。
技术新颖性
技术新颖性集中在三个层面。第一,问题合成层面把「种子 → 主题 → 检索 → LLM」做成可调比例的 pipeline:把 $\alpha$ 当作稀有度旋钮,把 12,445 个罕见病实体当开放词典,把 MedCPT 当医学领域 encoder,这种「可控分布合成」在医疗领域尚属首次系统化提出。第二,self-labeling 策略层面提出 offline voting 替代 online voting:解耦了 label 生成与策略更新,巧妙地利用了 GRPO 的 group-wise normalization,使伪标签噪声被组内统计自动平滑。第三,训练范式层面首次把「intrinsic-to-extrinsic」两阶段 curriculum 落到医疗 RL:用合成数据先学「能做的事」再在真实数据上学「该做的事」,Table 3 显示相比 one-stage 混合训练(65.10)可拿到 67.03,相比反向两阶段(64.96)也明显更优,说明顺序选择不是随意的——先 self 后 supervised 让模型「先信自己、再被纠正」是必要的设计。综合看,新颖性更多体现在「系统层面的工程化与编排」而非单一数学 trick,但每一步都有具体实验数据(Figure 5/6/7/8、Table 3/12/13)支撑。
实验结果
在 Qwen3-8B-Base 上,MedSSR 把 7 个罕见病子类平均分从 62.48 抬到 73.40,相对 fully-supervised GRPO 基线(67.47)提升 +5.93%,相比最强的医学基线 HuatuoGPT-o1(70.89)也高出 2.5 分(Table 1);在 Llama-3.1-8B-Instruct 上从 68.63 提升到 75.19,相对 GRPO 基线(71.48)提升 +3.70%。9 个通用医学基准(Table 2)上,Qwen 从 63.12 涨到 67.03(+3.91%),Llama 从 61.11 涨到 63.38(+2.27%),且在 9 个数据集上全面超过基线,没有出现「以通用换罕见」的跷跷板。在 4 个 Qwen 规模(1.7B/4B/8B/14B)上(Table 13),罕见病提升稳定在 +10% 左右(10.19/10.14/10.92/10.02),通用任务绝对增益随规模增大从 8.53% 升到 10.50%,证明该方法与模型规模正相关。Figure 4 的稀有比例扫描显示性能在 25% 处达到平衡,50% 时双侧都下降;Figure 5 把 25% 与 13%(自然分布)做差分,量化了「注入罕见病知识」在 7 个子类上带来平均 +2.29 的罕见病收益、-0.21 的通用损失,证明「可调节的注入」真正有效。Table 12 的等成本对比很关键:把全监督基线扩到 86K 真实数据只多拿 1.12%,而 MedSSR 用 43K 合成 + 43K 真实同样预算下能拿 +3.91%,说明多出来的不是「更多数据」而是「更高质量、推理针对性强」的数据。Figure 6/8 的消融最直观:online voting 300 步就 reward 爆炸而性能崩溃,offline voting 跑 1000+ 步仍稳定上升,曲线和 ground-truth 监督几乎重合。Figure 7 显示 Qwen 在 7 个罕见病子类上全面超越 HuatuoGPT-o1 的 SFT。最后 Table 4/5/6 的人类医生评估(8 位医生共评 500 题)给出 0.50% 错误率、4.80/5.0 的临床可信度评分,证明合成数据在临床安全上几乎无瑕疵。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| RareDis-Sub 罕见病(Qwen3-8B) | 平均准确率 | 73.40 | 67.47(GRPO 全监督) | +5.93% |
| RareDis-Sub 罕见病(Llama-3.1-8B) | 平均准确率 | 75.19 | 71.48(GRPO 全监督) | +3.70% |
| MedQA(Qwen3-8B) | 准确率 | 81.14 | 74.98(GRPO) | +6.16% |
| Medbullets(Qwen3-8B) | 准确率 | 63.47 | 55.11(GRPO) | +8.36% |
| MedXpertqa(Qwen3-8B) | 准确率 | 20.66 | 17.40(GRPO) | +3.26% |
| 9 个通用医学基准平均(Qwen) | 平均准确率 | 67.03 | 63.12(GRPO) | +3.91% |
| 9 个通用医学基准平均(Llama) | 平均准确率 | 63.38 | 61.11(GRPO) | +2.27% |
| 罕见病处理分类(Symptoms, Qwen) | 准确率 | 79.71 | 73.24(GRPO) | +6.47% |
| 罕见病相关疾病(Related Disorders, Qwen) | 准确率 | 76.64 | 70.39(GRPO) | +6.25% |
| 罕见病治疗(Treatment, Llama) | 准确率 | 59.79 | 54.55(GRPO) | +5.24% |
局限与改进
作者在 Limitations 段明确点出两大局限。其一是算力限制下未能在更大模型(如 32B、70B)上验证,实验最大只到 14B,理由是「核心方法论(合成 + 半监督)会随容量扩展,预期增益更大」,但严格说这是未经证实的假设。其二是合成数据未做「全量专家验证」,虽然 8 位医生评估 500 题的 0.80% 错误率与 4.85/5.0 可信度都很好,但 500 远小于实际训练 43K 的规模。Table 17 的失败案例分析也诚实承认:自监督伪标签的失败模式是「系统性的知识错误」而非随机猜测——模型对腕管综合征误判为颈椎病,因为基模型错误地认为「thenar 萎缩不属于腕管综合征」,导致 8/8 投票全错,这种内部一致但事实错误的回答在 majority voting 下会被进一步放大。我的额外观察是:方法对 GPT-4.1 出题质量有强依赖,论文没有充分分析 prompt 改动或换用开源出题器(如 Qwen-72B)的稳定性;另外 offline voting 一旦定下就不再随模型更新,可能在阶段 II 微调后引入「自我校准」机会错失;Llama 必须关 KL 才能训练(Table 8),说明两套超参的迁移性是隐患;最后,MedSSR 的 25% 阈值是经验最优,但作者没有给出在更复杂的多类稀缺长尾(如按子系统分)下的扩展性论证。
独立分析的弱点
独立分析可识别的弱点有以下几项。第一,稀有度旋钮 $\alpha=0.25$ 是经验最优,但 13%/25%/33% 之间的差异在某些子类上小于 1%(如 Table 11 的 MMLU 从 87.21 掉到 86.64),说明该参数对分布很敏感,部署到不同医院或语种时需要重新扫描,建议改进方向是把 $\alpha$ 改成「按真实验证集反馈的在线调节器」或换成多目标 Pareto 优化。第二,self-supervised 阶段严重依赖基模型的初始能力——若基模型在罕见病上的 prior 极弱(比如 1.7B 仅有 37.84),多数投票的伪标签噪声会显著放大,Table 13 显示 1.7B 的 Symptoms 子类虽然 +12.36% 但绝对值只有 49.71,说明「先自后监」只能部分弥补基模型盲区,改进方向是给基模型一个罕见病微调的 warm start 或在 self-labeling 时加入外部知识约束。第三,offline voting 一次性固化伪标签后无法随训练演化,理论上会偏离阶段 II 之后的最优决策面,可改进为周期性重新投票(每隔 N 步重抽)并对伪标签加置信度加权。第四,方法对 GPT-4.1 作为出题器有强依赖,没有 ablate prompt 稳定性或不同出题器对结果的影响,改进方向是加入开源替代品的横向对比,或对 prompt 做对抗扰动测试。第五,5 个 seed 数据集 + 1 个 GPT-4.1 出题器 + 1 个策略模型 + 1 个 MedCPT 检索器的整条 pipeline 失败模式传播链较长,端到端的可调试性较差,需要更细粒度的中间监控指标。
未来方向
作者明确提到的未来方向是「把 MedSSR 扩到 >14B 模型上验证可扩展性」以及「做全量医学专家验证」。基于成果可延伸的研究还包括:把 $\alpha$ 做成多维向量,按疾病器官系统、年龄分布、人群等同时控制多个长尾;将 self-labeling 扩展为「检索增强的 self-consistency」(对每题采样不同检索上下文再投票);把 offline voting 与 RLAIF 风格的偏好对齐结合,用 DPO 替代阶段 II 的 GRPO;用 MedSSR 训练出的中间 checkpoint 做测试时 RL(TTRL)以进一步挖掘能力;以及把该框架迁移到其它长尾医学场景(儿科、热带病、精神病)。另一个有意思的方向是探究 MedSSR 学到的「self-distilled knowledge」是否可被 extraction 出新的罕见病知识图谱,反哺合成 pipeline。
复现评估
复现评估整体友好但有一定门槛。代码已开源在 https://github.com/tdlhl/MedSSR,论文附录给出了完整的 prompt(F.1-F.4)、超参表(Table 8:Qwen lr=2e-6、KL=1e-3、Llama lr=3e-7、关 KL,rollouts=8、max_response_len=4096、top-k 检索=4)、数据统计(Table 7:194,496 训练样本、9,977 测试样本、2,122 罕见病)、4 轮平均的协议。训练框架基于 VeRL(HybridFlow),评估用 vLLM + logit bias 二次解码。算力上,Qwen3-8B 的 GRPO 训练是主要开销,根据 VeRL 典型设置 8 卡 A100 80G 跑完全部 1+2 阶段需要 2-4 天级别;Llama 收敛更慢且需要谨慎调 KL;GPT-4.1 合成 43K 题的 API 成本按 350 token × $0.01/1k 估算约 $150-300 区间,比 HuatuoGPT-o1 的 20K CoT 蒸馏(约 $5k 量级)便宜一个数量级。数据集全部公开(MedMCQA、MedQA、BioASQ、PubMedQA、HeadQA、ReDis-QA、MedXpertqa、Medbullets、NEJM、Lancet、MMLU-Med)。难点在于:12,445 个罕见病实体列表需要从 Orphanet/OMIM/NORD/中国罕见病手册自己爬合并;MedCPT 的 embedding 需自部署;以及复现 Llama 上关 KL 后的「稳定 1000 步」对随机种子敏感。
论文图表
饼图把主流医学 QA 数据集按题型分两类:memorization 占 78%(151,767 题)、reasoning 占 22%(42,729 题);reasoning 内部又分常见病 19%、罕见病 3%。右上的例子用 ADNP syndrome、Worster-Drought、Dracunculiasis 等罕见病和一道新生儿主动脉缩窄(应选 Prostaglandin E1)示意。
这是论文动机的核心证据——22% 推理题中只有 3% 涉及罕见病,直接解释了为什么在真实数据上做 RL 时罕见病提升会被卡死。
左图用流程对比 distillation-based(GPT-4 出 CoT → SFT → RL)与 MedSSR(GPT-4.1 出题 → policy self-label → 两阶段 RL),突出「Avg Token/Sample 1300+ vs <350」。右图用柱状对比 Llama-3.1-8B 在 Base、SFT、RL、SS-RL、MedSSR 上的罕见病 / 常见病提升量,标出「+3% upper bound」红线。
把方法学差异(成本)和效果差异(罕见病上限)放在同一页,是摘要之后读者建立直觉的关键图。