🚀 变换器(transformers)
变换器库提供了一系列预训练模型,可用于自然语言处理等任务。这里主要介绍如何使用 Caduceus 模型进行掩码语言建模,以及该模型的详细信息。
🚀 快速开始
直接使用预训练模型
要使用预训练的掩码语言模型,可使用以下代码片段:
from transformers import AutoModelForMaskedLM, AutoTokenizer
model_name = "kuleshov-group/caduceus-ps_seqlen-131k_d_model-256_n_layer-16"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForMaskedLM.from_pretrained(model_name)
从头实例化模型进行训练
你也可以从头实例化一个模型,以便在自己的数据上进行训练,如下所示:
from transformers import AutoConfig, AutoModelForMaskedLM
config_overrides = {}
config = AutoConfig.from_pretrained(
"kuleshov-group/caduceus-ps_seqlen-131k_d_model-256_n_layer-16",
**config_overrides,
)
model = AutoModelForMaskedLM.from_config(config)
📚 详细文档
模型详情
这是 Caduceus - PS 模型,其隐藏维度为 256,包含 16 个 MambaDNA 层。该模型具有反向互补(RC)等变性,因此在预训练或下游微调期间训练此模型时,无需进行 RC 数据增强。请注意,该模型的隐藏状态将是非 RC 等变对应模型的 两倍。
对于下游任务的训练和推理,为了确保下游输出具有 RC 不变性,可以在隐藏状态及其 RC 上运行下游模型,或者在将隐藏状态及其 RC 传递给下游模型之前对它们进行平均。要对隐藏状态进行 RC 操作,可以使用:hidden_states.flip(dim=(-2, -1))
,这将沿着序列长度和通道维度进行翻转。
该模型在人类参考基因组上进行了预训练,序列长度为 131,072,共训练了 50k 步(每步包含约 100 万个碱基对 / 标记)。
更多详细信息,请参阅我们的论文:Caduceus: Bi - Directional Equivariant Long - Range DNA Sequence Modeling。
引用信息
请使用以下 BibTeX 引用我们的工作:
@article{schiff2024caduceus,
title={Caduceus: Bi-Directional Equivariant Long-Range DNA Sequence Modeling},
author={Schiff, Yair and Kao, Chia-Hsiang and Gokaslan, Aaron and Dao, Tri and Gu, Albert and Kuleshov, Volodymyr},
journal={arXiv preprint arXiv:2403.03234},
year={2024}
}
模型卡片联系人
Yair Schiff (yzs2@cornell.edu)
📄 许可证
本项目采用 Apache - 2.0 许可证。