酶改造-modelpaper-ProtT5框架详解

ProtT5ProtTrans(蛋白质 Transformer 模型族,ProtTrans)中以 文本到文本迁移 Transformer(Text-to-Text Transfer Transformer,T5) 为骨架的蛋白质语言模型(Protein Language Model,PLM):在大规模氨基酸序列上做自监督学习(self-supervised learning),输出逐残基嵌入或经序列到序列(sequence-to-sequence,seq2seq) 头做生成式微调。下文先交代 NLPT5 的通用结构,再对齐 RostlabHugging Face(HF,模型与数据集托管平台) 上发布的 ProtT5-XL-UniRef50构建细节(以官方模型卡与 config.json 为准)。

段末注释PLM 指在蛋白序列上预训练的通用表征模型;self-supervised 指用输入本身构造伪标签、无需人工逐条标注;seq2seq 指编码器读入序列、解码器生成另一串符号;


1. 文献与代码入口

项目 信息
总论文 Elnaggar 等,ProtTrans: Toward Understanding the Language of Life Through Self-Supervised Learning(题目以 IEEE Xplore 为准,与 bioRxiv 标题略有差异);预印本 bioRxiv 10.1101/2020.07.12.199554;arXiv 2007.06225;期刊版 IEEE TPAMI4410):7112–71272022;DOI 10.1109/TPAMI.2021.3095381
代码与模型族 GitHub agemagician/ProtTrans
常用权重(XL + UniRef50) HF Rostlab/prot_t5_xl_uniref50(README 与 config.json 为本文数值细节的主要来源)
原始 T5 Raffel 等,Exploring the Limits of Transfer Learning with a Unified Text-to-Text TransformerJMLR 2020(理解 span corruptiontext-to-text 的参照)

段末注释IEEE TPAMI 为计算机视觉与模式识别领域权威期刊;JMLR 为机器学习期刊;span corruption 指随机挖连续片段再让模型复原,为原版 T5 预训练目标之一。


2. 框架总览:为什么是「编码器—解码器」而不是纯 BERT?

2.1 NLP 中的 T5 在做什么(与 ProtT5 的继承关系)

T5任意 NLP 任务都写成「输入文本 → 输出文本」:分类、回归、生成统一成 seq2seq。网络上是共享词表Transformer

  • 编码器(encoder):双向上下文,把输入 token 序列映射为隐藏状态序列(每层含多头自注意力(multi-head self-attention)前馈网络(feed-forward network,FFN),外加残差连接(residual connection)层归一化(Layer Normalization,LayerNorm))。
  • 解码器(decoder)因果掩码自注意力(causal masked self-attention)(只能看到已生成前缀)+ 交叉注意力(cross-attention)(查询来自解码器,键值来自编码器最后输出),再经 FFN;逐步生成输出 token。

相对位置编码(relative positional encoding)T5桶化的相对位置偏置relative_attention_num_buckets)替代部分绝对位置编码,利于外推与长序列(蛋白上截断长度常有限制,见 §4)。

Fig.1 T5 / ProtT5 编码器—解码器骨架示意(图中为英文标注;与 HF `prot_t5_xl_uniref50` 配置一致)

原版 T5 预训练目标常为 span corruption:随机采样并遮盖连续 span,在输出端复原被挖掉的片段(与 BERT 式单 token 掩码语言建模(Masked Language Modeling,MLM) 不同)。

段末注释BERT 为仅编码器的双向模型,以 MLM 为主目标;cross-attention 使解码器每个位置能** attend** 到编码器全体位置。

2.2 ProtT5 在蛋白序列上的「文本」是什么

  • 字母表:标准 20 种氨基酸 + 未知/稀有 合并规则;HF 模型卡说明:输入为大写单字母,稀有/模糊氨基酸(U、Z、O、B) 映射为 X(与常见工程约定一致)。
  • 分词(tokenization):在字符间插入空格,使每个氨基酸近似为一个词片段;词表规模在 config.json 中记为 128(含特殊符号与 padding 等),与「21 个氨基酸类符号 + 特殊 token」的工程实现对齐,不必与自然语言数万词表混淆。
  • 序列长度:公开 ProtT5-XL-UniRef50 训练与位置编码上限为 512 token(n_positions: 512),长蛋白需截断分段再聚合(如均值汇聚)。

段末注释token 指模型输入的最小整数索引单位;padding 为对齐批内长度而补的无效位。


3. ProtT5-XL 网络规格(与 t5-3b 同族)

以下字段摘自 HF 权重 config.json,对应 T5ForConditionalGeneration 架构:

