🚀 GP-MoLFormer-Uniq
GP-MoLFormer是一类在来自ZINC和PubChem的0.65 - 11亿个分子的SMILES字符串表示上进行预训练的模型。本仓库中的模型是在这两个数据集中所有“唯一”分子上进行预训练的。
🚀 快速开始
使用以下代码开始使用该模型:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("ibm-research/GP-MoLFormer-Uniq", trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained("ibm-research/MoLFormer-XL-both-10pct", trust_remote_code=True)
outputs = model.generate(do_sample=True, top_k=None, max_length=202, num_return_sequences=3)
tokenizer.batch_decode(outputs, skip_special_tokens=True)
✨ 主要特性
- GP-MoLFormer是一个大规模自回归化学语言模型,旨在用于分子生成任务。
- 采用与MoLFormer - XL相同的架构,包括线性注意力和旋转位置嵌入,但使用仅解码器的Transformer块,并通过因果语言建模目标进行训练。
- 可用于无条件的从头分子生成,也可以使用部分SMILES字符串进行支架完成/修饰。
- 可以在特定数据集上进行微调,以改变输出分布(例如,生成更具药物特性的分子),或使用“配对微调”进行分子优化。
📦 安装指南
文档未提及安装步骤,故跳过该章节。
💻 使用示例
基础用法
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("ibm-research/GP-MoLFormer-Uniq", trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained("ibm-research/MoLFormer-XL-both-10pct", trust_remote_code=True)
outputs = model.generate(do_sample=True, top_k=None, max_length=202, num_return_sequences=3)
tokenizer.batch_decode(outputs, skip_special_tokens=True)
📚 详细文档
模型详情
GP-MoLFormer是一个大规模自回归化学语言模型,用于分子生成任务。它采用与MoLFormer - XL相同的架构,包括线性注意力和旋转位置嵌入,使用仅解码器的Transformer块,并通过因果语言建模目标进行训练。该模型在多达11亿个SMILES表示的分子上进行训练,并在从头生成(大规模)、支架约束修饰和分子属性优化任务上进行了评估。
预期用途和限制
- 预训练模型可直接用于无条件的从头分子生成。
- 可以使用部分SMILES字符串进行支架完成/修饰。
- 可以在特定数据集上进行微调,以改变输出分布(例如,生成更具药物特性的分子),或使用“配对微调”进行分子优化。
- 该模型未测试分类性能,也未测试大于约200个原子的分子(即大分子)。此外,使用无效或非规范的SMILES可能会导致性能下降。
训练详情
数据
我们在ZINC15和PubChem数据集的分子组合上训练了GP-MoLFormer。本仓库包含在两个数据集中所有“唯一”分子上训练的版本。在训练前,使用RDKit对分子进行规范化处理,并去除异构体信息。此外,长度超过202个标记的分子被丢弃。
硬件
- 16 x NVIDIA A100 80GB GPU
评估
我们在各种生成指标上评估了GP-MoLFormer。下表显示了GP-MoLFormer - Uniq与基线模型的性能比较:
|
有效性↑ |
10k唯一率↑ |
新颖性↑ |
片段率↑ |
支架率↑ |
SNN↑ |
内部多样性↑ |
FCD↓ |
CharRNN |
0.975 |
0.999 |
0.842 |
0.9998 |
0.9242 |
0.6015 |
0.8562 |
0.0732 |
VAE |
0.977 |
0.998 |
0.695 |
0.9984 |
0.9386 |
0.6257 |
0.8558 |
0.0990 |
JT - VAE |
1.000 |
1.000 |
0.914 |
0.9965 |
0.8964 |
0.5477 |
0.8551 |
0.3954 |
LIMO |
1.000 |
0.976 |
1.000 |
0.6989 |
0.0079 |
0.2464 |
0.9039 |
26.78 |
MolGen - 7B |
1.000 |
1.000 |
0.934 |
0.9999 |
0.6538 |
0.5138 |
0.8617 |
0.0435 |
GP - MoLFormer - Uniq |
1.000 |
0.977 |
0.390 |
0.9998 |
0.7383 |
0.5045 |
0.8655 |
0.0591 |
我们使用典型的MOSES定义在每个模型的各自测试集上报告所有指标。注意:新颖性是相对于每个模型的各自训练集而言的。
🔧 技术细节
数据
训练数据来自ZINC15和PubChem数据集的分子组合。在训练前,使用RDKit对分子进行规范化处理,去除异构体信息,并丢弃长度超过202个标记的分子。
硬件
使用16 x NVIDIA A100 80GB GPU进行训练。
📄 许可证
本项目采用Apache - 2.0许可证。
引用
@misc{ross2025gpmolformerfoundationmodelmolecular,
title={GP-MoLFormer: A Foundation Model For Molecular Generation},
author={Jerret Ross and Brian Belgodere and Samuel C. Hoffman and Vijil Chenthamarakshan and Jiri Navratil and Youssef Mroueh and Payel Das},
year={2025},
eprint={2405.04912},
archivePrefix={arXiv},
primaryClass={q-bio.BM},
url={https://arxiv.org/abs/2405.04912},
}