Дата публикации
creative

Magenta RealTime 2: живой джем с ИИ за 0,2 секунды

Что нового

Magenta RealTime 2 (MRT2) — это новое поколение live‑моделей для генерации музыки от команды Magenta. Главная идея — сделать ИИ, который реагирует на действия музыканта почти как живой партнер, а не как офлайн‑рендер в DAW.

Ключевые изменения по сравнению с первой версией Magenta RealTime:

  1. Время отклика

    • Было: минимум ≥ 2 секунды (модель генерировала кусками по 2 секунды).
    • Стало: около 0,2 секунды (один аудиокадр 40 мс + глубинное декодирование + декодер кодека).
    • Управление теперь возможно почти в реальном времени — модель реагирует в пределах одного кадра (~40 мс) на новые ноты, стиль или барабаны.
  2. Гранулярность генерации

    • Было: авторегрессия по 2‑секундным чанкам (25 кадров × 16 RVQ‑подуровней = 400 токенов за раз).
    • Стало: авторегрессия по одному кадру12 RVQ‑токенов на кадр при 25 Гц (то есть один кадр = 40 мс).
  3. Архитектура

    • Было: схема в стиле T5 — двухчастная модель: двунаправленный энкодер + каузальный декодер. Энкодер должен был обработать весь 2‑секундный чанк, прежде чем декодер начинал генерацию.
    • Стало: decoder‑only архитектура. Никакого отдельного энкодера, условная информация (стиль, ноты, барабаны) подаётся на каждый кадр через стриминговый cross‑attention. Последовательный «бутылочное горлышко» энкодера исчезло.
  4. Контекст и внимание

    • Используется локальное скользящее окно внимания (Sliding Window Attention, SWA) в временном трансформере.
    • Контекст можно удлинять, не увеличивая KV‑кэш: новые ключи‑значения записываются, старые, выходящие за окно размера w, удаляются.
    • Добавлен обучаемый attention sink embedding, чтобы качество не проседало, когда самые старые токены вылетают из кэша.
  5. Кодек и качество аудио

    • Кодек: SpectroStream.
    • Вход: стерео‑аудио 48 кГц.
    • Сжатие: до 3 кбит/с.
    • Параметры токенизации: частота кадров 25 Гц, глубина RVQ 12, размер словаря кодека |Vₙ| = 2¹⁰.
  6. Новые типы управления

    • Стиль: по аудио и по тексту через квантованные эмбеддинги MusicCoCa.
    • Ноты: покадровый pianoroll на 128 MIDI‑нот при 25 Гц.
    • Два режима управления нотами:
      • Auto‑Strum: вы задаёте только активные высоты, модель сама расставляет атаки.
      • Auto‑Strum OFF: вы задаёте точное время onset’ов, модель обязана его соблюдать.
    • Барабаны on/off: отдельный сигнал, который позволяет отключить ударные, даже если стиль их «просит».
  7. Многосигнальное управление и guidance

    • Расширенный classifier‑free guidance (CFG) сразу на несколько сигналов: стиль, ноты, барабаны.
    • Можно отдельно регулировать «силу» каждого сигнала или сделать часть генерации безусловной.
  8. Маскирование на инференсе как творческий инструмент

    • На обучении модель регулярно видит маскированные куски управляющих сигналов.
    • На инференсе это превращается в режим «частично безусловной» генерации: можно давать модели больше свободы или, наоборот, жёстко фиксировать ноты.

Как это работает

Кодек‑языковая модель для аудио

MRT2 — это codec language model. Она не предсказывает напрямую сэмплы волны, а работает с дискретными токенами, полученными из нейронного аудиокодека.

