muscriptor-large-fork / README_BUNDLE.md
Nokia123543's picture
чистка: последнее упоминание другого движка
b168a5c verified
|
Raw History Blame Contribute Delete
5.88 kB

MuScriptor Large — бандл и инструменты

Репозиторий-склад для MuScriptor Large: веса, упаковщик, проверка целостности и сборщик самодостаточного архива на Kaggle.

Что здесь лежит

Файл Что делает
bundle/tools/verify_model.py Читает заголовок safetensors, сверяет размеры с конфигом, считает параметры, по флагу --hash отдаёт sha256. Память не расходует: читает только заголовок.
bundle/tools/pack_bundle.py Пакует веса, конфиг, карточку, инструменты и manifest.json в один .tar без сжатия. Хеш считается на лету.
bundle/tools/kaggle_build_ai.py Сборщик для Kaggle: скачивает веса, проверяет, собирает архив (и/или fp16), заливает сюда же в bundle/.
muscriptor_dynamics.py Громкость из аудио: у MuScriptor выхода velocity нет, модуль меряет RMS по записи и проставляет velocity в MIDI.
transcript_fix.py Пост-обработка нот: уточнение онсетов по производной энергии, снятие фантомов, склейка дублей, осторожный добор.
merge_transcriptions.py Голосование по нескольким проходам: выживает то, что подтвердили минимум --votes проходов.
pianoify_colab.py Полная ячейка Colab: Pianoify + MuScriptor, job API, туннели, вотчдог.
muscriptor_patch.py Патч той ячейки: режим muscriptor, разбор MIDI с velocity, пропуск загрузки модели в фортепианном режиме.
bundle/README_BUNDLE.md Этот файл.

Что внутри бандла

muscriptor-large-bundle.tar (~5.1 ГБ, без сжатия) содержит:

manifest.json            версия, время сборки, параметры модели, sha256 весов, лицензии
model/model.safetensors  5.09 ГБ, 394 тензора, 1366 млн параметров, F32
model/config.json        dim 1536, heads 24, layers 48, card 1395
model/README.md          карточка исходной модели
tools/*.py               те же инструменты, что в репозитории

Сжатие не применяется осознанно: safetensors это плотные числа, gzip даёт около 2% выигрыша и десятки минут CPU. Размер архива предсказуем и равен сумме частей.

Проверка

python tools/verify_model.py --model-dir muscriptor-large

Вывод на настоящих весах:

[30%] файл: 5.09 ГБ | данные: 5.09 ГБ | заголовок: 43.15 КБ
      тензоров: 394 | типы: {'F32': 394}
      параметров: 1366.4 млн
[50%] размеры сходятся байт в байт
      выходная голова: linears.0.weight -> 1395 токенов
[100%] итог: ГОДНО

Сборка на Kaggle

  1. В ноутбуке включи Internet (Settings > Internet on).
  2. Add-ons > Secrets > добавь HF_TOKEN с правом записи, включи доступ для ноутбука.
  3. Запусти:
!wget -q -O tools.zip https://huggingface.co/Nokia123543/muscriptor-large-fork/resolve/main/tools.zip
!unzip -oq tools.zip -d tools
!python tools/kaggle_build_ai.py

Скрипт печатает проценты по этапам: скачивание, проверка заголовка, запись архива, загрузка. В конце даёт ссылки на файлы в bundle/.

Режимы:

python tools/kaggle_build_ai.py --mode bundle   # только tar ~5.1 ГБ (по умолчанию)
python tools/kaggle_build_ai.py --mode fp16     # тяжёлые веса -> float16, ~2.6 ГБ
python tools/kaggle_build_ai.py --mode both     # и то, и то
python tools/kaggle_build_ai.py --source-dir /kaggle/input/... --no-upload

Память и диск: для --mode bundle нужно около 11 ГБ свободного места (5.09 ГБ исходник + 5.1 ГБ архив). Для --mode fp16 нужен GPU или хотя бы 11 ГБ RAM, потому что load_file поднимает тензоры целиком; на Kaggle с 2×T4 это проходит.

Лицензии

  • Веса: CC-BY-NC-4.0 — некоммерческое использование. В платном продукте их использовать нельзя, это записано и в manifest.json.
  • Код инструментов и патчей: MIT.
  • Названия и товарные знаки принадлежат их владельцам.

Метрики и оговорки

  • 1366.4 млн параметров, F32, 394 тензора, выходная голова на 1395 токенов.
  • MuScriptor не предсказывает громкость: velocity берётся из muscriptor_dynamics.py измерением записи, либо из специализированной фортепианной модели.
  • Для сольного фортепиано точнее специализированные модели; для группы и рока MuScriptor остаётся основным выбором.