/ Модель

Характеристики

Контекст
1 026 токенов
Параметры
25,2 млн
Лицензия
CC BY 4.0
Архитектура
bert_updated · dense
Библиотека
transformers
Опубликована
3 июн 2026

SpliceBERT-1024nt

Заполнение пропусковТекст → текст3 профессии

BERT-модель для предсказания замаскированных нуклеотидов и получения представлений последовательностей РНК позвоночных.

98скачиваний за 30 дней0лайковвеса обновлены26 авг 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

SpliceBERT-1024nt — перенос модели SpliceBERT на Hugging Face, подготовленный Taykhoom Dalal на основе оригинальной работы Chen et al. Это языковая модель BERT для последовательностей РНК, обученная предсказывать замаскированные нуклеотиды. Она принимает фрагменты длиной от 64 до 1024 нуклеотидов, представленные отдельными токенами; символ U нормализуется в T. Контекст модели составляет 1026 токенов с учётом специальных токенов, размер — 25,2 млн параметров.

Модель обучена на более чем двух миллионах первичных последовательностей РНК 72 видов позвоночных. Её можно использовать для заполнения пропусков и получения представлений последовательностей РНК, а также дообучать для задач классификации последовательностей. Архитектура включает 6 слоёв BERT, 16 голов внимания и размерность эмбеддингов 512. Лицензия — CC BY 4.0.

Пуллер модели не имеет обученных весов: его выход не следует использовать без дообучения. Для задач уровня последовательности в README рекомендуется усреднять скрытые состояния обычных нуклеотидных позиций.

Сценарии применения

  • восстановление замаскированных нуклеотидов в последовательности РНК
  • получение эмбеддингов фрагментов РНК
  • подготовка представлений РНК для дообучения классификатора последовательностей

Ограничения

Пуллер модели не содержит обученных весов, поэтому pooler_output нельзя использовать без дообучения. Модель обучена на последовательностях позвоночных; переносимость на другие организмы в карточке не описана.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

SpliceBERT-1024nt

Minimal HuggingFace port of the vertebrate-1024nt variant of SpliceBERT -- a BERT-based RNA language model trained with masked language modeling on variable-length 64-1024 nt fragments from over 2 million primary RNA sequences across 72 vertebrates.

Architecture

ParameterValue
Layers6
Attention heads16
Embedding dimension512
FFN hidden dimension2048 (GELU)
Vocabulary size10
Positional encodingLearned absolute
NormalizationLayerNorm (post-residual, eps=1e-12)
ArchitecturePost-LN BERT encoder
Max sequence length1024 nt (1026 tokens with [CLS]/[SEP])
Checkpoint size~19.7M parameters

Vocabulary: [PAD]=0, [UNK]=1, [CLS]=2, [SEP]=3, [MASK]=4, N=5, A=6, C=7, G=8, T=9. Input U is normalized to T.

Pretraining

  • Objective: Masked language modeling (MLM)
  • Data: >2 million vertebrate primary RNA sequences from 72 species
  • Sequence format: Single-nucleotide tokenization with spaces; U converted to T
  • Source checkpoint: SpliceBERT.1024nt/pytorch_model.bin (from zenodo:7995778)

Checkpoint selection

The 1024nt variant is the primary SpliceBERT model trained on variable-length vertebrate sequences. Use this variant for general-purpose RNA embedding. The 510nt variants are trained on fixed-length fragments and require exact 510nt input.

Parity Verification

Hidden-state representations verified (max abs diff < 1e-5) against the original checkpoint at all 7 representation levels (embedding + 6 transformer layers), for both eager and sdpa attention backends. Verified on GPU with PyTorch 2.7.1 / CUDA 12.9.

Related Models

See the full SpliceBERT collection.

ModelContextTraining dataNotes
SpliceBERT-1024nt1024 nt72 vertebratesThis model
SpliceBERT-510nt510 nt (fixed)72 vertebratesFixed-length; requires exact 510 nt input
SpliceBERT-human-510nt510 nt (fixed)Human onlyHuman-specific; requires exact 510 nt input

Usage

Embedding generation

The tokenizer automatically handles U->T conversion and single-nucleotide spacing. Pass raw sequences directly.

import torch
from transformers import AutoTokenizer, AutoModel

tokenizer = AutoTokenizer.from_pretrained("Taykhoom/SpliceBERT-1024nt", trust_remote_code=True)
model = AutoModel.from_pretrained("Taykhoom/SpliceBERT-1024nt", trust_remote_code=True)
model.eval()

seq = "ACGUACGUACGUACGU"  # U->T handled automatically
enc = tokenizer(seq, return_tensors="pt")

with torch.no_grad():
    out = model(**enc, output_hidden_states=True)

# Mean pooling over non-special tokens
hidden = out.last_hidden_state[0]  # (seq_len+2, 512)
token_emb = hidden[1:-1]           # strip [CLS] and [SEP]
mean_emb = token_emb.mean(dim=0)   # (512,)

# Intermediate layers
layer3_emb = out.hidden_states[3]  # (1, seq_len+2, 512)

MLM logits

import torch
from transformers import AutoTokenizer, AutoModelForMaskedLM

tokenizer = AutoTokenizer.from_pretrained("Taykhoom/SpliceBERT-1024nt", trust_remote_code=True)
model = AutoModelForMaskedLM.from_pretrained("Taykhoom/SpliceBERT-1024nt", trust_remote_code=True)
model.eval()

seq = "A C G [MASK] A C G T"
enc = tokenizer(seq, return_tensors="pt")
with torch.no_grad():
    logits = model(**enc).logits  # (1, seq_len, 10)

Fine-tuning

Standard HF conventions. For sequence-level tasks, use mean pooling of non-special token positions (positions 1 to -1) as input to a prediction head.

Implementation Notes

The original checkpoint was saved as BertForMaskedLM with transformers==4.24.0. This port uses BERT-updated, which adds attn_implementation="sdpa" and attn_implementation="flash_attention_2" support not present in the original codebase.

The pooler weights (pooler.dense) are not present in the original checkpoint and are not included in the saved model.safetensors. add_pooling_layer=True (the default) allocates the pooler layer but its weights are randomly initialized -- do not use pooler_output without fine-tuning.

model = AutoModel.from_pretrained("Taykhoom/SpliceBERT-1024nt",
                                  trust_remote_code=True,
                                  attn_implementation="sdpa")

Citation

@article{chen2024_splicebert,
  title   = {Self-supervised learning on millions of primary {RNA} sequences from 72 vertebrates improves sequence-based {RNA} splicing prediction},
  author  = {Chen, Ken and Zhou, Yue and Ding, Maolin and Wang, Yu and Ren, Zhixiang and Yang, Yuedong},
  journal = {Briefings in Bioinformatics},
  volume  = {25},
  number  = {3},
  pages   = {bbae163},
  year    = {2024},
  doi     = {10.1093/bib/bbae163}
}

Credits

Original model and code by Chen et al. Source: GitHub. Hugging Face port maintained by Taykhoom Dalal.

License

The checkpoint weights are distributed under CC BY 4.0 by the upstream Zenodo record. The original SpliceBERT source code is BSD 3-Clause licensed.

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers · fill-mask

Нельзя запустить

Модели нужен код из репозитория; автор пока не в списке доверенных организаций.

Класс архитектуры
BertForMaskedLM
Ревизия весов
8c84699

0 моделей