LLM
Avatar
硬件
多模态
视频
RAG
音频
音乐
Infra
图像
机器人
🎸M2UGen:利用大型语言模型实现多模态音乐理解和生成
type
status
slug
summary
tags
category
icon
password
Date
M 2 UGen 模型是一种音乐理解和生成模型,能够进行音乐问答,从文本、图像、视频和音频生成音乐,以及音乐编辑。该模型利用编码器(例如用于音乐理解的 MERT、用于图像理解的 ViT 和用于视频理解的 ViViT)和 MusicGen/AudioLDM2 模型作为音乐生成模型(音乐解码器),再加上适配器和 LLaMA 2 模型,使该模型具有多种能力。模型架构在m2ugen.py中给出。
为了训练我们的模型,我们使用音乐字幕和问答模型(即MU-LLaMA模型)生成数据集。数据集生成方法在Datasets文件夹中给出。
🤗 HuggingFace 演示
我们提供了一个 HuggingFace 空间来观察我们的模型的实际运行:M2UGen/M2UGen-Demo。
🤖 模型设置
我们使用 Python 3.9.17 进行此项目,库要求在 requirements.txt 中给出。使用以下工具创建 conda 环境:
确保 NVIDIA 驱动程序为版本 12 或更高版本,以与 PyTorch 2.1.0 兼容。
为了我们的模型能够正常工作,需要 Facebook 的 LLaMA-2 模型权重,有关获取这些权重的详细信息在HuggingFace上提供。
我们的模型的训练检查点可以在这里获得:
所需的预训练多模式编码器和音乐解码器模型可以在这里找到:
检查点文件夹的目录可以按以下方式组织:
下载后,可以使用这些检查点运行 Gradio 演示。
对于带有 MusicGen 的型号
对于配备 AudioLDM2 的型号
🗄️ 数据集生成
数据集也可以在这里下载:
除了生成的数据集外,M2UGen 还利用了 COCO 和 Alpaca 数据集。对于 COCO 数据集,请从此处下载 2014 年训练数据集,并将文件放在 Datasets 下的 COCO 文件夹中。Alpaca 数据集文件已在Datasets/Alpaca下提供。
🔧 模型训练
要训练 M 2 UGen 模型,请运行train_musicgen.sh或train_audioldm2.sh脚本。这些脚本旨在分别使用MusicGen和AudioLDM2音乐解码器训练所有三个阶段的模型。
主要模型架构在m2ugen.py中给出,修改后的 MusicGen 和 AudioLDM2 架构分别位于musicgen和audioldm2文件夹中。数据文件夹包含用于处理加载数据集的 python 文件。dataset.py文件将显示基于训练阶段的不同数据集的使用。训练时期的代码位于engine_train.py中。
🔨模型测试与评估
要测试 M 2 UGen 模型,请运行gradio_app.py。
要评估 M 2 UGen 模型和我们论文中的其他比较模型,请参阅评估文件夹。
🧰 系统硬件要求
对于训练,第 1 阶段和第 2 阶段使用单个 32GB V100 GPU,而第 3 阶段使用 2 个 32GB V100 GPU。对于推理,使用单个 32GB V100 GPU。对于加载模型检查点,大约需要 49GB 的 CPU 内存。
🫡 致谢
该代码包含来自以下 repo 的元素:
✨ 引用我们的工作
如果你发现这个 repo 有用,请考虑引用:
@article{hussain2023m,
title={{M$^{2}$UGen: Multi-modal Music Understanding and Generation with the Power of Large Language Models}},
author={Hussain, Atin Sakkeer and Liu, Shansong and Sun, Chenshuo and Shan, Ying},
journal={arXiv preprint arXiv:2311.11255},
year={2023}
}
M2UGen
shansongliu • Updated May 24, 2024