MirrorDNA (mirrordna-tiny)
компактная DNA-модель с точной strand-эквивариантностью
MirrorDNA — лёгкая языковая модель для DNA от nirjhor123 с обучаемым токенизатором, который точно эквивариантен к reverse complement: симметричный boundary router режет последовательность и её reverse complement на зеркальные чанки при любых значениях параметров, поэтому обе цепи одной и той же DNA получают одинаковые токены. Архитектура — shared-weight convolutional encoder и symmetric router; всего 2,35 млн параметров. Pretraining — masked language modelling на hg38.
😎 Ключевые особенности
- 👌 Точная strand-эквивариантность: последовательность и её reverse complement дают зеркальные чанки и одинаковые токены.
- 🤓 Всего 2,35 млн параметров; код модели хранится вместе с весами.
- 📝 Pretraining: masked language modelling на hg38 (тренировочные интервалы Basenji/Enformer), окна 1 024 bp, 2^20 оснований на шаг, 10 000 шагов (10,5 млрд оснований), 15% оснований замаскировано.
- 😎 Есть strand-invariant
pooled_featuresи orientation-aware режим для strand-зависимых меток. - 🤝 Предназначена для классификации и регрессии DNA-последовательностей, в основном через fine-tuning.
📝 Пример
import json, sys, torch
from huggingface_hub import snapshot_download
path = snapshot_download("nirjhor123/mirrordna-tiny")
sys.path.insert(0, path)
import rcchunk as rk
cfg = json.load(open(f"{path}/config.json"))
model = rk.build(cfg["variant"], cfg["model"])
out = model(torch.from_numpy(rk.encode("ACGT" * 256)).long()[None], decode=False)
Подробнее
Pretraining: hg38, окна 1 024 bp, 10 000 шагов, 10,5 млрд оснований, 15% masked.Конкретных цифр бенчмарков в карточке нет; авторы отмечают, что модель маленькая и на ряде бенчмарков крупные модели точнее.
Ограничения: pretraining только на человеческом геноме, окна 1 kb; для strand-зависимых меток нужны orientation-aware features.
Требования к VRAM не указаны; параметров — 2,35 млн.






Комментарии