Show HN: I trained a 125M model to autocomplete piano on-device
Я обучаю 125 млн‑параметрный трансформер, который в реальном времени подсказывает продолжение пианино‑партии (~108 нот/сек на iPhone 15). Ключевой прорыв — правильный MIDI‑токенизатор, агрессивная очистка датасета и DPO‑пост‑тренировка.
Я превратил MIDI‑события в компактный набор токенов: отдельные коды для NOTE, TIME_SHIFT, DURATION и VELOCITY. Такой формат гарантирует валидный синтаксис, устраняет «зависание» нот и позволяет модели генерировать ноты за один шаг, что критично для мобильных устройств. Обучение прошло на отфильтрованных 200 мелодиях, где я сортировал аккорды по тональности, чтобы избежать неоднозначности порядка нот.
Для ускорения я использовал 24‑шаговый тактовый деления, что покрывает обычные и тройные ритмы. После обучения применяю DPO‑корректировку, чтобы модель отдавала предпочтение более «музыкальным» продолжениям, что подтверждается в 70 % случаев в сравнениях Gemini. Теперь приложение RollTab умеет мгновенно подхватывать ваш ввод и развивать мелодию в стиле классических тем, от «Pokémon» до «Für Elise».
Запомните:
- Токенизация в виде
[NOTE, PITCH, VELOCITY, DURATION]+TIME_SHIFTделает генерацию быстрой и синтаксически корректной. - DPO‑пост‑тренировка повышает «музыкальность» вывода, а 125 млн параметров достаточно для 108 нот/сек на iOS.
- Приложение уже доступно бесплатно в App Store для MIDI‑клавиатур.