Columnist
нейросеть, которая понимает карты osu!mania 4K
Columnist — foundation-модель от Quenlla для 4K-карт osu!mania. Она читает карту как последовательность строк нот, учится на десятках тысяч неразмеченных карт и затем находит похожие карты, предсказывает паттерны и сложность. Энкодер — 256 измерений, 6 слоёв, 6,3 млн параметров.
🤓 Ключевые особенности
- 🤓 Энкодер на 6,3 млн параметров выдаёт 256-мерный отпечаток карты для поиска похожих.
- 📝 Предсказывает 31 метку: 11 категорий паттернов и 20 пользовательских тегов osu!.
- 👍 Оценивает сложность: star-like score, индикатор самой сложной секции и кривая сложности по строкам.
- ⌨ Использует только время нот в мс, концы long-note и видимые изменения scroll-speed — без snap и BPM-сетки.
- 🤝 Есть веса PyTorch и NumPy; сайт работает на NumPy-версии.
- 😎 Показывает pattern readout по нотам в реальном времени во время игры.
📝 Пример
from pathlib import Path
from embed_infer import load_encoder, embed_chart
import chart_tokens, prep_dataset
mode, keys, notes, sv = chart_tokens.parse(Path('chart.osu'))
tok, gap, sv_row, _ = prep_dataset.chart_rows(notes, sv)
enc = load_encoder('columnist-embed.pt')
vec = embed_chart(enc, tok, gap, sv_row) # 256-мерный отпечаток
Подробнее
Качество joint-модели: AP 0.698 для 11 категорий и 0.578 для 20 тегов.Сложность коррелирует с официальным star rating на Spearman 0.94; после калибровки MAE 0.33 звезды.
Похожесть: другие сложности той же песни попадают в 5 ближайших соседей в 74% случаев (recall@5).
Обучение: 62 161 неразмеченная карта для претрейна и 8 453 размеченные для файнтюна.
Ограничения: только 4K и минимум 64 строки; long-note — слабое место; вероятности не калиброваны; это исследовательский инструмент, а не официальный рейтинг osu!.






Комментарии