Схема:

  1. 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¹⁰ вариантов.
  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) ]

  1. На инференсе модель сначала семплит токены (\mathbf{x'} \sim P_{\theta,\phi}(\mathbf{x})), затем декодер кодека восстанавливает аудио: (\mathbf{a'} = \texttt{Dec}(\mathbf{x'})).

От чанков к кадрам: почему стало быстрее

Чтобы стримить аудио в реальном времени, система должна:

  1. Генерировать не меньше (f_k · d_c) токенов в секунду.
  2. Использовать каузальный декодер: звук на кадре 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 — совместное пространство для текста и аудио.

Как это устроено:

  1. На обучении модель видит аудио‑эмбеддинги MusicCoCa. Эмбеддинги токенов MusicCoCa заморожены — они не дообучаются.
  2. Это позволяет использовать богатые семантические представления из предобученного RVQ MusicCoCa и не ломать их во время обучения генератора.
  3. На инференсе пользователь может задавать текстовый запрос. Но есть проблема: распределения текстовых и аудиосемантик в общем пространстве не совпадают идеально.
  4. Чтобы устранить рассинхрон между обучением и инференсом, команда обучает отдельную генеративную модель‑маппер:
    • Вход: текстовый эмбеддинг.
    • Выход: распределение аудио‑эмбеддингов, совместимых с этим текстом.
    • Модель учится отображать один текст в множество валидных аудио‑вариантов.
  5. Для маппера используется pixel Mean Flow (pMF), который позволяет делать качественный one‑step инференс.
  6. Маппер обучается на смеси коротких тегов и длинных описаний, поэтому MRT2 одинаково уверенно понимает «dark techno» и длинные описания вроде «медленный неоклассический фортепианный трек с лёгкими струнными».

Управление нотами: pianoroll + Auto‑Strum

Для нот MRT2 работает с парами (аудио, MIDI).

Данные:

  • Около 71 000 часов в основном инструментальной стоковой музыки.
  • MIDI‑разметка получается с помощью MT3 — модели для транскрипции.

Представление нот:

  • Ноты кодируются как pianoroll на 128 каналов (по одному на каждую MIDI‑высоту).
  • Частота — 25 Гц, синхронно с аудиокадрами.

Словарь токенов для каждой высоты поддерживает два режима:

  1. Auto‑Strum

    • Пользователь задаёт только какие высоты активны на кадре.
    • Модель сама решает, где именно ставить атаки нот.
    • Это удобно для грувов, арпеджио, струнных, когда хочется «музыкальной» атаки, а не жёсткого грид‑тайминга.
  2. 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 не ограничивается тем, что даёт набор управляющих сигналов. Важная часть дизайна — как ими можно играться.

Механика:

  • На обучении для каждого управляющего канала (стиль, ноты, барабаны) случайно маскируются непрерывные фрагменты.
  • Масштаб и вероятность маскирования варьируются.

Это даёт два эффекта:

  1. Модель лучше следует управлению, когда оно есть, и при этом устойчива к шумным или частично отсутствующим сигналам.
  2. Маскирование превращается в инструмент творчества на инференсе:
    • Маскированные участки модель воспринимает как «не заданные».
    • В этих зонах она может проявлять больше инициативы.

Примеры:

  • Auto‑Strum — частный случай: onset’ы маскируются, и модель сама решает, где ставить атаки.
  • Можно маскировать часть высот в pianoroll’е:
    • Маскировать всё, кроме зажатых нот — модель может добавлять гармонии и украшения вокруг них.
    • Явно задать соседние высоты как off — модель будет играть только заданные ноты.

Реальная задержка

Формально MRT2 уменьшила размер кадра с 2 секунд до 40 мс. Но помимо времени инференса есть ещё:

  • входные и выходные буферы аудио;
  • задержки внешних компонентов (например, транскрипция, если она используется по ходу);
  • накладные расходы на кодек.

Команда даёт схему полной цепочки: от изменения управляющего сигнала до появления соответствующего звука. Суммарная реакция всё равно укладывается в около 0,2 секунды, что уже приемлемо для живой игры и импровизации.

Что это значит для вас

Для кого MRT2 особенно полезен

  1. Электронные музыканты и лайв‑перформеры

    • Можно использовать MRT2 как реактивный генератор аккомпанемента.
    • Нажимаете аккорды на MIDI‑клавиатуре — модель подхватывает гармонию и стиль почти без задержки.
    • В Auto‑Strum модель сама создаёт ритмический рисунок и атаки.
  2. Композиторы и продюсеры

    • Быстрый способ прототипировать аранжировки: задали аккордовую структуру и стиль — MRT2 заполняет пространство.
    • Маскированием можно управлять уровнем «самостоятельности» модели.
    • Отдельный контроль барабанов on/off удобен для многодорожечных проектов.
  3. Разработчики музыкальных приложений

    • Decoder‑only архитектура и локальное внимание упрощают стриминговую интеграцию.
    • Можно строить плагины или веб‑сервисы, которые генерируют музыку на лету.
    • Чёткие параметры (25 Гц, 12 токенов на кадр, 3 кбит/с) упрощают расчёт ресурсов.
  4. Исследователи генеративного аудио

    • 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 в своих задачах (концептуально)

Поскольку в исходном описании нет готовых команд установки, полезно зафиксировать логическую схему интеграции:

  1. Подготовка входов

    • Аудио или текстовый стиль → через MusicCoCa + маппер pMF → эмбеддинг стиля.
    • MIDI‑ноты → pianoroll 128 каналов @ 25 Гц, с нужным режимом onset’ов (Auto‑Strum или OFF).
    • Барабаны → бинарный сигнал on/off по кадрам (или просто глобальный флаг для CFG).
  2. Онлайн‑цикл генерации

    • На каждом шаге (40 мс) собрать вектор управления (\mathbf{c}_t).
    • Пропустить его через temporal‑decoder с cross‑attention.
    • Сгенерировать 12 RVQ‑токенов для кадра.
    • Обновить KV‑кэш, удалив записи старше окна w.
  3. Декодирование и вывод

    • Передать токены в SpectroStream‑декодер.
    • Полученный аудиофрагмент отправить в выходной буфер.
  4. Творческое управление

    • Менять CFG‑шкалы для стиля, нот и барабанов.
    • Маскировать части pianoroll’а или стиля, чтобы дать модели больше свободы.

Если вы разрабатываете своё решение, MRT2 полезен как подробная спецификация того, какие компоненты нужны, чтобы live‑музыка с ИИ ощущалась живой, а не запаздывающей.


Читайте также