/ Модель

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

Контекст
1 024 токена
Лицензия
MIT
Архитектура
rnafm · dense
Библиотека
transformers
Опубликована
5 июн 2026

mRNA-FM

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

Трансформер mRNA-FM восстанавливает замаскированные кодоны и формирует представления кодирующих последовательностей мРНК для последующего анализа.

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

Бенчмарки

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

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

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

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

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

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

mRNA-FM — плотный 12-слойный трансформер BERT-типа для анализа кодирующих последовательностей мРНК, разработанный Chen et al.; порт для Hugging Face поддерживает Taykhoom Dalal. Модель предварительно обучена на 45 млн последовательностей CDS из RefSeq с помощью masked language modeling. Она использует токенизацию по кодонам: каждый токен соответствует триплету нуклеотидов; размерность представлений — 1280, число голов внимания — 20.

Модель предназначена для восстановления замаскированных кодонов и получения представлений последовательностей для последующей классификации, регрессии и других задач тонкой настройки. На вход подают последовательность в РНК-обозначении с U вместо T; её длина должна быть кратна трём, а неполный конечный триплет отбрасывается. Порт совместим с Transformers и поддерживает реализации внимания SDPA и Flash Attention 2. Лицензия — MIT.

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

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

Ограничения

Принимает только последовательности в РНК-нотации, длина которых кратна трём; неполный конечный кодон молча отбрасывается. Предобучение описано на кодирующих последовательностях мРНК, поэтому применимость к другим типам РНК не подтверждена.

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

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

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

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

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

Открыть на Hugging Face

mRNA-FM

A 12-layer BERT-style transformer pre-trained on 45 million mRNA coding sequences (CDS) using codon (3-mer) tokenisation.

Architecture

ParameterValue
Layers12
Attention heads20
Embedding dimension1280
FFN hidden dimension5120 (GELU)
Vocabulary size73
Positional encodingLearned
NormalizationLayerNorm (pre-attention/pre-FFN and final)
ArchitectureESM-1b-style pre-LN Transformer encoder
Max sequence length1024 total tokens (1022 codons = 3066 nucleotides, plus CLS/EOS)

Vocabulary: <cls> (0), <pad> (1), <eos> (2), <unk> (3), 64 standard RNA codons (indices 4-67), 4 null-padding tokens (68-71), <mask> (72).

Pretraining

  • Objective: Masked language modelling (codon-level, 15% masking rate)
  • Data: RefSeq -- 45 million mRNA coding sequences
  • Source checkpoint: mRNA-FM_pretrained.pth from cuhkaih/rnafm

Tokenisation

mRNA-FM uses codon (3-mer) tokenisation: the input sequence is split into consecutive non-overlapping codons (triplets) and each codon is mapped to a single token. The model therefore only accepts sequences whose length is a multiple of 3.

Input sequences must use RNA notation (U, not T). Convert before tokenising:

seq = seq.replace("T", "U")

Parity Verification

Hidden-state representations verified identical (max abs diff = 0.00) to the original implementation at all 13 representation levels (embedding + 12 transformer layers). Verified on GPU (CUDA) with PyTorch 2.7 / transformers 4.57.6. SDPA numerical differences are expected (~3e-4 max diff over 12 layers) and are not a correctness issue.

Related Models

See the full RNA-FM collection.

ModelTraining dataEmbedding dimNotes
RNA-FM23.7 M ncRNA640Character tokenisation
mRNA-FM45 M CDS1280This model

Usage

Embedding generation

import torch
from transformers import AutoTokenizer, AutoModel

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

# Sequences must be RNA (U not T) and length divisible by 3 (codons)
sequences = [
    "AUGGGGUGCGAUCAUACCAGCACUAAUGCCCUCCUGGGAAGUCCUCGUGUUGCA",
    "AUGCUAGCUAGCUAGCUAUG",
]
enc = tokenizer(sequences, return_tensors="pt", padding=True)

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

cls_emb   = out.last_hidden_state[:, 0, :]   # (batch, 1280) -- CLS token
token_emb = out.last_hidden_state             # (batch, n_codons+2, 1280) -- per-codon

# Intermediate layers
out_all = model(**enc, output_hidden_states=True)
layer6_emb = out_all.hidden_states[6]

CDS-aware embedding (mRNA sequences)

For mRNA sequences with a CDS track, use batch_encode_with_cds to apply T→U conversion, extract only the coding region, chunk to codon boundaries, and encode — all in one call.

import numpy as np
import torch
from transformers import AutoTokenizer, AutoModel

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

# Binary CDS track: 1 at the first nucleotide of each codon in the CDS, 0 elsewhere
sequences = ["ATGCTAGCTAGCTAGCTATGCTAGCTAGCTAGCT"]
cds = [np.array([0]*5 + [1, 0, 0]*9 + [0]*2)]  # example

enc, chunk_counts = tokenizer.batch_encode_with_cds(
    sequences, cds, return_tensors="pt", padding=True, add_special_tokens=True
)
with torch.no_grad():
    out = model(**enc)

# chunk_counts[i] = number of chunks produced for sequences[i]
# mean-pool non-special tokens for each sequence:
hidden = out.last_hidden_state  # (total_chunks, seq_len, 1280)

MLM logits

import torch
from transformers import AutoTokenizer, AutoModelForMaskedLM

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

enc = tokenizer(["AUG<mask>GCUAUG"], return_tensors="pt")
with torch.no_grad():
    logits = model(**enc).logits   # (1, n_codons+2, 73)

Fine-tuning

Standard HF conventions. Use the CLS token embedding (out.last_hidden_state[:, 0, :]) as input to a classification or regression head for sequence-level tasks. Mean-pool over codon positions (excluding CLS and EOS) for codon-level aggregation.

Implementation Notes

The original implementation uses F.multi_head_attention_forward (eager). This HF port adds attn_implementation="sdpa" and attn_implementation="flash_attention_2" support, which were not part of the original codebase.

Each codon token represents exactly one triplet of nucleotides. The tokeniser splits the raw sequence into non-overlapping codons; any trailing nucleotides that do not form a complete codon are silently discarded.

Citation

@article{chen2022_rnafm,
  title   = {Interpretable {RNA} Foundation Model from Unannotated Data for Highly Accurate {RNA} Structure and Function Predictions},
  author  = {Chen, Jiayang and Hu, Zhihang and Sun, Siqi and Tan, Qingxiong and Wang, Yixuan and Yu, Qinze and Zong, Licheng and Hong, Liang and Xiao, Jin and Shen, Tao and King, Irwin and Li, Yu},
  journal = {arXiv preprint arXiv:2204.00300},
  year    = {2022},
  doi     = {10.48550/arXiv.2204.00300}
}

Credits

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

License

MIT, following the original repository.

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

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

GPU в ailist

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

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

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

Класс архитектуры
RnaFmForMaskedLM
Ревизия весов
0630645

0 моделей