/ Модель

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

Контекст
440 токенов
Параметры
432 720
Лицензия
Своя лицензия
Архитектура
bert_updated · dense
Библиотека
transformers
Опубликована
28 мая 2026

RNABERT

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

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

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

Бенчмарки

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

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

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

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

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

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

Taykhoom поддерживает порт RNABERT — BERT-подобной языковой модели для последовательностей РНК, разработанной Akiyama и Sakakibara. Модель предварительно обучена на некодирующих последовательностях РНК из Rfam 14.3 с помощью masked language modeling и контрастной задачи структурного выравнивания. Порт сверён с исходными весами RNABERT.

Модель предназначена для заполнения маскированных нуклеотидов, получения представлений последовательностей, кластеризации РНК и структурного выравнивания. Архитектура включает 6 слоёв и 12 голов внимания, словарь из специальных токенов и нуклеотидов A, U, G, C; последовательности токенизируются посимвольно, а T преобразуется в U. Контекст составляет до 440 токенов. Модель принимает текстовые последовательности РНК и выдаёт предсказания токенов или представления векторов.

Это специализированная модель, а не универсальная языковая модель. У неё нет токена CLS, поэтому для задач на уровне последовательности README рекомендует усреднять представления непустых позиций. Для загрузки в Transformers требуется разрешить trust_remote_code. Лицензия указана как other, без уточнения условий в доступных данных.

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

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

Ограничения

Контекст ограничен 440 токенами, а словарь рассчитан на нуклеотиды РНК; T преобразуется в U. У модели нет токена CLS, для задач на уровне всей последовательности требуется mean pooling; для загрузки требуется trust_remote_code.

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

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

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

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

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

Открыть на Hugging Face

RNABERT

Minimal HuggingFace port of the RNABERT variant of RNABERT -- a BERT-style RNA language model pretrained on non-coding RNA sequences from Rfam 14.3 for RNA clustering and structural alignment.

Architecture

ParameterValue
Layers6
Attention heads12
Embedding dimension120
FFN hidden dimension40 (GELU)
Vocabulary size6
TokenizationSingle-nucleotide (1-mer)
Positional encodingLearned absolute
NormalizationLayerNorm (post-LN; eps=1e-12)
ArchitecturePost-LN BERT encoder
Max sequence length440 tokens (one nucleotide per token)

Vocabulary: <pad> (0), <mask> (1), A (2), U (3), G (4), and C (5).

No CLS or EOS tokens are added. Sequences are tokenized character-by-character; T is silently converted to U.

Pretraining

  • Objective: Masked Language Modeling (MLM) + Structural Alignment Learning (SAL, a pairwise structural alignment contrastive objective)
  • Data: Full Rfam 14.3 dataset (~400 nt sequences, as described by the upstream repository)
  • Source checkpoint: bert_mul_2.pth (distributed inside RNABERT_pretrained.pth zip, Google Drive)
  • Checkpoint selection: The original repository publishes one pretrained checkpoint; this is it.

Parity Verification

All 7 backbone representation levels (embedding + 6 transformer blocks) matched the original bert_mul_2.pth weights (max abs diff = 3.19e-6, atol=1e-5), with and without padding, for eager and SDPA. Verified on GPU with PyTorch 2.7.1 / CUDA 12.9.

Related Models

See the full RNABERT collection.

ModelParametersNotes
Taykhoom/RNABERT494KThis model

Usage

Embedding generation

import torch
from transformers import AutoTokenizer, AutoModel

tokenizer = AutoTokenizer.from_pretrained("Taykhoom/RNABERT", trust_remote_code=True)
model = AutoModel.from_pretrained("Taykhoom/RNABERT", trust_remote_code=True)
model.eval()

sequences = ["AUGCAUGCAUGC", "GCUAGCUAGCUA"]
enc = tokenizer(sequences, return_tensors="pt", padding=True)

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

# Token-level embeddings
token_emb = out.last_hidden_state   # (batch, seq_len, 120)

# Mean-pool over non-padding positions
mask = enc["attention_mask"].unsqueeze(-1).float()
mean_emb = (token_emb * mask).sum(1) / mask.sum(1)  # (batch, 120)

# Intermediate layers
out_all = model(**enc, output_hidden_states=True)
layer3_emb = out_all.hidden_states[3]   # (batch, seq_len, 120)

MLM logits

from transformers import AutoTokenizer, AutoModelForMaskedLM

tokenizer = AutoTokenizer.from_pretrained("Taykhoom/RNABERT", trust_remote_code=True)
model = AutoModelForMaskedLM.from_pretrained("Taykhoom/RNABERT", trust_remote_code=True)
model.eval()

enc = tokenizer(["AUG<mask>AUG"], return_tensors="pt")
with torch.no_grad():
    logits = model(**enc).logits   # (1, seq_len, 6)

Faster attention backends

import torch
from transformers import AutoModel

# SDPA (PyTorch 2.0+) -- recommended for production
model = AutoModel.from_pretrained(
    "Taykhoom/RNABERT",
    trust_remote_code=True,
    attn_implementation="sdpa",
)

# Flash Attention 2 (requires flash-attn)
model = AutoModel.from_pretrained(
    "Taykhoom/RNABERT",
    trust_remote_code=True,
    attn_implementation="flash_attention_2",
    dtype=torch.float16,
)

Fine-tuning

The model has no CLS token, so use mean pooling over non-padding positions for sequence-level tasks.

import torch.nn as nn
from transformers import AutoModel

model = AutoModel.from_pretrained("Taykhoom/RNABERT", trust_remote_code=True)

class RNAClassifier(nn.Module):
    def __init__(self, base, num_labels):
        super().__init__()
        self.base = base
        self.head = nn.Linear(120, num_labels)

    def forward(self, input_ids, attention_mask):
        out = self.base(input_ids, attention_mask=attention_mask)
        mask = attention_mask.unsqueeze(-1).float()
        pooled = (out.last_hidden_state * mask).sum(1) / mask.sum(1)
        return self.head(pooled)

Implementation Notes

The model config reuses the shared BERT-updated implementation (model_type: "bert_updated"), while tokenization remains RNABERT-specific. trust_remote_code=True is required for both the tokenizer and the model.

The original implementation uses standard scaled dot-product attention (post-LN BERT). This HF port adds attn_implementation="sdpa" and attn_implementation="flash_attention_2" support, which were not part of the original codebase.

Citation

@article{akiyama2022_rnabert,
  title   = {Informative {RNA} base embedding for {RNA} structural alignment and clustering by deep representation learning},
  author  = {Akiyama, Manato and Sakakibara, Yasubumi},
  journal = {NAR Genomics and Bioinformatics},
  volume  = {4},
  number  = {1},
  pages   = {lqac012},
  year    = {2022},
  doi     = {10.1093/nargab/lqac012}
}

Credits

Original model and code by Akiyama and Sakakibara. Source: GitHub. Hugging Face port maintained by Taykhoom Dalal.

License

No license is specified in the original repository. Please contact the authors before redistributing or using in commercial settings.

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

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

GPU в ailist

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

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

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

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

0 моделей