MusicGen — генерируем музыку на своём ПК. Новая локальная нейросеть — знакомство и установка
Facebook* на днях выкатил в свет новую нейронку — MusicGen (репозиторий).
Видимо, парням из компании было мало выпустить текстовую модель Llama, давшую огромный разгон развитию локальных нейросеток, и они решили сделать то же самое в сфере музыки.
Сегодня мы узнаем о модели чуть больше, подумаем о том, кому она нужна, и запустим её локально.
О модели
Опубликованные веса позволяют по текстовому описанию и, по надобности, звуковому примеру, генерировать новую музыку.
Всего в свет выпустили 4 версии моделей:
Small — маленькая модель с 300М параметров, только txt2music.
Medium — 1.5B параметров, средняя модель, также только txt2music.
Melody — 1.5B параметров, но с возможностью добавлять к генерации звуковой пример композиции (txt+music2music).
Large — 3.3B параметров, самая большая модель, только txt2music
Не смотря на фразу в репозитории о том, что Medium модель требует 16GB VRAM — у меня всё заработало даже на 8GB, на моей старенькой GTX 1070. Также, некоторые люди пишут о том, что на 6GB VRAM тоже всё работает стабильно.
Максимальная длина звукового файла, который можно сгенерировать в GUI, на данный момент составляет 30 секунд. О всех возможностях по длительности музыки на выходе нейросети я другой информации не нашёл, но известно, что для генерации более длинных отрывков потребуется сильно больше видеопамяти. Возможно поэтому в интерфейсе пока стоит ограничение.
И также внесу примечание — чем худее модель, тем меньше вычислительных мощностей она требует, так что вполне вероятно, что мы сможем генерировать довольно длинные композиции. А со смещением контекста — так вообще бесконечные.
О данных, которые использовали при тренировке модели, просто приведу цитату:
Мы используем 20 тысяч часов лицензионной музыкидля обучения MusicGen. В частности, мы полагаемся на внутренний набор данных из 10 000 высококачественных музыкальных треков, а также на музыкальные данные ShutterStock и Pond5.
Звучит, наверное, прилично. Но как мы знаем — лучше качественный датасет, чем просто большой. Поэтому лично мне всё это ни о чём не говорит, в отличие от качества музыке, получаемой на выходе.
Вот небольшой плейлист, созданный при м:
И также есть большая таблица с интерактивными примерами и сравнениями алгоритма с соратниками — здесь
Код для тренировки своих моделей обещают выкатить в скором времени:
А лицензирована модель под CC-BY-NC 4.0. Код в репозитории — MIT.
Кому оно вообще надо — мнение
Мнение у меня по поводу этой модели такое, что композиторам нижнего звена стоит прямо сейчас быстренько идти и изучать, как работает этот инструмент.
30 секунд, которые на данный момент позволяет сгенерировать нейронка, это не то чтобы много, но думаю все мы помним, как развивался Stable-Diffusion — сначала скучные картинки с кривыми котиками, а потом кастомные модели, ControlNet, и всё-всё-всё остальное.
Примерно также будет и здесь, но чуть медленнее, из-за того что в музыке народ не так заинтересован, как в картинках с обнажёнными женщинами.
Вижу как минимум 3 сферы, которым данная нейронка будет интересна:
Разработка инди-игр — моя сфера, живу в ней, знаю что и как. Не сказал бы, что у нас мало композиторов в среде (А иногда их даже слишком много, но не все полезны), но нам здесь очень нужна халявная музыка, и желательно много вариантов за короткий срок.
С качественным развитием данной нейросети это требование быстро закроется.Певцы нижнего звена, мамкины реперы и т.д. — из-за перегретости музыкальной сферы, минуса стоят неприятно дорого. Так битмари ещё и роялти просят.
Те, кто хочет изливать свою душу в песнях, но не умеют писать музыку, будут очень рады новому инструменту.Ютуберы/Стримеры — чтобы не запариваться с авторскими правами на музыку, т.к. ContentID банит за любой среньк, будут использовать нейронки.
Написал, о чём видео, какое настроение требуется, какая скорость — получил подходящий трек на фон, на который точно никто не кинет страйк.
Если вы из этих трёх, то лучше начать следить за тем, что происходит, потому что по качеству модель действительно может либо отобрать у вас деньги, либо наоборот вам их сэкономить.
Как запустить
Запустить вообще не сложно, сейчас расскажу.
В первую очередь хочу ещё раз отметить, что вам потребуется видеопамять, а следовательно — видеокарта. Топ-сегмент не обязателен, но минимум 6GB VRAM (а лучше 8GB) раздобыть нужно. Обязательно NVIDIA.
Для начала, нам нужно поставить 3 обычные программки, которые будут запускать нашу нейро-программку.
1) Если не установлен, то устанавливаем git — это программа, которая загрузит код разработчиков к вам на ПК в удобоваримом виде. Устанавливается тут.
2) Устанавливаем Anaconda — программа, внутри которой мы будем запускать код нейросети. (Технари, сорян за такое объяснение, но я стараюсь не душнить ради будущего русского рэпа)
Загрузить установщик можно на официальном сайте.
3) Устанавливаем ffmpeg — вот здесь довольно понятный гайд, но в теории можно воспользоваться вот этим однокликовым решением (Скачиваем .msi и устанавливаем).
Командами git version, conda --version и ffmpeg можно проверить, всё ли работает
А теперь переходим к установке нейронки:
1) Заходим в любую папку, где вы хотите видеть скачанную нейросеть, кликаем ПКМ в пустом месте с зажатым Shift, и выбираем Open PowerShell window here.
2) В консоль пишем следующую команду:
git clone https://github.com/facebookresearch/audiocraft.git
Она загрузит код нейросети на ваш ПК.
3) Создаём и настраиваем новую виртуальную среду следующими командами, введёнными последовательно:
conda create -n musicGen python=3.9 // Создаём виртуальную среду
conda activate musicGen // Активируем её
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117 // Устанавливаем необходимые пакеты
4) После того как всё установилось, переходим в папку репозитория с помощью
cd audiocraft
И устанавливаем ещё немного зависимостей:
pip install -e .
// Вводим команду вместе с точкой в конце
5) Готово! Вы справились! Вводите последннюю команду, которая запустит нейросеть:
python app.py
Спустя некоторое время всё загрузится, и вы сможете открыть интерфейс MusicGen прямо в своём браузере, перейдя по ссылке http://127.0.0.1:7860/
В поле Input Text вводим ваш запрос к музыке, выбираем размер модели, и нажимаем «Исполнить». Всё!
А если в дальнейшем вы захотите запустить нейросеть ещё раз, вам понадобится открыть терминал в папке, ввести conda activate musicGen,
и запустить python app.py.
И на этом, думаю, я могу закончить. Если у вас будут какие-то воросы — пишите мне в любой удобной вам соц. сети, или в комментариях. :)
Также, вот мой канал в телеграм, куда же без него — там могут появиться дополнительные новости.
Спасибо!
* Организация запрещена в РФ