RiNALMo项目介绍
RiNALMo是一个基于非编码RNA序列预训练的大规模语言模型,它采用了类似BERT的架构和掩码语言建模(MLM)的训练方法。这个项目旨在为RNA相关任务提供一个通用的预训练模型,特别是在RNA结构预测方面表现出色。
模型概述
RiNALMo模型具有33层、1280的隐藏层大小、20个注意力头,中间层大小为5120。它拥有约6.5亿个参数,可以处理最多1022个标记的序列。这个模型是在大量非编码RNA序列上进行自监督学习训练的,无需人工标注数据。
训练数据
模型的训练数据来自多个权威的RNA数据库,包括RNAcentral、Rfam、Ensembl基因组浏览器和Nucleotide数据库。训练集包含了3600万个独特的非编码RNA序列,涵盖了广泛的RNA类型和功能。为了确保训练批次中序列的多样性,研究者使用MMSeqs2工具将序列聚类成1700万个簇,并在每个批次中从不同的簇中采样序列。
训练过程
RiNALMo采用了与BERT类似的掩码语言建模策略。在训练过程中,模型会随机掩盖输入序列中15%的标记,然后尝试预测这些被掩盖的标记。具体来说:
- 80%的情况下,被掩盖的标记会被替换为特殊标记
- 10%的情况下,被掩盖的标记会被随机替换为其他不同的标记
- 剩下10%的情况下,被掩盖的标记保持不变
模型在7台配备80GB内存的NVIDIA A100 GPU上训练了6个轮次,使用了余弦学习率调度器,初始学习率为5e-5,最小学习率为1e-5,批次大小为1344。
模型应用
RiNALMo模型可以用于多种RNA相关的任务,包括:
- 序列填充:预测RNA序列中缺失或未知的核苷酸。
- 特征提取:从RNA序列中提取有意义的特征表示。
- 序列分类或回归:对整个RNA序列进行分类或预测特定属性。
- 核苷酸级别的分类或回归:对序列中的每个核苷酸进行预测。
- 接触预测:预测RNA序列中核苷酸之间的空间接触关系。
使用方法
用户可以通过MultiMolecule库轻松使用RiNALMo模型。该库提供了简单的接口,允许用户进行序列填充、特征提取、以及针对不同任务的微调。模型支持PyTorch框架,可以方便地集成到现有的深度学习管道中。
项目意义
RiNALMo项目为RNA研究领域提供了一个强大的预训练模型,它可以捕捉RNA序列的复杂模式和结构信息。这个模型有潜力在RNA结构预测、功能注释、药物设计等多个领域发挥重要作用,为RNA生物学研究提供新的工具和见解。
开源与许可
RiNALMo模型采用AGPL-3.0开源许可证发布,鼓励学术界和工业界的研究者使用和改进这个模型。项目的代码、模型权重和详细文档都可以在GitHub和Hugging Face上找到,为RNA研究社区提供了宝贵的资源。