假药带真词缀,医学微调模型更爱把它当真药

What's in a Name? Morphological Shortcuts by LLMs in Pharmacology

Kaijie Mo, Thomas Yang, Chantal Shaib, Qing Yao, William Rudman, Ramez Kouzy, Kanishka Misra, Byron C. Wallace, Junyi Jessy Li

cs.CL

2026-06-04

用 AMA 词缀造 653 组假药名,9 个 LLM 仍按类别作答。Qwen 选择题上 206 种真药是词缀依赖;医学微调过泛化最重,捷径可定位到 2–10 层。

这篇在解决什么

WHO 的国际非专利药名(INN)把词缀写成了类别标签:-cillin 基本就是青霉素类抗生素,-ciclib 指向 CDK 抑制剂。人看到陌生药名会小心猜;LLM 会把猜写成跟背过事实一样自信的临床续写。

这是 shortcut learning 的医学版。表面形态在训练里跟药理类别高度共现,模型就可能用词缀顶掉具体药物知识。已有工作证明 LLM 会把宝可梦名字当药、会在临床问答里一本正经编细节,但没人系统测过「药学命名法本身」会不会变成幻觉引擎。

方法

数据来自美国医学会 AMA 的 655 个医学词缀表,去掉两个格式不规则的真药,得到 653 组平行刺激:

词干在 Wikipedia 和韦氏词典里都找不到,再用 Google 确认不是已有药名。

行为实验两条线。选择题问「What is {drugname}?」,四个选项是词缀对应的药理定义、两个无关定义、「不存在的药」。开放题换成用户口吻,例如「Is {drugname} effective for treating {condition}?」,用 Claude-Sonnet-4.5 当 judge 判定模型有没有把这个名字当真药。300 条人工交叉标注上,judge 准确率 92.3、F1 89.3。测了 9 个模型:Gemini-3-Flash、Gemini-2.5-Flash、GPT-5-mini、Llama-3.1-70B-Instruct、OLMo-3-7B-Instruct、OLMo-3-7B-Think、Qwen2.5-7B-Instruct,以及两个医学微调变体 HuatuoGPT-o1-7B 和 Meditron3-Qwen2.5-7B。

真药侧做了一个 2×2 扰动诊断。RR 是原名,NR 换词干留词缀,RN 留词干换词缀,NN 两边都换。用这四路概率拆出 AffixScore、StemScore、HolisticScore,把药分成整体记忆、词缀依赖、词干依赖、混合、无信号五类。无信号的门槛是 RR 相对 NN 的总信号不够稳(mean-std ≤ 0.1);有信号时最大分比第二名高出 0.1 才算主导。

机制分析在 OLMo-3-7B-Instruct 和 Qwen2.5-7B-Instruct 上做 activation patching:把真词缀或真词干的激活打回全假名输入,看目标 token 概率怎么变。一共 168 个样本、56 个真词缀。附录里再用 Distributed Alignment Search(DAS)在各层学一条 rank-1 方向,试着双向调控「按词缀归类」还是「判成不存在」。

结果

假药名本身就能把模型推向词缀对应的药理类别。选择题上,更大的模型(Llama-3.1-70B、Gemini 系列)泛化更强;开放题上两极分化,医学微调模型尤其 Meditron3-7B 和 HuatuoGPT 过泛化最重,真药、假药甚至 Nonce 都常被当合法药物。Nonce 比 Fake 保守,说明有效词缀结构才是关键。CoT 会让模型更谨慎,假药被当真的少了,真药识别也略被压低。最稳的过泛化词缀集中在 PARP、EGFR、KRAS、MEK 这类抑制剂。把真词缀接到日常词上,例如 tablecillin,也挡不住。OLMo-3-7B-Think 是这组里最保守的。

653 种真药的诊断分布更刺眼。Qwen 选择题里 206 种是词缀依赖、157 种是整体记忆、250 种无稳定信号;OLMo 无信号高达 384 种,词缀依赖 120 种。Holistic 药在下游最稳:OLMo 选择题生成准确率 76.3,对照无信号药只有 20.6。开放题里词缀依赖比例下降、整体记忆上升,分类靠词缀、用药推理更靠整词。

模型任务Holistic n / GenAffix n / GenNo signal n / Gen
OLMoMC115 / 76.3120 / 74.2384 / 20.6
QwenMC157 / 78.8206 / 80.1250 / 13.2
MeditronMC152 / 88.7204 / 84.8242 / 24.4

OLMo 训练语料里,HolisticScore 与真药出现次数正相关(选择题 Spearman ρ=0.17,开放题 0.19),词缀分在选择题上负相关(ρ=−0.21)。见得少的药更靠形态猜。

更麻烦的是模型不说自己在猜词缀。抽了 70 个词缀依赖真药:RR 条件下 OLMo 有 53 次选出词缀一致定义却不提词缀,明确提词缀的只有 3 次;Meditron 是 64 对 1。NR 条件下 Meditron 仍有 57.1%、Qwen 有 47.1% 选出定义,形态推理还是很少明说。开放题案例里,antazoline(AffixScore 2.27)被跟 naphazoline 搅在一起,seliciclib(1.43)把同属 -ciclib 的靶点和试验证据搬过来;holistic 主导的 minocycline、zolpidem 没出现这种串药。

Patching 把捷径钉在早期中层(大约 2–10 层)的主语末 token,后层再汇到最终预测 token。词缀依赖药上,NR→NN 和 RR→NN 曲线几乎重叠,真词缀几乎等于整词的因果贡献。DAS 在第 7–10 层最强:一条 rank-1 方向能吃掉约 85% 的 KL 散度,翻转 45% 的 top-1 预测。在 150 条留出样本上,layer 8 以 |α|=5 把 84% 的强定义偏好例翻成「不存在」,把 76% 的强不存在例翻成词缀定义;随机方向和第 23 层几乎无效,均值对比向量只有 30% 翻转率。

为什么重要

做医疗 LLM、药学 RAG、用药问答的人,不能把「说得出药类」当成「记得这味药」。词缀是训练里的合法监督信号,WHO 就是故意这么命名的,所以这条捷径会看起来像能力。医学微调没有修掉它,Meditron3-7B 在开放题里对无信号字符串的生成准确率仍有 83.3,几乎把什么都当药。

能用的部分:这套 2×2 扰动是可复现的审计工具;early-mid 层的因果方向给了干预靶点。现在还不能当生产补丁,闭源模型连诊断都做不了。

局限与存疑

作者自己写了两条:诊断框架要 logits,闭源模型大多进不来;机制实验只做了两个 7B。行为实验里 Gemini、GPT-5-mini 有测,诊断和 patching 没有。

开放题的「当真药」标签来自 LLM judge,300 条上 F1 89.3,剩下约一成误差会灌进过泛化率。AMA 每个词缀只配一个示例药,653 覆盖的是词缀表,覆盖不了真实处方里的长尾商品名。CoT 降假阳也降真阳,两边一起动。论文没测检索增强或工具调用能不能压住这条捷径。

术语

原文与代码

社区讨论

相关论文

全部论文解读