license: apache-2.0
library_name: transformers
pipeline_tag: feature-extraction
tags:
MoLFormer-XL-both-10%
MoLFormer是一类基于ZINC和PubChem中多达11亿个分子的SMILES字符串表示进行预训练的模型。本仓库存储的是在两个数据集各10%样本上预训练的模型版本。
该模型由Ross等人在论文《大规模化学语言表征捕获分子结构与性质》中提出,并首次发布于此代码库。
模型详情
模型描述
MoLFormer是一个大规模化学语言模型,旨在学习基于SMILES字符串表示的小分子模型。该模型采用掩码语言建模任务,结合线性注意力Transformer架构与旋转位置编码技术。

上图展示了MoLFormer的整体流程。可以看到,这个基于Transformer的神经网络模型以自监督方式,在两个公共化学数据集PubChem和ZINC的SMILES序列上进行训练。MoLFormer架构设计采用高效的线性注意力机制和相对位置编码,旨在学习具有意义的压缩分子表征。预训练完成后,基础模型可通过下游任务数据微调,适配不同分子属性预测任务。为验证表征能力,研究还利用模型编码还原分子相似性,并分析了原子间空间距离与注意力权重的对应关系。
使用场景与限制
该模型虽可用于掩码语言建模,但主要设计用途是作为特征提取器或进行预测任务微调。冻结的模型嵌入可用于相似性计算、可视化或训练预测模型,也可微调用于序列分类任务(如溶解度、毒性等)。
注意:本模型不适用于分子生成,也未在超过200个原子的大分子上测试。使用无效或非标准SMILES可能导致性能下降。
示例代码
import torch
from transformers import AutoModel, AutoTokenizer
model = AutoModel.from_pretrained("ibm/MoLFormer-XL-both-10pct", deterministic_eval=True, trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained("ibm/MoLFormer-XL-both-10pct", trust_remote_code=True)
smiles = ["Cn1c(=O)c2c(ncn2C)n(C)c1=O", "CC(=O)Oc1ccccc1C(=O)O"]
inputs = tokenizer(smiles, padding=True, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
outputs.pooler_output
训练详情
数据
MoLFormer-XL基于ZINC15和PubChem数据集组合训练。本版本使用10% ZINC + 10% PubChem数据。
训练前使用RDKit进行分子标准化并移除异构体信息,同时过滤掉超过202个token的分子。
硬件
评估结果
在MoleculeNet的11个基准任务上微调评估,性能对比如下:
|
BBBP |
HIV |
BACE |
SIDER |
ClinTox |
Tox21 |
10% ZINC + 10% PubChem |
91.5 |
81.3 |
86.6 |
68.9 |
94.6 |
84.5 |
10% ZINC + 100% PubChem |
92.2 |
79.2 |
86.3 |
69.0 |
94.7 |
84.5 |
100% ZINC |
89.9 |
78.4 |
87.7 |
66.8 |
82.2 |
83.2 |
MoLFormer-Base |
90.9 |
77,7 |
82.8 |
64.8 |
61.3 |
43.1 |
MoLFormer-XL |
93.7 |
82.2 |
88.2 |
69.0 |
94.8 |
84.7 |
|
QM9 |
QM8 |
ESOL |
FreeSolv |
Lipophilicity |
10% ZINC + 10% PubChem |
1.7754 |
0.0108 |
0.3295 |
0.2221 |
0.5472 |
10% ZINC + 100% PubChem |
1.9093 |
0.0102 |
0.2775 |
0.2050 |
0.5331 |
100% ZINC |
1.9403 |
0.0124 |
0.3023 |
0.2981 |
0.5440 |
MoLFormer-Base |
2.2500 |
0.0111 |
0.2798 |
0.2596 |
0.6492 |
MoLFormer-XL |
1.5984 |
0.0102 |
0.2787 |
0.2308 |
0.5298 |
分类任务报告AUROC,QM9/8报告平均MAE,其余回归任务报告RMSE。
引用文献
@article{10.1038/s42256-022-00580-7,
year = {2022},
title = {{大规模化学语言表征捕获分子结构与性质}},
author = {Ross, Jerret and Belgodere, Brian and Chenthamarakshan, Vijil and Padhi, Inkit and Mroueh, Youssef and Das, Payel},
journal = {Nature Machine Intelligence},
doi = {10.1038/s42256-022-00580-7},
pages = {1256--1264},
number = {12},
volume = {4}
}
@misc{https://doi.org/10.48550/arxiv.2106.09553,
doi = {10.48550/ARXIV.2106.09553},
url = {https://arxiv.org/abs/2106.09553},
author = {Ross, Jerret and Belgodere, Brian and Chenthamarakshan, Vijil and Padhi, Inkit and Mroueh, Youssef and Das, Payel},
keywords = {机器学习(cs.LG), 计算与语言(cs.CL), 生物分子(q-bio.BM), FOS: 计算机与信息科学, FOS: 计算机与信息科学, FOS: 生物科学, FOS: 生物科学},
title = {大规模化学语言表征捕获分子结构与性质},
publisher = {arXiv},
year = {2021},
copyright = {arXiv.org永久非独占许可}
}