фортепиано в действии" style="max-width: 100%;">
pianola — это приложение, которое воспроизводит фортепианную музыку, созданную искусственным интеллектом. Пользователи задают (то есть «подсказывают») модель ИИ, играя ноты на клавиатуре или выбирая примеры фрагментов из классических произведений.
В этом файле ознакомительных сведений мы объясняем, как работает ИИ, и подробно рассказываем об архитектуре модели.
Музыку можно представить разными способами: от необработанных звуковых сигналов до полуструктурированных стандартов MIDI. В pianola мы разбиваем музыкальные доли на регулярные, равномерные интервалы (например, шестнадцатые ноты/полукваверы). Ноты, сыгранные внутри интервала, считаются принадлежащими одному и тому же временному шагу, а серия временных шагов образует последовательность. Используя последовательность на основе сетки в качестве входных данных, модель искусственного интеллекта прогнозирует ноты на следующем временном шаге, которые, в свою очередь, используются в качестве входных данных для прогнозирования последующего временного шага авторегрессионным способом.
В дополнение к играемым нотам модель также прогнозирует продолжительность (продолжительность удерживания ноты) и скорость (насколько сильно нажимается клавиша) каждой ноты.
Модель состоит из трех модулей: преобразователя, преобразователя и декодера. Эти модули заимствованы из известных архитектур, таких как сети Inception, преобразователи LLaMA и цепочки классификаторов с несколькими метками, но адаптированы для работы с музыкальными данными и объединены новым подходом.
Средство внедрения преобразует каждый входной временной шаг формы (num_notes, num_features)
в вектор внедрения, который можно передать в преобразователь. Однако, в отличие от встраивания текста, которое отображает горячие векторы в другое размерное пространство, мы обеспечиваем индуктивное смещение, применяя к входным данным сверточные и объединяющие слои. Мы делаем это по ряду причин:
2^num_notes
, где num_notes
равно 64 или 88 для коротких и обычных фортепиано), поэтому невозможно представить их как горячие векторы.Чтобы позволить разработчику узнать, какие расстояния полезны, мы черпаем вдохновение из начальных сетей и складываем свертки с ядрами разных размеров.
Модуль преобразователя состоит из слоев преобразователя LLaMA, которые самостоятельно обрабатывают последовательность входных векторов внедрения.
Как и многие генеративные модели ИИ, этот модуль использует только «декодерную» часть исходной модели Трансформеров Васвани и др. (2017). Мы используем здесь ярлык «трансформатор», чтобы отличить этот модуль от следующего, который осуществляет фактическое декодирование состояний, создаваемых слоями самообслуживания.
Мы предпочитаем архитектуру LLaMA другим типам трансформаторов в первую очередь потому, что она использует вращательное позиционное встраивание (RoPE), которое кодирует относительные положения с затуханием расстояния с течением времени. Учитывая, что мы представляем музыкальные данные в виде фиксированных интервалов, относительные положения, а также расстояния между временными шагами являются важными фрагментами информации, которую преобразователь может явно использовать для понимания и создания музыки с постоянным ритмом.
Декодер учитывает посещаемые состояния и прогнозирует ноты, которые будут воспроизводиться, а также их длительность и скорость. Модуль состоит из нескольких подкомпонентов, а именно: цепочки классификаторов для прогнозирования нот и многоуровневых персептронов (MLP) для прогнозирования признаков.
Цепочка классификаторов состоит из двоичных классификаторов num_notes
, т. е. по одному для каждой клавиши фортепиано, для создания классификатора с несколькими метками. Чтобы использовать корреляции между заметками, бинарные классификаторы объединяются в цепочку так, что результаты предыдущих заметок влияют на прогнозы для следующих заметок. Например, если существует положительная корреляция между октавными нотами, активная нижняя нота (например, C3
) приводит к более высокой вероятности предсказания более высокой ноты (например, C4
). Это также полезно в случаях отрицательных корреляций, когда можно выбирать между двумя соседними нотами, что приводит к мажорной или минорной гамме (например, CDE
против CD-Eb
), но не к обеим одновременно.
Для эффективности вычислений мы ограничиваем длину цепочки 12 звеньями, т.е. одной октавой. Наконец, стратегия выборочного декодирования используется для выбора нот относительно вероятностей их предсказания.
Характеристики продолжительности и скорости рассматриваются как проблемы регрессии и прогнозируются с использованием стандартных MLP. Хотя функции прогнозируются для каждой заметки, во время обучения мы используем пользовательскую функцию потерь, которая объединяет только потери функций из активных заметок, аналогично функции потерь, используемой в классификации изображений с задачей локализации.
Наш выбор представления музыкальных данных в виде сетки имеет свои преимущества и недостатки. Мы обсуждаем эти моменты, сравнивая их со словарем, основанным на событиях, предложенным Oore et al. (2018), широко цитируемый вклад в создание музыки.
Одним из главных преимуществ нашего подхода является разделение микро- и макропонимания музыки, что приводит к четкому разделению обязанностей между специалистом по внедрению и преобразователем. Роль первого — интерпретировать взаимодействие нот на микроуровне, например, как относительные расстояния между нотами формируют музыкальные отношения, такие как аккорды, а задача второго — синтезировать эту информацию во временном измерении, чтобы понять музыкальный стиль на макроуровне. уровень.
Напротив, представление на основе событий возлагает всю нагрузку на модель последовательности по интерпретации горячих токенов, которые могут представлять высоту, время или скорость - три разные концепции. Хуанг и др. (2018) обнаружили, что необходимо добавить механизм относительного внимания к своей модели Трансформера, чтобы генерировать последовательные продолжения, что предполагает, что модель требует индуктивного смещения, чтобы хорошо работать с этим представлением.
В сеточном представлении выбор длины интервала является компромиссом между точностью данных и разреженностью. Более длинный интервал снижает детализацию тайминга нот, снижая музыкальную выразительность и потенциально сжимая быстрые элементы, такие как трели и повторяющиеся ноты. С другой стороны, более короткий интервал экспоненциально увеличивает разреженность за счет введения большого количества пустых временных шагов, что является серьезной проблемой для моделей Transformer, поскольку они ограничены по длине последовательности.
Кроме того, музыкальные данные могут быть отображены в сетке либо с течением времени ( 1 timestep == X milliseconds
), либо как записано в партитуре ( 1 timestep == 1 sixteenth note/semiquaver
), каждый из которых имеет свои собственные компромиссы. . Представление на основе событий полностью позволяет избежать этих проблем, определяя течение времени как событие.
Несмотря на свои недостатки, представление сетки имеет практическое преимущество, заключающееся в том, что с ним гораздо проще работать при разработке pianola . Выходные данные модели удобочитаемы для человека, а количество временных шагов соответствует фиксированному промежутку времени, что значительно ускоряет разработку новых функций.
Кроме того, исследования по увеличению длины последовательностей моделей Transformer и постоянное совершенствование аппаратного обеспечения будут постепенно уменьшать проблемы, вызванные разреженностью данных, и по состоянию на конец 2023 года мы видим большие языковые модели, которые могут обрабатывать десятки тысяч токенов. По мере того, как технологии оптимизируются, а мощное оборудование становится более доступным, мы считаем, что точность воспроизведения будет продолжать улучшаться, так же, как это произошло с генерацией изображений, что приведет к большей выразительности и нюансам в музыке, генерируемой ИИ.
Исходный код этого проекта является общедоступным для целей академических исследований и обмена знаниями. Все права сохраняются за создателем(ами), если разрешения не были явно предоставлены.
Иконка сайта изменена с Freepik — Flaticon.
Свяжитесь с нами на Outlook.com по адресу bruce <dot> ckc
.