当前位置: 首页 > article >正文

arxiv2022 | MolT5:Translation between Molecules and Natural Language

Ambitious goal !!

任务molecule captioning and text-guided de novo molecule generation.

论文链接:https://arxiv.org/abs/2204.11817

代码链接:GitHub - blender-nlp/MolT5: Associated Repository for "Translation between Molecules and Natural Language"

huggingface:laituan245 (Tuan Lai)

MolT5 – Multimodal Text-Molecule Representation Model

首先使用T5.1.12的public checkpoint初始化transformer encoder-decoder,T5.1.12是T5的改进版本。使用“replace corrupted spans”对模型进行预训练。

对于每个序列,随机选择序列中的一些单词进行破坏。损坏token的每个连续范围都被一个sentinel token (替换(如图3中的[X]和[Y]所示)。接下来预测dropped-out spans

预训练阶段基本上是在来自两种不同语言的两个单语语料库上训练单一语言模型,并且两个语料库之间没有明确的对齐。这种方法类似于一些多语言语言模型,如mBERT、mBART的预训练。

预训练后,对预训练模型进行微调。在分子生成中,输入是描述,输出是目标分子的SMILES。在分子标题中,输入是某些分子的SMILES字符串,输出是描述输入分子的caption。

Evaluation Metrics

1、Text2Mol Metric

【Text2mol: Cross-modal molecule retrieval with natural language queries.】:检索模型,根据其文本描述对与分子相似度进行排序。排序函数使用两个embeddings之间的余弦相似度,可以用于评估真实分子/描述与生成的描述/分子(分别)之间的相似性。

2、Evaluating Molecule Captioning

传统上,caption任务是通过自然语言生成指标来评估的,如BLEU、ROUGE和METEOR。与COCO 等每幅图像有几个标题的标题任务不同,在这项任务中,只有一个参考captioning(但是一个分子可以有多个SMILES string?)。这使得这些指标不那么有效,特别是因为有许多不重叠的方法来描述一个分子。然而,为了比较,仍然报告这些分数(例如,汇总句子级METEOR分数)。

3、Evaluating Text-Based de Novo Molecule Generation

希望生成的分子与输入文本匹配,而不是普遍地多样化(novelty 、scaffold similarity等),考虑度量生成的分子到基本真实分子或基本真实描述的距离的度量。

采用了三个指纹指标:MACCS FTS、RDK FTS和Morgan FTS,还报告SMILES-strings匹配、Levenshtein距离和SMILES BLEU分数。

对于使用SMILES-string的模型,生成的分子可能在语法上无效。因此,也关注validity,计算能被RDKIT处理的分子百分比(不能处理就invalid)。

Experiments and Results

Pretraining Data

MolT5的预训练阶段需要两个单语语料库:一个由自然语言文本组成,另一个由分子表征组成。使用“Colossal Clean crawl Corpus”(C4) 作为文本模态的预训练数据集。对于分子,直接利用Chemformer中使用的1亿个SMILES字符串(从ZINC-15中搜集)

Finetuning and Evaluation Data

ChEBI-20(33,010 molecule-description pairs)80/10/10% train/validation/test,为了迫使模型关注描述的语义,将分子的名称替换为“该分子是……”(例如,“该分子是从……中分离出来的有机二硫化物”)。

Results

 

 

 

Limitations

由于这项工作的重点是大型语言模型的新应用程序,因此许多相同的限制也适用于此。也就是说,该模型是在从互联网收集的大型数据集上训练的,因此它可能包含意想不到的偏差。限制是使用SMILES字符串——最近的工作提出了一种具有有效性保证的字符串表示。在实践中,发现这对于预训练的T5检查点(从计算的角度来看这很重要)的效果很差。还注意到,ChEBI-20中的一些化合物可能会在默认的SELFIES实现中导致有效性问题。

Usage

# https://huggingface.co/laituan245
from transformers import T5Tokenizer, T5ForConditionalGeneration

tokenizer = T5Tokenizer.from_pretrained("laituan245/molt5-large-caption2smiles", model_max_length=512)
model = T5ForConditionalGeneration.from_pretrained('laituan245/molt5-large-caption2smiles')

input_text = 'The molecule is a monomethoxybenzene that is 2-methoxyphenol substituted by a hydroxymethyl group at position 4. It has a role as a plant metabolite. It is a member of guaiacols and a member of benzyl alcohols.'
input_ids = tokenizer(input_text, return_tensors="pt").input_ids

outputs = model.generate(input_ids, num_beams=5, max_length=512)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

http://www.kler.cn/a/17529.html

相关文章:

  • kafka消费数据太慢了,给优化下
  • nginx部署H5端程序与PC端进行区分及代理多个项目及H5内页面刷新出现404问题。
  • RT-DETR融合CVPR[2020]轻量化卷积模块Ghost Module模块
  • 搭建监控系统Prometheus + Grafana
  • 量化交易系统开发-实时行情自动化交易-3.4.2.Okex行情交易数据
  • Python 小高考篇(2)字符串
  • encrypted勒索病毒攻击nas服务器,服务器中了勒索病毒解密数据恢复
  • Redis事务
  • zk之数据的发布与订阅
  • RBF-UKF径向基神经网络结合无迹卡尔曼滤波估计锂离子电池SOC(附MATLAB代码)RBF神经网络训练部分
  • 有趣的回文检测
  • 如何用ChatGPT做团队绩效管理?根据员工的个人优势、不足、目标来生成更具体的绩效反馈
  • 2023/5/7周报
  • 猫狗训练集训练报错:Failed to find data adapter that can handle input
  • C++ Primer第五版_第十五章习题答案(21~30)
  • Spring Boot 整合 Swagger 教程详解
  • ChatGPT写文章效果-ChatGPT写文章原创
  • leetcode 530. 二叉搜索树的最小绝对差
  • 《互联网安全产品漏洞管理规定》
  • 【Linux Network】网络编程套接字
  • 轻松掌握在已有K8s环境上安装KubeSphere
  • 【五一创作】Qt quick基础1(包含基本元素Text Image Rectangle的使用)
  • HTTP加密
  • 身份鉴别解读与技术实现分析(1)
  • 【Linux】多路转接--select、poll、epoll,非阻塞等待
  • 超大excel文件读,避免内存溢出