返回列表

36th solution : Cheap Transformers that can run on gaming laptops and does not require a BPP matrix

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

开始: 2023-09-07 结束: 2023-12-07 基因组学与生物信息 数据算法赛
第36名解决方案:可在游戏笔记本上运行的廉价Transformer

第36名解决方案:可在游戏笔记本上运行的廉价Transformer且无需BPP矩阵

作者:qhapaq49(MASTER)
发布时间:2023年12月8日

首先,我要感谢所有参赛者。我的解决方案是一种廉价Transformer,不需要BPP矩阵,并且可以在计算资源有限的情况下学习和预测,命名为"Cheap Transformers"。

对长序列的泛化能力

我的起点是Iafoss的出色工作,该工作使用简单的Transformer来预测反应性。

它在随机折叠分割的交叉验证中表现很好,但当训练和验证数据按序列长度分割时,性能较差,如下所示:

short_indices = df[df['sequence'].str.len() < 177].index.tolist()
long_indices = df[df['sequence'].str.len() > 177].index.tolist()

因此,我需要另一种架构来泛化到长序列。

廉价Transformer

这是廉价Transformer的架构

廉价Transformer架构

它只是从原始序列中切出一定长度的序列。

在进行回归时,它用多种方式切割序列,并对每个字符的预测结果进行集成。集成非常重要,它能将CV分数提高约0.005。

集成方法

该架构使用短序列,减少了训练时间,在执行过程中需要更少的GPU内存。因此,即使在游戏笔记本的GPU上也能运行得足够快。

最终提交

我准备了多个模型,切割序列长度分别为64、96和128,并使用不同的Transformer参数,创建了一个集成模型。还进行了伪标签处理,但对LB影响不大。正如你所看到的,集成对LB有贡献,但效果并不大,因此,使用单一模型会更加实用。

分数

方法 Public Private
Iafoss的架构 0.15669 0.20204
廉价Transformer (len=64) 0.15635 0.15661
廉价Transformer (len=96) 0.15458 0.15445
廉价Transformer (len=128) 0.15518 0.15625
Public最佳 (与Iafoss架构集成) 0.14716 0.18222
集成 0.15271 0.15346
同比赛其他方案