structRFM
RNA-модель с исправленным токенизатором
structRFM — компактная BERT-энкодерная foundation-модель для RNA от Taykhoom (порт оригинальной модели Zhu et al.). 12 слоёв, 12 голов, скрытая размерность 768; 85,5M параметров энкодера и 0,6M в MLM-голове. Предобучена structure-guided masked language modeling на ~21M последовательностей RNAcentral с вторичными структурами из MUSES.
⚡ Ключевые особенности
- 🔧 Исправлен токенизатор: приводит к верхнему регистру, заменяет T на U и сам добавляет [CLS]/[SEP] — как в upstream-препроцессинге.
- ✔ Веса бит-в-бит совпадают с оригинальным релизом v0.0.8; проверены все 13 уровней представлений и MLM-логиты.
- 🔥 Добавлена поддержка flash_attention_2; также работают eager и sdpa.
- 📌 Словарь всего из 10 токенов: [UNK], [CLS], [SEP], [PAD], [MASK], A, U, C, G, N.
- 💡 Подходит для эмбеддингов, заполнения масок и файнтюна под задачи уровня последовательности, нуклеотида или пары.
💻 Пример
import torch
from transformers import AutoTokenizer, AutoModel
tok = AutoTokenizer.from_pretrained("Taykhoom/structRFM", trust_remote_code=True)
model = AutoModel.from_pretrained("Taykhoom/structRFM", trust_remote_code=True)
enc = tok(["GUCCCAACUCUUGCGGGGAGGGAU"], return_tensors="pt")
with torch.no_grad():
out = model(**enc)
cls_emb = out.last_hidden_state[:, 0, :] # (1, 768)
Подробнее
Проверка parity: максимальное абсолютное расхождение 0.00 с upstream v0.0.8 на NVIDIA H100 (PyTorch 2.7 / CUDA 12.9).Максимальная длина — 512 nt (514 токенов с [CLS] и [SEP]); длинные последовательности нужно нарезать на окна.
Pooler не входит в предобученный чекпоинт и инициализирован случайно — без файнтюна его использовать нельзя.
Лицензия MIT.








Комментарии