187

Uni-Mol:分子预训练模型部署指南

Uni-Mol 提供 3D 分子预训练权重与微调接口,可迁移到性质预测、对接等任务。这篇讲清它的 3D 预训练思路、微调方式与适用边界。

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 付出成本;
  • 输入构象质量直接决定效果,别省能量最小化这一步;
  • 评估仍要用骨架划分与基线对照,预训练不豁免这条纪律。

延伸资源