语言: 蛋白质
标签:
ProtT5-XL-BFD 模型
该模型基于蛋白质序列使用掩码语言建模(MLM)目标进行预训练。它在这篇论文中首次提出,并在此代码库中发布。此模型仅适用于大写字母的氨基酸序列。
模型描述
ProtT5-XL-BFD 基于 t5-3b
模型,通过自监督方式在一个大型蛋白质序列语料库上进行预训练。这意味着它仅对原始蛋白质序列进行预训练,无需人工标注(因此可以利用大量公开数据),并通过自动过程从这些序列生成输入和标签。
该 T5 模型与原始 T5 版本的一个重要区别在于去噪目标。原始 T5-3B 模型使用跨度去噪目标进行预训练,而此模型采用类似 Bart 的 MLM 去噪目标。掩码概率与原始 T5 训练一致,随机掩码输入中 15% 的氨基酸。
研究表明,从该自监督模型提取的特征(LM 嵌入)捕捉了决定蛋白质形状的重要生物物理特性,暗示模型学习了蛋白质序列中生命语言的部分语法。
预期用途与限制
该模型可用于蛋白质特征提取或下游任务微调。在某些任务中,微调模型比直接用作特征提取器能获得更高准确率。对于特征提取,建议使用编码器的输出而非解码器。
使用方法
以下是在 PyTorch 中提取蛋白质序列特征的示例代码:
from transformers import T5Tokenizer, T5Model
import re
import torch
tokenizer = T5Tokenizer.from_pretrained('Rostlab/prot_t5_xl_bfd', do_lower_case=False)
model = T5Model.from_pretrained("Rostlab/prot_t5_xl_bfd")
sequences_Example = ["A E T C Z A O","S K T Z P"]
sequences_Example = [re.sub(r"[UZOB]", "X", sequence) for sequence in sequences_Example]
ids = tokenizer.batch_encode_plus(sequences_Example, add_special_tokens=True, padding=True)
input_ids = torch.tensor(ids['input_ids'])
attention_mask = torch.tensor(ids['attention_mask'])
with torch.no_grad():
embedding = model(input_ids=input_ids,attention_mask=attention_mask,decoder_input_ids=None)
encoder_embedding = embedding[2].cpu().numpy()
decoder_embedding = embedding[0].cpu().numpy()
训练数据
ProtT5-XL-BFD 在包含 21 亿蛋白质序列的 BFD 数据集上预训练。
训练流程
预处理
蛋白质序列被转换为大写,并使用 21 个词汇量的单空格分词。稀有氨基酸 "U,Z,O,B" 映射为 "X"。模型输入格式如下:
蛋白质序列 [EOS]
预处理通过动态截断和填充至 512 个标记完成。掩码规则如下:
- 15% 氨基酸被掩码
- 90% 情况下替换为
[MASK]
标记
- 10% 情况下替换为随机氨基酸
预训练
模型在单台 TPU Pod V3-1024 上训练 120 万步(序列长度 512,批量大小 4k),总参数量约 30 亿,采用编码器-解码器架构,使用 AdaFactor 优化器和平方根倒数学习率调度。
评估结果
特征提取任务表现如下:
任务/数据集 |
二级结构(3态) |
二级结构(8态) |
亚细胞定位 |
膜蛋白检测 |
CASP12 |
77 |
66 |
|
|
TS115 |
85 |
74 |
|
|
CB513 |
84 |
71 |
|
|
DeepLoc |
|
|
77 |
91 |
BibTeX 引用信息
@article{Elnaggar2020.07.12.199554,
author = {Elnaggar, Ahmed and Heinzinger, Michael and Dallago, Christian and Rehawi, Ghalia and Wang, Yu and Jones, Llion and Gibbs, Tom and Feher, Tamas and Angerer, Christoph and Steinegger, Martin and BHOWMIK, DEBSINDHU and Rost, Burkhard},
title = {ProtTrans: Towards Cracking the Language of Life's Code Through Self-Supervised Deep Learning and High Performance Computing},
year = {2020},
doi = {10.1101/2020.07.12.199554},
publisher = {Cold Spring Harbor Laboratory},
journal = {bioRxiv}
}
由 Ahmed Elnaggar/@Elnaggar_AI 创建 | LinkedIn