配置项 数值 含义(直觉)
is_encoder_decoder true 标准 encoder–decoder
num_layers 24 编码器层数
num_decoder_layers 24 解码器层数
d_model 1024 隐藏维度(隐层宽度)
d_ff 16384 FFN 中间层宽度(通常为 4×d_model 量级,此处与 T5-3B 档位一致)
num_heads 32 注意力头数
d_kv 128 每头键/值维度(常满足 d_model = num_heads × d_kv
dropout_rate 0.1 训练时随机失活比例
feed_forward_proj "relu" FFN 内激活为 整流线性单元(Rectified Linear Unit,ReLU)
relative_attention_num_buckets 32 相对位置偏置桶数
n_positions 512 最大序列位置长度
vocab_size 128 词表大小(含特殊 token)

参数量级约 3×10⁹(3B),与 NLPT5-3B 同档;ProtTrans 总论文亦在超算/TPU 集群上训练多架构,ProtT5 是其中编码器—解码器路线的代表。

段末注释FFN 为逐位置前馈子层;ReLU 为 (\max(0,x));3B 为三十亿参数量级简称。


4. 预训练目标与「和原版 T5 的关键差异」

HF 官方 README 明确写出(引用意译):

  • 原版 T5-3B 使用 span denoising(span 去噪) 目标;
  • ProtT5-XL-UniRef50 则采用更接近 BART 风格的 MLM 去噪:对输入序列随机遮盖约 15% 的氨基酸位置;其中约 90%[MASK] 替换,约 10% 替换为随机氨基酸(与被替换位置不同)。

因此:ProtT5 名字与实现骨架T5,但该 checkpoint 的预训练目标与 Raffel 等原文中典型 span 长度采样的设定不一致,读论文时需区分「架构来自 T5」与「该蛋白 checkpoint 的 denoising 配方」。

训练数据(该 checkpoint)UniRef50约 4500 万条蛋白序列,聚类约 50% 序列一致性水平,见 UniProt 文档)。

初始化与日程(该 checkpoint):以 ProtT5-XL-BFD(在 BFD 等更大语料上训练的同名架构 checkpoint)为初始权重,再在 UniRef50 上继续训练;硬件为 TPU Pod V2-256;总步数约 991.5k;序列长度 512batch size 约 2k;优化器为 AdaFactor,学习率 逆平方根调度(inverse square root schedule)。

段末注释BFD 为大规模蛋白序列库(Big Fantastic Database 类资源,以原文与 ProtTrans 仓库说明为准);UniRef50UniProt 下聚类序列集;AdaFactor 为 Google 提出的内存友好优化器;checkpoint 指某次保存的权重快照。


5. 输入输出与下游使用(实践向)

5.1 嵌入从哪里来

  • 逐残基嵌入:对 编码器最后一层隐藏状态取 last_hidden_state,形状约为 (序列长度 × d_model),即每残基 1024 维(见模型卡示例代码)。
  • 整条蛋白向量:对有效残基位置做 mean pooling(均值汇聚)attention pooling,得到固定长度向量,供 岭回归(Ridge regression)随机森林(Random Forest)高斯过程(Gaussian Process,GP) 等浅层头使用(与 EVOLVEproESM-2Taq 工程用 ProtT5 的实践一致)。

官方建议:不少下游任务中,仅使用编码器侧特征往往优于依赖解码器输出;若只做表征、不做生成,编码器嵌入是默认首选。

段末注释mean pooling 对可变长度序列在残基维上取平均;Ridge 为 L2 正则线性回归。

5.2 与仅编码器 PLM(如 ProtBERT、ESM)的分工直觉

维度 ProtT5(encoder–decoder) 仅编码器 BERT/ESM 类
预训练接口 天然适配 seq2seq(还原被遮盖片段、或微调为序列到标签字符串) MLM 表征为主,读长上下文
嵌入用途 Encoder 隐藏状态用于分类/回归/对齐;解码器多用于生成式微调 单层或多层聚合嵌入
计算 推理通常重于同档仅编码器(解码器额外堆叠) 相对省算力

6. 与 ProtTrans 大家庭的关系(避免混淆)

ProtTrans 在同一数据规模下还训练了 Transformer-XLXLNet(自回归)、BERTAlbertElectraT5 等多种架构;ProtT5 特指 T5 这一路。不同 checkpoint(BFD vs UniRef50base vs XL)在数据与规模上不同,不可混用训练脚本与超参。

段末注释Electra 为判别式替换的预训练目标,与 MLM 不同;此处仅提示族谱,不展开。


7. 小结

  • 结构ProtT5 = T524+24encoder–decoderd_model=102432 头,相对位置偏置,最大长度 512(公开 XL-UniRef50 卡)。
  • 训练细节(该权重)BART 式 MLM 去噪(原版 T5 span corruption 的默认配方)、15% 遮盖、90%/10% 掩码与随机替换策略;UniRef50 上自 ProtT5-XL-BFD 热启动TPU v2-256991.5k steps,AdaFactor
  • 使用:下游特征优先取 encoder last_hidden_state;长序列注意 512 截断与分段策略。

8. 延伸阅读(检索关键词)

  • ProtTrans, ProtT5, Rostlab/prot_t5_xl_uniref50, T5 span corruption, BART-like MLM protein, Elnaggar TPAMI 2021, relative attention buckets T5
-------------本文结束感谢您的阅读-------------