#grokaem_audio
MAGNET - MASKED AUDIO GENERATION USING A SINGLE NON- AUTOREGRESSIVE TRANSFORMER
В генерации музыки есть (на мой взгляд) две проблемы:
- долго генерим
- не умеем в долгую генерить
🪗idea behind🪗
За решением первой проблемы мы можем попробовать перейти от авторегрессионности к привычному маскированию. Но есть же диффузии, скажите вы.
To reach high-quality music samples recent studies report using a few hundred diffusion decoding steps говорит meta. А что если попробовать сделать что-то между? Декодировать какое-то кол-о степов с нуля, но не авторегрессионо, а делать
condition от полученных токенов? Именно это и предложили в MAGNET.
🪗pipeline с перебивками🪗
0. Начинаем с нуля. Все замаскированно.
Предсказываем с condition на текст, он по традиции от T5. Дальше то ли от того, что сначала не получалось, то ли действительно с мотивацией на asr rescoring, мы делаем rescore с MusicGen или AudioGen. Токены, которые получились ок с высокой вероятностью - оставляем. Другие - маскируем.
1. Стой, но разве токены рядом не шарят информацию между собой?
Да, так и есть. Поэтому давай маскировать не токен, а span. Это то же самое, как маскировать не отдельный токен, а все слово.
2. Стопе. У нас же encodec может копить ошибку, ведь у нас внутри RVG вектора.
Да, да. Поэтому на codebooks дальше чем 1, то есть те, которые исправляют ошибку и созависимы от предыдущих, будут в self-attention смотреть только на несколько соседей.
2.0 Интересно, что text conditioning предлагают уменьшать в
Classifier Free Guidance относительно masking rate. То есть когда мы уже что-то нагенерили, мы будем делать скорее infilling чем просто кондишн на тексте.
3. Если мы итак делаем rescore с MusicGen и (мб у нас просто все херово получается сначала) давайте и в начале будем генерить с MusicGen, а уже потом будем делать маскинг. Как расклад?
Не таро, но тоже норм и назовем это все классно - гибрид
🌈
code
в предыдущих постах:
набор sota моделей для music ai
обзор на audio box
обзор на encodec