返回列表

21th solution: ESM2 + custom folding head

587. Stanford Ribonanza RNA Folding | stanford-ribonanza-rna-folding

开始: 2023-09-07 结束: 2023-12-07 基因组学与生物信息 数据算法赛
第21名解决方案:ESM2 + 自定义折叠头

第21名解决方案:ESM2 + 自定义折叠头

作者:CPMP | 发布日期:2023-12-08 | 投票数:23 | 排名:第21名

TLDR

我们参赛较晚,第一次提交是在10天前。鉴于时间有限,我们决定选择一条开发成本较低的路径,并利用META优秀的ESM2模型系列。

我们在比赛数据和RNA Central的长序列上预训练了ESM2骨干网络,然后添加了自定义折叠头,并在DMS和2A3标签上进行了微调。

老实说,我们对最终结果有点惊讶,开始时期望会更差。

ESM2 预训练

我们在预训练ESM2蛋白质语言模型方面有一些经验,因此认为它们非常适合本次竞赛。我们使用MLM(掩码语言建模)损失,在训练和测试序列上预训练了三个版本的ESM2模型(35M、150M、650M)。

具体来说,我们使用了huggingface的EsmForMaskedLM模型类和DataCollatorForLanguageModeling(tokenizer, mlm=True)数据整理器,后者支持MLM损失。

由于没有训练序列,且仅有8000条长度超过208的测试序列,我们下载了RNA Central数据,并筛选出1200万条长度在115到457之间(本竞赛数据的范围)的样本,以补充竞赛数据。

根据使用的RNA Central数据量,我们预训练了5到20个epoch,总共见过2500万到7000万个样本。

折叠头

我们基于CPMP在三年前新冠疫苗竞赛中使用的模型,设计了一个位于ESM2词元嵌入之上的折叠头。该模型此前已在此介绍过。

该折叠头将ESM2词元嵌入和bpp文件作为输入。其主要组成部分是一个注意力/卷积层,重复两次,然后是一个线性分类头。

注意力/卷积层类似于Transformer编码器结构:一个注意力层后接一个带跳跃连接的卷积块。注意力层是一个bpp注意力层,后接一个双向RNN(GRU或LSTM产生两种模型变体)。当然,GRU并非注意力机制,但在此处其作用类似于注意力层,即每个节点关注序列中的两个相邻节点。bpp注意力是一种标准注意力层,其注意力权重为bpp值。卷积层的设计借鉴了EfficientNet的卷积块。我们按照此笔记本中的方式对这些层进行堆叠。

我们选择这种RNN/卷积架构而非Transformer,原因有两点:

  • 我们实际上在比赛结束前5天才开始着手处理,没有时间调整新架构;
  • 我们希望ESM2的注意力机制已经学习到了Transformer头注意力所能学到的内容。

微调

我们表现最佳的模型是在ESM2骨干网络之上添加了自定义折叠头的模型。我们也训练了仅使用线性头的简单模型。最终集成的模型是两者的混合,其中大部分包含折叠头。

我们使用了四种训练数据变体:
Quick start(快速启动)
Quick start + SN >= 0.3
Quick start + SN >= 0.3,且SN作为样本权重
Quick start + SN >= 0.1,且SN作为样本权重
SN是截断至(0, 1)的signal_to_noise(信噪比)。在某些变体中,我们将其用作样本噪声。模型质量从上至下逐步提升。

我们使用了5折交叉验证,并提交了每个折模型预测结果的平均值。

得分

我们表现最佳的单模型是一个带有SN权重的650M LSTM模型。CV = 0.12847,Public LB = 0.14308(5折集成)
我们表现最佳的集成模型包含15个模型(总计75折),CV = 0.12478,Public LB = 0.14174

未奏效的方法

来自RNA-FM的预训练模型不如我们基于ESM2的预训练模型表现好。

ESM2还可以输出接触预测。为实现这一点,它会堆叠所有注意力激活值,然后应用一个回归头。我们尝试利用它通过辅助损失来预测bpp值,这在一定程度上提升了竞赛指标得分。但这带来了4倍的空间和2倍的时间开销,导致我们无法在ESM2的150M和650M变体上使用该方法。

Bo 与 CPMP

同比赛其他方案