Перейти к содержанию

Классификаторы и Rhythm Lab

Для кого: Для тех, кто создаёт оценки персональных классификаторов. Задача: Объяснить метки, обучение, публикацию и появление оценок в основном приложении. Тип: Понятие

Большинство моделей анализа уже приходит с общим представлением звука. Персональный классификатор задаёт другой вопрос: «Может ли приложение повторно использовать различие, которое я постоянно провожу сам?»

Один профиль может отделять треки с заметным вокалом от преимущественно инструментальных. Другой — определять наличие живых инструментов. Определение и примеры берутся из вашей фонотеки. В новой базе профилей нет, а итоговая оценка отражает именно ваши метки.

Зачем обучать классификатор

Он полезен, если понятие:

  • регулярно важно во всей фонотеке;
  • плохо выражается существующими тегами;
  • достаточно конкретно для последовательной разметки;
  • должно стать фильтром или мягким предпочтением, а не разовым поиском.

Для списка на одну сессию обычно проще использовать поиск по референсному треку или текстовый CLAP.

От примеров к полезной настройке

text
примеры с метками -> обучение -> проверка прогнозов -> публикация -> расчёт оценок фонотеки -> фильтрация или управление

Публикация не заставляет модель незаметно выбирать музыку за вас. Она делает один проверенный профиль доступным как оценку в основном приложении. Отсутствующие и пограничные случаи всё равно нужно слушать.

Rhythm Lab — сопутствующий инструмент для локальной разметки, обучения, проверки предсказаний и публикации. Опубликованные классификаторы становятся необязательными сигналами основного интерфейса.

Профили

Rhythm Lab поддерживает два типа:

  • binary: одна положительная и одна отрицательная метка плюс необязательные метки проверки;
  • multiclass: метки классов, причём для активного профиля у трека один текущий класс.

Метки, предсказания, очереди и контрольные точки по умолчанию находятся в базе Rhythm Lab под tools/rhythm-lab/data/.

Встроенный начальный профиль не создаётся. Существующие профили, включая старые Break Energy, остаются обычными строками базы меток, а новая база пуста до ручного создания профиля.

Входные данные обучения

Обучение использует семейства признаков, объявленные в выбранном артефакте профиля. Комбинированному варианту нужны актуальные признаки SONARA Core и эмбеддинги MERT и MAEST; набор с CLAP также требует сохранённые аудиоэмбеддинги CLAP. Отсутствующие обязательные значения делают трек неготовым: они не дополняются нулями.

Все входы SONARA должны иметь одну актуальную подпись анализа. Смешанные или устаревшие профили пропускаются. Строка без запрошенного необязательного поля также пропускается, а не дополняется нулём.

Калибровка классификатора необязательна и зависит от объёма данных. Если меток недостаточно, обучение всё равно может создать некалиброванный артефакт с диагностикой.

Обычная вкладка Training не выполняет калибровку. Это явная операция API или CLI для бинарных профилей, когда нужны калиброванные вероятности положительной метки. Сейчас порог требует не менее 100 обучающих меток, 20 положительных и 20 отрицательных. Обычная публикация из интерфейса использует некалиброванные артефакты; калиброванный артефакт следует публиковать с явным требованием CLI.

Публикация

Выбранный артефакт копируется в каталог моделей основного приложения:

text
models/classifiers/<artifact-prefix>/model.joblib
models/classifiers/<artifact-prefix>/model.json

Основное приложение обнаруживает профили по манифестам. Версия манифеста 2 записывает точные входы обучения, включая контракт SONARA при необходимости. Добавленные в репозиторий артефакты версии 1 или без версии блокируются для расчёта: переобучите и опубликуйте артефакт v2.

Расчёт оценок

Опубликованный классификатор работает только с базой данных. Манифест точно определяет необходимые актуальные входы SONARA и MERT/MAEST/CLAP. Общая задача записывает classifier_scores для каждой выбранной совместимой пары классификатор–трек, не читая аудио.

Готовность определяется до подсчёта общего объёма задачи. Отсутствие входа делает трек неготовым, а не ошибочным. Существующая оценка снова становится кандидатом, если её model_id отличается от актуального опубликованного манифеста. Несовместимые артефакты остаются видимыми с указанием необходимости переобучения и публикации, но не запускаются.

Добавление или публикация одного классификатора не удаляет оценки других ключей. После переобучения того же ключа сбросьте только его старые оценки. Повторный анализ трека SONARA делает зависимые оценки этого трека недействительными. Полный сброс SONARA делает недействительными все такие оценки, сохраняя метки и обратную связь.

Текущая ревизия признаков SONARA проекта — 6. Изменение контракта или ревизии SONARA требует упорядоченный сценарий prepare-sonara-release, затем повторный анализ, обучение, публикацию и перерасчёт затронутых профилей. Подготовка создаёт проверенные резервные копии Core + Artifacts и ведёт долговечный receipt, поэтому прерванную операцию можно продолжить. Это упорядоченная и устойчивая к сбою операция, но не распределённая атомарная транзакция. Метки, обратная связь и артефакты только с эмбеддингами сохраняются; устаревшие опубликованные артефакты видимы, но не могут считать оценки до замены.

Текущий статус UI

Backend предоставляет оценки опубликованных классификаторов, но порт frontend на v7 отложен. Не считайте текущие элементы CLASS tab и браузерные сценарии совместимыми с v7. Отсутствующие оценки нейтральны там, где их использует backend; некорректные манифесты блокируют расчёт с понятным статусом.

Документация локального инструмента анализа музыкальной библиотеки.