🚀 GENA-LM (gena-lm-bert-large-t2t)
GENA-LM是一系列用于长DNA序列的开源基础模型。这些模型基于Transformer架构,在人类DNA序列上进行训练,能够为DNA序列分析提供强大的支持。
项目链接
🚀 快速开始
模型差异
GENA-LM (gena-lm-bert-large-t2t
) 与DNABERT的主要区别如下:
- 使用BPE分词,而非k-mers;
- 输入序列大小约为4500个核苷酸(512个BPE标记),而DNABERT为512个核苷酸;
- 在T2T人类基因组组装上进行预训练,而不是GRCh38.p13。
下游任务微调模型
本仓库还包含在下游任务上进行微调的模型:
以及在我们的 GENA-Web 基因组序列注释网络工具中使用的模型:
💻 使用示例
基础用法
如何加载用于掩码语言建模的预训练模型
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained('AIRI-Institute/gena-lm-bert-large-t2t')
model = AutoModel.from_pretrained('AIRI-Institute/gena-lm-bert-large-t2t', trust_remote_code=True)
高级用法
如何加载预训练模型以在分类任务上进行微调
方法一:从GENA-LM仓库获取模型类
git clone https://github.com/AIRI-Institute/GENA_LM.git
from GENA_LM.src.gena_lm.modeling_bert import BertForSequenceClassification
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained('AIRI-Institute/gena-lm-bert-large-t2t')
model = BertForSequenceClassification.from_pretrained('AIRI-Institute/gena-lm-bert-large-t2t')
或者,你可以直接下载 modeling_bert.py 并将其放在你的代码附近。
方法二:从HuggingFace AutoModel获取模型类
from transformers import AutoTokenizer, AutoModel
model = AutoModel.from_pretrained('AIRI-Institute/gena-lm-bert-large-t2t', trust_remote_code=True)
gena_module_name = model.__class__.__module__
print(gena_module_name)
import importlib
cls = getattr(importlib.import_module(gena_module_name), 'BertForSequenceClassification')
print(cls)
model = cls.from_pretrained('AIRI-Institute/gena-lm-bert-large-t2t', num_labels=2)
📚 详细文档
模型描述
GENA-LM (gena-lm-bert-large-t2t
) 模型以掩码语言模型(MLM)的方式进行训练,遵循BigBird论文中提出的方法,对15%的标记进行掩码。gena-lm-bert-large-t2t
的模型配置与 bert-large-uncased
类似:
- 最大序列长度:512
- 层数:24
- 注意力头数:16
- 隐藏层大小:1024
- 词汇表大小:32k
我们使用最新的T2T人类基因组组装(https://www.ncbi.nlm.nih.gov/assembly/GCA_009914755.3/)对 gena-lm-bert-large-t2t
进行预训练。数据通过从1000个基因组SNP(gnomAD数据集)中采样突变进行增强。预训练进行了1750000次迭代,批次大小为256,序列长度为512个标记。我们使用 Pre-Layer normalization 对Transformer进行了修改。
评估
有关评估结果,请参阅我们的论文:https://academic.oup.com/nar/article/53/2/gkae1310/7954523
📄 许可证
引用
@article{GENA_LM,
author = {Fishman, Veniamin and Kuratov, Yuri and Shmelev, Aleksei and Petrov, Maxim and Penzar, Dmitry and Shepelin, Denis and Chekanov, Nikolay and Kardymon, Olga and Burtsev, Mikhail},
title = {GENA-LM: a family of open-source foundational DNA language models for long sequences},
journal = {Nucleic Acids Research},
volume = {53},
number = {2},
pages = {gkae1310},
year = {2025},
month = {01},
issn = {0305-1048},
doi = {10.1093/nar/gkae1310},
url = {https://doi.org/10.1093/nar/gkae1310},
eprint = {https://academic.oup.com/nar/article-pdf/53/2/gkae1310/61443229/gkae1310.pdf},
}