1000 万参数的分子模型,把「深度学不过随机森林」这件事翻了过来
导语
11 月 6 日,MIT 发了一篇看起来不太像新闻的新闻:讲一个叫 CheMeleon 的分子性质预测模型,以及它已经被多少人在用。
没有发布会,没有榜单第一,参数量只有 1000 万——按今天生物 AI 的叙事习惯,这个数字小到不值得提。但它要做的事情恰恰相反:在训练数据很少的真实场景里,让深度网络第一次稳定赢过随机森林这类"老办法"。
这件事在化学信息学里是个拖了很多年的尴尬。过去十年,论文里深度模型一个比一个漂亮,可一到药企真实的 ADMET 数据集上——每个靶点只有几十到几百条测量值——随机森林套分子指纹经常反手就把神经网络按在地上。CheMeleon 的解法不是加参数,是换预训练信号:不用实验数据、不用文献、不用量子化学,只用能直接算出来的分子描述符当标签。
(本文基于多家媒体转述整理,技术细节以 MIT News 报道、J. Chem. Inf. Model. 论文、arXiv v2 摘要与 Zenodo 上的权重/数据记录为准。)
先说清时间线,别被"11 月 6 日"骗了:论文 8 月 7 日就已在线、9 月 14 日进正刊,arXiv 初版 2025 年 6 月就挂出来了,权重更早就在 Zenodo 上。11 月 6 日发生的是MIT 首次对外讲这个模型被谁用了、用到什么程度。
3分钟看懂
- 是什么:CheMeleon,一个约 1000 万参数(O(10M))的分子基础模型,架构是有向消息传递神经网络(D-MPNN),也就是 Chemprop 那一套。隐层 2048,消息传递 6 步,原子特征 72 维 + 键特征 14 维。
- 谁做的:MIT 化学工程系 William Green 组(第一作者 Jackson Burns、Akshat Zalte)+ 巴斯夫(BASF SE)三位研究者 Jochen Sieg、Christian Feldmann、Miriam Mathea。
- 预训练怎么做的:从 PubChem 取约 100 万个分子,用 Mordred 算出约 1600 个描述符(分子量、氧原子数、分支度这类),让模型去回归这些可计算的数。不碰实验数据,不碰文献。
- 为什么这样能行:实验数据噪声大、口径杂、还有文献偏倚;量子化学计算结果则带着方法本身的系统性偏差。描述符是"算得准、无噪声、覆盖广"的监督信号,学到的表示反而更容易迁移到下游。
- 效果:28 个 Polaris 基准上胜率 75%(随机森林 68%、fastprop 36%、Chemprop 32%);30 个 MoleculeACE 测定上胜率 97%(随机森林 50%)。合计 58 个数据集。
- 开源到什么程度:权重 MIT license(34.9MB,
chemeleon_mp.pt,Zenodo);预训练数据 CC-BY-4.0(约 3GB);代码 MIT(GitHub);已并入 Chemprop 主干,一条命令就能用:chemprop train --from-foundation CheMeleon。 - 一个容易踩的硬约束:用 CheMeleon 必须带
--multi-hot-atom-featurizer-mode V2,否则 CLI 直接报错;同时不能再用--atom-features-path之类的自定义特征。这不是文档里的小字,是源码里的显式校验。 - 最该记住的一句:它解决的不是"预测得更准",是"数据很少的时候还能不能用深度学习"。
那个"深度学不过随机森林"的坑,到底坑在哪
分子性质预测的经典设定是这样的:你有一个新靶点,手上有 50 个化合物测过活性,想知道接下来该合成哪 100 个。
这时候深度学习的处境很难看。一个几百万参数的网络,要从 50 个样本里学出化学规律,基本等于让它在陌生城市靠 50 张照片认路。而随机森林配 ECFP 指纹,特征工程是化学家几十年攒下来的先验,反而更稳。
所以这个领域的真实状况是:深度模型在数据充足时赢,在数据稀缺时输,而药企早筛恰好全是数据稀缺的场景。
过去几年大家试过三条路解决它:堆更多实验数据(贵)、用文献里挖出来的活性数据做预训练(口径乱、偏倚重)、用量子化学计算结果做预训练(算得慢,而且带方法偏差)。CheMeleon 走的是第四条:找一个既便宜又干净又几乎无限的监督信号。
分子描述符正好符合。它不需要实验、不需要算力、不需要判断对错——给一个 SMILES,Mordred 就能吐出一千多个数。模型要学的是"什么样的结构会长出什么样的描述符组合",这个任务本身没有化学意义,但它逼着网络去理解分子拓扑。学完之后,那层表示拿去微调下游任务,就比从零开始强。
论文摘要里有一句写法很克制,但信息量很大:"enables directed message-passing neural networks to finally exceed the performance of classical methods in the low-data regime"——"finally"这个词,是这个组自己承认这件事之前一直没做到。
75% 和 97% 这两个数,该怎么读
先把口径摆清楚,因为这两个数字很容易被转述成"准确率 75%"。
它们不是准确率,是胜率。 论文一共用了 58 个数据集(28 个 Polaris + 30 个 MoleculeACE);Polaris 那 28 个里有 75%、MoleculeACE 那 30 个里有 97% 是 CheMeleon 统计显著更优。Polaris 是产业界主导的基准套件(数据来自真实药物发现项目,不是教科书数据集),每个数据集对应一个具体性质。所以正确的读法是:"在四分之三的真实 ADMET 类任务上,它赢。"
两个基准的胜率差得很大,这本身有信息。 Polaris 上 75%,MoleculeACE 上 97%。原因大概率是 MoleculeACE 的数据集更小、更集中(它专门收"活性悬崖"这类难例),小样本恰好是 CheMeleon 的舒适区;而 Polaris 覆盖的性质更杂,有些任务描述符本身就不敏感。
对照组的数字同样值得看。 随机森林 68% 的胜率意味着:即使在这个被深度模型"攻克"的基准上,老方法在三分之二的任务上仍然是标杆。Chemprop 从零训练只有 32%——也就是说,同一套架构,有没有那一步描述符预训练,胜率差了 43 个百分点。这个对比比"赢了随机森林"更能说明问题:架构不是关键,预训练信号才是。
作者自己的统计比较,要打折听。 论文写的是"rigorous statistical comparisons",用了统计检验而不是单点比大小,这是加分项;但"显著优于"的结论仍然是作者方做出的,Polaris 基准和 Chemprop 工具链又都跟这个圈子高度重叠。真正的外部验证在下面这条。
比论文更有说服力的,是一场盲测竞赛
MIT News 里最有分量的一句话不是任何胜率,是这个:
> 2026 年早些时候的 OpenADMET 竞赛里,前 20 名中有 9 支队伍在他们的流程里用了 CheMeleon。
这场竞赛的题目是预测尚未合成过的分子的性质——没有现成标签可以查,也没有回旋余地。9/20 意味着将近一半的头部方案,把一个 1000 万参数的开源模型当成了默认起点。
Green 在采访里补了一个细节:有药企直接给全员发通知,"以后建模任何性质,先上 CheMeleon,这是公司新政策"。
这句话的分量在于它描述的是一种工作流层面的替换,不是一次 benchmark 胜利。工具要真正进流程,得满足三个条件:装得上(pip install chemprop 就有)、跑得动(34.9MB 权重,笔记本都能微调)、不会因为换数据集就崩。CheMeleon 三条都占了。
怎么用
最短路径,三条命令:
- 装:
pip install 'chemprop>=2.2.0'(当前最新 2.3.1)。CheMeleon 已经进主干,不用单独装包。 - 微调:
chemprop train --from-foundation CheMeleon --multi-hot-atom-featurizer-mode V2 --data-path 你的.csv --task-type regression - 只取表示、不微调:仓库里
chemeleon_fingerprint.py提供了CheMeleonFingerprint类,输入 SMILES 或 RDKit mol,直接吐指纹向量,可以喂给你自己的模型、聚类或相似性检索。
如果你不想动代码,只要一个"这堆分子里哪些值得合成"的排序,那 --from-foundation CheMeleon 加上你的小数据集(几百条就够起步)跑一遍,输出的预测值就是优先级顺序。
适用场景
- 小样本性质预测: solubility、logD、渗透性、微粒体清除率、hERG、CYP 抑制这类 ADMET 端点,每个端点只有几百条内部数据。
- 没有历史模型的团队:以前只能上随机森林的项目,现在有个开箱即用的深度学习起点,且不比自己搭特征工程麻烦。
- 虚拟筛选的初筛:几百万个候选分子先按预测性质砍掉明显不行的,把湿实验预算留给剩下的。
- 分子表示:需要把分子编码成向量做聚类、去重、多样性采样、主动学习采样时,
CheMeleonFingerprint是个便宜的编码器。 - 反应性质预测(另一条线):11 月 3 日上线的 CheMeleon-Rxn 把同一套思路搬到反应上,8.9M 参数,输出 2048 维反应嵌入,可用于预测反应能垒、反应能、产率、速率常数。
不适用场景
- 蛋白质、抗体、大分子。它吃 SMILES,做小分子。蛋白设计是另一条技术栈(Pinal、structRFM 那些),别混。
- 三维构象相关的问题。它不看 3D 结构,没有几何信息。结合口袋、构象异构、蛋白-配体对接姿态,都不在能力范围内。
- 需要外推的化学空间。训练集是 PubChem 的 100 万个分子,如果目标分子是全新骨架(比如某些天然产物、金属配合物、聚合物),描述符分布已经在训练域外,预测不可信。
- 毒理/临床终点的直接决策。它给的是"优先级",不是"结论"。任何进 IND 的判断都不能建立在一个 1000 万参数模型的输出上。
- 期望它自己发现新化学。它是判别式模型(回归性质),不是生成模型。不会给你造分子,只会给分子打分。
避坑
- 别把"11 月 6 日"当发布日。 论文 8 月就在 JCIM 上了,arXiv 2025 年 6 月就有。11-06 是 MIT 讲采用情况。写成"MIT 刚发布新模型"会被抓。
- 别把胜率写成准确率。 75% 是"在 75% 的数据集上赢",不是"预测对了 75%"。
- 别漏掉
--multi-hot-atom-featurizer-mode V2。 不带这个参数,Chemprop 会直接抛ArgumentError,报错信息还算清楚;但如果你的脚本把它藏在默认配置里,会以为是模型文件坏了。 - 别期待它能替换掉实验。 论文摘要最后一句就是作者的自我限定:"open-source the model and the pretraining framework to encourage adoption"——它开源是为了让别人接着改,不是宣称问题解决了。
- CheMeleon-Rxn 的数据拿不到。 反应版的预训练语料主要来自商业库 Pistachio(NextMove Software 授权),模型权重 MIT、代码开源,但训练数据不能公开。想复现反应版预训练是做不到的。
- 注意同名混淆。 Hugging Face 上有若干
chemeleon相关仓库(有的做晶体结构生成、有的做 ADMET 基线),都不是这个模型。认准JacksonBurns/chemeleon和 Zenodo DOI10.5281/zenodo.15460715。
成本 / 时间
- 权重:34.9MB(fp32,约 870 万参数)。一张消费级显卡甚至 CPU 就能微调,几百条样本的微调通常几分钟到十几分钟。
- 预训练数据:约 3GB(
cleaned_pubchem_1MM.smiles+pubchem_1MM.zarr.tar.xz),CC-BY-4.0,可商用。 - 自己重训一遍:不需要。真要重训,仓库里另有
how-to-train-your-chemeleon,但 100 万分子 × 1600 描述符的描述符计算本身是主要开销(Mordred 在单机上跑这个量级要按小时算)。 - 推理:单分子毫秒级。10 万分子级别的虚拟筛选,单卡几分钟。
- 对比成本:一次湿实验测一个化合物的溶解度和微粒体稳定性,成本从几十到几百美元不等;这个模型跑一遍是零边际成本。它不替代实验,但能把"要测哪些"从几万个缩到几百个。
行动建议
- 先做一次诚实的基线对比。 拿你手上任何一个真实的小数据集(几百条、有噪声、有缺失),同时跑 ①随机森林 + ECFP、②Chemprop 从零训练、③Chemprop + CheMeleon。三个数字摆一起,你就知道这个预训练对你这类任务到底值多少。别信论文,信你自己的数据。
- 把指纹拿出来复用。 如果你已经有自己的下游模型,不必换模型,只要用
CheMeleonFingerprint把分子编码换掉,很多任务的输入质量会有变化,改动量只有几行。 - 盯反应版。 CheMeleon-Rxn(11-03,8.9M 参数,MIT)值得单独试,尤其是做工艺路线的组——反应产率/能垒预测长期缺一个便宜的开源基线。注意它的训练数据不可得,别指望复现预训练。
- 看这条线的走向。 2026 年下半年生物模型的两个方向已经很清楚了:一头是往大了做(Pinal 160 亿参数做蛋白质设计、LearningUnit 300 亿参数做临床),一头是往小了做、往"能在本地跑、权重能拿到"做。CheMeleon 是后者的典型——它的卖点不是能力上限,是"你现在就能下载、明天就能用"。
参考来源
- MIT News(2026-11-06):https://news.mit.edu/2026/how-to-predict-molecule-behavior-with-scant-data-1106
- 论文(J. Chem. Inf. Model. 2026, 66(17), 10692–10701):https://doi.org/10.1021/acs.jcim.6c01546
- arXiv v2 摘要(含 75% / 97% 胜率):https://arxiv.org/abs/2506.15792
- 模型权重(Zenodo,MIT):https://zenodo.org/records/15460715
- 预训练数据(Zenodo,CC-BY-4.0):https://zenodo.org/records/15733575
- 代码仓库:https://github.com/JacksonBurns/chemeleon
- Chemprop(
--from-foundation CheMeleon):https://github.com/chemprop/chemprop - CheMeleon-Rxn 权重(2026-11-03):https://zenodo.org/records/23923146
- Unite.AI:https://www.unite.ai/mit-details-chemeleon-model-for-low-data-molecular-prediction/
- Time News:https://time.news/mit-and-basf-researchers-develop-chemeleon-to-predict-molecular-behavior/
(本文基于多家媒体转述整理。)