CaptionBERT 8192 Rotary
контрольное сравнение позиционных схем
Это исследовательский релиз CaptionBERT v2 от AbstractPhil: короткий контролируемый скрин четырёх вариантов — learned-position (A0), обычного token RoPE (A1), sentence-address rotary (A2) и его anchor-абляции (A3). Каждый arm обучен с нуля на одном и том же консенсусе пяти teacher-моделей; для инференса нужен только один student и токенизатор. Размеры: 54,1–58,3 млн параметров, выход — L2-нормализованные 768-мерные эмбеддинги.
🔥 Ключевые особенности
- ✅ Четыре arm и по два seed: A0, A1, A2, A3; слабые результаты тоже сохранены.
- 🔥 Одинаковый рецепт: 2 эпохи, contrastive batch 2048, symmetric InfoNCE + MSE, masked mean, 768-d L2-normalized.
- 🧘 Обучение с нуля против precomputed five-teacher consensus; teacher-модели при инференсе не загружаются.
- 🦾 В карточке есть rotary-диагностика: address kernels, simplex coherence, q/k-band removals, per-layer/head energy.
- ⬇ Средний Spearman на 8 STS-задачах у arm/seed — 0,4934–0,5373; это короткий скрин, а не полный прогон v2.
😎 Пример
from captionbert_rotary.inference import SentenceEncoder
encoder = SentenceEncoder.from_pretrained(
'AbstractPhil/captionbert-8192-rotary',
run='experiments/817daa9e66a8119dc6b18a9b63fad32490d1c891e5f26750e91125d9e5e14e6c/A2-seed1',
revision='4e75920dfe6ddd820db321608a853c2097533f4e')
embeddings = encoder.encode(['A cat watches the street.', 'A person walks nearby.'])
# embeddings: (2, 768), L2-normalized
Подробнее
Бенчмарк: средний Spearman 0,5373 у A3/1 и 0,5312 у A2/1; полный v2 в карточке указан как 0,6077 после 26,9M строк и 52 548 шагов — это исторический контекст, а не сопоставимый контроль для этого скрина.Требования к VRAM не указаны; нужен Python 3.11–3.13 и пакет captionbert-trainer v0.2.0. Это не корневой Transformers AutoModel checkpoint, а набор явных run-артефактов.
Ограничения: скрин ~2 000 шагов и почти весь в warmup, обучение на 256 токенах; 8192 в имени не гарантирует 8k-контекст; sentence ID clamp на 24; результаты зависят от seed.








Комментарии