许可协议:cc-by-nc-sa-4.0
微件示例:
- 文本:ACCTGATTCTGAGTC
标签:
- DNA
- 生物学
- 基因组学
数据集:
- InstaDeepAI/human_reference_genome
- InstaDeepAI/nucleotide_transformer_downstream_tasks
核苷酸Transformer-5亿参数人类参考基因组模型
核苷酸Transformer是一系列基于全基因组DNA序列预训练的基础语言模型。与其他方法相比,我们的模型不仅整合了单一参考基因组的信息,还利用了来自3,200多个多样化人类基因组以及850个物种(包括模式和非模式生物)的DNA序列。通过全面严格的评估,我们证明这些大型模型相比现有方法能提供极其精确的分子表型预测。
该系列包含nucleotide-transformer-500m-human-ref——一个基于人类参考基因组预训练的5亿参数Transformer模型。模型提供Tensorflow和Pytorch双版本。
开发团队: InstaDeep、NVIDIA与慕尼黑工业大学
模型来源
使用方式
在下一版本发布前,需通过以下命令从源码安装transformers
库以使用本模型:
pip install --upgrade git+https://github.com/huggingface/transformers.git
以下代码片段展示如何从虚拟DNA序列获取逻辑输出与嵌入表示:
from transformers import AutoTokenizer, AutoModelForMaskedLM
import torch
tokenizer = AutoTokenizer.from_pretrained("InstaDeepAI/nucleotide-transformer-500m-human-ref")
model = AutoModelForMaskedLM.from_pretrained("InstaDeepAI/nucleotide-transformer-500m-human-ref")
max_length = tokenizer.model_max_length
sequences = ["ATTCCGATTCCGATTCCG", "ATTTCTCTCTCTCTCTGAGATCGATCGATCGAT"]
tokens_ids = tokenizer.batch_encode_plus(sequences, return_tensors="pt", padding="max_length", max_length = max_length)["input_ids"]
attention_mask = tokens_ids != tokenizer.pad_token_id
torch_outs = model(
tokens_ids,
attention_mask=attention_mask,
encoder_attention_mask=attention_mask,
output_hidden_states=True
)
embeddings = torch_outs['hidden_states'][-1].detach().numpy()
print(f"嵌入矩阵形状:{embeddings.shape}")
print(f"各词元嵌入:{embeddings}")
attention_mask = torch.unsqueeze(attention_mask, dim=-1)
mean_sequence_embeddings = torch.sum(attention_mask*embeddings, axis=-2)/torch.sum(attention_mask, axis=1)
print(f"序列平均嵌入:{mean_sequence_embeddings}")
训练数据
nucleotide-transformer-500m-human-ref模型基于GRCh38人类参考基因组预训练,该数据集作为HuggingFace数据集在此公开,包含30亿个核苷酸,约合5亿个6-mer词元。
训练流程
预处理
DNA序列使用核苷酸Transformer分词器处理,优先采用6-mer分词策略(详见代码库分词说明),词表大小4105。模型输入格式如下:
<CLS> <ACGTGT> <ACGTGC> <ACGGAC> <GACTAG> <TCAGCA>
分词后序列最大长度为1,000。
采用标准BERT风格掩码策略:
- 15%的词元被掩码
- 其中80%替换为
[MASK]
- 10%替换为随机词元
- 剩余10%保持原样
预训练
使用8块A100 80GB显卡在3000亿词元上训练,有效批尺寸100万词元,序列长度1000词元。采用Adam优化器(β1=0.9,β2=0.999,ε=1e-8),学习率在前16k步从5e-5线性预热至1e-4,之后按平方根衰减直至训练结束。
BibTeX引用格式
@article{dalla2023nucleotide,
title={核苷酸Transformer:构建与评估人类基因组学鲁棒基础模型},
author={Dalla-Torre, Hugo and Gonzalez, Liam and Mendoza Revilla, Javier and Lopez Carranza, Nicolas and Henryk Grywaczewski, Adam and Oteri, Francesco and Dallago, Christian and Trop, Evan and Sirelkhatim, Hassan and Richard, Guillaume等},
journal={bioRxiv},
pages={2023--01},
year={2023},
publisher={冷泉港实验室}
}