Uni-Mol(深势科技 DP Technology,ICLR 2023)是首批把三维构象直接纳入预训练的分子表示模型。此前的分子预训练大多基于二维图或 SMILES 字符串,Uni-Mol 用大规模构象数据训练,让表示天然带有空间信息——这对依赖三维形状的任务(对接、构象敏感的性质)是实质性的优势。
部署
git clone https://github.com/deepmodeling/Uni-Mol.git
cd Uni-Mol/unimol
pip install -e . # 依赖 Uni-Core(基于 PyTorch)
# 下载预训练权重后微调
python unimol/train.py $data_path --task mol_finetune \
--finetune-from-model ckpt/mol_pre_no_h_220816.pt \
--num-classes 1 --loss finetune_mse --arch unimol_base
需要 GPU 与 Uni-Core 框架。官方提供分子与蛋白口袋两套预训练权重。也可通过深势的 Bohrium 平台在线使用,省去环境配置。
预训练怎么做的
- 数据规模:约 2.09 亿个分子构象 + 逾 300 万个候选蛋白口袋,覆盖面是它的底气。
- 两个自监督任务:一是掩码原子类型预测(类似 BERT),二是3D 位置去噪——对原子坐标加噪声让模型还原。后者是它学到空间几何的关键。
- 架构:带有原子对表示与距离编码的 Transformer,让注意力显式感知原子间距离。
能迁移到哪些任务
| 任务 | 用法 | 表现 |
|---|---|---|
| 分子性质预测 | 微调分子权重 | MoleculeNet 多个终点上有竞争力 |
| 构象生成 | 直接推理 | 可作 RDKit ETKDG 的替代或补充 |
| 口袋性质 / 结合位点 | 用口袋权重 | 依赖口袋预训练模型 |
| 分子对接 | Uni-Mol Docking | 见 188《Uni-Mol Docking V2》 |
使用边界
- 依赖输入构象质量:模型吃的是 3D 坐标,构象生成得不好,下游表现随之下降。用 RDKit ETKDG 生成时记得做能量最小化并固定随机种子。
- 不是所有任务都需要 3D:溶解度、LogP 等主要由二维结构决定的性质上,Chemprop(见 174《Chemprop》)等二维模型往往打成平手甚至更好,而成本低得多。先确认任务是否真的构象敏感,再决定要不要上 3D 模型。
- 算力门槛:微调需要 GPU,推理成本也高于指纹类方法,大规模筛选时要算清成本。
- 仍需骨架划分验证:预训练模型同样会在随机划分下虚高,评估纪律不能放松。
上手提示
- 核心创新是「3D 位置去噪」的预训练任务,让表示带上空间几何;
- 只在构象敏感的任务上才值得为 3D 付出成本;
- 输入构象质量直接决定效果,别省能量最小化这一步;
- 评估仍要用骨架划分与基线对照,预训练不豁免这条纪律。
延伸资源
- 教程:022《Uni-Mol 教程》;对接版本:188《Uni-Mol Docking V2》;
- 对照基线:174《Chemprop》、176《PyTorch Geometric》;
- 预训练范式与构象生成见「AI 模型」「分子表示」模块。