587. Stanford Ribonanza RNA Folding | stanford-ribonanza-rna-folding
首先,我要感谢所有参赛者。我的解决方案是一种廉价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的架构

它只是从原始序列中切出一定长度的序列。
在进行回归时,它用多种方式切割序列,并对每个字符的预测结果进行集成。集成非常重要,它能将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 |