第三名解决方案 – 斯坦福 RNA 3D 折叠
第三名解决方案 – 斯坦福 RNA 3D 折叠
首先,感谢 Kaggle 和组织者举办如此具有挑战性和有趣的竞赛。
我们在 unseen 数据发布前的公共排行榜上排名第 3,并且在私有排行榜上也排名第 3。
早些时候我们分享了解决方案的简要概述。这篇帖子将详细介绍更多内容。
解决方案 summary
- DRfold2、Protenix 和 Boltz-1 的集成 (Ensemble)
- 使用新发布的 RNA 数据集微调 Protenix
详细解决方案
数据集
两个版本的训练数据和标签均可在此处获取:Google Drive。
模型
我们使用来自以下官方仓库的模型构建了集成:
我们最初探索了新的架构,但鉴于时间和资源限制,专注于微调和组合现有模型更为有效。
DRfold2
- 在 v1 数据上,对 <400 nt 的序列表现最好。
- 运行包含优化、聚类和所有 80 个发布 checkpoint 的完整 pipeline 太慢了。
- 我们发现 能量选择 + Arena 带来了大部分增益,而其他步骤对 TM-score 贡献不大但耗时显著。
- 因此,我们的 DRfold2 设置仅在 post-processing 中使用 能量选择 + Arena。
Protenix
- 在 NVIDIA GH200 (96GB 显存) 上训练。
- 由于内存问题,限制序列长度 <800 nt。
- 使用了来自 @lihaoweicvch 的微调代码(讨论链接)。
- 不带 rMSA 的微调没有帮助,所以我们带 rMSA 训练。
- 仅修改了
max_steps;完整数据集运行大约需要一天。
- 早期 checkpoint(2-3 个周期)表现较差;随着微调时间延长,性能有所提高。
- 我们也测试了 多个 Protenix 输出 → DRfold 能量选择 → Arena,但没有改善结果。
- 对于推理,我们修改了 @geraseva 的代码 以包含 rMSA。
Boltz-1
最终提交 & 代码
我们正在分享原始的提交 Notebook。部分代码被注释掉,显示了我们的实验历史。
-
DRfold2 + Protenix
- 公共排行榜:0.60338 | 私有排行榜:0.52787
- <400 nt: 3 × DRfold2 + 2 × Protenix (仅 RNA, 带 MSA)
- >400 nt: 2 × Protenix (仅 RNA) + 2 × Protenix (全部) + Protenix 基线
-
Protenix + Boltz
- 公共排行榜:0.61253 | 私有排行榜:0.54312
- 2 × Protenix (仅 RNA) + Protenix (全部) + Protenix 基线 + Boltz 基线
致谢
非常感谢分享资源和见解的社区成员:
- @hengck23 – 提供广泛的讨论和指导。
- @geraseva – 提供早期的 Protenix 推理代码。
- @lihaoweicvch – 提供 Protenix 微调代码。
- @youhanlee – 提供更新的 Boltz 推理代码。
最后,感谢 Eigen Company 为本次竞赛提供资源。