- Дата публикации
Magenta RealTime 2: живой джем с ИИ за 0,2 секунды
Что нового
Magenta RealTime 2 (MRT2) — это новое поколение live‑моделей для генерации музыки от команды Magenta. Главная идея — сделать ИИ, который реагирует на действия музыканта почти как живой партнер, а не как офлайн‑рендер в DAW.
Ключевые изменения по сравнению с первой версией Magenta RealTime:
-
Время отклика
- Было: минимум ≥ 2 секунды (модель генерировала кусками по 2 секунды).
- Стало: около 0,2 секунды (один аудиокадр 40 мс + глубинное декодирование + декодер кодека).
- Управление теперь возможно почти в реальном времени — модель реагирует в пределах одного кадра (~40 мс) на новые ноты, стиль или барабаны.
-
Гранулярность генерации
- Было: авторегрессия по 2‑секундным чанкам (25 кадров × 16 RVQ‑подуровней = 400 токенов за раз).
- Стало: авторегрессия по одному кадру — 12 RVQ‑токенов на кадр при 25 Гц (то есть один кадр = 40 мс).
-
Архитектура
- Было: схема в стиле T5 — двухчастная модель: двунаправленный энкодер + каузальный декодер. Энкодер должен был обработать весь 2‑секундный чанк, прежде чем декодер начинал генерацию.
- Стало: decoder‑only архитектура. Никакого отдельного энкодера, условная информация (стиль, ноты, барабаны) подаётся на каждый кадр через стриминговый cross‑attention. Последовательный «бутылочное горлышко» энкодера исчезло.
-
Контекст и внимание
- Используется локальное скользящее окно внимания (Sliding Window Attention, SWA) в временном трансформере.
- Контекст можно удлинять, не увеличивая KV‑кэш: новые ключи‑значения записываются, старые, выходящие за окно размера w, удаляются.
- Добавлен обучаемый attention sink embedding, чтобы качество не проседало, когда самые старые токены вылетают из кэша.
-
Кодек и качество аудио
- Кодек: SpectroStream.
- Вход: стерео‑аудио 48 кГц.
- Сжатие: до 3 кбит/с.
- Параметры токенизации: частота кадров 25 Гц, глубина RVQ 12, размер словаря кодека |Vₙ| = 2¹⁰.
-
Новые типы управления
- Стиль: по аудио и по тексту через квантованные эмбеддинги MusicCoCa.
- Ноты: покадровый pianoroll на 128 MIDI‑нот при 25 Гц.
- Два режима управления нотами:
- Auto‑Strum: вы задаёте только активные высоты, модель сама расставляет атаки.
- Auto‑Strum OFF: вы задаёте точное время onset’ов, модель обязана его соблюдать.
- Барабаны on/off: отдельный сигнал, который позволяет отключить ударные, даже если стиль их «просит».
-
Многосигнальное управление и guidance
- Расширенный classifier‑free guidance (CFG) сразу на несколько сигналов: стиль, ноты, барабаны.
- Можно отдельно регулировать «силу» каждого сигнала или сделать часть генерации безусловной.
-
Маскирование на инференсе как творческий инструмент
- На обучении модель регулярно видит маскированные куски управляющих сигналов.
- На инференсе это превращается в режим «частично безусловной» генерации: можно давать модели больше свободы или, наоборот, жёстко фиксировать ноты.
Как это работает
Кодек‑языковая модель для аудио
MRT2 — это codec language model. Она не предсказывает напрямую сэмплы волны, а работает с дискретными токенами, полученными из нейронного аудиокодека.
Схема:
-
Encoder кодека превращает сырое стерео‑аудио (\mathbf{a} \in \mathbb{R}^{T f_s \times 2}) в матрицу токенов (\mathbf{x} \in \mathbb{V}_c^{T f_k \times d_c}).
- (T) — длительность в секундах.
- (f_s = 48) кГц — частота дискретизации аудио.
- (f_k = 25) Гц — частота кадров токенов.
- (d_c = 12) — количество токенов на кадр (глубина RVQ).
- (\mathbb{V}_c) — словарь токенов кодека, 2¹⁰ вариантов.
-
Языковая модель токенов учится моделировать распределение по этим матрицам токенов. В MRT2 это авторегрессия по кадрам и по глубине RVQ:
[ P_{\theta,\phi}(\mathbf{x}) = \prod_{i=1}^{T f_k} \prod_{j=1}^{d_c} P_\phi\bigl(x_i^j \mid \mathbf{x_i^{<j}}, \texttt{Temporal}{\theta}(\mathbf{x{<i}})\bigr) ]
- На инференсе модель сначала семплит токены (\mathbf{x'} \sim P_{\theta,\phi}(\mathbf{x})), затем декодер кодека восстанавливает аудио: (\mathbf{a'} = \texttt{Dec}(\mathbf{x'})).
От чанков к кадрам: почему стало быстрее
Чтобы стримить аудио в реальном времени, система должна:
- Генерировать не меньше (f_k · d_c) токенов в секунду.
- Использовать каузальный декодер: звук на кадре i зависит только от токенов (\mathbf{x_{\leq i}}).
В первой версии Magenta RealTime команда решила генерировать чанки по 2 секунды. Это помогло «размазать» вычисления по времени и уложиться в real‑time, но создало жёсткое ограничение по управлению: любые изменения от пользователя попадали в генерацию только на следующем чанке, то есть с задержкой минимум 2 секунды.
MRT2 перешла к кадровой авторегрессии:
- Один кадр — 40 мс.
- На кадр — 12 RVQ‑токенов.
- Условная информация (стиль, ноты, барабаны) подаётся на каждый кадр.
Чтобы при этом не потерять скорость, архитектура стала decoder‑only и использует Sliding Window Attention.
Sliding Window Attention и KV‑кэш
Вместо того чтобы каждый раз смотреть на всю историю, временной трансформер в MRT2 видит только окно из последних w кадров.
Механика:
- На каждом шаге авторегрессии новые key‑value‑пары записываются в KV‑кэш.
- Как только размер истории превышает окно w, самые старые записи удаляются.
- Это позволяет удлинять контекст, не раздувая память под кэш.
Проблема: когда из кэша вылетают самые первые токены, качество обычно падает. Для этого команда вводит:
- Attention sink embedding — специальный обучаемый вектор, в который модель может «сбрасывать» часть внимания, компенсируя потерю самых старых токенов.
Дополнительно:
- Размер окна подбирается так, чтобы эффективное поле восприятия не превышало длину обучающего фрагмента. Это снижает расхождение между обучением и инференсом.
- Отказ от RoPE и любых обучаемых позиционных эмбеддингов (NoPE). Модель получает информацию о позиции только через каузальную маску и SWA. Это улучшает обобщение на длины, которые больше, чем видела модель на обучении.
Frame‑by‑frame conditioning: стиль, ноты, барабаны
MRT2 моделирует условное распределение: [ P_{\theta,\phi}(\mathbf{x} \mid \mathbf{c}) ] где (\mathbf{c} = (\mathbf{c}{style}, \mathbf{c}{notes}, \mathbf{c}_{drums})).
Каждый тип управления приводится к токенизированному виду на частоте 25 Гц и конкатенируется в единый вектор управления на кадр. Далее:
- Этот вектор превращается в мультиканальный эмбеддинг.
- Эмбеддинг подаётся в темпоральный декодер через стриминговый cross‑attention.
- В результате модель может отреагировать на любое изменение в управлении в течение одного кадра (~40 мс).
Многосигнальный classifier‑free guidance
MRT2 расширяет подход CFG из первой версии Magenta RealTime:
- Вместо одного управляющего сигнала теперь несколько: стиль, ноты, барабаны.
- Для каждого можно задать свою CFG‑шкалу.
- Можно комбинировать: например, строго следовать MIDI, но дать модели больше свободы по стилю.
- Любой поднабор сигналов можно сделать безусловным — модель будет генерировать их «из головы».
Стиль: аудио и текст через MusicCoCa
Для управления стилем MRT2 использует квантованные эмбеддинги MusicCoCa — совместное пространство для текста и аудио.
Как это устроено:
- На обучении модель видит аудио‑эмбеддинги MusicCoCa. Эмбеддинги токенов MusicCoCa заморожены — они не дообучаются.
- Это позволяет использовать богатые семантические представления из предобученного RVQ MusicCoCa и не ломать их во время обучения генератора.
- На инференсе пользователь может задавать текстовый запрос. Но есть проблема: распределения текстовых и аудиосемантик в общем пространстве не совпадают идеально.
- Чтобы устранить рассинхрон между обучением и инференсом, команда обучает отдельную генеративную модель‑маппер:
- Вход: текстовый эмбеддинг.
- Выход: распределение аудио‑эмбеддингов, совместимых с этим текстом.
- Модель учится отображать один текст в множество валидных аудио‑вариантов.
- Для маппера используется pixel Mean Flow (pMF), который позволяет делать качественный one‑step инференс.
- Маппер обучается на смеси коротких тегов и длинных описаний, поэтому MRT2 одинаково уверенно понимает «dark techno» и длинные описания вроде «медленный неоклассический фортепианный трек с лёгкими струнными».
Управление нотами: pianoroll + Auto‑Strum
Для нот MRT2 работает с парами (аудио, MIDI).
Данные:
- Около 71 000 часов в основном инструментальной стоковой музыки.
- MIDI‑разметка получается с помощью MT3 — модели для транскрипции.
Представление нот:
- Ноты кодируются как pianoroll на 128 каналов (по одному на каждую MIDI‑высоту).
- Частота — 25 Гц, синхронно с аудиокадрами.
Словарь токенов для каждой высоты поддерживает два режима:
-
Auto‑Strum
- Пользователь задаёт только какие высоты активны на кадре.
- Модель сама решает, где именно ставить атаки нот.
- Это удобно для грувов, арпеджио, струнных, когда хочется «музыкальной» атаки, а не жёсткого грид‑тайминга.
-
Auto‑Strum OFF
- Пользователь задаёт точное время onset’ов.
- Модель обязана следовать этим атакам.
Для этого используется 4‑токенный словарь на каждый шаг:
- note off — нота молчит;
- generic note on — нота активна без конкретного onset’а;
- note onset — момент атаки;
- note continuation — продолжение звучащей ноты.
Чтобы один и тот же MRT2 умел и следовать точным onset’ам, и сам их придумывать, используется onset masking:
- На обучении случайные onset’ы и continuation’ы заменяются специальным onset‑mask токеном.
- Модель учится:
- генерировать музыкально правдоподобные атаки, если onset’ов нет;
- строго следовать им, если они заданы.
Барабаны: только on/off, без покадрового контроля
Мелодия и гармония контролируются MIDI‑pianoroll’ом, но ударные — отдельная история.
Проблема:
- Если задать стиль «jazz» или «rock», модель может сама добавить барабаны.
- В многодорожечном проекте или при игре с живым барабанщиком это часто нежелательно.
Решение MRT2:
- На обучении команда извлекает frame‑wise последовательности ударов из барабанных дорожек с помощью OaF Drums.
- Эти сигналы подаются как отдельный conditioning‑канал.
- На практике покадрово управлять ударами через этот канал сложно: суммарная задержка системы делает точный live‑контроль ударных некомфортным.
Поэтому в MRT2 этот сигнал используют иначе:
- Он служит переключателем между режимами:
- drum‑unconditional — модель вольна добавлять барабаны;
- drumless — модель должна избегать ударных.
- Переключение встроено в общую схему multi‑guidance CFG.
Маскирование на инференсе как творческий инструмент
MRT2 не ограничивается тем, что даёт набор управляющих сигналов. Важная часть дизайна — как ими можно играться.
Механика:
- На обучении для каждого управляющего канала (стиль, ноты, барабаны) случайно маскируются непрерывные фрагменты.
- Масштаб и вероятность маскирования варьируются.
Это даёт два эффекта:
- Модель лучше следует управлению, когда оно есть, и при этом устойчива к шумным или частично отсутствующим сигналам.
- Маскирование превращается в инструмент творчества на инференсе:
- Маскированные участки модель воспринимает как «не заданные».
- В этих зонах она может проявлять больше инициативы.
Примеры:
- Auto‑Strum — частный случай: onset’ы маскируются, и модель сама решает, где ставить атаки.
- Можно маскировать часть высот в pianoroll’е:
- Маскировать всё, кроме зажатых нот — модель может добавлять гармонии и украшения вокруг них.
- Явно задать соседние высоты как off — модель будет играть только заданные ноты.
Реальная задержка
Формально MRT2 уменьшила размер кадра с 2 секунд до 40 мс. Но помимо времени инференса есть ещё:
- входные и выходные буферы аудио;
- задержки внешних компонентов (например, транскрипция, если она используется по ходу);
- накладные расходы на кодек.
Команда даёт схему полной цепочки: от изменения управляющего сигнала до появления соответствующего звука. Суммарная реакция всё равно укладывается в около 0,2 секунды, что уже приемлемо для живой игры и импровизации.
Что это значит для вас
Для кого MRT2 особенно полезен
-
Электронные музыканты и лайв‑перформеры
- Можно использовать MRT2 как реактивный генератор аккомпанемента.
- Нажимаете аккорды на MIDI‑клавиатуре — модель подхватывает гармонию и стиль почти без задержки.
- В Auto‑Strum модель сама создаёт ритмический рисунок и атаки.
-
Композиторы и продюсеры
- Быстрый способ прототипировать аранжировки: задали аккордовую структуру и стиль — MRT2 заполняет пространство.
- Маскированием можно управлять уровнем «самостоятельности» модели.
- Отдельный контроль барабанов on/off удобен для многодорожечных проектов.
-
Разработчики музыкальных приложений
- Decoder‑only архитектура и локальное внимание упрощают стриминговую интеграцию.
- Можно строить плагины или веб‑сервисы, которые генерируют музыку на лету.
- Чёткие параметры (25 Гц, 12 токенов на кадр, 3 кбит/с) упрощают расчёт ресурсов.
-
Исследователи генеративного аудио
- MRT2 — хороший эталон для frame‑level управления и многоусловной генерации.
- Интересны решения по NoPE, attention sink и onset masking.
Где MRT2 особенно уместен
- Импровизационные сеты: когда нужно, чтобы ИИ подстраивался под живого музыканта.
- Создание стиля под текстовое описание: от коротких тегов до сложных промптов.
- Сценарии, где важно управлять наличием ударных: например, вы уже пишете живые барабаны и не хотите, чтобы ИИ их дублировал.
- Обучающие и демо‑приложения: показать студентам, как меняется аранжировка при разных стилях и наборах нот.
Где MRT2 может не подойти
- Если нужен абсолютно жёсткий тайминг ударных с точностью до нескольких миллисекунд, управление барабанами через MRT2 пока ограничено режимом on/off, а не покадровым паттерном.
- Если вы хотите полный офлайн‑рендер с максимальным качеством и вас не волнует задержка, могут быть интересны более тяжёлые модели, специально заточенные под офлайн‑сценарии.
- MRT2 требует инфраструктуры для запуска нейронного кодека и трансформера в реальном времени. На слабом железе это может быть сложно.
Доступность и ограничения
В исходном описании нет деталей о коммерческом продукте или геоблокировке, поэтому MRT2 стоит воспринимать прежде всего как технологический стек и архитектуру. Если вы планируете использовать его в России, нужно проверять:
- доступность конкретной реализации (репозиторий, демо, API);
- необходимость VPN для доступа к хостингу или демо‑сервису.
Место на рынке
MRT2 конкурирует не с текстовыми моделями вроде GPT‑4o или Claude 3.5, а с другими генеративными аудио‑системами и live‑моделями музыки.
По ключевым параметрам:
-
Задержка управления
- MRT2: ~0,2 секунды от изменения сигнала до слышимого эффекта.
- Первая Magenta RealTime: ≥ 2 секунды из‑за чанков по 2 секунды.
- Для многих текущих аудиомоделей, работающих чанками по несколько секунд, такой уровень live‑контроля пока недостижим.
-
Гранулярность контроля
- MRT2: управление на уровне кадров 40 мс, с отдельными каналами для стиля, нот и барабанов.
- Типичные текст‑в‑аудио модели: управление в основном через текстовый промпт и, в лучшем случае, глобальный аудиореференс.
-
Тип архитектуры
- MRT2: decoder‑only + Sliding Window Attention + KV‑кэш с фиксированным размером.
- Многие другие аудиогенераторы используют полный self‑attention по всей истории или громоздкие энкодер‑декодер схемы, что усложняет стриминг.
-
Цена и производительность
- В описании MRT2 нет цифр по стоимости инференса, потреблению GPU или сравнению с конкретными конкурентами по скорости.
- Из архитектуры понятно, что модель спроектирована именно под real‑time, но точные бенчмарки зависят от реализации и железа.
Если вы строите продукт вокруг генеративной музыки в реальном времени, MRT2 задаёт ориентир по задержке и уровню контроля. Если вы работаете с офлайн‑рендером, важнее сравнивать качество и разнообразие звука с другими крупными аудиомоделями, а не только архитектуру.
Как использовать MRT2 в своих задачах (концептуально)
Поскольку в исходном описании нет готовых команд установки, полезно зафиксировать логическую схему интеграции:
-
Подготовка входов
- Аудио или текстовый стиль → через MusicCoCa + маппер pMF → эмбеддинг стиля.
- MIDI‑ноты → pianoroll 128 каналов @ 25 Гц, с нужным режимом onset’ов (Auto‑Strum или OFF).
- Барабаны → бинарный сигнал on/off по кадрам (или просто глобальный флаг для CFG).
-
Онлайн‑цикл генерации
- На каждом шаге (40 мс) собрать вектор управления (\mathbf{c}_t).
- Пропустить его через temporal‑decoder с cross‑attention.
- Сгенерировать 12 RVQ‑токенов для кадра.
- Обновить KV‑кэш, удалив записи старше окна w.
-
Декодирование и вывод
- Передать токены в SpectroStream‑декодер.
- Полученный аудиофрагмент отправить в выходной буфер.
-
Творческое управление
- Менять CFG‑шкалы для стиля, нот и барабанов.
- Маскировать части pianoroll’а или стиля, чтобы дать модели больше свободы.
Если вы разрабатываете своё решение, MRT2 полезен как подробная спецификация того, какие компоненты нужны, чтобы live‑музыка с ИИ ощущалась живой, а не запаздывающей.